BAB 2 LANDASAN TEORI
2.1
Teori Simulasi Simulasi yang juga dapat disebut pengimitasian adalah meniru atau menggambarkan operasi-operasi yang terjadi pada berbagai macam fasilitas atau proses yang terjadi pada kehidupan nyata dengan menggunakan bantuan komputer (Law dan Kelton, 2000, p1). Fasilitas atau proses yang disebutkan di atas itulah yang dikenal dengan nama sistem. Dalam simulasi, komputer digunakan sebagai alat bantu untuk mengevaluasi sebuah model secara numerik, dan data-data dikumpulkan untuk mengestimasi karakteristik sesungguhnya dari sebuah model. Secara umum, sistem dapat dipelajari perilakunya dengan menggunakan beberapa metode pada diagram berikut.
Gambar 2.1 Cara Mempelajari Sistem Sumber: Law, 2000, p4
7
2.2
Metode Lattice Boltzmann (LBM Metoda Lattice Boltzmann (Thurey, 2003), sesuai dengan namanya, bekerja dalam area lattice. Ada beragam jenis lattice yang dapat digunakan, tergantung pada lingkungan pengaplikasiannya. Penamaannya pun disesuaikan menurut aturan DXQY, di mana X adalah jumlah dimensi, misalnya 3, dan Y menunjukkan banyaknya arah kecepatan lattice. LBM merupakan salah satu jenis cellular automata, yang berarti fluida terbentuk dari banyak sel sejenis. Semua sel diperbaharui di setiap langkah waktu dengan aturan sederhana, dengan ikut memperhitungkan sel-sel di sekitarnya. LBM memodelkan fluida yang tak mampu-mampat (incompressible) di mana partikel fluida hanya dapat bergerak searah dengan vektor kecepatan lattice. Satu sel model D3Q19 ditunjukkan di Gambar 2.2. Setiap sisi dari sel tersebut memiliki panjang 1. Dari gambar tersebut juga terlihat vektor kecepatan lattice dan sudah diberi nomor. Vektor-vektor itu mengarah dari inti atau tengah sel ke setiap sisi kotak dan juga ke tengah tiap rusuk dari kotak tetapi tidak menunjuk pada pojok-pojok kotak. Untuk keperluan simulasi, semua sel harus menyimpan informasi partikel yang bergerak menurut arah masing-masing vektor kecepatan dengan fungsi distribusi partikel. Fungsi ini dinotasikan dengan f i di mana nilai i menunjukkan nomor vektor lattice. Vektor dengan nomor 0 mempunyai panjang 0 dan menyimpan jumlah partikel yang berhenti di sel bersangkutan. Partikel ini tidak akan bergerak kemana-mana di langkah waktu berikutnya, tetapi beberapa
8
9 diantaranya mungkin akan dipercepat (bergerak) karena tabrakan dengan partikel lain, jadi jumlah partikel yang diam bisa saja berubah. Ada dua nilai penting yang dapat dihasilkan dari fungsi distribusi partikel. Dengan menjumlahkan semua (19) fungsi distribusi, didapatkan kepadatan (massa / volume) dari sel, dengan asumsi semua partikel mempunyai massa yang sama yaitu 1. Informasi penting lain yang didapat untuk setiap sel adalah kecepatan dan arah kecenderungan kemana partikel dari setiap sel bergerak. Untuk itu, momentum dari kepadatan perlu dihitung, yaitu jumlah dari semua fungsi distribusi partikel, tetapi setiap distribusi terlebih dahulu dikalikan dengan vektor lattice. Sehingga, fungsi distribusi partikel 0 akan dikalikan dengan vektor
(0,0,0)T ,
yang selalu menghasilkan 0, fungsi distribusi f1
T dikalikan dengan (1,0,0 ) dan ditambahkan dengan fungsi distribusi f 2 dikalikan
(− 1,0,0)T dan
seterusnya. Dari kalkulasi di atas didapatkan hasil dalam vektor
dimensi 3 yang panjangnya ditentukan oleh kepadatan volume. Jadi, cukup dengan membagi momentum kepadatan dengan kepadatan, didapatkan vektor kecepatan untuk satu sel. Secara sederhana, kepadatan diberi nilai 1 di awal simulasi. Karena LBM digunakan untuk mensimulasi fluida yang tidak dapat dipadatkan, yang artinya nilai kepadatan yang konstan di setiap bagian dari fluida, keterikatan ini merenggang selama proses simulasi. Dalam simulasi, biasanya akan dijumpai perbedaan kepadatan, tetapi secara keseluruhan masih akan membentuk satu fluida tak mampu-mampat.
10
Gambar 2.2 Model D2Q19 (kiri) dan model D2Q9 (kanan)
Proses simulasi LBM terdiri dari 2 tahap yang diulang setiap langkah waktu. Yang pertama adalah tahap aliran, di mana perpindahan sebenarnya dari partikel melalui grid dilakukan. Tahap berikutnya menghitung tabrakan yang terjadi selama pergerakan itu, sehingga dinamakan tahap tabrakan. Tahap aliran hanya terdiri dari operasi salin, seperti yang ditunjukkan di Gambar 2.3. Untuk setiap sel, semua fungsi distribusi disalin ke sel tetangga yang searah dengan vektor lattice. Sedangkan fungsi distribusi sel dengan koordinat [i, j, k ] untuk vektor yang menunjuk ke atas disalin ke fungsi distribusi yang mengarah ke atas dari sel [i, j + 1, k ] . Fungsi distribusi untuk vektor 0 tidak berubah dalam tahap aliran karena vektor tersebut tidak menunjuk kemana-mana. Dalam prakteknya, ketika membuat program, cara termudah adalah membuat dua grid yang berbeda dan menyalin fungsi distribusi dari satu grid ke grid lain. Hal ini penting untuk mencegah terjadinya fungsi distribusi yang berubah padahal datanya masih diperlukan untuk tahap aliran sel lain.
11
Gambar 2.3 Fungsi distribusi partikel pada model D2Q9 LBM sebelum dan sesudah tahap aliran.
Tahap tabrakan sedikit lebih rumit. Setelah tahap aliran selesai dieksekusi, hasilnya adalah fungsi distribusi yang bergerak pada grid. Kecepatan dan kepadatan dari sel juga akan berubah, tanpa interaksi lebih lanjut. Namun, pada fluida di alam nyata, partikel-partikel fluida secara konstan saling bertabrakan, memencarkan partikel lain ke arah yang berlainan, karena gerakannya kacau mempengaruhi lapisan tetangganya dalam fluida. Tahap tabrakan tidak mengubah kepadatan ataupun kecepatan dari sel, tetapi hanya mengubah distribusi partikel untuk semua fungsi distribusi partikel. (Gambar 2.4)
Gambar 2.4 Tahap tabrakan pada sel
12 Ambil satu contoh satu sel [i, j, k ] di mana fluida bergerak searah sumbu x positif. Sel tersebut tidak akan kehilangan partikel selama tabrakan, tetapi gerakannya akan berpencar ke lattice lain yang ditunjuk oleh vektor kecepatan yang searah sumbu x positif. Pada tahap aliran berikutnya, sel-sel tetangga pada koordinat x di i + 1 akan menerima fungsi distribusi partikel yang sedikit lebih besar dari sel [i, j, k ] , dan sel pada i − 1 akan menerima fungsi yang lebih lemah. Waktu relaksasi ω dengan nilai berkisar antara 0 sampai 2, menentukan viskositas dari fluida. Untuk nilai ω kecil (< 1), fluida akan berperilaku lebih seperti madu, sementara dengan nilai 2, fluida yang dihasilkan akan sangat kacau (lebih menyerupai air) (Gambar 2.5).
Gambar 2.5 Relaksasi waktu tunggal dengan waktu relaksasi yang berbeda
13 Kepadatan dari sel akan dinotasikan dengan ρ sedangkan vektor r kecepatan dinotasikan dengan u = (u1 , u2 , u3 )T . Vektor kecepatan dari lattice pada
r Gambar 2.2 adalah e0..18 , masing-masing mempunyai bobot ωi. Untuk tahap tabrakan, nilai kesetimbangan fungsi distribusi perlu dihitung dari kepadatan dan kecepatan : r r 9 r r 2⎤ 3 r2 ⎡ f i eq = ωi ⎢ ρ − (u ) + 3(ei ⋅ u ) + (ei ⋅ u ) ⎥ 2 2 ⎣ ⎦
(2.1)
Dengan ωi = 1/3 untuk i = 0, ωi = 1/18 untuk i = 1..6 dan ωi = 1/36 untuk i = 7..18. Ketiga produk skalar dari vektor kecepatan dan vektor lattice dapat dihitung dengan mudah. Ketiganya perlu diskala dengan sesuai dan kemudian dijumlahkan menurut bobot dan kepadatan. Nilai waktu relaksasi ω akan menentukan fluida dapat mencapai titik kesetimbangan lebih cepat atau lebih lambat. Fungsi distribusi partikel yang baru f i′ dihitung menurut persamaan: f i′ = (1 − ω ) f i + ωf i eq
(2.2)
Dan kemudian f i′ akan disimpan dalam sel yang sesuai. Ketika semua sel sudah bertabrakan, maka tahap aliran berikut dapat dilaksanakan. Secara numerik LBM bisa diselesaikan dengan 2 tahap yaitu tahap aliran (2.3) dan tahap tabrakan (2.4) yang dapat digabungkan dalam satu rumus (2.5): r r r f i ( x , t ) = f i′( x − ei , t − 1)
(
(2.3)
)
r r r r 1 f i′ (x , t ) = f i (x , t ) − f i (x , t ) − f i eq (x , t ) + Fi
τ
(
)
r r r 1 f i ( x + ei Δt , t + Δt ) − f i (x , t ) = − f i − f i eq + Fi
τ
di mana Fi adalah gaya luar, misalnya gravitasi.
(2.4)
(2.5)
14 2.3
Persamaan Boltzmann Persamaan Boltzmann telah dikenal sejak tahun 1872 dan dinamai sesuai dengan nama ilmuwan asal Austria, Ludwig Boltzmann. Persamaan ini merupakan bagian dari fisika statistik klasik dan menggambarkan perilaku gas pada skala mikroskopis. Teori
gas
kinetis
menangani
hal
yang
berhubungan
dengan
penggambaran status gas pada tingkat molekul (Thurey, 2003). Teori ini memperkenalkan suatu fungsi untuk menggambarkan status gas dengan memperhitungkan posisi dan kecepatan setiap molekul gas. Sebuah ruang 3D membutuhkan tiga nilai, oleh karena itu sebuah molekul dapat dideskripsikan r dengan enam nilai ( x1 , x 2 , x3 , ξ x , ξ y , ξ z ) di mana ( x1 , x 2 , x3 ) = x merupakan r posisi, dan (ξ x , ξ y , ξ z ) = ξ adalah kecepatan molekul. Suatu gas dengan N molekul dapat dideskripsikan pula dengan N titik dalam dimensi enam (biasanya disebut dengan μ-space). Untuk menangani deskripsi molekul, teori gas kinetis menyebutkan suatu r r fungsi untuk sebuah volume dx dξ pada ( x1 , x 2 , x3 , ξ x , ξ y , ξ z ) dalam μ-space
yang menggambarkan kepadatan gas. Dengan dN menjadi angka titik dari volume ini (semua molekul dengan posisi dan kecepatan pada jarak yang telah ditentukan), maka r r dN f ( x, ξ ) = r r dx dξ
(2.10)
adalah fungsi distribusi kecepatan molekul. Mengintegrasikan fungsi ini pada semua nilai-nilai yang mungkin akan menghasilkan N, yakni jumlah molekul
15 total. f sekarang hanya terdiri atas semua partikel dalam satu interval di sekitar
x yang bergerak dengan arah yang sama. Penurunan persamaan Boltzmann dapat dilakukan dengan taksiran tabrakan yang terjadi hanya antara dua partikel. Tabrakan antara dua partikel ini dianggap berlangsung sekejap dan tidak dipengaruhi oleh gaya luar. Jika memasukkan gaya luar g maka persamaan Boltzmann dapat ditulis sebagai berikut :
∂f r ∂f r ∂f + ξ r + g r = Ω( f ) ∂t ∂x ∂ξ
(2.11)
Pada persamaan di atas, ruas kiri menggambarkan gerakan keseluruhan r r r dari molekul dengan kecepatan mikroskopik ξ melalui medan gaya g pada x ,
sedangkan ruas kanan menunjukkan interaksi molekul dengan operator tabrakan. Persamaan integral yang memuat differential collision cross section σ pada dua partikel, yang bisa dihitung secara geometris dengan pendekatan bola tegar untuk molekul. Kecepatan partikel yang masuk diubah menjadi kecepatan keluaran sehingga persamaan tersebut menunjukkan hubungan dengan dinamika molekul yang dasar. Ω untuk dua partikel dengan kode 1 dan 2 dapat ditulis sebagai berikut : r r r r r Ω( f ) = ∫ ( f 1′ f 2′ − f 1 f 2 )σ ( u1 − u 2 , ω ) dωdx 2
(2.12)
r di mana ω menunjukkan sudut pada tabrakan yang terjadi. Seperti terlihat di persamaan di atas, cross section σ dihitung dengan tabrakan solid dan kecepatan
r r relatif dari kedua partikel yang bertabrakan u1 − u 2 .
16 Dikarenakan rumitnya sifat operator tabrakan, maka operator tabrakan sering digantikan dengan persamaan yang lebih sederhana, tetapi tetap mempertahankan faktor-faktor tabrakan. Model standar untuk masalah tabrakan ini adalah taksiran BGK (Bhatnagar-Gross-Krook) . Bunyinya : Ω BGK ( f ) = Disini
f eq adalah
distribusi
f
eq
−f
(2.16)
ω
Maxwellian
yang
merepresentasikan
kesetimbangan lokal dan dipengaruhi oleh kepadatan yang tetap ρ, kecepatan r ξ dan suhu T. Tiap tabrakan mengubah fungsi distribusi f1 proposional terhadap
nilai awal dari kesetimbangan lokal f eq , di mana jumlah dari koreksinya diubah seturut relaksasi waktu ω . Untuk 3D, fungsi distribusi Maxwell (terkadang disebut juga distribusi Maxwell-Boltzmann) dapat dituliskan: f
M
⎛ m2 = ρ ⎜⎜ ⎝ 2πRT
⎞ ⎟⎟ ⎠
3/ 2
e
r r − (ξ − u ) 2 m 2 2 RT
(2.20)
di mana ξ a adalah kecepatan alitan makroskopik, ρ adalah kepadatan fluida, T adalah suhu fluida, R adalah konstanta Boltzmann (1,38066x10-23 J/K), dan m adalah massa partikel.
2.4
Turunan Persamaan Boltzmann Penurunan persamaan Boltzmann berikut menurut penjelasan dari Thurey. Metoda yang dijelaskan disini memungkinkan penurunan persamaan Boltzmann dari persamaan kinetis acak. Untuk selanjutnya, notasi berikut akan
17 r r r r r digunakan f ( x , ξ , t ) = f (t ) dan f ( x + ξ a, ξ , t + a ) = f (t + a ) . Notasi yang sama
juga berlaku untuk g. Sebagai langkah awal, persamaan Boltzmann dengan taksiran tabrakan BGK akan digunakan sebagai berikut: 1 ∂f (t ) r + ξ ∇f (t ) = − ( f (t ) − g (t ) ) ∂t λ
di mana
f
(2.21)
r adalah fungsi distribusi partikel pada waktu t, posisi x untuk
r kecepatan mikroskopik ξ , dan 1 λ = A ⋅ n adalah waktu relaksasi untuk tabrakan
yang dihitung dari jumlah partikel n dan koefisien proporsional A. g adalah distribusi Maxwell f
M
dari persamaan 2.20.
r Properti hydrodinamik dari fluida, yakni kepadatan ρ, kecepatan u dan suhu T dapat dihitung dengan momen dari fungsi f. Di bawah ini, energi ε dari kepadatan energi ρε dapat digunakan untuk menghitung temperatur dari fluida.
(r
r
)
r
ρ = ∫ f x , ξ , t dξ
(
)
r r r r ρ u = ∫ ξ ⋅ f x , ξ , t dξ r r r 1 r r ρε = ∫ ξ − u ⋅ f x , ξ , t dξ 2
(
2.3.1
) (
)
(2.22) (2.23) (2.24)
Diskritasi waktu Persamaan 2.21 dapat dirumuskan sebagai persamaan diferensial normal atau Ordinary Differential Equation (ODE):
di mana
df 1 1 + f = g dt λ λ
(2.25)
D ∂ r = + ξ∇ Dt ∂t
(2.26)
18 adalah turunan waktu sepanjang kecepatan mikroskopis. Persamaan 2.25 adalah ODE linier urutan pertama, oleh karena itu, digunakan rumus standar
untuk
menyelesaikan
persamaan
seperti
ini,
solusi
penyelesaiannya didapat dengan: f (t + δ t ) = f (t ) ⋅ e
−
δt λ
+
1
λ
e
−
δt λ
δt
t′
⋅ ∫ e g (t + t ′)dt ′ λ
(2.27)
0
Dengan menganggap bahwa δ t sangatlah kecil dan g merupakan fungsi halus, g (t + t ′) dapat ditaksirkan dengan interpolasi linier untuk 0 < t′ < δt :
⎛ t′ ⎞ t′ g (t + t ′) = ⎜⎜1 − ⎟⎟ g (t ) + + g (t + δ t ) + O δ t2 δt ⎝ δt ⎠
( )
(2.28)
Persamaan ini dapat digunakan untuk menyelesaikan integral persamaan 2.27. ⎛ ⎛ −δt ⎞ λ f (t + δ t ) − f (t ) = ⎜⎜ e λ − 1⎟⎟[ f (t ) − g (t )] + ⎜1 + t ⎜ δ ⎝ ⎠ ⎝
⎛ − δλt ⎞⎞ ⎜ e − 1⎟ ⎟[g (t + t ′) − g (t )] ⎜ ⎟⎟ ⎝ ⎠⎠ (2.30)
Lebih lanjut, e
−
δt λ
dapat diperluas menurut Taylor terhadap δ t
berikut ini: e
−
δt λ
=e
−
0 +δ t
λ
δ ⎛ 1 ⎞ = 1 + δ t ⎜ − e 0 ⎟ + O δ t2 ≈ 1 − t λ ⎝ λ ⎠
( )
(2.31)
Jadi persamaan 2.30 dapat disederhanakan menjadi:
f (t + δ t ) − f (t ) = −
δt ( f (t ) − g (t )) λ
(2.32)
19
Disini, waktu relaksasi
δt 1 ¸ biasanya ditulis dengan . Rumus ini mirip λ τ
dengan persamaan 2.3 di penjelasan sebelumnya.
2.3.2
Taksiran Kesetimbangan Distribusi Maxwell yang digunakan sebagai fungsi distribusi kesetimbangan g telah dijelaskan pada bagian sebelumnya (lihat persamaan 2.20). Untuk massa partikel sebesar 1 dan dimensi D maka dibaca:
(2πRT )
(ξ −ur )2 r
ρ
r g (u ) =
D 2
e
−
(2.33)
2 RT
Dengan memperluas bentuk quadratic pada eksponen e dan dilanjutkan dengan perluasan Taylor maka akan menghasilkan persamaan-persamaan ⎛ ρ berikut (disini ⎜ ⎜ (2πRT )D ⎝
r
2
e
−
ξ2 2 RT
rr
εu
⎞ ⎟ akan disingkat menjadi β ): ⎟ ⎠ r u2
− r g (0 + u ) = β e RT 2 RT
r r r u2 g ′′(0) + O u 3 = g (0 ) + u g ′(0) + 2 r r r r ⎛ ξ ⋅ u ξ ⋅ ur 2 u 2 ⎞⎟ ⎜ = β ⋅ 1+ + − ⎜ RT 2(RT )2 2 RT ⎟ ⎝ ⎠
( )
( )
Rumus berikut ini akan digunakan sebagai distribusi kesetimbangan untuk turunan berikut:
f
eq
=
ρ
(2πRT )
D
( )
r r r ⎛ ξ ⋅ ur ξ ⋅ ur 2 u 2 ⎞⎟ 2 RT ⎜ e 1+ + − (2.34) 2 ⎜ RT 2(RT )2 2 RT ⎟ ⎠ ⎝ −
r
ξ2
20 2.3.3
Diskritasi kecepatan
Agar lebih sederhana, model D2Q9 akan diturunkan pada bagian ini. Seperti yang dapat dilihat pada persamaan 2.22, momen integral di seluruh ruang kecepatan diperlukan. Momen pada persamaan 2.34 pada 2D dapat secara umum ditulis sebagai berikut:
( )
r r2 r r r ⎛ ⋅ ⋅u ξ u ξ u 2 ⎞⎟ r eq 2 RT ⎜ + − I = ∫ψ ξ f dξ = ψξ e dξ 1+ D ⎜ RT 2 RT 2 RT ⎟ (2πRT ) 2 ∫ ⎝ ⎠ (2.35) di mana ψ adalah fungsi momen, yang terdiri dari kekuatan komponen-
() r
()
ρ
r
r
−
r
ξ2
komponen kecepatan
() r
ψ ξ = ξ xmξ yn
(2.36)
Untuk selanjutnya persamaan 2.35 dapat ditulis dengan cara sebagai berikut:
I =
ρ π
(
2 RT −
( ∫ξ ξ e m x
n y
) ⋅ (∫ ξ −2
ξ x2 +ξ y2 2 RT
−
m x
ξ yn e (
)2 ⎛⎜ u x + u y ⎜ (2 RT ) ⎝ 2
2
ξ x2 +ξ y2 2 RT
)2 (1)dξr −
⎞ r ⎟dξ + ⎟ ⎠
m n ( 2 RT ) ⎛⎜ 2(ξ x u x + ξ y u y ) ⎞⎟dξr + e ξ ξ x y ∫ ⎜ (2 RT ) ⎟⎠ ⎝ −
−
( ∫ξ ξ e m x
n y
ξ x2 +ξ y2
(2.37)
2
2 2 2 2 ⎞ ⎛ )2 ⎜ 2(ξ x u x + 2ξ x u xξ y u y + ξ y u y ) ⎟dξr ) 4 ⎜ ⎟ 2 RT ⎝ ⎠
ξ x2 +ξ y2 2 RT
(
)
Langkah-langkah berikutnya perlu untuk setiap empat batasan integral dari persamaan 2.37, tetapi kesemuanya diproses sesuai dengan yang ditunjukkan pada batasan pertama yaitu:
21
=
= =
ρ π
(
ρ π
(
ρ π ρ π
( (
ξ x +ξ y ⎞ ⎛ ⎜ m n − ( 2 RT )2 r ⎟ 2 RT ⋅ ⎜ ∫ ξ x ξ y e dξ ⎟ ⎟ ⎜ ⎠ ⎝ ξ y2 ξ x2 ⎞ ⎛ − − 2 2 −2 ⎜ ⎟ m n ( ( 2 RT ) 2 RT ) 2 RT ⋅ ⎜ ∫ ∫ e ξx e ξ y dξ x dξ y ⎟ ⎟ ⎜ ⎠ ⎝ 2
)
2
−2
)
2 RT
)
2 RT
)
m+n−2
m+n−2
(
⋅ ∫ e −ζ x ζ xm dζ x ⋅ ∫ e −ζ x ζ ym dζ y 2
m x
I I
2
) (2.38)
n x
2
Dapat dilihat bahwa I im adalah momen ke-m dari fungsi e −ς . Persamaan 2.37 dapat ditulis ulang menggunakan momen-momen berikut:
r ⎛ u2 ⎞ m n ⎟⎟ I x I y + 2 RT [ ⎜⎜1 − ⎝ (2 RT ) ⎠ 2 u x I xm +1I yn + u y I xm I yn +1 + 2 RT
ρ I = π
(
)
m+n−2
(
(
)
)
u x2 I xm + 2 I yn + 2u xu y I xm +1I yn +1 + u y2 I xm I yn + 2 RT
(2.39) ]
Langkah krusial pada turunan LBM adalah pada penggunaan rumus quadrature yang tepat untuk mengintegrasikan momen-momen tersebut secara numerik. Cara kerja quadrature adalah sebagai berikut:
∫
N
f ( x)W ( x)dx =∑ w j f ( x j )
(2.40)
j =1
2
di mana W(x) adalah fungsi pembobot, e − x di kasus ini, dan f(x) adalah sebuah polinomial pada x, contohnya f (ς x ) = ς xm . Integral dari perkalian kedua fungsi ini ditaksirkan dengan pemjumlahan atas evaluasi-evaluasi
22 fungsi pada nilai x = xj dengan bobot wj . Pada kasus ini, quadrature Gauss-Hermite dari orde ketiga (N = 3): 3
I im = ∑ w j (ς j ) m
(2.41)
j =1
dengan bobot dan abscissas sebagai berikut:
ς1 = − 3 2, w1 =
π 6
ς 2 = 0, ς 3 = + 3 2
(2.42)
2 π π , w3 = 3 6
(2.43)
, w2 =
Setelah menggunakan quadrature Gauss-Hermite, fungsi momen dapat disingkat menjadi bentuk berikut:
r r
( r) r
r
⎛ ρ 3 3 ξ ⋅u ξ ⋅u u 2 ⎞⎟ ⎜ + − I = ∑∑ wi w jψ (ς i j ) 1 + 2 ⎜ π i =1 j =1 RT 2 RT ⎟ ( ) 2 RT ⎝ ⎠ 2
(2.44)
di mana ς i , j adalah vektor yang diberikan oleh abscissas quadrature
ςi, j =
(
)
2 RT (ς i , ς j ) . Karena adanya penggunaan model isothermal, T
suhu T tidak memiliki relevansi secara fisik, dan dapat digantikan dengan konstanta
c = 3RT .
Kecepatan
suara
cs = c / 3
pada
model
menghasilkan c s2 = c 2 3 = RT . Bobotnya kemudian dibagi dengan π dan menjadi: w0 = w2 w2 = 4 9 w1 . . 4 = w1 w2 , w2 w1 , w3 w2 , w2 w3 = 1 9
(2.45)
w5 . . 8 = w1 w3 , w3 w1 , w1 w1 , w3 w3 = 1 36 Tiap komponen dari vektor bernilai 0 atau ± 2 RT 3 2 = ± 3RT = c :
23
r T e0 = ς 1 , 1 = (0, 0) r T T e1.. 4 = ς 1 , 2 , ς 2 , 1 , ς 3 , 2 , ς 2 , 3 = (± 1 , 0 ) c, (0 , ± ) c r T e5 .. 8 = ς 1 , 3 , ς 3 , 1 , ς 1 , 1 , ς 3 , 3 = (± 1 , ± 1) c
(2.46)
Dengan kecepatan-kecepatan diskrit ini, persamaan 2.44 akan membaca: r I = ∑ wαψ (eα ) f αeg
di mana wα dapat diidentifikasikan sebagai 2π RT e
(2.47) r ξ2 2 RT
dan menghasilkan
bentuk fungsi distribusi kesetimbangan untuk setiap kecepatan: eq
fα
2.5
r r r r r ⎛ 3 e ⋅ u 9 (e ⋅ u )2 3 u = wα ρ ⎜⎜1 + 2 + − 2 c 2c 4 2c ⎝
⎞ ⎟ ⎟ ⎠
(2.48)
Kajian/Hasil Penelitian Terdahulu
Beberapa pendekatan telah dieksplorasi demi mensimulasi dinamika fluida dengan parangkat komputer. Permodelan berbasiskan fisika pertama kali diajukan oleh Wejchert dan Haumann pada tahun 1991 dan menghasilkan solusi analitik. Sayangnya, waktu komputasi dan keperluan memori yang besar masih menjadi kendala. Metode finite differences dalam 3D dikenalkan oleh Foster dan Metaxas pada tahun 1997, akan tetapi finite dfferences tidak stabil untuk langkah waktu yang besar dan membatasi kecepatan simulasi (Thurey, 2003). Pada tahun 1999, Jos Stam menunjukkan metoda yang stabil dengan menggunakan semi-Langrangian advection dan implicit Navier-Stokes solver. Metode ini mampu mensimulasikan aliran yang tidak stabil atau bergoncang dan dapat dieksekusi secara real-time pada sebuah grid resolusi rendah.
24 Aplikasi Cellular automata untuk dinamika fluida pertama kali dikemukakan dalam bentuk model LGCA HPP oleh Hardy, de Pazzis dan Pomeau pada tahun 1973. Model HPP ini menggunakan distribusi ”ubin persegi”. Model HPP gagal dalam mensimulasikan persamaan Navier-Stokes karena simetri ubin-ubin persegi yang hanya ada 4 tersebut tidak mencukupi sehingga memberikankan hasil yang tidak isotropis (tidak konsisten pada orientasi koordinat sumbu/poros). Kemudian, Frisch, Hasslacher dan Pomeau menghasilkan sebuah FHP lattice heksagonal dan menunjukkan bahwa suatu bentuk segi 6 cukup untuk menyelesaikan persamaan Navier-Stokes pada batasan makroskopis. Jika HPP dan FHP digunakan secara bersamaan dengan teknikteknik pemrograman seperti multi-spin coding dapat dengan efisien diprogram kembali untuk komputasi paralel pada banyak desktop PC. Masalah yang ada pada LGCA adalah kondisi binernya yang alamiah, yakni adanya usaha untuk mensimulasikan partikel secara individu dan akhirnya menghasilkan distribusi butiran hitam dan putih. LBM bila dibandingkan dengan metode-metode pemodelan fluida yang digunakan dalam industri perfilman memiliki beberapa kelebihan dan kekurangan (Thurey, 2007).
Gambar 2.6 Perbandingan Beberapa Metoda Simulasi
25 2.6
Rekayasa Piranti Lunak
Rekayasa Piranti Lunak menurut Fritz Bauer (Pressman, 2005) adalah penetapan dan pemakaian prinsip-prinsip rekayasa dalam rangka mendapatkan piranti lunak yang ekonomis yaitu terpecaya dan bekerja efisien pada mesin. Menurut Pressman (2005, p24), rekayasa piranti lunak mencakup 4 lapisan teknologi, yaitu: 1.
Fokus kualitas (a quality focus) Semua proses rekayasa harus berpusat pada kualitas. Pengaturan kualitas yang menyeluruh mendasari perkembangan piranti lunak yang lebih matang dan baik.
2.
Model Proses (software engineering process) Merupakan dasar dari rekayasa piranti lunak. Lapisan ini membentuk dasar untuk manajemen projek piranti lunak dan membangun suatu konteks metoda teknis yang digunakan, produk yang dihasilkan, milestone yang dibuat, pengawasan kualitas, dan perubahan supaya semuanya diatur secara benar.
3.
Metode-metode (software engineering methods) Bagian ini informasi bagaimana membangun suatu piranti lunak secara teknis. Lapisan ini mencakup analisis kebutuhan, rancangan, konstruksi program, pengujian, dan support.
4.
Alat-alat bantu (software engineering tools) Alat-alat bantu ini mendukung lapisan metode dan lapisan proses baik secara otomatis ataupun semi-otomatis.
26 Dalam rekayasa software dikenal istilah daur hidup piranti lunak (software life cycle) yaitu serangkaian kegiatan yang dilakukan selama masa rekayasa software. Model waterfall merupakan model yang paling umum pada rekayasa piranti lunak. Model waterfall terdiri dari tahap-tahap: 1.
Analysis Pada tahap ini, informasi kebutuhan terhadap piranti lunak dikumpulkan termasuk domain informasi, fungsi yang dibutuhkan, performa, dan antarmuka.
2.
Design Tahap ini meliputi empat bagian utama dari piranti lunak yaitu struktur data, arsitektur piranti lunak, representasi antar-muka, dan prosedur atau detail algoritma
3.
Construction / Coding Tahap ini adalah tahap menterjemahkan rancangan pada tahap sebelumnya menjadi bentuk yang dimengerti mesin.
4.
Testing Tahap ini terfokus pada logical piranti lunak, dan memastikan semua perintah telah diuji dan berjalan dengan semestinya. Tahap ini mencoba mencari semua kesalahan yang mungkin terjadi selama pengoperasian piranti lunak.
5.
Operation and Maintanence Tahap ini mengakomodasi operasi piranti lunak dan perubahan yang mungkin dilakukan karena kesalahan yang ditemukan.
27 2.7
Alat Bantu Perancangan
Alat bantu yang digunakan dalam perancangan program simulasi fluida akan dibahas pada bagian ini. 2.6.1
Diagram Alir (Flow Chart)
Diagram alir adalah sebuah skema yang merepresentasikan sebuah algoritma atau sebuah proses. Adapun simbol-simbol dari diagram alir yang digunakan dalam ilmu komputer : Simbol untuk mulai dan selesai Simbol untuk menentukan aliran data yang dilakukan Simbol untuk langkah proses
Simbol untuk merepresentasikan sebuah kondisi atau keputusan. Biasanya berisi pertanyaan ya/tidak atau test benar/salah
Gambar 2.7 Simbol-simbol Diagram Alir
2.6.2
Use Case Diagram
Use Case menunjukkan hubungan interaksi antara aktor dengan use case di dalam suatu sistem (Mathiassen, 2000, p343) yang bertujuan untuk menentukan bagaimana aktor berinteraksi dengan sebuah sistem. Aktor adalah orang atau sistem lain yang berhubungan dengan sistem. Tiga simbol yang mewakili komponen sistem seperti terlihat dibawah ini:
28
Gambar 2.8 Simbol-simbol Use Case Diagram
2.6.3
Class Diagram
Class Diagram menggambarkan struktur statis dari suatu sistem yaitu struktur class, atribut class, dan hubungan antar class. Dalam class diagram, atribut maupun operasi dari suatu class biasanya ditandai dengan + untuk akses public, - untuk akses private, dan # untuk akses protected. Berikut ini adalah simbol umum dalam class diagram:
Gambar 2.9 Simbol-simbol Class Diagram
2.6.4
Pseudocode
Pseudocode adalah suatu deskripsi algoritma pemrograman komputer yang ringkas dan informal yang menggunakan konvensi struktural dari beberapa bahasa pemrograman, tetapi ditujukan untuk dibaca orang manusia dan bukan mesin. Pseudocode umumnya tidak menghiraukan detil-detil penrograman yang tidak penting untuk mengerti
29 sebuah algoritma, seperti deklarasi variabel atau subroutine. Selain digunakan untuk menjelaskan sebuah algoritma, pseudocode juga digunakan untuk merencanakan struktur program secara kasar. Pseudocode dapat merupakan alternatif lain dalam perancangan perangkat lunak disamping alat-alat bantu berupa diagram. Tidak ada standarisasi dalam hal penulisan pseudocode.
2.8
OpenGL
OpenGL adalah spesifikasi standar untuk membangun aplikasi 2D dan 3D yang interaktif dan tidak dibatasi platform. Sejak dikenalkan pada tahun 1992. OpenGL menjadi antarmuka pemrograman aplikasi (API) untuk gambar 2D dan 3D yang paling banyak digunakan dalam industry dan digunakan dalam ribuan aplikasi yang berbeda pada platform komputer yang beragam. OpenGL mempercepat rekayasa aplikasi dengan menyediakan fungsi-fungsi beragam untuk rendering, texture mapping, efek visual, dan fungsi visualisasi lainnya. Operasi dasar OpenGL adalah menerima informasi primitif seperti titik, garis, atau polygon kemudian mengubahnya menjadi pixel untuk ditampilkan. OpenGL bekerja pada data gambar maupun data geometri.
Gambar 2.10 Alur kerja OpenGL