dam break simulation

23
LAPORAN PROYEK KOMPUTASI DINAMIKA FLUIDA SIMULASI DAM BREAK DUA DIMENSI MENGGUNAKAN 2D FINITE VOLUME METHOD Disusun untuk memenuhi tugas kuliah Komputasi Dinamika Fluida Arnasli Yahya NIM : 20114005 PROGRAM STUDI MAGISTER MATEMATIKA FAKULTAS MATEMATIKA DAN ILMU PENGETAHUAN ALAM INSTITUT TEKNOLOGI BANDUNG

Upload: arnasli-yahya

Post on 16-Dec-2015

79 views

Category:

Documents


1 download

DESCRIPTION

This Document explain how to make a simulations of Dam Break, with Partial Differential Equations (PDE).PDE is solved numerically by matlab.

TRANSCRIPT

LAPORAN PROYEK KOMPUTASI DINAMIKA FLUIDASIMULASI DAM BREAK DUA DIMENSIMENGGUNAKAN 2D FINITE VOLUME METHOD

Disusun untuk memenuhi tugas kuliah Komputasi Dinamika Fluida

Arnasli YahyaNIM : 20114005

PROGRAM STUDI MAGISTER MATEMATIKAFAKULTAS MATEMATIKA DAN ILMU PENGETAHUAN ALAMINSTITUT TEKNOLOGI BANDUNG2015I. BACK GROUND OF PROBLEM

Dewasa ini banyak sekali fenomena-fenomena alam yang berkaitan dengan fluida yang dapat dimodelkan menjadi shallow water equation yang kemudian diselesaikan secara numerik dengan memanfaatkan komputer. Misalkan fenomena standing wave, gelombang pasang, wave refraction pada gelombang tsunami, resonansi, dam break dan fenomena-fenomena fluida lainnya. Dam break adalah suatu fenomena dimana suatu fluida yang menempati bejana (dalam hal ini dapat berupa dam atau bendungan) yang dibebaskan secara tiba-tiba. Pada laporan ini disajikan simulasi fenomena suatu dam yang dibuka pada suatu area tertentu. Laporan ini membahas proses dan hasil simulasi fenomena dam break yang melibatkan shallow water equation, kemudian akan ditentukan solusi numeric dengan menggunakan metode 2 dimensional staggered finite volume.

Gambar 1. Dam break dengan celah pada tengah dinding bendungan

Dam / wallCelahFluida

II. MODEL MATEMATIKA Model matematika yang digunakan disini melibatkan system persamaan diferensial parsial yang dikenal dengan 2 dimensional shallow water equation yang mempunyai bentuk dasar bentuk dasar sebagai berikut : (1) (2) (3) Dengan , dimana menyatakan tinggi permukaan air yang diukur dari permukaan air tanpa gangguan, adalah kedalaman dasar yang diukur dari permukaan air tanpa gangguan, sehingga dapat dikatakan sebagai tebal air. menyatakan komponen mendatar kecepatan partikel air yang sejajar dengan sumbu- , adalah komponen mendatar kecepatan partikel air yang sejajar sumbu-, dan menyatakan percepatan gravitasi. Bentuk diatas adalah system persamaan full nonlinearSedangkan pada simulasi ini kita akan menggunakan versi half linear dari system persamaan diatas untuk dasar topografi yang rata (4) (5) (6) Selanjutnya pada laporan ini akan dibahas 3 kasus yang berbeda yaitu : pertama simulasi dam break dimana air dibebaskan secara tiba-tiba pada salah satu sisi penuh, kedua dam break basah dimana air dibebaskan secara tiba-tiba melalui area atau celah tertentu sehingga air mengalir ke area yang permukaan airnya lebih rendah, ketiga dam break seperti pada kasus kedua, namun demikian area yang akan dibanjiri air adalah area kering. Ketiga kasus ini mempunyai syarat batas dan syarat awal yang berbeda-beda.Kasus 1

yx200002000Gambar 2 . Permukaan air saat

Syarat awal pada kasus ini adalah : Sedangkan syarat batasnya adalah Dengan nilai Kasus 2 (Dam break basah)Gambar 3. Rancanan Dam

Dam / wallCelahAirAir020002000yx

Syarat awal pada kasus ini adalah : Sedangkan syarat batasnya adalah Karena terdapat Dam pada bagian , maka diberikan syarat batas tambahan : dengan , Gambar 4. Syarat-syarat batasXY2000200001000V =0V =0V =0V =0u =0u =0Arah VArah U7001300damdam

2000

Dengan nilai , Kasus 3 . Dam break keringGambar 5. Dam kering

Dam / wallCelahAirArea kering

Syarat-syarat batas pada kasus 3 ini sama seperti pada kasus 2. Pada area kering, nilai . Namun apabila nilai ini diterapkan akan mengakibatkan nilai currant number menjadi tidak terdefinisi. Solusi dari permasalahan ini akan dibahas pada bagian III.

III. SKEMA NUMERIK Skema numeric yang digunakan untuk komputasi adalah 2 Dimensional staggered finite volume yang dipaparkan sebagai berikut :1. 2 Dimensional Staggered finite volume Pandang kembali system persamaan Pandang domain komputasi dengan syarat batas Neumann homogen pada sepanjang keempat sisi domain. Komputasi 2 dimensional shallow water equation (2D SWE) menggunakan 2D staggered grid biasa dikenal dengan Arakawa-C-grid dengan ilustrasi sebagai berikut :

Gambar 6. Akarawa-C grid dengan Cell massa, momentum-x dan momentum-y

massMomentum-xMomentum-y

Sehingga persamaan beda hingga pada cell massa di sekitar adalah sebagai berikut : , , (7)Aproksimasi cell momentum disekitar adalah sebagai berikut : (8) (9)2. Syarat Kestabilan Untuk menentukan syarat kestabilan digunakan metode von Neumann.Perhatikan kembali persamaan 7,8 dan 9Dengan mensubtitusikan , dan pada persamaan 7,8 dan 9 diperoleh :.. (10) (11) .(12)Dengan melakukan pembagian terhadap persamaan 10, 11, 12 diperoleh : (13) (14) (15)Persamaan 13, 14,15 dapat disederhanakan menjadi

Sistem persamaan dalam bentuk persamaan matriks adalah sebagai berikut : Sehingga diperoleh

Sehingga , dengan A adalah matriks amplifikasi

Sistem akan stabil apabila |nilai eigen A| , dengan perhitungan secara seksama diperoleh syarat kestabilan . Pada kasus dam break mengharuskan kita membuat . Hal ini akan membuat nilai menjadi tidak terdefinisi, sehingga khusus untuk dam break kering kita cukup membuat nilai sangat dekat dengan nol.

IV. HASIL KOMPUTASI A. Dam break basah dengan sisi terbuka totalHasil dari simulasi ini disajikan sebagai berikut :Gambar 8. Dam break terbuka total

Pada kasus ini, fenomena yang disimulasikan adalah suatu bendungan dengan lebar 2000 meter, tinggi air pada bendungan mencapai 20 meter, dengan kedalaman pada bagian hilir adalah 10 meter. Celah dibuat sepanjang 600 meter, pada bibir bendungan seperti yang disajikan pada gambar Dengan 2 dimensional staggered finite volume, waktu pengamatan 3 detik, dengan pemilihan partisi meter. Percepatan gravitasi . Program selengkapnya disajikan pada lampiran.1

B. Dam break basah dengan celah terbuka Pada kasus ini, fenomena yang disimulasikan adalah suatu bendungan dengan lebar 2000 meter, tinggi air pada bendungan mencapai 20 meter, dengan kedalaman pada bagian hilir adalah 10 meter. Celah bendungan dibuat sepanjang 600 meter seperti didiskripsikan pada gambar 3. Dengan 2 dimensional staggered finite volume, waktu pengamatan 3 detik, dengan pemilihan partisi meter. Percepatan gravitasi . Program selengkapnya disajikan pada lampiran.2.Gambar 9. Hasil simulasi dam break basah pada saat t diakhir pengamatan.

C. Dam break kering Pada kasus ini, fenomena yang disimulasikan adalah suatu bendungan dengan lebar 2000 meter, tinggi air pada bendungan mencapai 20 meter, dengan kedalaman pada bagian hilir adalah 0 meter. Celah bendungan dibuat sepanjang 600 meter seperti didiskripsikan pada gambar 3.Dengan 2 dimensional staggered finite volume, waktu pengamatan 3 detik, dengan pemilihan partisi meter. Percepatan gravitasi . Program selengkapnya disajikan pada lampiran.3. Hal khusus dalam kasus ini adalah kita membuat nilai pada saat komputasi tidak benar-benar nol, dengan alasan seperti yang dijelaskan pada bagian kestabilan skema. Dengan demikian dipilih nilai pada saat komputasiGambar 10. Hasil simulasi dam break kering pada saat t diakhir pengamatan.

Lampiran.1

clear allclose allclc %InisiasiX=2000;Y=2000;T=23;%3;g=9;dx=50;dy=dx;Nx=floor(X/dx)+1;Ny=floor(Y/dy)+1;d=10;C=sqrt(2*d*g);dt=0.004*min(dx,dy)/C;Nt=floor(T/dt)+1;C1=d*dt/dx;C2=g*dt/dx;%Syarat Awalfor x=1:Nx+1 for y=1:20 E(x,y,1)=20; end for y=21:Ny+1 E(x,y,1)=0; endendfor t=1:Nt for y=1:Ny+1 u(1,y,t)=0; u(Nx+1,y,t)=0; end for x=1:Nx+1 v(x,1,t)=0; v(x,Ny+1,t)=0; end end%Loop Utamafor t=1:Nt for x=1:Nx+1 for y=1:Ny+1 if u(x,y,t)>0 h(x,y,t)=E(x-1,y,t)+d; else h(x,y,t)=E(x,y,t)+d; end end end for x=1:Nx+1 for y=1:Ny+1 if v(x,y,t)>0 h(x,y,t)=E(x,y-1,t)+d; else h(x,y,t)=E(x,y,t)+d; end end end for y=1:Ny for x=2:Nx-1 u(x,y,t+1)=-(g*dt/dx)*E(x,y,t)+(g*dt/dx)*E(x-1,y,t)+u(x,y,t); end end for y=2:Ny-1 for x=1:Nx v(x,y,t+1)=-(g*dt/dx)*E(x,y,t)+(g*dt/dx)*E(x,y-1,t)+v(x,y,t); end end for x=1:Nx+1 for y=1:Ny+1 qu(x,y,t+1)=u(x,y,t+1)*h(x,y,t); qv(x,y,t+1)=v(x,y,t+1)*h(x,y,t); end end for x=1:Nx for y=1:Ny E(x,y,t+1)=-(C1*qu(x+1,y,t+1)-C1*qu(x,y,t+1))-(C1*qv(x,y+1,t+1)-C1*qv(x,y,t+1))+E(x,y,t); end endend xplot=0:dx:X;yplot=0:dy:Y;zdir=[0 0 1];figure(1)for t=1:Nt-1 surf(xplot,yplot,E(1:Nx,1:Ny,t+1)) view(152,45) axis([0 X 0 Y 0 30]) pause(0.01)end

Lampiran 2.

clear allclose allclc %InisiasiX=2000;Y=2000;T=7;g=10;dx=50;dy=dx;Nx=floor(X/dx)+1;Ny=floor(Y/dy)+1;d=10;C=sqrt(2*d*g);dt=0.004*min(dx,dy)/C;Nt=floor(T/dt)+1;C1=d*dt/dx;C2=g*dt/dx;%Syarat Awalfor x=1:Nx+1 for y=1:20 E(x,y,1)=20; end for y=21:Ny+1 E(x,y,1)=0; endendfor t=1:Nt for y=1:Ny+1 v(1,y,t)=0; v(Nx+1,y,t)=0; end for x=1:Nx+1 u(x,1,t)=0; u(x,Ny+1,t)=0; end end%Loop Utamafor t=1:Nt for x=1:Nx+1 for y=1:Ny+1 if u(x,y,t)>0 h(x,y,t)=E(x-1,y,t)+d; else h(x,y,t)=E(x,y,t)+d; end end end for x=1:Nx+1 for y=1:Ny+1 if v(x,y,t)>0 h(x,y,t)=E(x,y-1,t)+d; else h(x,y,t)=E(x,y,t)+d; end end end for y=1:Ny for x=2:Nx-1 u(x,y,t+1)=-(g*dt/dx)*E(x,y,t)+(g*dt/dx)*E(x-1,y,t)+u(x,y,t); end end for y=2:19 for x=1:Nx v(x,y,t+1)=-(g*dt/dx)*E(x,y,t)+(g*dt/dx)*E(x,y-1,t)+v(x,y,t); end end for y=20:21 for x=1:14 v(x,y,t+1)=0; end for x=15:26 v(x,y,t+1)=-(g*dt/dx)*E(x,y,t)+(g*dt/dx)*E(x,y-1,t)+v(x,y,t); end for x=27:Nx v(x,y,t+1)=0; end end for y=22:Ny-1 for x=1:Nx v(x,y,t+1)=-(g*dt/dx)*E(x,y,t)+(g*dt/dx)*E(x,y-1,t)+v(x,y,t); end end for x=1:Nx+1 for y=1:Ny+1 qu(x,y,t+1)=u(x,y,t+1)*h(x,y,t); qv(x,y,t+1)=v(x,y,t+1)*h(x,y,t); end end for x=1:Nx for y=1:Ny E(x,y,t+1)=-(C1*qu(x+1,y,t+1)-C1*qu(x,y,t+1))-(C1*qv(x,y+1,t+1)-C1*qv(x,y,t+1))+E(x,y,t); end endendxplot=0:dx:X;yplot=0:dy:Y;zdir=[0 0 1];figure(1)for t=1:Nt-1 surf(xplot,yplot,E(1:Nx,1:Ny,t+1)) view(152,45) axis([0 X 0 Y 0 30]) pause(0.01)end

Lampiran 3.

clear allclose allclc %InisiasiX=2000;Y=2000;T=200;g=9;dx=50;dy=dx;Nx=floor(X/dx)+1;Ny=floor(Y/dy)+1;d=0.025;C=sqrt(2*d*g);dt=0.002*min(dx,dy)/C;Nt=floor(T/dt)+1;C1=d*dt/dx;C2=g*dt/dx;%Syarat Awalfor x=1:Nx+1 for y=1:20 E(x,y,1)=20; end for y=21:Ny+1 E(x,y,1)=0; endendfor t=1:Nt for y=1:Ny+1 v(1,y,t)=0; v(Nx+1,y,t)=0; end for x=1:Nx+1 u(x,1,t)=0; u(x,Ny+1,t)=0; end end%Loop Utamafor t=1:Nt for x=1:Nx+1 %plus 1 for y=1:Ny+1 %plus 1 if u(x,y,t)>0 h(x,y,t)=E(x-1,y,t)+d; else h(x,y,t)=E(x,y,t)+d; end end end for x=1:Nx+1 %plus 1 for y=1:Ny+1 %plus 1 if v(x,y,t)>0 h(x,y,t)=E(x,y-1,t)+d; else h(x,y,t)=E(x,y,t)+d; end end end for y=1:Ny for x=2:Nx-1 u(x,y,t+1)=-(g*dt/dx)*E(x,y,t)+(g*dt/dx)*E(x-1,y,t)+u(x,y,t); end end for y=2:19 for x=1:Nx v(x,y,t+1)=-(g*dt/dx)*E(x,y,t)+(g*dt/dx)*E(x,y-1,t)+v(x,y,t); end end for y=20:21 for x=1:15 v(x,y,t+1)=0; end for x=16:25 v(x,y,t+1)=-(g*dt/dx)*E(x,y,t)+(g*dt/dx)*E(x,y-1,t)+v(x,y,t); end for x=26:Nx v(x,y,t+1)=0; end end for y=22:Ny-1 for x=1:Nx v(x,y,t+1)=-(g*dt/dx)*E(x,y,t)+(g*dt/dx)*E(x,y-1,t)+v(x,y,t); end end for x=1:Nx+1 for y=1:Ny+1 qu(x,y,t+1)=u(x,y,t+1)*h(x,y,t); qv(x,y,t+1)=v(x,y,t+1)*h(x,y,t); end end for x=1:Nx for y=1:Ny E(x,y,t+1)=-(C1*qu(x+1,y,t+1)-C1*qu(x,y,t+1))-(C1*qv(x,y+1,t+1)-C1*qv(x,y,t+1))+E(x,y,t); end endendxplot=0:dx:X;yplot=0:dy:Y;zdir=[0 0 1];figure(1)for t=1:Nt-1 surf(xplot,yplot,E(1:Nx,1:Ny,t+1)) view(130,45) axis([0 X 0 Y 0 30]) pause(0.01)end