Algoritma Formula CDE dan Turunannya dalam simulasi Algoritma Langkah Acak dalam Simulasi Pergerakan Solut

17 pergerakan solut. Oleh karena itu, faktor yang berpengaruh pada pergerakan solut pada kolom ini adalah dispersi dan juga unsur-unsur pada formula 6.

4.2. Algoritma Formula CDE dan Turunannya dalam simulasi

Algoritma yang digunakan untuk menggambarkan pergerakan solut menggunakan penurunan formula CDE 1 menjadi formula 6. Formula ke 6 tersebut lalu dikonversi ke dalam c++ supaya memudahkan penghitungan hasil konsentrasi per waktu menjadi: 1. int main 2. { 3 ofstream outFilenil_kon.txt; 4. srandtime0; 5. double massa = 30; 6. double porositas = 0.33; 7. const double pi = 3.14159265; 8. double koef_dispersi= 0.13; 9. double waktu ; 10. double panjang = 10;dalam cm 11. double kec = 0.5;dalam cms 12. double konsentrasi; 13. double a; 14. double b; 15. forwaktu = 1;waktu 500;waktu +=1 16 { 17. a = massaporositas sqrt4pikoef_dispersiwaktu; 18. b = -1panjang - kec waktu + nor_with_std_and_mean 19. panjang - kec waktu + nor_with_std_and_mean 4 20. koef_dispersi waktu; 21. 22. konsentrasi = powa,b; 23. cout waktu ,konsentrasi endl; 24. outFilewaktu ,konsentrasiendl; 25. } 26. return 0; 27. } Kode pada baris 17 sampai 22 adalah algoritma utama dalam penghitungan konsentrasi solut terhadap waktu. Dalam algoritma tersebut dilakukan pengulangan terhadap waktu sebanyak 500 kali dan diulang tiap 1 kali satuan waktu. Di dalam pengulangan itu dimasukkan formula 2 ke dalam dua bagian yaitu bagian a Dt m 4 dan bagian b Dt R t v L 4 2 , lalu konsentrasi solut didapatkan dengan fungsi 18 pow yaitu fungsi exponensial b a exp . Sehingga didapatkan hasil konsentrasi solut terhadap waktu.

4.3. Algoritma Langkah Acak dalam Simulasi Pergerakan Solut

Pendekatan langkah acak dimasukkan ke dalam formula di atas sebagai R. Nilai R dicari dengan menggunakan pendekatan transformasi Box Muller untuk mendapatkan nilai acak dengan distribusi normal. Transformasi ini memberikan cara untuk mentransformasi nilai acak yang terdistribusi seragam menjadi kumpulan baru berupa nilai acak dengan distribusi normal gauss. Bentuk standar transformasi Box Muller yaitu: y1 = sqrt - 2 lnx1 cos 2 pi x2 y2 = sqrt - 2 lnx1 sin 2 pi x2 Akan tetapi bentuk ini mempunyai masalah yaitu hasil programnya lambat sehingga akan terjadi masalah yang serius jika kita ingin menghasilkan jutaan nilai acak. Bentuk polar dari tranformasi Box-Muller hasilnya lebih cepat dan lebih kuat dari pada bentuk transformasi di atas. Deskripsi algoritmanya dalam bahasa c++ adalah sebagai berikut: 1. float x1, x2, w, R1, R2; 2. do { 3. x1 = 2.0 ranf - 1.0; 4. x2 = 2.0 ranf - 1.0; 5. w = x1 x1 + x2 x2; 6. } while w = 1.0 ; 7. w = sqrt -2.0 ln w w ; 8. R1 = x1 w; 9. R2 = x2 w; dimana ranf adalah fungsi nilai acak yang dihasilkan secara seragam terdistribusi antara 0 – 1. Nilai R1 atau R2 inilah yang digunakan untuk formula 2 kedua nilai tersebut bisa digunakan salah satunya dan juga sebaliknya tapi yang digunakan hanya salah satunya saja. Dalam kerangka langkah acak random walk pada simulasi, perpindahan solut diperlihatkan sebagai partikel-partikel yang melakukan langkah bertahap atau transisi melalui suatu formasi melalui jalur-jalur yang berbeda dengan kecepatan yang terus berubah. Kecepatan yang berubah ini dalam simulasi terjadi ketika partikel-partikel memasuki wilayah yang baru yang mempunyai faktor 19 langkah acak yang berbeda pula. Langkah acak pada pergerakan solut terjadi disebabkan perbedaan karakter struktur dari media berpori.

4.4. Algoritma Pergerakan Partikel