simulasi numerik konveksi alami pada single fin …/simulasi... · 2.2.2.1 persamaan atur konveksi...
TRANSCRIPT
SIMULASI NUMERIK KONVEKSI ALAMI PADA SINGLE
FIN DAN MULTIPLE FINS DALAM KOTAK 2D DENGAN
METODE BEDA HINGGA
SKRIPSI
Diajukan sebagai salah satu syarat
untuk memperoleh gelar
Sarjana Teknik
Oleh :
FERRY ENDHARTA
NIM. I1407514
JURUSAN TEKNIK MESIN
FAKULTAS TEKNIK UNIVERSITAS SEBELAS MARET
SURAKARTA
2010
ii
SIMULASI NUMERIK KONVEKSI ALAMI PADA SINGLE
FIN DAN MULTIPLE FINS DALAM KOTAK 2D DENGAN
METODE BEDA HINGGA
Di susun oleh :
Ferry Endharta
NIM. I1407514
Dosen Pembimbing I Dosen Pembimbing II
Eko Prasetya Budiana, S.T.M.T. Budi Kristiawan, S.T.M.T.
NIP. 197109261999031002 NIP. 197104251999031001
Telah dipertahankan di hadapan dosen tim penguji pada hari Selasa, tanggal 13
Juli 2010.
1. Syamsul Hadi, S.T.M.T.
NIP. 197106151998021002 …………………………..
2. Purwadi Joko Widodo, S.T.M.Kom
NIP. 197301261997021001 …………………………..
3. Rendy Adhi Rachmanto, S.T.M.T.
NIP. 197101192000121006 …………………………..
Mengetahui,
Ketua Jurusan Teknik Mesin Koordinator Tugas Akhir
Dody Ariawan, S.T.M.T. Wahyu Purwo Raharjo, S.T.M.T.
NIP. 197308041999031003 NIP. 197202292000121001
iii
MOTTO DAN PERSEMBAHAN
Motto
Capailah cita–citamu dengan usaha maksimal niscaya akan berhasil.
Percayalah Allah akan selalu ada untuk kita, sesulit apapun masalah
yang kita hadapi pasti ada jaln untuk kita
Berbuatlah yang terbaik untuk setiap detiknya
Dan tak perlu kau pikirkan esok akan jadi apa
Bila keadaan sudah berada dititik buruk yang paling buruk, rendah yang
paling rendah dan sakit yang paling sakit, maka tidak lain yang akan
terjadi adalah menjadi baik.
Persembahan
karya ini kupersembahkan untuk :
Bapak, Ibu dan adikku tercinta
iv
ABSTRAK
FERRY ENDHARTA, Simulasi Numerik Konveksi Alami Pada Single Fin
Dan Multiple Fins Dalam Kotak 2D Dengan Metode Beda Hingga
Simulasi numerik untuk konveksi alami dalam kotak 2D pada single fin
dan multiple fins dilakukan untuk mengetahui fenomena yang terjadi pada pola
aliran dan distribusi temperatur di sekitar fin pada kotak 2D. Tulisan ini
menguraikan metode untuk penyelesaiaan konveksi alami steady dalam kotak 2D.
Metode ini didasarkan pada skema Runge – Kutta untuk diskritisasi waktu dan
skema kompak beda hingga orde-4 untuk diskritisasi ruang. Kesulitan pada
penyelesaian tekanan diselesaikan dengan metode kompresibilitas tiruan. Metode
beda hingga dituliskan dengan bahasa Fortran dan divisualisasikan dengan
perangkat lunak Matlab. Hasil dari visualisasi menunjukkan bahwa separasi
muncul karena adanya pusaran kecepatan disekitar sirip. Semakin besar angka
Rayleigh dengan domain dan panjang sirip yang sama, kerapatan pepindahan
panas disekitar dinding akan meningkat. Hasil menunjukkan pada angka Rayleigh
106
dan 107 telah terjadi separasi disekitar sirip.
Kata kunci : konveksi alami, skema kompak, kompresibilitas tiruan, separasi.
v
ABSTRACT
FERRY ENDHARTA, Numerical Simulation of natural convection with single
fin and multiple fins in 2D cavity by finite different method
Numerical simulation for natural convection in 2D cavity with single fin
and multiple fins done to know the phenomenon that happened at stream function
and distribution of temperature around fin in 2D cavity. This paper present
numerical method for solving steady natural convection in 2D cavity. The method
is based on Runge-Kutta schemes for temporal discretization and fourh-order
compact finite difference schemes for spatial discretization. Difficulty related to
the pressure can be overcome by using artificial compressibility method. Finite
difference written by Fortran language and visualized by Matlab. Result shown
that separation appear caused by vortex in the velocity vector around fin.
Increasing of Rayleigh number with same fin length and domain, density of heat
transfer around wall will be increase. Result show for Rayleigh number 106 and
107 have happened separation around fin.
Key words : natural convection, compact schemes, artificial compressibility,
separation
vi
KATA PENGANTAR
Puji syukur Penulis panjatkan kepada Allah SWT, yang telah memberikan
rahmat, hidayah serta kekuatan kepada Penulis, sehingga Penulis dapat
melaksanakan penelitian dan menyelesaikan laporan Tugas Akhir dengan judul
“Simulasi Numerik Konveksi Alami Pada Single Fin Dan Multiple Fins Dalam
Kotak 2D Dengan Metode Beda Hingga”, sebagai salah satu syarat untuk
memperoleh gelar Sarjana Teknik di Jurusan Teknik Mesin Fakultas Teknik
Universitas Sebelas Maret Surakarta.
Dalam kesempatan ini, Penulis ingin menyampaikan ucapan terima kasih
yang sebesar – besarnya kepada semua pihak yang telah memberikan bantuan,
doa, dukungan dan semangat, baik moral maupun spiritual kepada :
1. Bapak Dody Ariawan, ST., MT., selaku Ketua Jurusan Teknik Mesin
UNS.
2. Bapak Eko Prasetya Budiana, ST.,MT., selaku Pembimbing I tugas akhir,
atas bimbingan, nasehat, kesabaran, dan ilmu pengetahuan yang
diajarkannya.
3. Bapak Budi Kristiawan, ST.,MT., selaku Pembimbing II tugas akhir , atas
bimbingan , nasehat, kesabaran dan ilmu pengetahuan yang diajarkannya.
4. Bapak Purwadi Joko Widodo, S.T.M.Kom, selaku Pembimbing
Akademik.
5. Bapak – bapak dosen dan staf karyawan di lingkungan Teknik Mesin
UNS, atas didikan, nasehat, ilmu yang diajarkan dan kerjasamanya.
6. Teman – teman Teknik Mesin transfer angkatan 2007 Teman – teman
Teknik Mesin UNS
7. Teman – teman kos Oblong.
8. Dan semua pihak yang telah membantu Penulis dalam menyelesaikan
skripsi ini.
Penulis menyadari bahwa skripsi ini masih banyak terdapat kekurangan,
untuk itu masukan dan saran yang membangun akan penulis terima dengan ikhlas
vii
dan penulis mengucapkan terima kasih. Penulis berharap semoga skripsi ini dapat
memberikan manfaat bagi penulis khususnya dan bagi pembaca pada umumnya.
Surakarta, juli 2010
Penulis
viii
DAFTAR ISI
HALAMAN JUDUL ........................................................................................ i
HALAMAN PENGESAHAN ……………………………………………. .... ii
MOTTO DAN PERSEMBAHAN……………………………………….. ..... iii
ABSTRAK…………………………………………………………………. .. iv
ABSTRACT………………………………………………………………… ... v
KATA PENGANTAR…………………………………………………… ..... vi
DAFTAR ISI………………………………………………………………. ... viii
DAFTAR GAMBAR……………………………………………………… ... x
DAFTAR TABEL ............................................................................................ xii
DAFTAR NOTASI.................................………………………………….. ... xiii
DAFTAR LAMPIRAN……. ........................................................................... xv
BAB I PENDAHULUAN ............................................................................ 1
1.1 Latar Belakang Masalah .............................................................. 1
1.2 Perumusan Masalah .................................................................... 2
1.3 Batasan Masalah.......................................................................... 2
1.4 Tujuan Penelitian ........................................................................ 2
1.5 Manfaat Penelitian ...................................................................... 2
1.6 Sistematika Penulisan ................................................................. 3
BAB II LANDASAN TEORI ....................................................................... 4
2.1 Tinjauan Pustaka ......................................................................... 4
2.2 Dasar Teori…………………………………………………. ..... 6
2.2.1 Sirip…………………… .................................................... 6
2.2.2 Konveksi Alami………………………………………… . 7
2.2.2.1 Persamaan Atur Konveksi Alami ........................... 8
2.2.2.2 Diskritisasi Waktu .................................................. 8
2.2.2.3 Diskritisasi Ruang .................................................. 9
2.2.2.4 Metode Kompresibilitas Tiruan ............................. 13
BAB III PELAKSANAAN PENELITIAN ................................................ 15
ix
3.1 Alat dan Bahan ....................................................................... 15
3.2 Garis Besar Penelitian ............................................................ 15
3.3 Diskritisasi Persamaan Atur ................................................... 17
3.3.1 Diskritisasi Persamaan Momentum ............................... 17
3.3.2 Diskritisasi Persamaan Energi ....................................... 18
3.3.3 Diskritisasi Metode Kompresibilitas Tiruan ................. 19
3.4 Diskritisasi Syarat Batas ......................................................... 19
3.5 Algoritma Pemrograman ........................................................ 24
BAB IV HASIL DAN PEMBAHASAN
4.1 Simulasi Konveksi Alami Sirip Tunggal dan Multiple Sirip . 24
4.2 Validasi Program .................................................................... 32
BAB V PENUTUP ..................................................................................... 37
5.1 Kesimpulan ............................................................................................ 37
5.2 Saran ...................................................................................................... 37
DAFTAR PUSTAKA .................................................................................. 38
LAMPIRAN ................................................................................................ 39
x
DAFTAR GAMBAR
Gambar 2.1 stream function dan isotherm pada Ra = 106 ............................ 4
Gambar 2.2 separasi di sekitar sirip ............................................................. 5
Gambar 2.3 Beberapa contoh jenis extended surface: (a) sirip
longitudinal (memanjang) dengan profil segiempat
(b)pipa silindris dengan sirip berprofil segiempat (c)
sirip longitudinal dengan profil trapezioda (d) sirip
longitudinal dengan profil parabola (e) pipa silindris
dengan sirip radial berprofil segiempat (f) pipa silindris
dengan sirip radial berprofil trapezoida (g)cylindrical
spine (h)truncated conical spine (i) truncated parabolic
spine ......................................................................................... 6
Gambar 2.4 Galat dispersi untuk pendekatan numerik dari turunan
Pertama ..................................................................................... 10
Gambar 2.5 Galat disipasi untuk pendekatan numerik dari turunan
kedua ........................................................................................ 12
Gambar 3.1 Domain dan syarat batas ........................................................... 18
Gambar 4.1 Isothermal pada ra = 106
pada sirip tunggal ............................. 24
Gambar 4.2 Isothermal pada Ra = 106
pada 2 sirip ...................................... 24
Gambar 4.3 Isothermal pada Ra = 106
pada 3 sirip ...................................... 25
Gambar 4.4 Isothermal pada Ra = 106
pada 3 sirip ...................................... 25
Gambar 4.5 Isothermal pada Ra = 107
pada sirip tunggal ............................ 25
Gambar 4.6 Isothermal pada Ra = 107
pada 2 sirip ...................................... 26
Gambar 4.7 Isothermal pada Ra = 107
pada 3 sirip ...................................... 26
Gambar 4.8 Isothermal pada Ra = 107
pada 4 sirip ...................................... 26
Gambar 4.9 Stream function pada Ra = 106 pada sirip tunggal ................... 27
Gambar 4.10 Stream function pada Ra = 106
pada 2 sirip.............................. 28
Gambar 4.11 Stream function pada Ra = 106
pada 3 sirip.............................. 28
Gambar 4.12 Stream function pada Ra = 106 pada 4 sirip ............................ 28
Gambar 4.13 Stream function pada Ra = 107
pada sirip tunggal................... 29
Gambar 4.14 Stream function pada Ra = 107 pada 1 sirip ............................. 29
xi
Gambar 4.15 Stream function pada Ra = 107 pada 2 sirip ............................ 29
Gambar 4.16 Stream function pada Ra = 107 pada 4 sirip ............................. 30
Gambar 4.17 Vektor kecepatan pada Ra = 106
pada 1 sirip ........................... 30
Gambar 4.18 Kurva konvergensi untuk Ra=106 sirip tunggal ...................... 31
Gambar 4.19. Kurva konvergensi untuk Ra=107 sirip tunggal ........................ 31
Gambar 4.20 Domain dan Syarat Batas penelitian Pranowo dan Tri Iswanto 32
Gambar 4.21 Distribusi temperatur (a) dan stream function (b) yang
dibuat penulis pada Ra = 106 .................................................... 33
Gambar 4.22 Distribusi temperatur (a) dan stream function (b) yang
dibuat penulis pada Ra = 107 .................................................... 33
Gambar 4.23 Distribusi temperatur (a) dan stream function (b) yang
dibuat Pranowo dan Tri Iswanto pada Ra = 106 ....................... 34
Gambar 4.24 Distribusi temperatur (a) dan stream function (b) yang
dibuat Pranowo dan Tri Iswanto pada Ra = 107 ....................... 34
Gambar 4.25 Separasi di sekitar sirip yang dibuat penulis ............................ 36
Gambar 4.26 Separasi di sekitar sirip oleh F. Xu, J.C. Patterson
dan C.Lei (2007) ...................................................................... 36
xii
DAFTAR TABEL
Tabel 2.1 Koefisien Runge-Kutta orde-4 dari Carpenter dan Kennedy ......... 9
Tabel 2.2 Perbandingan skema beda hingga dan skema kompak
turunan pertama .............................................................................. 10
Tabel 2.3 Perbandingan skema beda hingga dan skema kompak
turunan kedua ................................................................................. 12
Tabel 4.1 Hasil Perhitungan dan Perbandingan untuk Ra=106 ....................... 35
Tabel 4.2 Hasil Perhitungan dan Perbandingan untuk Ra=107 ....................... 35
xiii
DAFTAR NOTASI
a : koefisien skema kompak
aM
: koefisien skema Runge-Kutta
b : koefisien skema kompak
bM
: koefisien skema Runge-Kutta
c : konstanta persamaan konveksi 1-D
g : percepatan gravitasi (m/s2)
H : tinggi kotak
HM
: variabel untuk skema Runge-Kutta
i,j : indek nodal
k : numerical wave number
Lr : variabel referensi untuk panjang kotak
nx : jumlah index arah x
ny : jumlah indek arah y
Nu : bilangan Nusselt
p : tekanan
u : kecepatan arah x
v : kecepatan arah y
Vr : variabel referensi untuk kecepatan
x,y : koordinat
Pr : bilangan Prandtl
Ra : bilangan Rayleigh
t : variabel waktu
tr : variabel reverensi untuk waktu
Huruf Yunani
: koefisien skema kompak
: koefisien ekspansi volumetri
: operator diferensial
: operator diferensial parsial
xiv
: konstanta metode kompresibilitas tiruan
: variabel generik
’ : variabel turunan pertama
” : variabel turunan kedua
: densitas
: variabel temperatur
: vortisitas
: stream function
: jumlah
xv
DAFTAR LAMPIRAN
Lampiran 1. Non-Dimensional Persamaan Atur .............................................. 39
Lampiran 2. Skema kompak beda-hingga ........................................................ 42
Lampiran 3. Kurva Konvergensi ...................................................................... 44
Lampiran 4. Numerical Wavenumber .............................................................. 47
Lampiran 5. Program Konveksi Alami Pada Sirip Tunggal ............................ 49
Lampiran 6. Program Konveksi Alami Pada 2 Sirip........................................ 62
Lampiran 7. Program Konveksi Alami Pada 3 Sirip........................................ 79
Lampiran 8. Program Konveksi Alami Pada 4 Sirip........................................ 98
Lampiran 9. Program Tambahan Untuk Sirip Tunggal ................................... 120
Lampiran 10. Program Tambahan Untuk 2 Sirip ............................................ 127
Lampiran 11. Program Tambahan Untuk 3 Sirip ............................................ 136
Lampiran 12. Program Tambahan Untuk 4 Sirip ............................................ 146
Lampiran 13. Kode Program MATLAB ......................................................... 157
1
BAB I
PENDAHULUAN
1.1 Latar Belakang Masalah
Dalam kehidupan sehari – hari sering sekali kita jumpai aplikasi mengenai
perpindahan panas,salah satunya adalah perpindahan panas secara konveksi.
Perpindahan panas secara konveksi berdasarkan jenis penyebab aliran fluida yang
terjadi dikategorikan menjadi dua kategori, yaitu konveksi paksa dan konveksi
alami.
Konveksi paksa (forced convection) adalah konveksi dimana aliran fluida
yang terjadi disebabkan adanya alat – alat eksternal,seperti fan,pompa,aliran udara
atmosfer (angin). Sedangkan konveksi alami (natural convection) adalah konveksi
yang terjadi karena fluida yang berubah densitasnya (kerapatannya) disebabkan
proses pemanasan dan fluida ini bergerak naik karena adanya gaya apung
(bouyancy force).
Untuk meningkatkan perpindahan panas antara permukaan utama dan fluida di
sekitarnya biasanya kita menggunakan sirip (fin). Sirip biasa digunakan dalam
berbagai macam aplikasi,misalnya pada sistem pendingin ruangan,peralatan
elektronik,tubin gas dan sebagainya,dengan udara sebagai media perpindahan
panasnya.
Penelitian mengenai fenomena perpindahan panas konveksi alami dengan
menggunakan sirip tunggal maupun multiple sirip telah banyak dilakukan baik
secara eksperimental maupun secara numerik. Penelitian secara eksperimen untuk
mengetahui fenomena yang terjadi pada proses perpindahan panas konveksi alami
dengan menggunakan sirip tunggal maupun multiple sirip membutuhkan biaya
yang cukup mahal dan proses yang cukup rumit.
Oleh karena itu, di zaman komputerisasi ini percobaan-percobaan dengan
program komputer atau simulasi sangat diperlukan, hal ini bertujuan untuk
mendukung penelitian secara eksperimen, menghemat waktu dan biaya serta
keakuratannya. Dan dikembangkanlah penelitian secara numerik yang
membutuhkan biaya yang jauh lebih murah.
2
1.2 Perumusan Masalah
Perumusan masalah dalam penelitian ini adalah bagaimana mensimulasikan
secara numerik konveksi alami pada sirip tunggal dan multiple sirip dalam kotak
2D dengan menggunakan metode beda hingga orde-4.
1.3 Batasan Masalah
Dalam penelitian ini masalah dibatasi sebagai berikut :
a. Masalah pada penelitian ini dibatasi pada persoalan konveksi alami pada sirip
tunggal dan multiple sirip dalam kotak 2D dengan menyelesaikannya
menggunakan metode beda hingga orde-4 untuk memperoleh distribusi
temperatur dan pola aliran (stream function).
b. Aliran fluida diasumsikan sebagai aliran fluida tak mampat (incompressible
flow).
c. Penelitian dibatasi pada ruang 2 dimensi.
1.4 Tujuan Penelitian
Adapun tujuan dari penelitian ini adalah untuk mengetahui fenomena yang
terjadi pada aliran dan perpindahan panas konveksi alami pada sirip tunggal dan
multiple sirip dalam kotak 2D,meliputi profil aliran fluida dan distribusi
temperatur.
1.5 Manfaat Penelitian
Manfaat dari penelitian ini :
a. Untuk mengembangkan ilmu pengetahuan, terutama dalam bidang komputasi
numerik dan perpindahan panas.
b. Untuk mempelajari fenomena yang terjadi pada konveksi alami dengan
menggunakan sirip tunggal maupun multiple sirip di sekitar kotak 2D.
3
1.6 Sistematika Penulisan
Sistematika penulisan yang digunakan adalah :
BAB I : PENDAHULUAN
Berisi latar belakang masalah, batasan dan perumusan masalah,
tujuan dan manfaat penelitian serta sistematika penulisan.
BAB II : LANDASAN TEORI
Berisi tentang tinjauan pustaka, dasar teori perpindahan panas
konveksi dan penjelasan mengenai metode beda hingga orde 4.
BAB III : PELAKSANAAN PENELITIAN
Berisi tentang alat dan bahan yang digunakan dalam penelitian,
cara penelitian, diskritisasi persamaan atur.
BAB IV : HASIL DAN PEMBAHASAN
Berisi hasil penelitian (simulasi) dan pembahasannya.
BAB V : PENUTUP
Berisi kesimpulan penelitian dan saran – saran untuk penelitian
selanjutnya.
DAFTAR PUSTAKA
LAMPIRAN
4
BAB II
LANDASAN TEORI
2.1 Tinjauan Pustaka
N. Kasayapanand (2008) menyelidiki efek medan listrik konveksi alami pada
sirip tunggal dan multiple sirip dalam sebuah kotak bujur sangkar dengan
pemodelan numerik,dimana dipengaruhi oleh medan listrik, aliran dan
temperaturnya. Parameter yang digunakan adalah tegangan, Rayleigh number,
ukuran kotak, penyusunan elektroda, jumlah sirip, dan panjang sirip. Dihasilkan
bahwa dengan angka Rayleigh yang sama maka koefisien perpindahan panas akan
bertambah besar dengan menambah jumlah sirip dan panjang sirip.
Gambar 2.1. stream function dan isotherm pada Ra = 106
F. Xu, J.C. Patterson dan C. Lei (2007) mempelajari tentang konveksi alami
pada sebuah kotak yang dipanaskan pada dinding samping dengan menggunakan
tiga sirip yang diselesaikan secara numerik. Berkaitan dengan adanya sirip, maka
terjadi separasi (pemisahan) aliran panas di sekitar sirip tersebut.
5
Gambar2. 2. separasi di sekitar sirip
Wilson dan Demuren(1998) menggunakan skema kompak beda hingga untuk
diskritasi ruang dan skema Runge-Kutta untuk diskritasi waktu pada simulasi
aliran fluida tak mampat. Pada penelitian ini skema kompak beda hingga
digunakan untuk diskritisasi turunan ruang dan skema Runge-Kutta orde-empat
untuk diskritasi turunan waktu.
Le Querre (1990) menggunakan algoritma pseudo – spectral Chebsyev untuk
meneliti konveksi alami pada kotak 2D dengan dinding bawah di panasi dan
dinding atas adiabatic. Dengan metode ini dapat menghilangkan osilasi numeric
dan mencapai hasil yang akurat hingga nilai Ra 108.
Pranowo dan Priyo tri Iswanto (1999) menyelesaikan persamaan Navier –
Stoke 2 dimensi dengan menggunakan primitive variable pada non staggered grid
dengan diskritisasi beda hingga. Hasil simulasi dengan metode ini menunjukkan
hasil yang akurat untuk Ra = 106 dan Ra = 10
7.
Aris Sulistyono (2006) melakukan penelitian untuk mengetahui fenomena
yang terjadi pada konveksi alami kotak 2D dengan berbagai variasi kemiringan.
6
2.2 Dasar Teori
2.2.1 Sirip
Sirip digunakan dalam banyak alat penukar kalor untuk meningkatkan luasan
perpindahan panas. Aplikasi sirip banyak dijumpai dalam sistem pendingin
ruangan,peralatan elektronik,turbin gas dan sebagainya, dengan udara merupakan
media perpindahan panasnya. Dalam alat penukar panas sirip terbagi dari berbagai
macam tipe, mulai dari bentuk yang sederhana, seperti sirip segiempat
(rectangular), silindris, annular, tirus (tapered) atau pin, sampai kombinasi dari
berbagai geometri yang berbeda telah digunakan. Tipe sirip yang digunakan
tergantung dari proses permesinan dan ruang yang tersedia dalam peralatan
pembangkit panas yang terlibat dalam proses pendinginan.
Dalam desain dan konstruksi dari berbagai macam peralatan perpindahan
panas, bentuk-bentuk sederhana seperti; silinder, batang dan plat biasa
diterapkan pada aliran panas antara sumber panas dan penyerap panas (heat
source and heat sink). Permukaan-permukaan penyerap panas maupun
pembuang panas masing-masing dikenal sebagai permukaan utama (prime
surface). Apabila permukaan utama diperluas dengan permukaan tambahan
seperti dalam gambar 2.3, maka gabungan antara kedua permukaan tersebut
dinamakan permukaan yang diperluas (extended surface). Elemen yang
digunakan untuk memperluas permukaan utama dikenal sebagai sirip (sirip).
Gambar 2.3. Beberapa contoh jenis extended surface: (a) sirip longitudinal
(memanjang) dengan profil segiempat (b)pipa silindris dengan sirip berprofil
segiempat (c) sirip longitudinal dengan profil trapezioda (d) sirip longitudinal
dengan profil parabola (e) pipa silindris dengan sirip radial berprofil segiempat (f)
pipa silindris dengan sirip radial berprofil trapezoida (g)cylindrical spine
(h)truncated conical spine (i) truncated parabolic spine
7
2
2
2
2
50
1
y
θ
x
θ
Ray
θv
x
θu
t
θ.
Pry
v
x
v
Ra
Pr
y
p
y
vv
x
vu
t
v2
2
0.5
2
2
2
2
2
2
0.5 y
u
x
u
Ra
Pr
x
p
y
uv
x
uu
t
u
0y
v
x
u
2.2.2 Konveksi Alami
Konveksi alami adalah perpindahan panas antara suatu permukaan dan fluida
yang mengalir diatasnya. Aliran fluida disebabkan oleh adanya perbedaan densitas
fluida yang ditimbulkan oleh pemanasan dan pendinginan. Densitas fluida akan
berkurang jika fluida mendapat pemanasan sehingga fluida akan mengapung dan
daerah yang ditinggalakan akan diisi oleh fluida yang relatif dingin. Fluida yang
relatif panas jika mendekati dinding yang relatif dingin densitasnya akan
meningkat sehingga akan mengalir turun akibat tarikan gaya grafitasi. Dengan
demikian densitas merupakan driving force sirkulasi fluida. Konveksi alami
memegang peranan penting dalam rekayasa industri seperi: perancangan alat
penukar kalor, perancangan ventilasi, pendinginan transformator, pendinginan
kabel bawah tanah dan pendinginan komponen elektronika. Pada penelitian
konveksi alami model matematika yang dipakai adalah persamaan kontinyuitas,
persamaan Navier-Stokes dan persamaan energi.
2.2.2.1 Persamaan Atur Konveksi Alami
Untuk permasalahan 2-D persamaan atur konveksi alami dalam bentuk
variabel tak berdimensi adalah sebagai berikut (Le Quere,1990):
(1)
(2)
(3)
(4)
Persamaan di atas diperoleh dengan membagi variabel berdimensi dengan
variabel referensi, untuk panjang adalah Lr=H, untuk kecepatan Vr=(/H)Ra-0.5
,
dimana Ra=(gTH3)/(), untuk variabel waktu tr=(H
2/) Ra
-0.5, untuk
temperatur didefinisikan sebagai berikut : =(T-Tr)/(Th-Tc), Tr=(Th+Tc)/2 dan
Pr=(/).
8
2.2.2.2 Diskritisasi Waktu
Diskritisasi waktu untuk persamaan momentum menggunakan skema Runge-
Kutta orde-4 dari Williamson(Wilson dan Demuren,1998) yang didefinisikan
sebagai berikut :
(5)
dimana :
t = langkah waktu
bM
= koefisien skema Runge-Kutta
aM
= koefisien skema Runge-Kutta
uiM
= komponen kecepatan arah xi pada sub tingkat ke-M
M
iP = Tekanan
M
iH
1
5.0
Pr
M
i
MM
ixx
M
i
M
ixjHau
RaPuu
Tabel 2.1 Koefisien Runge-Kutta orde-4 dari Carpenter dan Kennedy
M aM
bM
1 0 0.14965902
2 -0.41789047 0.37921031
3 -1.19215169 0.82295502
4 -1.69778469 0.69945045
5 -1.51418344 0.15305724
2.2.2.3 Diskritisasi Ruang
Skema beda-hingga orde-2 untuk turunan pertama memiliki galat dispersi
yang besar, sedangkan skema kompak beda hingga memiliki kelebihan yaitu
akurasi tinggi, fleksibel dan pengoperasiannya lebih mudah.
a. Turunan pertama.
Bentuk diskritisasi turunan pertama dengan pendekatan skema kompak beda
hingga orde-4 dirumuskan oleh Lele(Wilson dan Demuren, 1998). Bentuk
persamaannya adalah seperti berikut :
(6)
M
i
MMM tHbuu 11
)(4
)(2
2211
'
1
''
1
iiiiiiix
b
x
a
9
N
Nlljl
j
axx
u 1
0
xc
t
ikxett
~
)(~ xxik
lj e
0~
~)(
xlxikN
Nl
l
ikx eax
ce
t
dengan :
x = Lx/Nx
xN = jumlah grid point
'
i = turunan pertama dari variabel i terhadap x
, a, b = koefisien skema kompak
Turunan terhadap y dan z dapat dilakukan dengan cara yang sama. Untuk
skema orde-empat maka ; =1/4, a=3/2 dan b=0.
Perbandingan skema ekplisit beda-hingga dan skema kompak beda hingga dari
turunan pertama ditunjukkan dalam tabel 2.2. Di sini terlihat bahwa skema
kompak beda hingga memiliki grid stensil yang lebih sedikit, koefisien galat
pemenggalan berkurang menjadi ¼ untuk orde-4 dari koefisien beda tengah
ekplisit untuk orde yang sama.
Tabel 2.2 Perbandingan skema beda hingga dan skema kompak turunan pertama
Skema Kesalahan pemenggalan Jumlah stensil
Beda tengah orde-4 (-4/5!)( 4)x 5 5
Kompak orde-4 (-1/5!)( 4)x 5 3
Menurut Hu dkk(1996) resolusi dari diskritisasi turunan pertama dapat
dianalisa dengan mentransformasi persamaan konveksi 1-D sebagai berikut:
(7)
(8)
Dalam mode Fourier ikxet)(~ maka :
(9)
(10)
Sehingga persamaan konveksi 1-D menjadi :
(11)
10
0~
~
xiklN
Nl
l eax
c
t
0~
~*
ick
t
xiklN
Nl
leax
ik
*
1)cos(2
)2sin(2
)sin(1
k*xk
xkb
xka
x
3
1
'
2
'
1
1
i
ibsibs ax
(12)
(13)
dimana :
(14)
k* adalah numerical wave number.
Numerical wave number untuk skema kompak beda hingga dari turunan pertama
dalah :
(15)
Simpangan dari kurva real(k*) terhadap k menunjukkan galat dispersi.
0
0.5
1
1.5
2
2.5
3
3.5
0 0.5 1 1.5 2 2.5 3 3.5kdx
rea
l(k*d
x)
eksak
2nd-order central
4th-order central
4th-order compact
6th-order compact
Gambar 2.4. Galat dispersi untuk pendekatan numeric dari turunan pertama
Syarat batas diselesaikan dengan skema kompak orde-3 dengan persamaan
sebagai berikut :
(16)
11
222112
"
1
""
1 24
2
iiiiiiiiix
b
x
a
)cos(21
)2cos(12
)cos(1
)(
1(k*)2
2 xk
xkb
xka
x
2bs dan 2/51 bsa , 22 bsa , 2/11 bsa adalah koefisien orde-3 dari syarat
batas pada i=1. Persamaan yang sama juga digunakan untuk syarat batas pada
i=N.
b. Turunan kedua.
Persamaan skema kompak beda hingga untuk turunan kedua adalah sebagai
berikut :
(17)
dimana :
"
i = turunan kedua dari variabel i terhadap x
ba,, = koefisien skema kompak beda hingga turunan kedua
Untuk orde-empat, =1/10, 5/6a , b=0
Perbandingan antara skema beda-hingga ekplisit dan skema kompak beda
hingga ditunjukkan dalam tabel 2.3. Di sini terlihat bahwa skema kompak beda
hingga memiliki stensil lebih sedikit, koefisien galat pemenggalan berkurang
menjadi ½ untuk orde-4 dari koefisien beda tengah ekplisit untuk orde yang sama.
Tabel 2.3 Perbandingan skema beda hingga dan skema kompak turunan kedua
Skema Kesalahan pemenggalan Jumlah stensil
Beda tengah orde-4 (-8/6!)(x)4
(6) 5
Kompak orde-4 (-3.6/6!)(x)4
(6) 3
Analisa resolusi untuk turunan kedua dari pendekatan numerik skema kompak
beda hingga dilakukan dengan cara yang sama dengan analisa turunan pertama.
Numerical wave number untuk skema kompak beda hingga dari turunan kedua
adalah :
(18)
Deviasi dari (k*x)
2 terhadap (kx)
2 ditampilkan dalam bentuk grafik gambar
2.5 untuk beberapa skema beda-hingga.
12
4
12
"
2
" 1
i
ibsibsi ax
0
V
t
p
0
1
2
3
4
5
6
7
8
9
10
0 0.5 1 1.5 2 2.5 3 3.5
kdx
(k*d
x)*
*2
Eksak
"2nd-order central"
"4th-order central"
"4th-order compact"
"6th-order compact"
Gambar 2.5. Galat disipasi untuk pendekatan numerik dari turunan kedua
Galat disipasi dari berbagai skema beda-hingga tampak pada gambar 2.5 dapat
diketahui bahwa nilai numerical wavenumber untuk skema kompak lebih
mendekati nilai exact wavenumber.
Kondisi batas pada i=1 dan i=N diselesaikan dengan skema kompak orde-3
sebagai berikut :
(19)
dimana, bs =11 dan abs1=13, abs2=-27, abs3=15 dan abs4 =-1 adalah koefisien
skema kompak orde-3.
2.2.2.4 Metode Kompresibilitas Tiruan (Artificial Compressibility)
Konsep metode kompresibilitas tiruan adalah menambahkan turunan terhadap
waktu pada persamaan kontinyuitas. Bentuk modifikasi persamaan adalah :
(20)
13
dimana adalah konstanta positip. Persamaan ini tidak mempunyai arti fisik
jika kondisi tunak belum tercapai.
14
BAB III
PELAKSANAAN PENELITIAN
3.1 Alat dan Bahan
a. Komputer pribadi dengan spesifikasi :
Intel Pentium Dual CPU E2140 @ 1.6GHz
Memori 512 MB
b. Perangkat lunak Mikrosoft Fortran Power Station 4.0
c. Perangkat lunak Matlab 6.1 Realease 12
d. Printer Canon iP 1880
3.2 Garis Besar penelitian
Penelitian dilakukan dengan cara membuat implementasi program untuk
menyelesaikan persamaan momentum, persamaan energi dan persamaan
kontinyuitas dengan pendekatan skema kompak orde-empat dan skema Runge-
Kutta orde-empat. Program dibuat dalam Bahasa Fortran dan untuk visualisasi
hasil program menggunakan perangkat lunak Matlab 6.
Langkah-langkah penelitian yang dilakukan adalah seperti berikut :
1. Mengumpulkan literatur
2. Mempelajari literatur
a. Mempelajari penelitan-penelitian yang pernah dilakukan
b. Mempelajari persamaan atur yang berhubungan dengan permasalahan
3. Merencanakan algoritma program
a. Membuat diskritisasi persamaan atur
b. Menyusun bagan alir program
4. Menulis bagan alir dalam bahasa program (Fortran)
5. Menjalankan program
6. Memperbaiki kesalahan pemrograman
a. kesalahan penulisan
b. kesalahan algoritma
7. Membuat visualisasi hasil program dengan perangkat lunak Matlab
15
ya
tidak
8. Menyusun laporan penelitian
Garis besar penelitian tersebut dapat dibuat diagram alir sebagai berikut :
Mengumpulkan dan Mempelajari
literatur - literatur
Membuat diskritisasi persamaan atur
Mulai
Membuat algoritma program
Menulis bagan alir dalam bahasa
fortran
Menjalankan program
Program benar
Membuat visualisasi dengan Matlab
Analisa hasil
Selesai
Kesimpulan
16
M
ji
MM
ji
M
ji
M
ji
M
ji
M
ji
M
ji
M
jiHauyyuxx
RapxuyvuxuH
,,,5.0,,,,,
M
ji,
Pr
M
ji
MM
ji
M
jitHbuu
,
1
,,
M
ji
M
jijijijijijijiji
M
ji HavyyvxxRa
pyvyvvxuH ,,,,5.0,,,,,, PrPr
M
ji
MM
ji
M
ji tHbvv ,
1
,
1
,
M
ji
M
ji
M
ji
M
ji
M
ji uux
uxuxux ,1,1,1,,14
3
4
1
4
1
M
ji
M
ji
M
ji
M
ji
M
ji uuy
uxuyuy 1,1,1,,1,4
3
4
1
4
1
3.3 Diskritisasi Persamaan Atur
Persamaan atur konveksi alami terdiri dari persamaan kontinuitas, persamaan
momentum dan persamaan energi. Model matematika dari persamaan atur
konveksi alami terdiri dari persamaan diferensial parsial orde-1 dan orde-2. Agar
persamaan atur konveksi alami dapat diaplikasikan dalam bahasa program maka
terlebih dahulu dibuat diskritisasi persamaan atur. Diskritisasi waktu dilakukan
dengan skema Runge-Kutta orde-4 dan diskritisasi ruang dengan skema kompak
beda hingga orde-4. Matrik yang terbentuk dari diskritisasi turunan ruang adalah
matrik tridiagonal yang bisa diselesaikan dengan algoritma Thomas.
3.3.1 Diskritisasi persamaan momentum
Diskritisasi persamaan momentum dengan skema Runge-Kutta adalah seperti
berikut :
Kecepatan arah x (u)
(21)
(22)
Kecepatan arah y (v)
(23)
(24)
Diskritasi turunan ruang dengan skema kompak orde-4 adalah seperti berikut :
Diskritisasi turunan pertama
(25)
(26)
17
M
ji
M
ji
M
ji
M
ji
M
ji vvx
vxvxvx ,1,1,1,,14
3
4
1
4
1
M
ji
M
ji
M
ji
M
ji
M
ji vvy
vxvyvy 1,1,1,,1,4
3
4
1
4
1
M
ji
M
ji
M
ji
M
ji
M
ji ppx
pxpxpx ,1,1,1,,14
3
4
1
4
1
M
ji
M
ji
M
ji
M
ji
M
ji ppy
pxpypy 1,1,1,,1,4
3
4
1
4
1
M
ji
M
ji
M
ji
M
ji
M
ji
M
ji uuux
uxxuxxuxx ,1,,12,1,,1 25
6
10
1
10
1
M
ji
M
ji
M
ji
M
ji
M
ji
M
ji uuuy
uyyuyyuyy 1,,1,21,,1, 25
6
10
1
10
1
M
ji
M
ji
M
ji
M
ji
M
ji
M
ji vvvx
vxxvxxvxx ,1,,12,1,,1 25
6
10
1
10
1
M
ji
M
ji
M
ji
M
ji
M
ji
M
ji vvvy
vyyvyyvyy 1,,1,21,,1, 25
6
10
1
10
1
M
ji
MM
ji
M
ji tHb ,
1
,,
M
ji
MM
ji
M
ji
M
ji
M
ji
M
ji
M
ji
M
ji HayyxxRa
yvxuH ,,,5.0,,,,,
1
M
ji
M
ji
M
ji
M
ji
M
jix
xxx ,1,1,1,,14
3
4
1
4
1
M
ji
M
ji
M
ji
M
ji
M
jiy
xyy 1,1,1,,1,4
3
4
1
4
1
(27)
(28)
(29)
(30)
Diskritisasi turunan kedua
(31)
(32)
(33)
(34)
3.3.2. Diskritisasi persamaan energi
(35)
(36)
Diskritasi turunan ruang dengan skema kompak orde-4 adalah seperti berikut :
Diskritisasi turunan pertama
(37)
(38)
18
M
ji
M
ji
M
ji
M
ji
M
ji
M
jix
xxxxxx ,1,,12,1,,1 25
6
10
1
10
1
M
ji
M
ji
M
ji
M
ji
M
ji
M
jiy
yyyyyy 1,,1,21,,1, 25
6
10
1
10
1
M
ji
MM
ji
M
ji tHbpp ,
1
,
1
,
M
ji
MM
ji
M
ji
M
ji HauyuxH ,,,,
Diskritisasi turunan kedua
(39)
(40)
3.3.3. Diskritisasi metode kompresibilitas tiruan.
(41)
(42)
3.4 Diskritisasi Syarat Batas
Dalam penelitian ini kasus yang dibahas adalah konveksi alami dalam kotak 2-
D dengan dinding bawah dan atas merupakan dinding adiabatis, dinding kiri
mendapat pemanasan dan dinding kanan mendapat pendinginan,dengan grid 201 x
201. Pada seluruh dinding kecepatan bernialai nol sedangkan syarat batas tekanan
dan temperatur adalah seperti berikut :
Gambar 3.1 Domain dan syarat batas
0
y
= -0.5
0
x
p
= 0.5
0
y
0
y
p
0
x
p
0
y
p
= 0.5
19
a. Syarat batas kecepatan
Turunan pertama.
Untuk i=1 dan i=nx
(43)
(44)
(45)
(46)
Untuk j=1 dan j=ny
(47)
(48)
(49)
(50)
(51)
(52)
(53)
(54)
Turunan kedua.
Untuk i=1 dan i=nx
(55)
M
j
M
j
M
j
M
j
M
j
M
j uuuuux
ux ,1,2,3,4,5,1 25483616312
1
M
jnx
M
jnx
M
jnx
M
jnx
M
jnx
M
jnx uuuuux
ux ,,1,2,3,4, 25483616312
1
M
j
M
j
M
j
M
j
M
j
M
j vvvvvx
vx ,1,2,3,4,5,1 25483616312
1
M
jnx
M
jnx
M
jnx
M
jnx
M
jnx
M
jnx vvvvvx
vx ,,1,2,3,4, 25483616312
1
M
i
M
i
M
i
M
i
M
i
M
i uuuuuy
uy 1,2,3,4,5,1, 25483616312
1
M
i
M
i
M
i
M
i
M
i
M
i uuuuuy
uy 98,97,96,95,94,98, 25483616312
1
M
i
M
i
M
i
M
i
M
i
M
i uuuuuy
uy 102,103,104,105,106,102, 25483616312
1
M
nyi
M
nyi
M
nyi
M
nyi
M
nyi
M
nyi uuuuuy
uy ,1,2,3,4,, 25483616312
1
M
i
M
i
M
i
M
i
M
i
M
i vvvvvy
vy 1,2,3,4,5,1, 25483616312
1
M
i
M
i
M
i
M
i
M
i
M
i vvvvvy
vy 98,97,96,95,94,98, 25483616312
1
M
i
M
i
M
i
M
i
M
i
M
i vvvvvy
vy 102,103,104,105,106,102, 25483616312
1
M
nyi
M
nyi
M
nyi
M
nyi
M
nyi
M
nyi vvvvvy
vy ,1,2,3,4,, 25483616312
1
M
j
M
j
M
j
M
j
M
j
M
j uuuux
uxxuxx ,4,3,2,12,2,1 1527131
11
20
(56)
(57)
(58)
Untuk j=1 dan j=ny
(59)
(60)
(61)
(62)
(63)
(64)
(65)
(66)
b. Syarat batas tekanan
Untuk i=1 dan i=nx
(67)
(68)
M
jnx
M
jnx
M
jnx
M
jnx
M
jnx
M
jnx uuuux
uxxuxx ,3,2,1,2,1, 1527131
11
M
j
M
j
M
j
M
j
M
j
M
j vvvvx
vxxvxx ,4,3,2,12,2,1 1527131
11
M
jnx
M
jnx
M
jnx
M
jnx
M
jnx
M
jnx vvvvx
vxxvxx ,3,2,1,2,1, 1527131
11
M
i
M
i
M
i
M
i
M
i
M
i uuuuy
uyyuyy 4,3,2,1,22,1, 1527131
11
M
i
M
i
M
i
M
i
M
i
M
i uuuuy
uyyuyy 95,96,97,98,297,98, 1527131
11
M
i
M
i
M
i
M
i
M
i
M
i uuuuy
uyyuyy 105,104,103,102,2103,102, 1527131
11
M
nyi
M
nyi
M
nyi
M
nyi
M
nyi
M
nyi uuuuy
uyyuyy 3,2,1,,21,, 1527131
11
M
i
M
i
M
i
M
i
M
i
M
i vvvvy
vyyvyy 4,3,2,1,22,1, 1527131
11
M
i
M
i
M
i
M
i
M
i
M
i vvvvy
vyyvyy 95,96,97,98,297,98, 1527131
11
M
i
M
i
M
i
M
i
M
i
M
i vvvvy
vyyvyy 105,104,103,102,2103,102, 1527131
11
M
nyi
M
nyi
M
nyi
M
nyi
M
nyi
M
nyi vvvvy
vyyvyy 3,2,1,,21,, 1527131
11
0,1 M
jpx
0, M
jnxpx
21
Untuk j=1 dan j=ny
(69)
(70)
c. Syarat batas temperatur
Turunan pertama
Untuk i=1 dan i=nx
(71)
(72)
Untuk j=1 dan j=ny
(73)
(74)
(75)
(76)
Turunan kedua
Untuk i=1 dan i=nx
(77)
(78)
Untuk j=1 dan j=ny
(79)
01, M
ipy
0, M
nyipy
M
j
M
j
M
j
M
j
M
j
M
jx
x ,1,2,3,4,5,1 25483616312
1
M
jnx
M
jnx
M
jnx
M
jnx
M
jnx
M
jnxx
x ,,1,2,3,4, 25483616312
1
01, M
iy
M
i
M
i
M
i
M
i
M
i
M
ix
x 98,97,96,95,94,98, 25483616312
1
M
i
M
i
M
i
M
i
M
i
M
ix
x 102,103,104,105,106,102, 25483616312
1
0, M
nyiy
M
j
M
j
M
j
M
j
M
j
M
jx
xxxx ,4,3,2,12,2,1 1527131
11
M
jnx
M
jnx
M
jnx
M
jnx
M
jnx
M
jnxx
xxxx ,3,2,1,2,1, 1527131
11
M
i
M
i
M
i
M
i
M
i
M
iy
yyyy 4,3,2,1,22,1, 1527131
11
22
(80)
(81)
(82)
3.5 Algoritma Pemrograman
Algoritma pemrograman dari sistem persamaan diatas adalah sebagai berikut :
1. Tentukan kondisi awal (t=0), dan kondisi batas untuk semua variabel (u,v,,p).
2. Hitung turunan pertama dari kecepatan, temperatur dan tekanan
(ux,uy,vx,vy,x,y,px,py) dan turunan kedua dari kecepatan dan
temperatur(uxx,uyy,vxx,vyy,xx,yy) dengan skema kompak orde-empat.
3. Hitung kecepatan(u,v) dengan skema Runge-Kutta orde-empat.
4. Hitung tekanan dengan metode artificial compressibility.
5. Hitung temperatur()dengan skema Runge-Kutta orde-empat.
6. Periksa apakah sudah mencapai batas perhitungan atau belum, jika belum
kembali ke langkah 2, jika sudah ke langkah 7.
7. Tulis hasil.
8. Selesai.
M
i
M
i
M
i
M
i
M
i
M
iy
yyyy 95,96,97,98,297,98, 1527131
11
M
i
M
i
M
i
M
i
M
i
M
iy
yyyy 105,104,103,102,2103,102, 1527131
11
M
nyi
M
nyi
M
nyi
M
nyi
M
nyi
M
nyiy
yyyy 3,2,1,,21,, 1527131
11
23
Bagan alir program yang akan dibuat adalah sebagai berikut:
MULAI
DATA AWAL
SYARAT BATAS
TENTUKAN
TURUNAN PERTAMA UNTUK
u,v,p,
DAN TURUNAN KEDUA UNTUK
u,v,
SELESAIKAN PERSAMAAN MOMENTUM
UNTUK MEMPEROLEH
Um+1
DAN vm+1
HITUNG TEKANAN pm+1
DENGAN
METODE ARTIFICIAL COMPRESSIBILITY
SELESAIKAN PERSAMAAN ENERGI
UNTUK MEMPEROLEH
m+1
PERIKSA
KONVERGENSI ?
TULIS HASIL
SELESAI
Y
T
24
BAB IV
HASIL DAN PEMBAHASAN
4.1 Simulasi Konveksi Alami Sirip Tunggal Dan Multiple Sirip
Simulasi secara konveksi alami pada sirip tunggal dan multiple sirip
ditampilkan dengan susunan grid sebesar 201 x 201, bilangan Prandtl (Pr) = 0.71
dan langkah waktu dt = 0.0025 serta angka Rayleigh yang digunakan adalah Ra =
106
dan 107. Hasil simulasi disrtibusi temperatur selengkapnya dapat dilihat pada
gambar berikut :
Gambar 4.1 isothermal pada Ra = 106
pada sirip tunggal
Gambar 4.2 isothermal pada Ra = 106
pada 2 sirip
25
Gambar 4.3 isothermal pada Ra = 106
pada 3 sirip
Gambar 4.4 isothermal pada Ra = 106
pada 3 sirip
Gambar 4.5 isothermal pada Ra = 107
pada sirip tunggal
26
Gambar 4.6 isothermal pada Ra = 107
pada 2 sirip
Gambar 4.7 isothermal pada Ra = 107
pada 3 sirip
Gambar 4.8 isothermal pada Ra = 107
pada 4 sirip
27
Dari hasil di atas maka dapat kita tinjau secara visual mengenai gambar
distribusi temperatur. Dari gambar 4.1 sampai 4.8 dapat dilihat bahwa pergerakan
fluida panas akan bergerak keatas karena adanya gaya apung (buoyancy force),hal
ini disebabkan karena density yang turun karena temperatur, sedangkan fluida
dingin bergerak ke bawah karena density lebih besar dan karena adanya gaya
gravitasi. Semakin banyak sirip maka dapat dilihat arah perpindahan panasnya.
Distribusi temperatur yang relatif panas dibagian kiri atas akan semakin condong
ke kanan dan distribusi temperatur yang relatif dingin pada bagian kiri bawah
semakin condong ke kiri. Dengan adanya peningkatan Ra maka akan membuat
lapis batas termal di dinding menipis sehingga gradien temperatur di dinding
meningkat,hal ini terjadi karena kecepatan fluida yang membawa panas juga
meningkat seiring peningkatan Ra.
Pola aliran fuida dapat dilihat pada gambar berikut :
Gambar 4.9 stream function pada Ra = 106 pada sirip tunggal
28
Gambar 4.10 stream function pada Ra = 106
pada 2 sirip
Gambar 4.11 stream function pada Ra = 106
pada 3 sirip
Gambar 4.12 stream function pada Ra = 106 pada 4 sirip
29
Gambar 4.13 stream function pada Ra = 107
pada sirip tunggal
Gambar 4.14 stream function pada Ra = 107 pada 1 sirip
Gambar 4.15 stream function pada Ra = 107 pada 2 sirip
30
Gambar 4.16 stream function pada Ra = 107 pada 4 sirip
Dari gambar 4.9 sampai gambar 4.16 dapat kita lihat pola stream fungtionnya,
dari gambar diatas dapat dilihat bahwa pada Ra = 106
telah muncul separasi,
separasi ini timbul akibat adanya suatu gerakan berputar pada vektor
kecepatan,untuk lebih jelasnya dapat ditampilkan pada gambar 4.17.
Gambar 4.17 vektor kecepatan pada Ra = 106
pada 1 sirip
31
Kurva Konvergensi
-3
-2,5
-2
-1,5
-1
-0,5
0
0 2000 4000 6000 8000 10000
Jumlah Iterasi
Lo
g10(d
u/d
x+
dv/d
y)
Kurva Konvergensi
-3
-2,5
-2
-1,5
-1
-0,5
0
0 2000 4000 6000 8000 10000
Jumlah Iterasi
Lo
g10(d
u/d
x+
dv/d
y)
Gambar 4.18. Kurva konvergensi untuk Ra=106 sirip tunggal
Gambar 4.19. Kurva konvergensi untuk Ra=107 sirip tunggal
Gambar 4.18 dan 4.19 menunjukkan peningkatan Ra menyebabkan kecepatan
konvergensi berkurang. Hal ini disebabkan peningkatan Ra membuat suku difusi
berkurang pengaruhnya terhadap perhitungan. Suku difusi mempunyai sifat
sebagai peredam, sehingga perhitungan stabil. Dengan melemahnya suku difusi
maka suku adveksi menguat dan menggantikan dominasi suku difusi. Penguatan
suku adveksi membuat sistem persamaan atur cenderung bersifat hiperbolik.
32
4.2 Validasi Program
Untuk meguji validitas dari program yang telah dibuat, hasil dari proses
simulasi dibandingkan secara visual maupun perhitungan dengan hasil yang telah
dilakukan oleh Pranowo dan Tri Iswanto pada domain kotak bujur sangkar 2D
dengan aspek rasio 1 :1, dengan kondisi dinding bawah dan atas merupakan
dinding adiabatis, dinding kiri mendapat pemanasan dan dinding kanan mendapat
pendinginan.
Gambar 4.20. Domain dan Syarat Batas penelitian Pranowo dan Tri Iswanto
Disrtibusi temperatur dan pola aliran hasil penelitian yang dibuat Pranowo dan
Tri Iswanto ditunjukkan pada gambar 4.23 dan gambar 4.24 sedangkan distribusi
temperatur dan pola aliran hasil penelitian yang dibuat penulis ditunjukkan oleh
gambar 4.21 dan 4.22.
= 0.5 = -0.5
0
y
0
y
0
x
p
0
y
p
0
x
p
0
y
p
33
( a ) ( b )
Gambar 4.21. Distribusi temperatur (a) dan stream function (b) yang dibuat
penulis pada Ra = 106
( a ) ( b )
Gambar 4.22. Distribusi temperatur (a) dan stream function (b) yang dibuat
penulis pada Ra = 107
34
( a ) ( b )
Gambar 4.23. Distribusi temperatur (a) dan stream function (b) yang dibuat
Pranowo dan Tri Iswanto pada Ra = 106
Gambar 4.24. Distribusi temperatur (a) dan stream function (b) yang dibuat
Pranowo dan Tri Iswanto pada Ra = 107
Hasil perhitungan pada penelitian kali ini dibandingkan dengan penelitian Le
Querre pada Ra = 106 dan Ra = 10
7 yang diperliatkan pada tabel 4.1 dan tabel 4.2.
35
Tabel.4.1Hasil Perhitungan dan Perbandingan untuk Ra=106
Sekarang Le Quere Beda (%)
middle 0.0164552 0.016384 0.43
max 0.0169117 0.016811 0.60
X 0.150000 0.1500 0.00
Y 0.550000 0.5470 0.55
umax(1/2,y) 0.0649050 0.064834 0.11
Y 0.850000 0.850 0.00
vmax(x,1/2) 0.220236 0.2206 0.17
X 0.040 0.038 5.26
Nuwall 8.73394 8.8252 1.03
Numiddle 8.82299 8.8244 0.02
Numax 17.1575 17.5343 2.15
Y 0.030 0.039 23.08
Numin 0.98427 0.97948 0.49
Y 1.0 1.0 0.00
Tabel 4.2 Hasil Perhitungan dan Perbandingan untuk Ra=107
sekarang Le Quere Beda (%)
middle 0.00936819 0.00928496 0.90
max 0.00964076 0.00953872 1.07
X 0.0866667 0.086 0.78
Y 0.553333 0.556 0.48
umax(1/2,y) 0.0473129 0.046986 0.70
Y 0.88 0.879 0.11
vmax(x,1/2) 0.221048 0.21118 4.67
X 0.02 0.021 4.76
Nuwall 16.2068 16.523 1.91
Numiddle 16.5638 16.523 0.25
Numax 40.3192 39.3947 2.35
Y 0.00667 0.018 62.94
Numax 1.37516 1.36635 0.64
Y 1.0 1.0 0.00
Dari gambar 4.21 dan 4.22 dapat dilihat bahwa secara visual hasil penelitian
ini menunjukkan kesamaan yang baik dengan penelitian dari Pranowo dan Tri
Iswanto dan dari tabel 4.1 dan 4.2 hasil perhitungan pada penelitian ini
menunjukkan kedekatan yang baik dengan hasil penelitian Le Querre sehingga
dengan metode ini dapat diterima sebagai validasi.
Untuk domain dengan sirip, akan dinbandingkan dengan hasil percobaan
dibuat oleh F. Xu, J.C. Patterson dan C.Lei (2007) dengan mengacu timbulnya
36
sutatu separasi disekitar sirip, ditunjukkan pada gambar 4.26 sedangkan pola
aliran hasil penelitian yang dibuat penulis ditunjukkan oleh gambar 4.25.
Gambar 4.25 Separasi di sekitar sirip yang dibuat penulis
Gambar 4.26 separasi di sekitar sirip oleh F. Xu, J.C. Patterson dan C.Lei (2007)
37
BAB V
PENUTUP
5.1 Kesimpulan
Dari penelitian dan pembahasan yang telah dilakukan, dapat ditarik beberapa
kesimpulan yaitu :
a. Hasil penelitian pada domain busur sangkar tanpa sirip mempunyai kedekatan
visual yang baik dengan hasil penelitian dari Pranowo dan Tri Iswanto baik
pada Ra = 106 maupun pada Ra = 10
7.
b. Metode yang digunakan untuk kasus konveksi alami pada single fin dan
multiple fins dalam kotak 2D mampu mensimulasikan pola aliran dan
distribusi temperatur sampai Ra = 107.
c. Separasi timbul karena adanya pusaran pada pola aliran disekitar sirip.
d. Separasi muncul pada daerah sekitar sirip saat Ra 106 dan 10
7.
e. Semakin besar angka Rayleigh maka kerapatan perpindahan panas disekitar
dinding akan meningkat.
f. Semakin banyak jumlah sirip maka perpindahan panas akan meningkat.
5.2 Saran
Skema kompak orde-tinggi selain memiliki akurasi yang baik mempunyai
bentuk yang sederhana dan mudah diaplikasikan. Bagi para pembaca yang
berminat penelitian ini masih terbuka kemungkinan untuk penyelesaian kasus
3-D atau penyelesaian kasus 2-D dengan menggunaan grid yang tidak seragam.
38
DAFTAR PUSTAKA
Hoffmann, K.A. 1989. Computational Fluid Dynamic for Engineers. Austin,
Texas: A Publication of Engineering Education System.
Holman, J.P. 1988. Perpindahan Kalor. Jakarta: Erlangga.
Kasayapanand, N. 2008. A Computational Fluid Dynamics Modeling of Natural
Convection in Siripned Enclosure Under Electric Field. Applied Thermal
Engineering 29 (2009) 131-141.
Lemos, C.M. FDFlow: a Fortran-77 Solver for 2-D Incompressible Fluid Flow.
Computers & Geosciences, Vol. 20 (1994): pp.265-261.
Pranowo dan Priyo Tri Iswanto. 1999. Analisis Numerik Konveksi Alami Dalam
Kotak dengan Primitive Variable pada Grid Kolokasi. Makalah Seminar
Regional Universitas Sanata Dharma Yogyakarta.
Prijono, Arko. 1985. Prinsip-prinsip Perpindahan Panas, Terjemahan dari
Principles Of Heat Transfer Third Edition (Frank Kreith, 1958).
Quere, P.L. 1990. Accurate Solutions to The Square Thermally Driven Cavity at
High Rayleigh Number. International Journal of Computers & Fluids,
Vol.20, No. 1, hal. 29-41.
Sulistiyono, Aris. 2006. Simulasi Numeric Konveksi Alami Dalam Kotak 3 Dimnsi
Dengan Variasi Kemiringan Dengan Metode Beda Hingga.
Wilson, Robert V., and Demuren, Ayodeji O., 1998, Higher-Order Compact
Schemes for Numerical Simulation of Incompressible Flows, ICASE
Report No. 98-13, NASA Langley Research Center, Hampton.
Xu, F., J.C. Patterson and C. Ley. 2007. Natural convection adjacent to sidewall
with three fins in a differentially heated cavity. Anziam J. 48 pp. C806-
C819.
38
Lampiran 1. Non-Dimensionalisasi Persamaan Atur
NON-DIMENSIONALISASI PERSAMAAN ATUR
Persamaan atur dibuat tanpa dimensi dengan membagi variabel yang ada
dengan parameter referensi yang mempunyai dimensi samam (Le Quere,1990),
seperti dibawah ini :
Lr
xx
*
, Lr
yy
*
, Lr
PPp
*
, Vr
uu
*
, Vr
vv
*
, tr
tt
*
(L.1.1)
dimana :
Lr = H tr = (H2/)Ra
-0.5
Vr = (/H)Ra0.5
Ra = (gTH3)/()
= (T-Tr)/(T2-T1) Tr = (T1+T2)/2
1. Non-dimensionalisasi Persamaan Kontinyuitas
0
y
v
x
u (L1.2)
Persamaan (L1.1) dimasukkan ke dalam persamaan (L1.2) :
0*
*
*
*
y
v
Lr
Vr
x
u
Lr
Vr (L1.3)
0*
*
*
*
y
v
x
u (L1.4)
Tanda (*) pada persamaan (L1.4) dihilangkan sehingga diperoleh :
0
y
v
x
u (L1.5)
39
2. Non-dimensionalisasi Persamaan Navier-Stokes
Persamaan momentum arah x
2
2
2
2
y
u
x
u
x
p
y
uv
x
uu
t
u
1 (L1.6)
Persamaan (L1.1) dimasukkan kepersamaan (L1.6) :
2*
*2
2*
*2
2*
*2
*
*
*
*
*
*
2
*
*
1
y
u
x
u
Lr
Vr
x
p
Lr
Vr
y
uv
x
uu
Lr
Vr
t
u
tr
Vr
(L1.7)
2*
*2
2*
*2
3
5.0
*
*
3
2
*
*
*
*
*
*
3
2
*
*
3
2
y
u
x
u
H
Ra
x
p
H
Ra
y
uv
x
uu
H
Ra
t
u
H
Ra
(L1.8)
2*
*2
2*
*2
5.0*
*
*
*
*
*
*
*
*
*
y
u
x
u
Rax
p
y
uv
x
uu
t
u
(L1.9)
Tanda (*) pada persamaan (L1.9) dihilangkan sehingga diperoleh :
2
2
2
2
0.5
y
u
x
u
Rax
p
y
uv
x
uu
t
u Pr (L1.10)
Persamaan momentum arah y
TrTgy
v
x
v
y
p
y
vv
x
vu
t
v2
22
2
1 (L1.11)
Persamaan (L1.1) dimasukkan kepersamaan (L1.11) :
2*
*2
2*
*2
2*
*2
*
*
*
*
*
*
2
*
*
1
y
v
x
v
Lr
Vr
x
p
Lr
Vr
y
vv
x
vv
Lr
Vr
t
v
tr
Vr
+ gT (L1.12)
2*
*2
2*
*2
3
5.0
*
*
3
2
*
*
*
*
*
*
3
2
*
*
3
2
y
v
x
v
H
Ra
y
p
H
Ra
y
vv
x
vu
H
Ra
t
v
H
Ra
40
+ gT (L1.13)
2*
*2
2*
*2
5.0*
*
*
*
*
*
*
*
*
*
y
v
x
v
Ray
p
y
vv
x
vu
t
v
+
Rav
THg 13
(L1.14)
Tanda (*) pada persamaan (L1.14) dihilangkan sehingga diperoleh :
PrPr
2
2
2
2
0.5
y
v
x
v
Ray
p
y
vv
x
vu
t
v (L1.15)
3. Non-dimensionalisasi Persamaan Energi
22
22
y
T
x
T
y
Tv
x
Tu
t
T (L1.16)
Persamaan (L1.1) dimasukkan kepersamaan (L1.16) :
2*
2
2*
2
*
*
*
*
*
12
2
1212
yxLr
TT
y
v
x
uLr
TTVr
ttr
TT (L1.17)
2*
2
2*
2
*
*
*
*
* 22
5.0
2
5.0
yxHy
v
x
uH
Ra
tH
Ra (L1.18)
2
*2*
2
*
*
*
*
*
2
5.0
1
yxRayv
x
ut
(L1.19)
Tanda (*) pada persamaan (L1.19) dihilangkan sehingga diperoleh :
22
2 2
5.0
1
yxRayv
xu
t
41
Lampiran 2. Skema kompak beda-hingga
SKEMA KOMPAK BEDA-HINGGA
Skema kompak beda-hingga dapat diturunkan dengan menggunakan formula
PADE (Hirsch.1961). Beberapa operator diferensial yang digunakan untuk
penurunan skema kompak beda hingga adalah seperti berikut :
adalah operator beda tengah :
2/12/1 iii uuu (L2.1)
adalah operator beda tengah :
112
1 iii uuu (L2.2)
E adalah operator pergeseran :
1 ii uEu (L2.3)
Hubungan antara operator-operator tersebut adalah seperti berikut :
1
2
1 EE (L2.4)
122
EE (L2.5)
(L2.6)
Diskritisasi turunan pertama
4
2
61
1xO
u
xux
i
ii
(L2.7)
4
2
61 xO
x
uux i
i
(L2.8)
411
2
14
6
1xOuEE
xuxEE ii
(L2.9)
42
4
11114
3
4
1
4
1xOuu
xuxuxux iiiii
(L2.10)
Diskritisasi turunan kedua
4
2
2
121
1xO
u
xuxx i
i
(L2.11)
4
22
121 xO
x
uuxx i
i
(L2.12)
4
2
1
1 210
12
1xO
x
uEEuxxEE i
i
(L2.13)
4
11211 25
6
10
1
10
1xOuuu
xuxxuxxuxx iiiiii
(L2.14)
43
Kurva Konvergensi
-3
-2,5
-2
-1,5
-1
-0,5
0
0 2000 4000 6000 8000 10000
Jumlah Iterasi
Lo
g10(d
u/d
x+
dv/d
y)
Kurva Konvergensi
-3
-2,5
-2
-1,5
-1
-0,5
0
0 2000 4000 6000 8000 10000
Jumlah Iterasi
Lo
g10(d
u/d
x+
dv/d
y)
Kurva Konvergensi
-3
-2,5
-2
-1,5
-1
-0,5
0
0 2000 4000 6000 8000 10000
Jumlah Iterasi
Lo
g10(d
u/d
x+
dv/d
y)
Lampiran 3. Kurva Konvergensi
Gambar 1. Kurva konvergensi untuk Ra=106 sirip tunggal
Gambar 2. Kurva konvergensi untuk Ra=107 sirip tunggal
Gambar 3. Kurva konvergensi untuk Ra=106 pada 2 sirip
44
Kurva Konvergensi
-3
-2,5
-2
-1,5
-1
-0,5
0
0 2000 4000 6000 8000 10000
Jumlah Iterasi
Lo
g10(d
u/d
x+
dv/d
y)
Kurva Konvergensi
-3
-2,5
-2
-1,5
-1
-0,5
0
0 2000 4000 6000 8000 10000
Jumlah Iterasi
Lo
g10(d
u/d
x+
dv/d
y)
Kurva Konvergensi
-3
-2,5
-2
-1,5
-1
-0,5
0
0 2000 4000 6000 8000 10000
Jumlah Iterasi
Lo
g10(d
u/d
x+
dv/d
y)
Gambar 4. Kurva konvergensi untuk Ra=107 pada 2 sirip
Gambar 5. Kurva konvergensi untuk Ra=106 pada 3 sirip
Gambar 6. Kurva konvergensi untuk Ra=107 pada 3 sirip
45
kurva konvergensi
-3
-2,5
-2
-1,5
-1
-0,5
0
0 2000 4000 6000 8000 10000
Jumlah Iterasi
Lo
g10(d
u/d
x+
dv/d
y)
Kurva Konvergensi
-3
-2,5
-2
-1,5
-1
-0,5
0
0 2000 4000 6000 8000 10000
Jumlah Iterasi
Lo
g10(d
u/d
x+
dv/d
y)
Gambar 7. Kurva konvergensi untuk Ra=106 pada 4 sirip
Gambar 8. Kurva konvergensi untuk Ra=107 pada 4 sirip
46
Lampiran 4. Numerical Wavenumber
NUMERICAL WAVENUMBER
Untuk mengetahui akurasi berbagai skema beda hingga dapat dilakukan dengan
analisa numerical wavwnumber. Perhitungan numerical wavenumber beberapa
skema beda hingga dijelaskan di bawah ini.
Sebelumnya kita definisikan variabel dalam mode Fourier adalah :
ikxet (L4.1)
)(t adalah koefisien Fourier darai , i= 1 dan k adalah wavenumber.
)(
1
xxik
i e
(L4.2)
)(
1
xxik
i e
(L4.3)
)(
1
xxik
i
eikx
(L4.4)
)(
1
xxik
i
eikx
(L4.5)
Skema beda tengah orde-dua
xx
ii
2
11 (L4.6)
x
eeeik
xxikxxikikx
2
)()(
(L4.7)
i
eexk
xikxik
2
(L4.8)
xkxk sin (L4.9)
47
Skema beda tengah orde-empat
xx
iiii
12
88 2112 (L4.10)
x
eeeeeik
xxikxxikxxikxxikikx
12
88)2()()()2(
(L4.11)
x
eeeeik
xkixikxikxki
12
8822
(L4.12)
i
ee
i
eexk
xikxikxkixki
28
26
122
(L4.13)
xkxkxk sin82sin6
1 (L4.14)
Skema kompak beda hingga
221
'
1
''
142
iiiiiix
b
x
a (L4.15)
)()()()(
2
xxikxxikxxikikxxxikee
x
aeikeikeik
+
)2()2(
4
xxikxxikee
x
b
(L4.16)
xkixkixikxikxikxikee
x
bee
x
aikeikike
22)
42 (L4.17)
i
ee
x
bi
i
ee
x
aiik
eeik
xkixkixikxikxikxik
22222
22
(L4.18)
xkx
bxk
x
axkk
2sin
2sin1cos2 (L4.19)
1cos2
2sin2
sin
xk
xkb
xka
xk
(L4.20)
Kurva numerical wavenumber untuk berbagai skema beda hingga ditampilkan
dalam gambar 2.4.
48
Lampiran 5. Program Konveksi Alami Pada Sirip Tunggal C------------------------------------------------------------------------- C Program penyelesaian konveksi alami pada sirip tunggal C------------------------------------------------------------------------- PARAMETER(m=500,n=500) COMMON/aa1/u(m,n),v(m,n),p(m,n),ux(m,n),uy(m,n), 1 vx(m,n),vy(m,n),px(m,n),py(m,n), 1 uxx(m,n),uyy(m,n),vxx(m,n),vyy(m,n),x(m,n),y(m,n) 1 ,o(m,n),ox(m,n),oy(m,n),oxx(m,n),oyy(m,n) COMMON/aa2/nx,ny,nt,dx,dy,dt,pr,ra,i1,i2,j1,j2 OPEN(8,FILE='C:\matlab6p1\work\temp1') OPEN(7,FILE='C:\matlab6p1\work\pv1') OPEN(4,FILE='C:\matlab6p1\work\temp') OPEN(3,FILE='C:\matlab6p1\work\pv') OPEN(2,FILE='C:\matlab6p1\work\num') OPEN(1,FILE='C:\matlab6p1\work\div') call awal do k=1,nt ck=0. call rkv do i=1,nx do j=1,ny ck=ck+abs(ux(i,j)+vy(i,j)) end do end do if(ck.gt.0) then WRITE(*,*)k,LOG10(ck/nx/ny) WRITE(1,*)k,LOG10(ck/nx/ny) endif end do call hasil stop end C---------------------------------------- C Syarat awal dan syarat batas C---------------------------------------- subroutine awal PARAMETER(m=500,n=500) CHARACTER mul*2 COMMON/aa1/u(m,n),v(m,n),p(m,n),ux(m,n),uy(m,n), 1 vx(m,n),vy(m,n),px(m,n),py(m,n), 1 uxx(m,n),uyy(m,n),vxx(m,n),vyy(m,n),x(m,n),y(m,n) 1 ,o(m,n),ox(m,n),oy(m,n),oxx(m,n),oyy(m,n) COMMON/aa2/nx,ny,nt,dx,dy,dt,pr,ra,i1,i2,j1,j2 WRITE(*,*)' t= ' READ(*,*)tt
49
nx=201 ny=201 i1=1 i2=nx j1=1 j2=ny dx=1./200. dy=1./200. dt=0.0025 nt=tt/dt+1 pr=0.71 ra=1000000. WRITE(*,*)' Dari awal ?' READ(*,'(a)')mul IF(mul.eq.'y')then do i=1,nx do j=1,ny x(i,j)=(i-1)*dx y(i,j)=(j-1)*dy u(i,j)=0. v(i,j)=0. p(i,j)=0. o(i,j)=0. enddo enddo do j=1,ny o(1,j)=0.5 o(nx,j)=-0.5 enddo else do j=1,ny do i=1,nx READ(7,*)x(i,j),y(i,j),u(i,j),v(i,j),p(i,j) READ(8,*)x(i,j),y(i,j),o(i,j) end do end do end if return end C-------------------------------------------------------- C Penyelesaian persamaan Navier - Stokes C-------------------------------------------------------- subroutine rkv PARAMETER(m=500,n=500)
50
COMMON/aa1/u(m,n),v(m,n),p(m,n),ux(m,n),uy(m,n), 1 vx(m,n),vy(m,n),px(m,n),py(m,n), 1 uxx(m,n),uyy(m,n),vxx(m,n),vyy(m,n),x(m,n),y(m,n) 1 ,o(m,n),ox(m,n),oy(m,n),oxx(m,n),oyy(m,n) COMMON/aa2/nx,ny,nt,dx,dy,dt,pr,ra,i1,i2,j1,j2 DIMENSION h1(m,n,6),h2(m,n,6),s1(m,n,6),s2(m,n,6),a(5),b(5) DATA a(1),a(2),a(3),a(4),a(5)/0.,-0.41789047,-1.19215169, 1 -1.69778469,-1.51418344/ DATA b(1),b(2),b(3),b(4),b(5)/0.14965902,0.37921031,0.82295502, 1 0.69945045,0.15305724/ do i=2,nx-1 do j=2,ny-1 s1(i,j,1)=u(i,j) s2(i,j,1)=v(i,j) end do end do do k=1,5 call derv1(u,ux,uy) call derv1(v,vx,vy) call derv2(u,uxx,uyy) call derv2(v,vxx,vyy) call derp1(p,px,py) do i=2,nx-1 do j=2,ny-1 h1(i,j,k)=-u(i,j)*ux(i,j)-v(i,j)*uy(i,j)-px(i,j) 1 +(uxx(i,j)+uyy(i,j))*pr/SQRT(ra) h2(i,j,k)=-u(i,j)*vx(i,j)-v(i,j)*vy(i,j)-py(i,j) 1 +(vxx(i,j)+vyy(i,j))*pr/SQRT(ra)+pr*o(i,j) end do end do do i=2,nx-1 do j=2,ny-1 IF(i.le.101.and.j.ge.98.and.j.le.102)then u(i,j)=0. v(i,j)=0 else h1(i,j,k)=h1(i,j,k)+a(k)*h1(i,j,k-1) h2(i,j,k)=h2(i,j,k)+a(k)*h2(i,j,k-1) s1(i,j,k+1)=s1(i,j,k)+b(k)*dt*h1(i,j,k) s2(i,j,k+1)=s2(i,j,k)+b(k)*dt*h2(i,j,k) u(i,j)=s1(i,j,k+1) v(i,j)=s2(i,j,k+1) endif end do end do
51
call derv1(u,ux,uy) call derv1(v,vx,vy) c------------------------------------------------------------------- c Tekananan dihitung dengan artifisial kompresibiliti c------------------------------------------------------------------- do i=2,nx-1 do j=2,ny-1 IF(i.lt.101.and.j.gt.98.and.j.lt.102)then p(i,j)=0 else p(i,j)=p(i,j)-(ux(i,j)+vy(i,j))*dt*0.5 endif end do end do do i=1,nx IF(i.le.101)then j1=1 j2=98 j3=102 j4=ny else j1=1 j2=ny endif p(i,j1)=(48*p(i,j1+1)-36*p(i,j1+2)+16*p(i,j1+3)-3*p(i,j1+4))/25 p(i,j2)=(48*p(i,j2-1)-36*p(i,j2-2)+16*p(i,j2-3)-3*p(i,j2-4))/25 p(i,j3)=(48*p(i,j3+1)-36*p(i,j3+2)+16*p(i,j3+3)-3*p(i,j3+4))/25 p(i,j4)=(48*p(i,j4-1)-36*p(i,j4-2)+16*p(i,j4-3)-3*p(i,j4-4))/25 end do i1=1 i2=nx j1=1 j2=ny do j=1,ny IF(j.ge.98.and.j.le.102)then i1=101 else i1=1 i2=nx endif p(i1,j)=(48*p(i1+1,j)-36*p(i1+2,j)+16*p(i1+3,j)-3*p(i1+4,j))/25 p(i2,j)=(48*p(i2-1,j)-36*p(i2-2,j)+16*p(i2-3,j)-3*p(i2-4,j))/25 enddo call rkt c-----------------------------------------------------------
52
end do return end C-------------------------------------------- C Penyelesaian persamaan energi C------------------------------------------- subroutine rkt PARAMETER(m=500,n=500) COMMON/aa1/u(m,n),v(m,n),p(m,n),ux(m,n),uy(m,n), 1 vx(m,n),vy(m,n),px(m,n),py(m,n), 1 uxx(m,n),uyy(m,n),vxx(m,n),vyy(m,n),x(m,n),y(m,n) 1 ,o(m,n),ox(m,n),oy(m,n),oxx(m,n),oyy(m,n) COMMON/aa2/nx,ny,nt,dx,dy,dt,pr,ra,i1,i2,j1,j2 DIMENSION h(m,n,6),s(m,n,6),a(5),b(5) DATA a(1),a(2),a(3),a(4),a(5)/0.,-0.41789047,-1.19215169, 1 -1.69778469,-1.51418344/ DATA b(1),b(2),b(3),b(4),b(5)/0.14965902,0.37921031,0.82295502, 1 0.69945045,0.15305724/ do i=2,nx-1 do j=2,ny-1 s(i,j,1)=o(i,j) end do end do do k=1,5 call dero1(o,ox,oy) call derv2(o,oxx,oyy) do i=2,nx-1 do j=2,ny-1 IF(i.lt.101.and.j.gt.98.and.j.lt.102)then o(i,j)=0. else h(i,j,k)=-u(i,j)*ox(i,j)-v(i,j)*oy(i,j)+ 1 (oxx(i,j)+oyy(i,j))/SQRT(ra)+a(k)*h(i,j,k-1) s(i,j,k+1)=s(i,j,k)+b(k)*dt*h(i,j,k) o(i,j)=s(i,j,k+1) endif end do end do do i=1,nx IF(i.le.101)then j1=1 j2=98 j3=102 j4=ny
53
o(i,j1)=(48*o(i,j1+1)-36*o(i,j1+2)+16*o(i,j1+3)-3*o(i,j1+4))/25 o(i,j2)=0.5 o(i,j3)=0.5 o(i,j4)=(48*o(i,j4-1)-36*o(i,j4-2)+16*o(i,j4-3)-3*o(i,j4-4))/25 else j1=1 j2=ny o(i,j1)=(48*o(i,j1+1)-36*o(i,j1+2)+16*o(i,j1+3)-3*o(i,j1+4))/25 o(i,j2)=(48*o(i,j2-1)-36*o(i,j2-2)+16*o(i,j2-3)-3*o(i,j2-4))/25 endif end do do j=1,ny IF(j.ge.98.and.j.le.102)then i1=101 else i1=1 i2=nx endif o(i1,j)=0.5 end do i1=1 i2=nx j1=1 j2=ny do i=1,nx do j=1,ny IF(i.lt.101.and.j.gt.98.and.j.lt.102)then o(i,j)=0. endif end do end do end do return end C------------------------------------------ C Turunan pertama variabel kecepatan C------------------------------------------ subroutine derv1(q,qx,qy) COMMON/aa2/nx,ny,nt,dx,dy,dt,pr,ra,i1,i2,j1,j2 COMMON/aa4/a(500),b(500),c(500),d(500),l1,l2 DIMENSION q(500,500),qx(500,500),qy(500,500) alp=0.25 ak=1.5 do j=1,ny IF(j.ge.98.and.j.le.102)then
54
i1=101 else i1=1 i2=nx endif qx(i1,j)=(-3*q(i1+4,j)+16*q(i1+3,j)-36*q(i1+2,j)+48*q(i1+1,j) 1 -25*q(i1,j))/12/dx qx(i2,j)=(3*q(i2-4,j)-16*q(i2-3,j)+36*q(i2-2,j)-48*q(i2-1,j) 1 +25*q(i2,j))/12/dx do 10 i=i1+1,i2-1 a(i)=alp b(i)=1. c(i)=alp 10 d(i)=ak*(q(i+1,j)-q(i-1,j))/2/dx d(i1+1)=d(i1+1)-a(i1+1)*qx(i1,j) a(i1+1)=0. d(i2-1)=d(i2-1)-c(i2-1)*qx(i2,j) c(i2-1)=0. l1=i1+2 l2=i2-1 call tridi do 20 i=i1+1,i2-1 20 qx(i,j)=d(i) enddo do i=1,nx IF(i.le.101)then j1=1 j2=98 j3=102 j4=ny qy(i,j3)=(-3*q(i,j3+4)+16*q(i,j3+3)-36*q(i,j3+2)+48*q(i,j3+1) 1 -25*q(i,j3))/12/dy qy(i,j4)=(3*q(i,j4-4)-16*q(i,j4-3)+36*q(i,j4-2)-48*q(i,j4-1) 1 +25*q(i,j4))/12/dy do 110 j=j3+1,j4-1 a(j)=alp b(j)=1. c(j)=alp 110 d(j)=ak*(q(i,j+1)-q(i,j-1))/2/dy d(j3+1)=d(j3+1)-a(j3+1)*qy(i,j3) a(j3+1)=0. d(j4-1)=d(j4-1)-c(j4-1)*qy(i,j4) c(j4-1)=0. l1=j3+2 l2=j4-1 call tridi do 210 j=j3+1,j4-1
55
210 qy(i,j)=d(j) else j1=1 j2=ny endif qy(i,j1)=(-3*q(i,j1+4)+16*q(i,j1+3)-36*q(i,j1+2)+48*q(i,j1+1) 1 -25*q(i,j1))/12/dy qy(i,j2)=(3*q(i,j2-4)-16*q(i,j2-3)+36*q(i,j2-2)-48*q(i,j2-1) 1 +25*q(i,j2))/12/dy do 11 j=j1+1,j2-1 a(j)=alp b(j)=1. c(j)=alp 11 d(j)=ak*(q(i,j+1)-q(i,j-1))/2/dy d(j1+1)=d(j1+1)-a(j1+1)*qy(i,j1) a(j1+1)=0. d(j2-1)=d(j2-1)-c(j2-1)*qy(i,j2) c(j2-1)=0. l1=j1+2 l2=j2-1 call tridi do 21 j=j1+1,j2-1 21 qy(i,j)=d(j) enddo return end C------------------------------------------ C turunan pertama variabel temperatur C------------------------------------------ subroutine dero1(q,qx,qy) COMMON/aa2/nx,ny,nt,dx,dy,dt,pr,ra,i1,i2,j1,j2 COMMON/aa4/a(500),b(500),c(500),d(500),l1,l2 DIMENSION q(500,500),qx(500,500),qy(500,500) alp=0.25 ak=1.5 do j=1,ny IF(j.ge.98.and.j.le.102)then i1=101 else i1=1 i2=nx endif qx(i1,j)=(-3*q(i1+4,j)+16*q(i1+3,j)-36*q(i1+2,j)+48*q(i1+1,j) 1 -25*q(i1,j))/12/dx
56
qx(i2,j)=(3*q(i2-4,j)-16*q(i2-3,j)+36*q(i2-2,j)-48*q(i2-1,j) 1 +25*q(i2,j))/12/dx do 10 i=i1+1,i2-1 a(i)=alp b(i)=1. c(i)=alp 10 d(i)=ak*(q(i+1,j)-q(i-1,j))/2/dx d(i1+1)=d(i1+1)-a(i1+1)*qx(i1,j) a(i1+1)=0. d(i2-1)=d(i2-1)-c(i2-1)*qx(i2,j) c(i2-1)=0. l1=i1+2 l2=i2-1 call tridi do 20 i=i1+1,i2-1 20 qx(i,j)=d(i) enddo do i=1,nx IF(i.le.101)then j1=1 j2=98 j3=102 j4=ny qy(i,j1)=0. qy(i,j2)=(3*q(i,j2-4)-16*q(i,j2-3)+36*q(i,j2-2)-48*q(i,j2-1) 1 +25*q(i,j2))/12/dy qy(i,j3)=(-3*q(i,j3+4)+16*q(i,j3+3)-36*q(i,j3+2)+48*q(i,j3+1) 1 -25*q(i,j3))/12/dy qy(i,j4)=0. do 110 j=j1+1,j2-1 a(j)=alp b(j)=1. c(j)=alp 110 d(j)=ak*(q(i,j+1)-q(i,j-1))/2/dy d(j1+1)=d(j1+1)-a(j1+1)*qy(i,j1) a(j1+1)=0. d(j2-1)=d(j2-1)-c(j2-1)*qy(i,j2) c(j2-1)=0. l1=j1+2 l2=j2-1 call tridi do 210j=j1+1,j2-1 210 qy(i,j)=d(j) do 111 j=j3+1,j4-1 a(j)=alp b(j)=1.
57
c(j)=alp 111 d(j)=ak*(q(i,j+1)-q(i,j-1))/2/dy d(j3+1)=d(j3+1)-a(j3+1)*qy(i,j3) a(j3+1)=0. d(j4-1)=d(j4-1)-c(j4-1)*qy(i,j4) c(j4-1)=0. l1=j3+2 l2=j4-1 call tridi do 211 j=j3+1,j4-1 211 qy(i,j)=d(j) else j1=1 j2=ny qy(i,j1)=0. qy(i,j2)=0. do 11 j=j1+1,j2-1 a(j)=alp b(j)=1. c(j)=alp 11 d(j)=ak*(q(i,j+1)-q(i,j-1))/2/dy d(j1+1)=d(j1+1)-a(j1+1)*qy(i,j1) a(j1+1)=0. d(j2-1)=d(j2-1)-c(j2-1)*qy(i,j2) c(j2-1)=0. l1=j1+2 l2=j2-1 call tridi do 21 j=j1+1,j2-1 21 qy(i,j)=d(j) endif enddo return end C---------------------------------------- C Turunan pertama variabel tekanan C---------------------------------------- subroutine derp1(q,qx,qy) COMMON/aa2/nx,ny,nt,dx,dy,dt,pr,ra,i1,i2,j1,j2 COMMON/aa4/a(500),b(500),c(500),d(500),l1,l2 DIMENSION q(500,500),qx(500,500),qy(500,500) alp=0.25 ak=1.5 do j=1,ny IF(j.ge.98.and.j.le.102)then
58
i1=101 else i1=1 i2=nx endif qx(i1,j)=0. qx(i2,j)=0. do 10 i=i1+1,i2-1 a(i)=alp b(i)=1. c(i)=alp 10 d(i)=ak*(q(i+1,j)-q(i-1,j))/2/dx d(i1+1)=d(i1+1)-a(i1+1)*qx(i1,j) a(i1+1)=0. d(i2-1)=d(i2-1)-c(i2-1)*qx(i2,j) c(i2-1)=0. l1=i1+2 l2=i2-1 call tridi do 20 i=i1+1,i2-1 20 qx(i,j)=d(i) enddo do i=1,nx IF(i.le.101)then j1=1 j2=98 j3=102 j4=ny qy(i,j3)=0. qy(i,j4)=0. do 110 j=j3+1,j4-1 a(j)=alp b(j)=1. c(j)=alp 110 d(j)=ak*(q(i,j+1)-q(i,j-1))/2/dy d(j3+1)=d(j3+1)-a(j3+1)*qy(i,j3) a(j3+1)=0. d(j4-1)=d(j4-1)-c(j4-1)*qy(i,j4) c(j4-1)=0. l1=j3+2 l2=j4-1 call tridi do 210 j=j3+1,j4-1 210 qy(i,j)=d(j) else j1=1 j2=ny
59
endif qy(i,j1)=0. qy(i,j2)=0. do 11 j=j1+1,j2-1 a(j)=alp b(j)=1. c(j)=alp 11 d(j)=ak*(q(i,j+1)-q(i,j-1))/2/dy d(j1+1)=d(j1+1)-a(j1+1)*qy(i,j1) a(j1+1)=0. d(j2-1)=d(j2-1)-c(j2-1)*qy(i,j2) c(j2-1)=0. l1=j1+2 l2=j2-1 call tridi do 21 j=j1+1,j2-1 21 qy(i,j)=d(j) enddo return end C-------------------------------------------------------- C Turunan kedua variabel kecepatan dan temperatur C-------------------------------------------------------- subroutine derv2(q,qxx,qyy) COMMON/aa2/nx,ny,nt,dx,dy,dt,pr,ra,i1,i2,j1,j2 COMMON/aa4/a(500),b(500),c(500),d(500),l1,l2 DIMENSION q(500,500),qxx(500,500),qyy(500,500) alp=0.1 ak=1.2 do 10 j=2,ny-1 IF(j.ge.98.and.j.le.102)then i1=101 else i1=1 i2=nx endif s1=(13*q(i1,j)-27*q(i1+1,j)+15*q(i1+2,j)-1*q(i1+3,j))/dx/dx s2=(-1*q(i2-3,j)+15*q(i2-2,j)-27*q(i2-1,j)+13*q(i2,j))/dx/dx do 20 i=i1+1,i2-1 a(i)=alp b(i)=1. c(i)=alp 20 d(i)=ak*(q(i+1,j)-2*q(i,j)+q(i-1,j))/dx/dx b(i1+1)=b(i1+1)-11*alp d(i1+1)=d(i1+1)-s1*alp
60
b(i2-1)=b(i2-1)-11*alp d(i2-1)=d(i2-1)-s2*alp l1=i1+2 l2=i2-1 call tridi do 30 i=i1+1,i2-1 30 qxx(i,j)=d(i) qxx(i1,j)=s1-11*qxx(i1+1,j) qxx(i2,j)=s2-11*qxx(i2-1,j) 10 continue do 40 i=1,nx-1 IF(i.le.101)then j1=1 j2=98 j3=102 j4=ny s3=(13*q(i,j3)-27*q(i,j3+1)+15*q(i,j3+2)-q(i,j3+3))/dy/dy s4=(-q(i,j4-3)+15*q(i,j4-2)-27*q(i,j4-1)+13*q(i,j4))/dy/dy do 51 j=j3+1,j4-1 a(j)=alp b(j)=1. c(j)=alp 51 d(j)=ak*(q(i,j+1)-2*q(i,j)+q(i,j-1))/dy/dy b(j3+1)=b(j3+1)-11*alp d(j3+1)=d(j3+1)-s3*alp b(j4-1)=b(j4-1)-11*alp d(j4-1)=d(j4-1)-s4*alp l1=j3+2 l2=j4-1 call tridi do 61 j=j3+1,j4-1 61 qyy(i,j)=d(j) qyy(i,j3)=s1-11*qyy(i,j3+1) qyy(i,j4)=s2-11*qyy(i,j4-1) else j1=1 j2=ny endif s1=(13*q(i,j1)-27*q(i,j1+1)+15*q(i,j1+2)-q(i,j1+3))/dy/dy s2=(-q(i,j2-3)+15*q(i,j2-2)-27*q(i,j2-1)+13*q(i,j2))/dy/dy do 50 j=j1+1,j2-1 a(j)=alp b(j)=1. c(j)=alp 50 d(j)=ak*(q(i,j+1)-2*q(i,j)+q(i,j-1))/dy/dy b(j1+1)=b(j1+1)-11*alp d(j1+1)=d(j1+1)-s1*alp
61
b(j2-1)=b(j2-1)-11*alp d(j2-1)=d(j2-1)-s2*alp l1=j1+2 l2=j2-1 call tridi do 60 j=j1+1,j2-1 60 qyy(i,j)=d(j) qyy(i,j1)=s1-11*qyy(i,j1+1) qyy(i,j2)=s2-11*qyy(i,j2-1) 40 continue return end C------------------------- C Algoritma Thomas C------------------------- SUBROUTINE TRIDI parameter (m=500) COMMON /AA4/A(m),B(m),C(m),D(m),L1,l2 DO 1 I=L1,L2 RT=-A(I)/B(I-1) B(I)=B(I)+RT*C(I-1) 1 D(I)=D(I)+RT*D(I-1) D(L2)=D(L2)/B(L2) DO 2 I=L2-1,L1-1,-1 2 D(I)=(D(I)-C(I)*D(I+1))/B(I) RETURN END C-------------------------- C Hasil perhitungan C-------------------------- subroutine hasil PARAMETER(m=500,n=500) COMMON/aa1/u(m,n),v(m,n),p(m,n),ux(m,n),uy(m,n), 1 vx(m,n),vy(m,n),px(m,n),py(m,n), 1 uxx(m,n),uyy(m,n),vxx(m,n),vyy(m,n),x(m,n),y(m,n) 1 ,o(m,n),ox(m,n),oy(m,n),oxx(m,n),oyy(m,n) COMMON/aa2/nx,ny,nt,dx,dy,dt,pr,ra,i1,i2,j1,j2 WRITE(2,*)NX WRITE(2,*)NY do 10 j=1,ny do 10 i=1,nx WRITE(3,*)x(i,j),y(i,j),u(i,j),v(i,j)!,p(i,j) 10 WRITE(4,*)x(i,j),y(i,j),o(i,j) return end
62
Lampiran 6. Program Konveksi Alami Pada 2 Sirip C------------------------------------------------------------------- C Program penyelesaian konveksi alami pada 2 sirip C------------------------------------------------------------------- PARAMETER(m=500,n=500) COMMON/aa1/u(m,n),v(m,n),p(m,n),ux(m,n),uy(m,n), 1 vx(m,n),vy(m,n),px(m,n),py(m,n), 1 uxx(m,n),uyy(m,n),vxx(m,n),vyy(m,n),x(m,n),y(m,n) 1 ,o(m,n),ox(m,n),oy(m,n),oxx(m,n),oyy(m,n) COMMON/aa2/nx,ny,nt,dx,dy,dt,pr,ra,i1,i2,j1,j2 OPEN(8,FILE='C:\matlab6p1\work\temp1') OPEN(7,FILE='C:\matlab6p1\work\pv1') OPEN(4,FILE='C:\matlab6p1\work\temp') OPEN(3,FILE='C:\matlab6p1\work\pv') OPEN(2,FILE='C:\matlab6p1\work\num') OPEN(1,FILE='C:\matlab6p1\work\div') call awal do k=1,nt ck=0. call rkv do i=1,nx do j=1,ny ck=ck+abs(ux(i,j)+vy(i,j)) end do end do if(ck.gt.0) then WRITE(*,*)k,LOG10(ck/nx/ny) WRITE(1,*)k,LOG10(ck/nx/ny) endif end do call hasil stop end C------------------------------------- C Syarat awal dan syarat batas C------------------------------------- subroutine awal PARAMETER(m=500,n=500) CHARACTER mul*2 COMMON/aa1/u(m,n),v(m,n),p(m,n),ux(m,n),uy(m,n), 1 vx(m,n),vy(m,n),px(m,n),py(m,n), 1 uxx(m,n),uyy(m,n),vxx(m,n),vyy(m,n),x(m,n),y(m,n) 1 ,o(m,n),ox(m,n),oy(m,n),oxx(m,n),oyy(m,n) COMMON/aa2/nx,ny,nt,dx,dy,dt,pr,ra,i1,i2,j1,j2 WRITE(*,*)' t= ' READ(*,*)tt nx=201 ny=201
63
i1=1 i2=nx j1=1 j2=ny dx=1./200. dy=1./200. dt=0.0025 nt=tt/dt+1 pr=0.71 ra=10000000. WRITE(*,*)' Dari awal ?' READ(*,'(a)')mul IF(mul.eq.'y')then do i=1,nx do j=1,ny x(i,j)=(i-1)*dx y(i,j)=(j-1)*dy u(i,j)=0. v(i,j)=0. p(i,j)=0. o(i,j)=0. enddo enddo do j=1,ny o(1,j)=0.5 o(nx,j)=-0.5 enddo else do j=1,ny do i=1,nx READ(7,*)x(i,j),y(i,j),u(i,j),v(i,j),p(i,j) READ(8,*)x(i,j),y(i,j),o(i,j) end do end do end if return end C----------------------------------------------- C Penyelesaian persamaan Navier - Stokes C----------------------------------------------- subroutine rkv PARAMETER(m=500,n=500) COMMON/aa1/u(m,n),v(m,n),p(m,n),ux(m,n),uy(m,n), 1 vx(m,n),vy(m,n),px(m,n),py(m,n),
64
1 uxx(m,n),uyy(m,n),vxx(m,n),vyy(m,n),x(m,n),y(m,n) 1 ,o(m,n),ox(m,n),oy(m,n),oxx(m,n),oyy(m,n) COMMON/aa2/nx,ny,nt,dx,dy,dt,pr,ra,i1,i2,j1,j2 DIMENSION h1(m,n,6),h2(m,n,6),s1(m,n,6),s2(m,n,6),a(5),b(5) DATA a(1),a(2),a(3),a(4),a(5)/0.,-0.41789047,-1.19215169, 1 -1.69778469,-1.51418344/ DATA b(1),b(2),b(3),b(4),b(5)/0.14965902,0.37921031,0.82295502, 1 0.69945045,0.15305724/ do i=2,nx-1 do j=2,ny-1 s1(i,j,1)=u(i,j) s2(i,j,1)=v(i,j) end do end do do k=1,5 call derv1(u,ux,uy) call derv1(v,vx,vy) call derv2(u,uxx,uyy) call derv2(v,vxx,vyy) call derp1(p,px,py) do i=2,nx-1 do j=2,ny-1 h1(i,j,k)=-u(i,j)*ux(i,j)-v(i,j)*uy(i,j)-px(i,j) 1 +(uxx(i,j)+uyy(i,j))*pr/SQRT(ra) h2(i,j,k)=-u(i,j)*vx(i,j)-v(i,j)*vy(i,j)-py(i,j) 1 +(vxx(i,j)+vyy(i,j))*pr/SQRT(ra)+pr*o(i,j) end do end do do i=2,nx-1 do j=2,ny-1 IF(i.le.101.and.j.ge.65.and.j.le.69)then u(i,j)=0. v(i,j)=0 ELSEIF(i.le.101.and.j.ge.131.and.j.le.135)then u(i,j)=0. v(i,j)=0 else h1(i,j,k)=h1(i,j,k)+a(k)*h1(i,j,k-1) h2(i,j,k)=h2(i,j,k)+a(k)*h2(i,j,k-1) s1(i,j,k+1)=s1(i,j,k)+b(k)*dt*h1(i,j,k) s2(i,j,k+1)=s2(i,j,k)+b(k)*dt*h2(i,j,k) u(i,j)=s1(i,j,k+1) v(i,j)=s2(i,j,k+1) endif end do
65
end do call derv1(u,ux,uy) call derv1(v,vx,vy) c----------------------------------------------------------- c Tekananan dihitung dengan artifisial kompresibiliti c----------------------------------------------------------- do i=2,nx-1 do j=2,ny-1 IF(i.lt.101.and.j.gt.65.and.j.lt.69)then p(i,j)=0 ELSEIF(i.lt.101.and.j.gt.131.and.j.lt.135)then p(i,j)=0 else p(i,j)=p(i,j)-(ux(i,j)+vy(i,j))*dt*0.5 endif end do end do do i=1,nx IF(i.le.101)then j1=1 j2=65 j3=69 j4=131 j5=135 j6=ny else j1=1 j2=ny endif p(i,j1)=(48*p(i,j1+1)-36*p(i,j1+2)+16*p(i,j1+3)-3*p(i,j1+4))/25 p(i,j2)=(48*p(i,j2-1)-36*p(i,j2-2)+16*p(i,j2-3)-3*p(i,j2-4))/25 p(i,j3)=(48*p(i,j3+1)-36*p(i,j3+2)+16*p(i,j3+3)-3*p(i,j3+4))/25 p(i,j4)=(48*p(i,j4-1)-36*p(i,j4-2)+16*p(i,j4-3)-3*p(i,j4-4))/25 p(i,j5)=(48*p(i,j5+1)-36*p(i,j5+2)+16*p(i,j5+3)-3*p(i,j5+4))/25 p(i,j6)=(48*p(i,j6-1)-36*p(i,j6-2)+16*p(i,j6-3)-3*p(i,j6-4))/25 end do i1=1 i2=nx j1=1 j2=ny do j=1,ny IF(j.ge.65.and.j.le.69)then i1=101 elseif(j.ge.131.and.j.le.135)then i1=101 else i1=1
66
i2=nx endif p(i1,j)=(48*p(i1+1,j)-36*p(i1+2,j)+16*p(i1+3,j)-3*p(i1+4,j))/25 p(i2,j)=(48*p(i2-1,j)-36*p(i2-2,j)+16*p(i2-3,j)-3*p(i2-4,j))/25 enddo call rkt c----------------------------------------------------------- end do return end C---------------------------------------- C Penyelesaian persamaan energi C---------------------------------------- subroutine rkt PARAMETER(m=500,n=500) COMMON/aa1/u(m,n),v(m,n),p(m,n),ux(m,n),uy(m,n), 1 vx(m,n),vy(m,n),px(m,n),py(m,n), 1 uxx(m,n),uyy(m,n),vxx(m,n),vyy(m,n),x(m,n),y(m,n) 1 ,o(m,n),ox(m,n),oy(m,n),oxx(m,n),oyy(m,n) COMMON/aa2/nx,ny,nt,dx,dy,dt,pr,ra,i1,i2,j1,j2 DIMENSION h(m,n,6),s(m,n,6),a(5),b(5) DATA a(1),a(2),a(3),a(4),a(5)/0.,-0.41789047,-1.19215169, 1 -1.69778469,-1.51418344/ DATA b(1),b(2),b(3),b(4),b(5)/0.14965902,0.37921031,0.82295502, 1 0.69945045,0.15305724/ do i=2,nx-1 do j=2,ny-1 s(i,j,1)=o(i,j) end do end do do k=1,5 call dero1(o,ox,oy) call derv2(o,oxx,oyy) do i=2,nx-1 do j=2,ny-1 IF(i.lt.101.and.j.gt.65.and.j.lt.69)then o(i,j)=0. ELSEIF(i.lt.101.and.j.gt.131.and.j.lt.135)then o(i,j)=0. else h(i,j,k)=-u(i,j)*ox(i,j)-v(i,j)*oy(i,j)+ 1 (oxx(i,j)+oyy(i,j))/SQRT(ra)+a(k)*h(i,j,k-1)
67
s(i,j,k+1)=s(i,j,k)+b(k)*dt*h(i,j,k) o(i,j)=s(i,j,k+1) endif end do end do do i=1,nx IF(i.le.101)then j1=1 j2=65 j3=69 j4=131 j5=135 j6=ny o(i,j1)=(48*o(i,j1+1)-36*o(i,j1+2)+16*o(i,j1+3)-3*o(i,j1+4))/25 o(i,j2)=0.5 o(i,j3)=0.5 o(i,j4)=0.5 o(i,j5)=0.5 o(i,j6)=(48*o(i,j6-1)-36*o(i,j6-2)+16*o(i,j6-3)-3*o(i,j6-4))/25 else j1=1 j2=ny o(i,j1)=(48*o(i,j1+1)-36*o(i,j1+2)+16*o(i,j1+3)-3*o(i,j1+4))/25 o(i,j2)=(48*o(i,j2-1)-36*o(i,j2-2)+16*o(i,j2-3)-3*o(i,j2-4))/25 endif end do do j=1,ny IF(j.ge.65.and.j.le.69)then i1=101 elseif(j.ge.131.and.j.le.135)then i1=101 else i1=1 i2=nx endif o(i1,j)=0.5 end do i1=1 i2=nx j1=1 j2=ny do i=1,nx do j=1,ny IF(i.lt.101.and.j.gt.65.and.j.lt.69)then o(i,j)=0. ELSEIF(i.lt.101.and.j.gt.131.and.j.lt.135)then
68
o(i,j)=0. endif end do end do end do return end C------------------------------------------ C Turunan pertama variabel kecepatan C------------------------------------------ subroutine derv1(q,qx,qy) COMMON/aa2/nx,ny,nt,dx,dy,dt,pr,ra,i1,i2,j1,j2 COMMON/aa4/a(500),b(500),c(500),d(500),l1,l2 DIMENSION q(500,500),qx(500,500),qy(500,500) alp=0.25 ak=1.5 do j=1,ny IF(j.ge.65.and.j.le.69)then i1=101 elseif(j.ge.131.and.j.le.135)then i1=101 else i1=1 i2=nx endif qx(i1,j)=(-3*q(i1+4,j)+16*q(i1+3,j)-36*q(i1+2,j)+48*q(i1+1,j) 1 -25*q(i1,j))/12/dx qx(i2,j)=(3*q(i2-4,j)-16*q(i2-3,j)+36*q(i2-2,j)-48*q(i2-1,j) 1 +25*q(i2,j))/12/dx do 10 i=i1+1,i2-1 a(i)=alp b(i)=1. c(i)=alp 10 d(i)=ak*(q(i+1,j)-q(i-1,j))/2/dx d(i1+1)=d(i1+1)-a(i1+1)*qx(i1,j) a(i1+1)=0. d(i2-1)=d(i2-1)-c(i2-1)*qx(i2,j) c(i2-1)=0. l1=i1+2 l2=i2-1 call tridi do 20 i=i1+1,i2-1 20 qx(i,j)=d(i) enddo
69
do i=1,nx IF(i.le.101)then j1=1 j2=65 j3=69 j4=131 j5=135 j6=ny qy(i,j3)=(-3*q(i,j3+4)+16*q(i,j3+3)-36*q(i,j3+2)+48*q(i,j3+1) 1 -25*q(i,j3))/12/dy qy(i,j4)=(3*q(i,j4-4)-16*q(i,j4-3)+36*q(i,j4-2)-48*q(i,j4-1) 1 +25*q(i,j4))/12/dy do 110 j=j3+1,j4-1 a(j)=alp b(j)=1. c(j)=alp 110 d(j)=ak*(q(i,j+1)-q(i,j-1))/2/dy d(j3+1)=d(j3+1)-a(j3+1)*qy(i,j3) a(j3+1)=0. d(j4-1)=d(j4-1)-c(j4-1)*qy(i,j4) c(j4-1)=0. l1=j3+2 l2=j4-1 call tridi do 210 j=j3+1,j4-1 210 qy(i,j)=d(j) qy(i,j5)=(-3*q(i,j5+4)+16*q(i,j5+3)-36*q(i,j5+2)+48*q(i,j5+1) 1 -25*q(i,j5))/12/dy qy(i,j6)=(3*q(i,j6-4)-16*q(i,j6-3)+36*q(i,j6-2)-48*q(i,j6-1) 1 +25*q(i,j6))/12/dy do 222 j=j5+1,j6-1 a(j)=alp b(j)=1. c(j)=alp 222 d(j)=ak*(q(i,j+1)-q(i,j-1))/2/dy d(j5+1)=d(j5+1)-a(j5+1)*qy(i,j5) a(j5+1)=0. d(j6-1)=d(j6-1)-c(j6-1)*qy(i,j6) c(j6-1)=0. l1=j5+2 l2=j6-1 call tridi do 322 j=j5+1,j6-1 322 qy(i,j)=d(j) else j1=1
70
j2=ny endif qy(i,j1)=(-3*q(i,j1+4)+16*q(i,j1+3)-36*q(i,j1+2)+48*q(i,j1+1) 1 -25*q(i,j1))/12/dy qy(i,j2)=(3*q(i,j2-4)-16*q(i,j2-3)+36*q(i,j2-2)-48*q(i,j2-1) 1 +25*q(i,j2))/12/dy do 11 j=j1+1,j2-1 a(j)=alp b(j)=1. c(j)=alp 11 d(j)=ak*(q(i,j+1)-q(i,j-1))/2/dy d(j1+1)=d(j1+1)-a(j1+1)*qy(i,j1) a(j1+1)=0. d(j2-1)=d(j2-1)-c(j2-1)*qy(i,j2) c(j2-1)=0. l1=j1+2 l2=j2-1 call tridi do 21 j=j1+1,j2-1 21 qy(i,j)=d(j) enddo return end C------------------------------------------ C turunan pertama variabel temperatur C------------------------------------------ subroutine dero1(q,qx,qy) COMMON/aa2/nx,ny,nt,dx,dy,dt,pr,ra,i1,i2,j1,j2 COMMON/aa4/a(500),b(500),c(500),d(500),l1,l2 DIMENSION q(500,500),qx(500,500),qy(500,500) alp=0.25 ak=1.5 do j=1,ny IF(j.ge.65.and.j.le.69)then i1=101 elseif(j.ge.131.and.j.le.135)then i1=101 else i1=1 i2=nx endif qx(i1,j)=(-3*q(i1+4,j)+16*q(i1+3,j)-36*q(i1+2,j)+48*q(i1+1,j) 1 -25*q(i1,j))/12/dx
71
qx(i2,j)=(3*q(i2-4,j)-16*q(i2-3,j)+36*q(i2-2,j)-48*q(i2-1,j) 1 +25*q(i2,j))/12/dx do 10 i=i1+1,i2-1 a(i)=alp b(i)=1. c(i)=alp 10 d(i)=ak*(q(i+1,j)-q(i-1,j))/2/dx d(i1+1)=d(i1+1)-a(i1+1)*qx(i1,j) a(i1+1)=0. d(i2-1)=d(i2-1)-c(i2-1)*qx(i2,j) c(i2-1)=0. l1=i1+2 l2=i2-1 call tridi do 20 i=i1+1,i2-1 20 qx(i,j)=d(i) enddo do i=1,nx IF(i.le.101)then j1=1 j2=65 j3=69 j4=131 j5=135 j6=ny qy(i,j1)=0. qy(i,j2)=(3*q(i,j2-4)-16*q(i,j2-3)+36*q(i,j2-2)-48*q(i,j2-1) 1 +25*q(i,j2))/12/dy qy(i,j3)=(-3*q(i,j3+4)+16*q(i,j3+3)-36*q(i,j3+2)+48*q(i,j3+1) 1 -25*q(i,j3))/12/dy qy(i,j4)=(3*q(i,j4-4)-16*q(i,j4-3)+36*q(i,j4-2)-48*q(i,j4-1) 1 +25*q(i,j4))/12/dy qy(i,j5)=(-3*q(i,j5+4)+16*q(i,j5+3)-36*q(i,j5+2)+48*q(i,j5+1) 1 -25*q(i,j5))/12/dy qy(i,j6)=0. do 110 j=j1+1,j2-1 a(j)=alp b(j)=1. c(j)=alp 110 d(j)=ak*(q(i,j+1)-q(i,j-1))/2/dy d(j1+1)=d(j1+1)-a(j1+1)*qy(i,j1) a(j1+1)=0. d(j2-1)=d(j2-1)-c(j2-1)*qy(i,j2) c(j2-1)=0. l1=j1+2 l2=j2-1
72
call tridi do 210j=j1+1,j2-1 210 qy(i,j)=d(j) do 111 j=j3+1,j4-1 a(j)=alp b(j)=1. c(j)=alp 111 d(j)=ak*(q(i,j+1)-q(i,j-1))/2/dy d(j3+1)=d(j3+1)-a(j3+1)*qy(i,j3) a(j3+1)=0. d(j4-1)=d(j4-1)-c(j4-1)*qy(i,j4) c(j4-1)=0. l1=j3+2 l2=j4-1 call tridi do 211 j=j3+1,j4-1 211 qy(i,j)=d(j) do 345 j=j5+1,j6-1 a(j)=alp b(j)=1. c(j)=alp 345 d(j)=ak*(q(i,j+1)-q(i,j-1))/2/dy d(j5+1)=d(j5+1)-a(j5+1)*qy(i,j5) a(j5+1)=0. d(j6-1)=d(j6-1)-c(j6-1)*qy(i,j6) c(j6-1)=0. l1=j5+2 l2=j6-1 call tridi do 789 j=j5+1,j6-1 789 qy(i,j)=d(j) else j1=1 j2=ny qy(i,j1)=0. qy(i,j2)=0. do 11 j=j1+1,j2-1 a(j)=alp b(j)=1. c(j)=alp 11 d(j)=ak*(q(i,j+1)-q(i,j-1))/2/dy d(j1+1)=d(j1+1)-a(j1+1)*qy(i,j1) a(j1+1)=0. d(j2-1)=d(j2-1)-c(j2-1)*qy(i,j2) c(j2-1)=0. l1=j1+2
73
l2=j2-1 call tridi do 21 j=j1+1,j2-1 21 qy(i,j)=d(j) endif enddo return end C---------------------------------------- C Turunan pertama variabel tekanan C---------------------------------------- subroutine derp1(q,qx,qy) COMMON/aa2/nx,ny,nt,dx,dy,dt,pr,ra,i1,i2,j1,j2 COMMON/aa4/a(500),b(500),c(500),d(500),l1,l2 DIMENSION q(500,500),qx(500,500),qy(500,500) alp=0.25 ak=1.5 do j=1,ny IF(j.ge.65.and.j.le.69)then i1=101 elseif(j.ge.131.and.j.le.135)then i1=101 else i1=1 i2=nx endif qx(i1,j)=0. qx(i2,j)=0. do 10 i=i1+1,i2-1 a(i)=alp b(i)=1. c(i)=alp 10 d(i)=ak*(q(i+1,j)-q(i-1,j))/2/dx d(i1+1)=d(i1+1)-a(i1+1)*qx(i1,j) a(i1+1)=0. d(i2-1)=d(i2-1)-c(i2-1)*qx(i2,j) c(i2-1)=0. l1=i1+2 l2=i2-1 call tridi do 20 i=i1+1,i2-1 20 qx(i,j)=d(i) enddo do i=1,nx
74
IF(i.le.101)then j1=1 j2=65 j3=69 j4=131 j5=135 j6=ny qy(i,j3)=0. qy(i,j4)=0. do 110 j=j3+1,j4-1 a(j)=alp b(j)=1. c(j)=alp 110 d(j)=ak*(q(i,j+1)-q(i,j-1))/2/dy d(j3+1)=d(j3+1)-a(j3+1)*qy(i,j3) a(j3+1)=0. d(j4-1)=d(j4-1)-c(j4-1)*qy(i,j4) c(j4-1)=0. l1=j3+2 l2=j4-1 call tridi do 210 j=j3+1,j4-1 210 qy(i,j)=d(j) qy(i,j5)=0. qy(i,j6)=0. do 222 j=j5+1,j6-1 a(j)=alp b(j)=1. c(j)=alp 222 d(j)=ak*(q(i,j+1)-q(i,j-1))/2/dy d(j5+1)=d(j5+1)-a(j5+1)*qy(i,j5) a(j5+1)=0. d(j6-1)=d(j6-1)-c(j6-1)*qy(i,j6) c(j6-1)=0. l1=j5+2 l2=j6-1 call tridi do 322 j=j5+1,j6-1 322 qy(i,j)=d(j) else j1=1 j2=ny endif qy(i,j1)=0.
75
qy(i,j2)=0. do 11 j=j1+1,j2-1 a(j)=alp b(j)=1. c(j)=alp 11 d(j)=ak*(q(i,j+1)-q(i,j-1))/2/dy d(j1+1)=d(j1+1)-a(j1+1)*qy(i,j1) a(j1+1)=0. d(j2-1)=d(j2-1)-c(j2-1)*qy(i,j2) c(j2-1)=0. l1=j1+2 l2=j2-1 call tridi do 21 j=j1+1,j2-1 21 qy(i,j)=d(j) enddo return end C-------------------------------------------------------- C Turunan kedua variabel kecepatan dan temperatur C-------------------------------------------------------- subroutine derv2(q,qxx,qyy) COMMON/aa2/nx,ny,nt,dx,dy,dt,pr,ra,i1,i2,j1,j2 COMMON/aa4/a(500),b(500),c(500),d(500),l1,l2 DIMENSION q(500,500),qxx(500,500),qyy(500,500) alp=0.1 ak=1.2 do 10 j=2,ny-1 IF(j.ge.65.and.j.le.69)then i1=101 elseif(j.ge.131.and.j.le.135)then i1=101 else i1=1 i2=nx endif s1=(13*q(i1,j)-27*q(i1+1,j)+15*q(i1+2,j)-1*q(i1+3,j))/dx/dx s2=(-1*q(i2-3,j)+15*q(i2-2,j)-27*q(i2-1,j)+13*q(i2,j))/dx/dx do 20 i=i1+1,i2-1 a(i)=alp b(i)=1. c(i)=alp 20 d(i)=ak*(q(i+1,j)-2*q(i,j)+q(i-1,j))/dx/dx b(i1+1)=b(i1+1)-11*alp d(i1+1)=d(i1+1)-s1*alp
76
b(i2-1)=b(i2-1)-11*alp d(i2-1)=d(i2-1)-s2*alp l1=i1+2 l2=i2-1 call tridi do 30 i=i1+1,i2-1 30 qxx(i,j)=d(i) qxx(i1,j)=s1-11*qxx(i1+1,j) qxx(i2,j)=s2-11*qxx(i2-1,j) 10 continue do 40 i=1,nx-1 IF(i.le.101)then j1=1 j2=65 j3=69 j4=131 j5=135 j6=ny s3=(13*q(i,j3)-27*q(i,j3+1)+15*q(i,j3+2)-q(i,j3+3))/dy/dy s4=(-q(i,j4-3)+15*q(i,j4-2)-27*q(i,j4-1)+13*q(i,j4))/dy/dy do 51 j=j3+1,j4-1 a(j)=alp b(j)=1. c(j)=alp 51 d(j)=ak*(q(i,j+1)-2*q(i,j)+q(i,j-1))/dy/dy b(j3+1)=b(j3+1)-11*alp d(j3+1)=d(j3+1)-s3*alp b(j4-1)=b(j4-1)-11*alp d(j4-1)=d(j4-1)-s4*alp l1=j3+2 l2=j4-1 call tridi do 61 j=j3+1,j4-1 61 qyy(i,j)=d(j) qyy(i,j3)=s1-11*qyy(i,j3+1) qyy(i,j4)=s2-11*qyy(i,j4-1) s5=(13*q(i,j5)-27*q(i,j5+1)+15*q(i,j5+2)-q(i,j5+3))/dy/dy s6=(-q(i,j6-3)+15*q(i,j6-2)-27*q(i,j6-1)+13*q(i,j6))/dy/dy do 71 j=j5+1,j6-1 a(j)=alp b(j)=1. c(j)=alp 71 d(j)=ak*(q(i,j+1)-2*q(i,j)+q(i,j-1))/dy/dy b(j5+1)=b(j5+1)-11*alp d(j5+1)=d(j5+1)-s5*alp b(j6-1)=b(j6-1)-11*alp
77
d(j6-1)=d(j6-1)-s6*alp l1=j5+2 l2=j6-1 call tridi do 81 j=j5+1,j6-1 81 qyy(i,j)=d(j) qyy(i,j5)=s1-11*qyy(i,j5+1) qyy(i,j6)=s2-11*qyy(i,j6-1) else j1=1 j2=ny endif s1=(13*q(i,j1)-27*q(i,j1+1)+15*q(i,j1+2)-q(i,j1+3))/dy/dy s2=(-q(i,j2-3)+15*q(i,j2-2)-27*q(i,j2-1)+13*q(i,j2))/dy/dy do 50 j=j1+1,j2-1 a(j)=alp b(j)=1. c(j)=alp 50 d(j)=ak*(q(i,j+1)-2*q(i,j)+q(i,j-1))/dy/dy b(j1+1)=b(j1+1)-11*alp d(j1+1)=d(j1+1)-s1*alp b(j2-1)=b(j2-1)-11*alp d(j2-1)=d(j2-1)-s2*alp l1=j1+2 l2=j2-1 call tridi do 60 j=j1+1,j2-1 60 qyy(i,j)=d(j) qyy(i,j1)=s1-11*qyy(i,j1+1) qyy(i,j2)=s2-11*qyy(i,j2-1) 40 continue return end C------------------------- C Algoritma Thomas C------------------------- SUBROUTINE TRIDI parameter (m=500) COMMON /AA4/A(m),B(m),C(m),D(m),L1,l2 DO 1 I=L1,L2 RT=-A(I)/B(I-1) B(I)=B(I)+RT*C(I-1) 1 D(I)=D(I)+RT*D(I-1) D(L2)=D(L2)/B(L2) DO 2 I=L2-1,L1-1,-1
78
2 D(I)=(D(I)-C(I)*D(I+1))/B(I) RETURN END C-------------------------- C Hasil perhitungan C-------------------------- subroutine hasil PARAMETER(m=500,n=500) COMMON/aa1/u(m,n),v(m,n),p(m,n),ux(m,n),uy(m,n), 1 vx(m,n),vy(m,n),px(m,n),py(m,n), 1 uxx(m,n),uyy(m,n),vxx(m,n),vyy(m,n),x(m,n),y(m,n) 1 ,o(m,n),ox(m,n),oy(m,n),oxx(m,n),oyy(m,n) COMMON/aa2/nx,ny,nt,dx,dy,dt,pr,ra,i1,i2,j1,j2 WRITE(2,*)NX WRITE(2,*)NY do 10 j=1,ny do 10 i=1,nx WRITE(3,*)x(i,j),y(i,j),u(i,j),v(i,j)!,p(i,j) 10 WRITE(4,*)x(i,j),y(i,j),o(i,j) return end
79
Lampiran 7. Program Konveksi Alami Pada 3 Sirip C------------------------------------------------------------------- C Program penyelesaian konveksi alami pada 3 sirip C------------------------------------------------------------------- PARAMETER(m=500,n=500) COMMON/aa1/u(m,n),v(m,n),p(m,n),ux(m,n),uy(m,n), 1 vx(m,n),vy(m,n),px(m,n),py(m,n), 1 uxx(m,n),uyy(m,n),vxx(m,n),vyy(m,n),x(m,n),y(m,n) 1 ,o(m,n),ox(m,n),oy(m,n),oxx(m,n),oyy(m,n) COMMON/aa2/nx,ny,nt,dx,dy,dt,pr,ra,i1,i2,j1,j2 OPEN(8,FILE='C:\matlab6p1\work\temp1') OPEN(7,FILE='C:\matlab6p1\work\pv1') OPEN(4,FILE='C:\matlab6p1\work\temp') OPEN(3,FILE='C:\matlab6p1\work\pv') OPEN(2,FILE='C:\matlab6p1\work\num') OPEN(1,FILE='C:\matlab6p1\work\div') call awal do k=1,nt ck=0. call rkv do i=1,nx do j=1,ny ck=ck+abs(ux(i,j)+vy(i,j)) end do end do if(ck.gt.0) then WRITE(*,*)k,LOG10(ck/nx/ny) WRITE(1,*)k,LOG10(ck/nx/ny) endif end do call hasil stop end C---------------------------------------- C Syarat awal dan syarat batas C---------------------------------------- subroutine awal PARAMETER(m=500,n=500) CHARACTER mul*2 COMMON/aa1/u(m,n),v(m,n),p(m,n),ux(m,n),uy(m,n), 1 vx(m,n),vy(m,n),px(m,n),py(m,n), 1 uxx(m,n),uyy(m,n),vxx(m,n),vyy(m,n),x(m,n),y(m,n) 1 ,o(m,n),ox(m,n),oy(m,n),oxx(m,n),oyy(m,n) COMMON/aa2/nx,ny,nt,dx,dy,dt,pr,ra,i1,i2,j1,j2 WRITE(*,*)' t= '
80
READ(*,*)tt nx=201 ny=201 i1=1 i2=nx j1=1 j2=ny dx=1./200. dy=1./200. dt=0.0025 nt=tt/dt+1 pr=0.71 ra=10000000. WRITE(*,*)' Dari awal ?' READ(*,'(a)')mul IF(mul.eq.'y')then do i=1,nx do j=1,ny x(i,j)=(i-1)*dx y(i,j)=(j-1)*dy u(i,j)=0. v(i,j)=0. p(i,j)=0. o(i,j)=0. enddo enddo do j=1,ny o(1,j)=0.5 o(nx,j)=-0.5 enddo else do j=1,ny do i=1,nx READ(7,*)x(i,j),y(i,j),u(i,j),v(i,j),p(i,j) READ(8,*)x(i,j),y(i,j),o(i,j) end do end do end if return end C-------------------------------------------------------- C Penyelesaian persamaan Navier - Stokes C-------------------------------------------------------- subroutine rkv PARAMETER(m=500,n=500)
81
COMMON/aa1/u(m,n),v(m,n),p(m,n),ux(m,n),uy(m,n), 1 vx(m,n),vy(m,n),px(m,n),py(m,n), 1 uxx(m,n),uyy(m,n),vxx(m,n),vyy(m,n),x(m,n),y(m,n) 1 ,o(m,n),ox(m,n),oy(m,n),oxx(m,n),oyy(m,n) COMMON/aa2/nx,ny,nt,dx,dy,dt,pr,ra,i1,i2,j1,j2 DIMENSION h1(m,n,6),h2(m,n,6),s1(m,n,6),s2(m,n,6),a(5),b(5) DATA a(1),a(2),a(3),a(4),a(5)/0.,-0.75789047,-1.19215169, 1 -1.69778469,-1.51418344/ DATA b(1),b(2),b(3),b(4),b(5)/0.14965902,0.37921031,0.82295502, 1 0.69945045,0.15305724/ do i=2,nx-1 do j=2,ny-1 s1(i,j,1)=u(i,j) s2(i,j,1)=v(i,j) end do end do do k=1,5 call derv1(u,ux,uy) call derv1(v,vx,vy) call derv2(u,uxx,uyy) call derv2(v,vxx,vyy) call derp1(p,px,py) do i=2,nx-1 do j=2,ny-1 h1(i,j,k)=-u(i,j)*ux(i,j)-v(i,j)*uy(i,j)-px(i,j) 1 +(uxx(i,j)+uyy(i,j))*pr/SQRT(ra) h2(i,j,k)=-u(i,j)*vx(i,j)-v(i,j)*vy(i,j)-py(i,j) 1 +(vxx(i,j)+vyy(i,j))*pr/SQRT(ra)+pr*o(i,j) end do end do do i=2,nx-1 do j=2,ny-1 IF(i.le.101.and.j.ge.48.and.j.le.52)then u(i,j)=0. v(i,j)=0 ELSEIF (i.le.101.and.j.ge.98.and.j.le.102)then u(i,j)=0. v(i,j)=0 ELSEIF(i.le.101.and.j.ge.148.and.j.le.152)then u(i,j)=0. v(i,j)=0 else h1(i,j,k)=h1(i,j,k)+a(k)*h1(i,j,k-1) h2(i,j,k)=h2(i,j,k)+a(k)*h2(i,j,k-1) s1(i,j,k+1)=s1(i,j,k)+b(k)*dt*h1(i,j,k)
82
s2(i,j,k+1)=s2(i,j,k)+b(k)*dt*h2(i,j,k) u(i,j)=s1(i,j,k+1) v(i,j)=s2(i,j,k+1) endif end do end do call derv1(u,ux,uy) call derv1(v,vx,vy) c----------------------------------------------------------- c Tekananan dihitung dengan artifisial kompresibiliti c----------------------------------------------------------- do i=2,nx-1 do j=2,ny-1 IF(i.lt.101.and.j.gt.48.and.j.lt.52)then p(i,j)=0 ELSEIF (i.lt.101.and.j.gt.98.and.j.lt.102)then p(i,j)=0 ELSEIF(i.lt.101.and.j.gt.148.and.j.lt.152)then p(i,j)=0 else p(i,j)=p(i,j)-(ux(i,j)+vy(i,j))*dt*0.5 endif end do end do do i=1,nx IF(i.le.101)then j1=1 j2=48 j3=52 j4=98 j5=102 j6=148 j7=152 j8=ny else j1=1 j2=ny endif p(i,j1)=(48*p(i,j1+1)-36*p(i,j1+2)+16*p(i,j1+3)-3*p(i,j1+4))/25 p(i,j2)=(48*p(i,j2-1)-36*p(i,j2-2)+16*p(i,j2-3)-3*p(i,j2-4))/25 p(i,j3)=(48*p(i,j3+1)-36*p(i,j3+2)+16*p(i,j3+3)-3*p(i,j3+4))/25 p(i,j4)=(48*p(i,j4-1)-36*p(i,j4-2)+16*p(i,j4-3)-3*p(i,j4-4))/25 p(i,j5)=(48*p(i,j5+1)-36*p(i,j5+2)+16*p(i,j5+3)-3*p(i,j5+4))/25 p(i,j6)=(48*p(i,j6-1)-36*p(i,j6-2)+16*p(i,j6-3)-3*p(i,j6-4))/25 p(i,j7)=(48*p(i,j7+1)-36*p(i,j7+2)+16*p(i,j7+3)-3*p(i,j7+4))/25 p(i,j8)=(48*p(i,j8-1)-36*p(i,j8-2)+16*p(i,j8-3)-3*p(i,j8-4))/25
83
end do i1=1 i2=nx j1=1 j2=ny do j=1,ny IF(j.ge.48.and.j.le.52)then i1=101 elseif(j.ge.98.and.j.le.102)then i1=101 elseif(j.ge.148.and.j.le.152)then i1=101 else i1=1 i2=nx endif p(i1,j)=(48*p(i1+1,j)-36*p(i1+2,j)+16*p(i1+3,j)-3*p(i1+4,j))/25 p(i2,j)=(48*p(i2-1,j)-36*p(i2-2,j)+16*p(i2-3,j)-3*p(i2-4,j))/25 enddo call rkt c----------------------------------------------------------- end do return end C-------------------------------------------- C Penyelesaian persamaan energi C------------------------------------------- subroutine rkt PARAMETER(m=500,n=500) COMMON/aa1/u(m,n),v(m,n),p(m,n),ux(m,n),uy(m,n), 1 vx(m,n),vy(m,n),px(m,n),py(m,n), 1 uxx(m,n),uyy(m,n),vxx(m,n),vyy(m,n),x(m,n),y(m,n) 1 ,o(m,n),ox(m,n),oy(m,n),oxx(m,n),oyy(m,n) COMMON/aa2/nx,ny,nt,dx,dy,dt,pr,ra,i1,i2,j1,j2 DIMENSION h(m,n,6),s(m,n,6),a(5),b(5) DATA a(1),a(2),a(3),a(4),a(5)/0.,-0.75789047,-1.19215169, 1 -1.69778469,-1.51418344/ DATA b(1),b(2),b(3),b(4),b(5)/0.14965902,0.37921031,0.82295502, 1 0.69945045,0.15305724/ do i=2,nx-1 do j=2,ny-1 s(i,j,1)=o(i,j) end do end do
84
do k=1,5 call dero1(o,ox,oy) call derv2(o,oxx,oyy) do i=2,nx-1 do j=2,ny-1 IF(i.lt.101.and.j.gt.48.and.j.lt.52)then o(i,j)=0. elseif(i.lt.101.and.j.gt.98.and.j.lt.102)then o(i,j)=0. ELSEIF(i.lt.101.and.j.gt.148.and.j.lt.152)then o(i,j)=0. else h(i,j,k)=-u(i,j)*ox(i,j)-v(i,j)*oy(i,j)+ 1 (oxx(i,j)+oyy(i,j))/SQRT(ra)+a(k)*h(i,j,k-1) s(i,j,k+1)=s(i,j,k)+b(k)*dt*h(i,j,k) o(i,j)=s(i,j,k+1) endif end do end do do i=1,nx IF(i.le.101)then j1=1 j2=48 j3=52 j4=98 j5=102 j6=148 j7=152 j8=ny o(i,j1)=(48*o(i,j1+1)-36*o(i,j1+2)+16*o(i,j1+3)-3*o(i,j1+4))/25 o(i,j2)=0.5 o(i,j3)=0.5 o(i,j4)=0.5 o(i,j5)=0.5 o(i,j6)=0.5 o(i,j7)=0.5 o(i,j8)=(48*o(i,j8-1)-36*o(i,j8-2)+16*o(i,j8-3)-3*o(i,j8-4))/25 else j1=1 j2=ny o(i,j1)=(48*o(i,j1+1)-36*o(i,j1+2)+16*o(i,j1+3)-3*o(i,j1+4))/25 o(i,j2)=(48*o(i,j2-1)-36*o(i,j2-2)+16*o(i,j2-3)-3*o(i,j2-4))/25 endif end do do j=1,ny
85
IF(j.ge.48.and.j.le.52)then i1=101 elseif(j.ge.98.and.j.le.102)then i1=101 elseif(j.ge.148.and.j.le.152)then i1=101 else i1=1 i2=nx endif o(i1,j)=0.5 end do i1=1 i2=nx j1=1 j2=ny do i=1,nx do j=1,ny IF(i.lt.101.and.j.gt.48.and.j.lt.52)then o(i,j)=0. elseif(i.lt.101.and.j.gt.98.and.j.lt.102)then o(i,j)=0. ELSEIF(i.lt.101.and.j.gt.148.and.j.lt.152)then o(i,j)=0. endif end do end do end do return end C------------------------------------------ C Turunan pertama variabel kecepatan C------------------------------------------ subroutine derv1(q,qx,qy) COMMON/aa2/nx,ny,nt,dx,dy,dt,pr,ra,i1,i2,j1,j2 COMMON/aa4/a(500),b(500),c(500),d(500),l1,l2 DIMENSION q(500,500),qx(500,500),qy(500,500) alp=0.25 ak=1.5 do j=1,ny IF(j.ge.48.and.j.le.52)then i1=101 elseif(j.ge.98.and.j.le.102)then i1=101 elseif(j.ge.148.and.j.le.152)then
86
i1=101 else i1=1 i2=nx endif qx(i1,j)=(-3*q(i1+4,j)+16*q(i1+3,j)-36*q(i1+2,j)+48*q(i1+1,j) 1 -25*q(i1,j))/12/dx qx(i2,j)=(3*q(i2-4,j)-16*q(i2-3,j)+36*q(i2-2,j)-48*q(i2-1,j) 1 +25*q(i2,j))/12/dx do 10 i=i1+1,i2-1 a(i)=alp b(i)=1. c(i)=alp 10 d(i)=ak*(q(i+1,j)-q(i-1,j))/2/dx d(i1+1)=d(i1+1)-a(i1+1)*qx(i1,j) a(i1+1)=0. d(i2-1)=d(i2-1)-c(i2-1)*qx(i2,j) c(i2-1)=0. l1=i1+2 l2=i2-1 call tridi do 20 i=i1+1,i2-1 20 qx(i,j)=d(i) enddo do i=1,nx IF(i.le.101)then j1=1 j2=48 j3=52 j4=98 j5=102 j6=148 j7=152 j8=ny qy(i,j3)=(-3*q(i,j3+4)+16*q(i,j3+3)-36*q(i,j3+2)+48*q(i,j3+1) 1 -25*q(i,j3))/12/dy qy(i,j4)=(3*q(i,j4-4)-16*q(i,j4-3)+36*q(i,j4-2)-48*q(i,j4-1) 1 +25*q(i,j4))/12/dy do 110 j=j3+1,j4-1 a(j)=alp b(j)=1. c(j)=alp 110 d(j)=ak*(q(i,j+1)-q(i,j-1))/2/dy d(j3+1)=d(j3+1)-a(j3+1)*qy(i,j3) a(j3+1)=0. d(j4-1)=d(j4-1)-c(j4-1)*qy(i,j4) c(j4-1)=0.
87
l1=j3+2 l2=j4-1 call tridi do 210 j=j3+1,j4-1 210 qy(i,j)=d(j) qy(i,j5)=(-3*q(i,j5+4)+16*q(i,j5+3)-36*q(i,j5+2)+48*q(i,j5+1) 1 -25*q(i,j5))/12/dy qy(i,j6)=(3*q(i,j6-4)-16*q(i,j6-3)+36*q(i,j6-2)-48*q(i,j6-1) 1 +25*q(i,j6))/12/dy do 222 j=j5+1,j6-1 a(j)=alp b(j)=1. c(j)=alp 222 d(j)=ak*(q(i,j+1)-q(i,j-1))/2/dy d(j5+1)=d(j5+1)-a(j5+1)*qy(i,j5) a(j5+1)=0. d(j6-1)=d(j6-1)-c(j6-1)*qy(i,j6) c(j6-1)=0. l1=j5+2 l2=j6-1 call tridi do 322 j=j5+1,j6-1 322 qy(i,j)=d(j) qy(i,j7)=(-3*q(i,j7+4)+16*q(i,j7+3)-36*q(i,j7+2)+48*q(i,j7+1) 1 -25*q(i,j7))/12/dy qy(i,j8)=(3*q(i,j8-4)-16*q(i,j8-3)+36*q(i,j8-2)-48*q(i,j8-1) 1 +25*q(i,j8))/12/dy do 333 j=j7+1,j8-1 a(j)=alp b(j)=1. c(j)=alp 333 d(j)=ak*(q(i,j+1)-q(i,j-1))/2/dy d(j7+1)=d(j7+1)-a(j7+1)*qy(i,j7) a(j7+1)=0. d(j8-1)=d(j8-1)-c(j8-1)*qy(i,j8) c(j8-1)=0. l1=j7+2 l2=j8-1 call tridi do 433 j=j7+1,j8-1 433 qy(i,j)=d(j) else j1=1 j2=ny
88
endif qy(i,j1)=(-3*q(i,j1+4)+16*q(i,j1+3)-36*q(i,j1+2)+48*q(i,j1+1) 1 -25*q(i,j1))/12/dy qy(i,j2)=(3*q(i,j2-4)-16*q(i,j2-3)+36*q(i,j2-2)-48*q(i,j2-1) 1 +25*q(i,j2))/12/dy do 11 j=j1+1,j2-1 a(j)=alp b(j)=1. c(j)=alp 11 d(j)=ak*(q(i,j+1)-q(i,j-1))/2/dy d(j1+1)=d(j1+1)-a(j1+1)*qy(i,j1) a(j1+1)=0. d(j2-1)=d(j2-1)-c(j2-1)*qy(i,j2) c(j2-1)=0. l1=j1+2 l2=j2-1 call tridi do 21 j=j1+1,j2-1 21 qy(i,j)=d(j) enddo return end C------------------------------------------ C turunan pertama variabel temperatur C------------------------------------------ subroutine dero1(q,qx,qy) COMMON/aa2/nx,ny,nt,dx,dy,dt,pr,ra,i1,i2,j1,j2 COMMON/aa4/a(500),b(500),c(500),d(500),l1,l2 DIMENSION q(500,500),qx(500,500),qy(500,500) alp=0.25 ak=1.5 do j=1,ny IF(j.ge.48.and.j.le.52)then i1=101 elseif(j.ge.98.and.j.le.102)then i1=101 elseif(j.ge.148.and.j.le.152)then i1=101 else i1=1 i2=nx endif qx(i1,j)=(-3*q(i1+4,j)+16*q(i1+3,j)-36*q(i1+2,j)+48*q(i1+1,j) 1 -25*q(i1,j))/12/dx
89
qx(i2,j)=(3*q(i2-4,j)-16*q(i2-3,j)+36*q(i2-2,j)-48*q(i2-1,j) 1 +25*q(i2,j))/12/dx do 10 i=i1+1,i2-1 a(i)=alp b(i)=1. c(i)=alp 10 d(i)=ak*(q(i+1,j)-q(i-1,j))/2/dx d(i1+1)=d(i1+1)-a(i1+1)*qx(i1,j) a(i1+1)=0. d(i2-1)=d(i2-1)-c(i2-1)*qx(i2,j) c(i2-1)=0. l1=i1+2 l2=i2-1 call tridi do 20 i=i1+1,i2-1 20 qx(i,j)=d(i) enddo do i=1,nx IF(i.le.101)then j1=1 j2=48 j3=52 j4=98 j5=102 j6=148 j7=152 j8=ny qy(i,j1)=0. qy(i,j2)=(3*q(i,j2-4)-16*q(i,j2-3)+36*q(i,j2-2)-48*q(i,j2-1) 1 +25*q(i,j2))/12/dy qy(i,j3)=(-3*q(i,j3+4)+16*q(i,j3+3)-36*q(i,j3+2)+48*q(i,j3+1) 1 -25*q(i,j3))/12/dy qy(i,j4)=(3*q(i,j4-4)-16*q(i,j4-3)+36*q(i,j4-2)-48*q(i,j4-1) 1 +25*q(i,j4))/12/dy qy(i,j5)=(-3*q(i,j5+4)+16*q(i,j5+3)-36*q(i,j5+2)+48*q(i,j5+1) 1 -25*q(i,j5))/12/dy qy(i,j6)=(3*q(i,j6-4)-16*q(i,j6-3)+36*q(i,j6-2)-48*q(i,j6-1) 1 +25*q(i,j6))/12/dy qy(i,j7)=(-3*q(i,j7+4)+16*q(i,j7+3)-36*q(i,j7+2)+48*q(i,j7+1) 1 -25*q(i,j7))/12/dy qy(i,j8)=0. do 110 j=j1+1,j2-1 a(j)=alp b(j)=1. c(j)=alp 110 d(j)=ak*(q(i,j+1)-q(i,j-1))/2/dy d(j1+1)=d(j1+1)-a(j1+1)*qy(i,j1)
90
a(j1+1)=0. d(j2-1)=d(j2-1)-c(j2-1)*qy(i,j2) c(j2-1)=0. l1=j1+2 l2=j2-1 call tridi do 210j=j1+1,j2-1 210 qy(i,j)=d(j) do 111 j=j3+1,j4-1 a(j)=alp b(j)=1. c(j)=alp 111 d(j)=ak*(q(i,j+1)-q(i,j-1))/2/dy d(j3+1)=d(j3+1)-a(j3+1)*qy(i,j3) a(j3+1)=0. d(j4-1)=d(j4-1)-c(j4-1)*qy(i,j4) c(j4-1)=0. l1=j3+2 l2=j4-1 call tridi do 211 j=j3+1,j4-1 211 qy(i,j)=d(j) do 345 j=j5+1,j6-1 a(j)=alp b(j)=1. c(j)=alp 345 d(j)=ak*(q(i,j+1)-q(i,j-1))/2/dy d(j5+1)=d(j5+1)-a(j5+1)*qy(i,j5) a(j5+1)=0. d(j6-1)=d(j6-1)-c(j6-1)*qy(i,j6) c(j6-1)=0. l1=j5+2 l2=j6-1 call tridi do 789 j=j5+1,j6-1 789 qy(i,j)=d(j) do 444 j=j7+1,j8-1 a(j)=alp b(j)=1. c(j)=alp 444 d(j)=ak*(q(i,j+1)-q(i,j-1))/2/dy d(j7+1)=d(j7+1)-a(j7+1)*qy(i,j7) a(j7+1)=0. d(j8-1)=d(j8-1)-c(j8-1)*qy(i,j8)
91
c(j8-1)=0. l1=j7+2 l2=j8-1 call tridi do 544 j=j7+1,j8-1 544 qy(i,j)=d(j) else j1=1 j2=ny qy(i,j1)=0. qy(i,j2)=0. do 11 j=j1+1,j2-1 a(j)=alp b(j)=1. c(j)=alp 11 d(j)=ak*(q(i,j+1)-q(i,j-1))/2/dy d(j1+1)=d(j1+1)-a(j1+1)*qy(i,j1) a(j1+1)=0. d(j2-1)=d(j2-1)-c(j2-1)*qy(i,j2) c(j2-1)=0. l1=j1+2 l2=j2-1 call tridi do 21 j=j1+1,j2-1 21 qy(i,j)=d(j) endif enddo return end C---------------------------------------- C Turunan pertama variabel tekanan C---------------------------------------- subroutine derp1(q,qx,qy) COMMON/aa2/nx,ny,nt,dx,dy,dt,pr,ra,i1,i2,j1,j2 COMMON/aa4/a(500),b(500),c(500),d(500),l1,l2 DIMENSION q(500,500),qx(500,500),qy(500,500) alp=0.25 ak=1.5 do j=1,ny IF(j.ge.48.and.j.le.52)then i1=101 elseif(j.ge.98.and.j.le.102)then i1=101 elseif(j.ge.148.and.j.le.152)then
92
i1=101 else i1=1 i2=nx endif qx(i1,j)=0. qx(i2,j)=0. do 10 i=i1+1,i2-1 a(i)=alp b(i)=1. c(i)=alp 10 d(i)=ak*(q(i+1,j)-q(i-1,j))/2/dx d(i1+1)=d(i1+1)-a(i1+1)*qx(i1,j) a(i1+1)=0. d(i2-1)=d(i2-1)-c(i2-1)*qx(i2,j) c(i2-1)=0. l1=i1+2 l2=i2-1 call tridi do 20 i=i1+1,i2-1 20 qx(i,j)=d(i) enddo do i=1,nx IF(i.le.101)then j1=1 j2=48 j3=52 j4=98 j5=102 j6=148 j7=152 j8=ny qy(i,j3)=0. qy(i,j4)=0. do 110 j=j3+1,j4-1 a(j)=alp b(j)=1. c(j)=alp 110 d(j)=ak*(q(i,j+1)-q(i,j-1))/2/dy d(j3+1)=d(j3+1)-a(j3+1)*qy(i,j3) a(j3+1)=0. d(j4-1)=d(j4-1)-c(j4-1)*qy(i,j4) c(j4-1)=0. l1=j3+2 l2=j4-1 call tridi do 210 j=j3+1,j4-1
93
210 qy(i,j)=d(j) qy(i,j5)=0. qy(i,j6)=0. do 222 j=j5+1,j6-1 a(j)=alp b(j)=1. c(j)=alp 222 d(j)=ak*(q(i,j+1)-q(i,j-1))/2/dy d(j5+1)=d(j5+1)-a(j5+1)*qy(i,j5) a(j5+1)=0. d(j6-1)=d(j6-1)-c(j6-1)*qy(i,j6) c(j6-1)=0. l1=j5+2 l2=j6-1 call tridi do 322 j=j5+1,j6-1 322 qy(i,j)=d(j) qy(i,j7)=0. qy(i,j8)=0. do 555 j=j7+1,j8-1 a(j)=alp b(j)=1. c(j)=alp 555 d(j)=ak*(q(i,j+1)-q(i,j-1))/2/dy d(j7+1)=d(j7+1)-a(j7+1)*qy(i,j7) a(j7+1)=0. d(j8-1)=d(j8-1)-c(j8-1)*qy(i,j8) c(j8-1)=0. l1=j7+2 l2=j8-1 call tridi do 655 j=j7+1,j8-1 655 qy(i,j)=d(j) else j1=1 j2=ny endif qy(i,j1)=0. qy(i,j2)=0. do 11 j=j1+1,j2-1 a(j)=alp b(j)=1. c(j)=alp 11 d(j)=ak*(q(i,j+1)-q(i,j-1))/2/dy
94
d(j1+1)=d(j1+1)-a(j1+1)*qy(i,j1) a(j1+1)=0. d(j2-1)=d(j2-1)-c(j2-1)*qy(i,j2) c(j2-1)=0. l1=j1+2 l2=j2-1 call tridi do 21 j=j1+1,j2-1 21 qy(i,j)=d(j) enddo return end C-------------------------------------------------------- C Turunan kedua variabel kecepatan dan temperatur C-------------------------------------------------------- subroutine derv2(q,qxx,qyy) COMMON/aa2/nx,ny,nt,dx,dy,dt,pr,ra,i1,i2,j1,j2 COMMON/aa4/a(500),b(500),c(500),d(500),l1,l2 DIMENSION q(500,500),qxx(500,500),qyy(500,500) alp=0.1 ak=1.2 do 10 j=2,ny-1 IF(j.ge.48.and.j.le.52)then i1=101 elseif(j.ge.98.and.j.le.102)then i1=101 elseif(j.ge.148.and.j.le.152)then i1=101 else i1=1 i2=nx endif s1=(13*q(i1,j)-27*q(i1+1,j)+15*q(i1+2,j)-1*q(i1+3,j))/dx/dx s2=(-1*q(i2-3,j)+15*q(i2-2,j)-27*q(i2-1,j)+13*q(i2,j))/dx/dx do 20 i=i1+1,i2-1 a(i)=alp b(i)=1. c(i)=alp 20 d(i)=ak*(q(i+1,j)-2*q(i,j)+q(i-1,j))/dx/dx b(i1+1)=b(i1+1)-11*alp d(i1+1)=d(i1+1)-s1*alp b(i2-1)=b(i2-1)-11*alp d(i2-1)=d(i2-1)-s2*alp l1=i1+2 l2=i2-1
95
call tridi do 30 i=i1+1,i2-1 30 qxx(i,j)=d(i) qxx(i1,j)=s1-11*qxx(i1+1,j) qxx(i2,j)=s2-11*qxx(i2-1,j) 10 continue do 40 i=1,nx-1 IF(i.le.101)then j1=1 j2=48 j3=52 j4=98 j5=102 j6=148 j7=152 j8=ny s3=(13*q(i,j3)-27*q(i,j3+1)+15*q(i,j3+2)-q(i,j3+3))/dy/dy s4=(-q(i,j4-3)+15*q(i,j4-2)-27*q(i,j4-1)+13*q(i,j4))/dy/dy do 51 j=j3+1,j4-1 a(j)=alp b(j)=1. c(j)=alp 51 d(j)=ak*(q(i,j+1)-2*q(i,j)+q(i,j-1))/dy/dy b(j3+1)=b(j3+1)-11*alp d(j3+1)=d(j3+1)-s3*alp b(j4-1)=b(j4-1)-11*alp d(j4-1)=d(j4-1)-s4*alp l1=j3+2 l2=j4-1 call tridi do 61 j=j3+1,j4-1 61 qyy(i,j)=d(j) qyy(i,j3)=s1-11*qyy(i,j3+1) qyy(i,j4)=s2-11*qyy(i,j4-1) s5=(13*q(i,j5)-27*q(i,j5+1)+15*q(i,j5+2)-q(i,j5+3))/dy/dy s6=(-q(i,j6-3)+15*q(i,j6-2)-27*q(i,j6-1)+13*q(i,j6))/dy/dy do 71 j=j5+1,j6-1 a(j)=alp b(j)=1. c(j)=alp 71 d(j)=ak*(q(i,j+1)-2*q(i,j)+q(i,j-1))/dy/dy b(j5+1)=b(j5+1)-11*alp d(j5+1)=d(j5+1)-s5*alp b(j6-1)=b(j6-1)-11*alp d(j6-1)=d(j6-1)-s6*alp l1=j5+2
96
l2=j6-1 call tridi do 81 j=j5+1,j6-1 81 qyy(i,j)=d(j) qyy(i,j5)=s1-11*qyy(i,j5+1) qyy(i,j6)=s2-11*qyy(i,j6-1) s7=(13*q(i,j7)-27*q(i,j7+1)+15*q(i,j7+2)-q(i,j7+3))/dy/dy s8=(-q(i,j8-3)+15*q(i,j8-2)-27*q(i,j8-1)+13*q(i,j8))/dy/dy do 91 j=j7+1,j8-1 a(j)=alp b(j)=1. c(j)=alp 91 d(j)=ak*(q(i,j+1)-2*q(i,j)+q(i,j-1))/dy/dy b(j7+1)=b(j7+1)-11*alp d(j7+1)=d(j7+1)-s7*alp b(j8-1)=b(j8-1)-11*alp d(j8-1)=d(j8-1)-s8*alp l1=j7+2 l2=j8-1 call tridi do 82 j=j7+1,j8-1 82 qyy(i,j)=d(j) qyy(i,j7)=s1-11*qyy(i,j7+1) qyy(i,j8)=s2-11*qyy(i,j8-1) else j1=1 j2=ny endif s1=(13*q(i,j1)-27*q(i,j1+1)+15*q(i,j1+2)-q(i,j1+3))/dy/dy s2=(-q(i,j2-3)+15*q(i,j2-2)-27*q(i,j2-1)+13*q(i,j2))/dy/dy do 50 j=j1+1,j2-1 a(j)=alp b(j)=1. c(j)=alp 50 d(j)=ak*(q(i,j+1)-2*q(i,j)+q(i,j-1))/dy/dy b(j1+1)=b(j1+1)-11*alp d(j1+1)=d(j1+1)-s1*alp b(j2-1)=b(j2-1)-11*alp d(j2-1)=d(j2-1)-s2*alp l1=j1+2 l2=j2-1 call tridi do 60 j=j1+1,j2-1 60 qyy(i,j)=d(j) qyy(i,j1)=s1-11*qyy(i,j1+1) qyy(i,j2)=s2-11*qyy(i,j2-1) 40 continue
97
return end C------------------------- C Algoritma Thomas C------------------------- SUBROUTINE TRIDI parameter (m=500) COMMON /AA4/A(m),B(m),C(m),D(m),L1,l2 DO 1 I=L1,L2 RT=-A(I)/B(I-1) B(I)=B(I)+RT*C(I-1) 1 D(I)=D(I)+RT*D(I-1) D(L2)=D(L2)/B(L2) DO 2 I=L2-1,L1-1,-1 2 D(I)=(D(I)-C(I)*D(I+1))/B(I) RETURN END C-------------------------- C Hasil perhitungan C-------------------------- subroutine hasil PARAMETER(m=500,n=500) COMMON/aa1/u(m,n),v(m,n),p(m,n),ux(m,n),uy(m,n), 1 vx(m,n),vy(m,n),px(m,n),py(m,n), 1 uxx(m,n),uyy(m,n),vxx(m,n),vyy(m,n),x(m,n),y(m,n) 1 ,o(m,n),ox(m,n),oy(m,n),oxx(m,n),oyy(m,n) COMMON/aa2/nx,ny,nt,dx,dy,dt,pr,ra,i1,i2,j1,j2 WRITE(2,*)NX WRITE(2,*)NY do 10 j=1,ny do 10 i=1,nx WRITE(3,*)x(i,j),y(i,j),u(i,j),v(i,j)!,p(i,j) 10 WRITE(4,*)x(i,j),y(i,j),o(i,j) return end
98
Lampiran 8. Program Konveksi Alami Pada 4 Sirip C------------------------------------------------------------------------- C Program penyelesaian konveksi alami pada 4 sirip C------------------------------------------------------------------------- PARAMETER(m=500,n=500) COMMON/aa1/u(m,n),v(m,n),p(m,n),ux(m,n),uy(m,n), 1 vx(m,n),vy(m,n),px(m,n),py(m,n), 1 uxx(m,n),uyy(m,n),vxx(m,n),vyy(m,n),x(m,n),y(m,n) 1 ,o(m,n),ox(m,n),oy(m,n),oxx(m,n),oyy(m,n) COMMON/aa2/nx,ny,nt,dx,dy,dt,pr,ra,i1,i2,j1,j2 OPEN(8,FILE='C:\matlab6p1\work\temp1') OPEN(7,FILE='C:\matlab6p1\work\pv1') OPEN(4,FILE='C:\matlab6p1\work\temp') OPEN(3,FILE='C:\matlab6p1\work\pv') OPEN(2,FILE='C:\matlab6p1\work\num') OPEN(1,FILE='C:\matlab6p1\work\div') call awal do k=1,nt ck=0. call rkv do i=1,nx do j=1,ny ck=ck+abs(ux(i,j)+vy(i,j)) end do end do if(ck.gt.0) then WRITE(*,*)k,LOG10(ck/nx/ny) WRITE(1,*)k,LOG10(ck/nx/ny) endif end do call hasil stop end C---------------------------------------- C Syarat awal dan syarat batas C---------------------------------------- subroutine awal PARAMETER(m=500,n=500) CHARACTER mul*2 COMMON/aa1/u(m,n),v(m,n),p(m,n),ux(m,n),uy(m,n), 1 vx(m,n),vy(m,n),px(m,n),py(m,n), 1 uxx(m,n),uyy(m,n),vxx(m,n),vyy(m,n),x(m,n),y(m,n) 1 ,o(m,n),ox(m,n),oy(m,n),oxx(m,n),oyy(m,n) COMMON/aa2/nx,ny,nt,dx,dy,dt,pr,ra,i1,i2,j1,j2 WRITE(*,*)' t= ' READ(*,*)tt
99
nx=201 ny=201 i1=1 i2=nx j1=1 j2=ny dx=1./200. dy=1./200. dt=0.0025 nt=tt/dt+1 pr=0.71 ra=1000000. WRITE(*,*)' Dari awal ?' READ(*,'(a)')mul IF(mul.eq.'y')then do i=1,nx do j=1,ny x(i,j)=(i-1)*dx y(i,j)=(j-1)*dy u(i,j)=0. v(i,j)=0. p(i,j)=0. o(i,j)=0. enddo enddo do j=1,ny o(1,j)=0.5 o(nx,j)=-0.5 enddo else do j=1,ny do i=1,nx READ(7,*)x(i,j),y(i,j),u(i,j),v(i,j),p(i,j) READ(8,*)x(i,j),y(i,j),o(i,j) end do end do end if return end C-------------------------------------------------------- C Penyelesaian persamaan Navier - Stokes C-------------------------------------------------------- subroutine rkv PARAMETER(m=500,n=500)
100
COMMON/aa1/u(m,n),v(m,n),p(m,n),ux(m,n),uy(m,n), 1 vx(m,n),vy(m,n),px(m,n),py(m,n), 1 uxx(m,n),uyy(m,n),vxx(m,n),vyy(m,n),x(m,n),y(m,n) 1 ,o(m,n),ox(m,n),oy(m,n),oxx(m,n),oyy(m,n) COMMON/aa2/nx,ny,nt,dx,dy,dt,pr,ra,i1,i2,j1,j2 DIMENSION h1(m,n,6),h2(m,n,6),s1(m,n,6),s2(m,n,6),a(5),b(5) DATA a(1),a(2),a(3),a(4),a(5)/0.,-0.41789047,-1.19215169, 1 -1.69778469,-1.51418344/ DATA b(1),b(2),b(3),b(4),b(5)/0.14965902,0.37921031,0.82295502, 1 0.69945045,0.15305724/ do i=2,nx-1 do j=2,ny-1 s1(i,j,1)=u(i,j) s2(i,j,1)=v(i,j) end do end do do k=1,5 call derv1(u,ux,uy) call derv1(v,vx,vy) call derv2(u,uxx,uyy) call derv2(v,vxx,vyy) call derp1(p,px,py) do i=2,nx-1 do j=2,ny-1 h1(i,j,k)=-u(i,j)*ux(i,j)-v(i,j)*uy(i,j)-px(i,j) 1 +(uxx(i,j)+uyy(i,j))*pr/SQRT(ra) h2(i,j,k)=-u(i,j)*vx(i,j)-v(i,j)*vy(i,j)-py(i,j) 1 +(vxx(i,j)+vyy(i,j))*pr/SQRT(ra)+pr*o(i,j) end do end do do i=2,nx-1 do j=2,ny-1 IF(i.le.101.and.j.ge.38.and.j.le.42)then u(i,j)=0. v(i,j)=0 ELSEIF (i.le.101.and.j.ge.78.and.j.le.82)then u(i,j)=0. v(i,j)=0 ELSEIF(i.le.101.and.j.ge.118.and.j.le.122)then u(i,j)=0. v(i,j)=0 elseif(i.le.101.and.j.ge.158.and.j.le.162)then u(i,j)=0. v(i,j)=0 else
101
h1(i,j,k)=h1(i,j,k)+a(k)*h1(i,j,k-1) h2(i,j,k)=h2(i,j,k)+a(k)*h2(i,j,k-1) s1(i,j,k+1)=s1(i,j,k)+b(k)*dt*h1(i,j,k) s2(i,j,k+1)=s2(i,j,k)+b(k)*dt*h2(i,j,k) u(i,j)=s1(i,j,k+1) v(i,j)=s2(i,j,k+1) endif end do end do call derv1(u,ux,uy) call derv1(v,vx,vy) c----------------------------------------------------------- c Tekananan dihitung dengan artifisial kompresibiliti c----------------------------------------------------------- do i=2,nx-1 do j=2,ny-1 IF(i.lt.101.and.j.gt.38.and.j.lt.42)then p(i,j)=0 ELSEIF (i.lt.101.and.j.gt.78.and.j.lt.82)then p(i,j)=0 ELSEIF(i.lt.101.and.j.gt.118.and.j.lt.122)then p(i,j)=0 elseif(i.lt.101.and.j.gt.158.and.j.lt.162)then p(i,j)=0 else p(i,j)=p(i,j)-(ux(i,j)+vy(i,j))*dt*0.5 endif end do end do do i=1,nx IF(i.le.101)then j1=1 j2=38 j3=42 j4=78 j5=82 j6=118 j7=122 j8=158 j9=162 j10=ny else j1=1 j2=ny endif p(i,j1)=(48*p(i,j1+1)-36*p(i,j1+2)+16*p(i,j1+3)-3*p(i,j1+4))/25 p(i,j2)=(48*p(i,j2-1)-36*p(i,j2-2)+16*p(i,j2-3)-3*p(i,j2-4))/25
102
p(i,j3)=(48*p(i,j3+1)-36*p(i,j3+2)+16*p(i,j3+3)-3*p(i,j3+4))/25 p(i,j4)=(48*p(i,j4-1)-36*p(i,j4-2)+16*p(i,j4-3)-3*p(i,j4-4))/25 p(i,j5)=(48*p(i,j5+1)-36*p(i,j5+2)+16*p(i,j5+3)-3*p(i,j5+4))/25 p(i,j6)=(48*p(i,j6-1)-36*p(i,j6-2)+16*p(i,j6-3)-3*p(i,j6-4))/25 p(i,j7)=(48*p(i,j7+1)-36*p(i,j7+2)+16*p(i,j7+3)-3*p(i,j7+4))/25 p(i,j8)=(48*p(i,j8-1)-36*p(i,j8-2)+16*p(i,j8-3)-3*p(i,j8-4))/25 p(i,j9)=(48*p(i,j9+1)-36*p(i,j9+2)+16*p(i,j9+3)-3*p(i,j9+4))/25 p(i,j10)=(48*p(i,j10-1)-36*p(i,j10-2)+16*p(i,j10-3)-3*p(i,j10-4)) 1 /25 end do i1=1 i2=nx j1=1 j2=ny do j=1,ny IF(j.ge.38.and.j.le.42)then i1=101 elseif(j.ge.78.and.j.le.82)then i1=101 elseif(j.ge.118.and.j.le.122)then i1=101 elseif(j.ge.158.and.j.le.162)then i1=101 else i1=1 i2=nx endif p(i1,j)=(48*p(i1+1,j)-36*p(i1+2,j)+16*p(i1+3,j)-3*p(i1+4,j))/25 p(i2,j)=(48*p(i2-1,j)-36*p(i2-2,j)+16*p(i2-3,j)-3*p(i2-4,j))/25 enddo call rkt c----------------------------------------------------------- end do return end C-------------------------------------------- C Penyelesaian persamaan energi C------------------------------------------- subroutine rkt PARAMETER(m=500,n=500) COMMON/aa1/u(m,n),v(m,n),p(m,n),ux(m,n),uy(m,n), 1 vx(m,n),vy(m,n),px(m,n),py(m,n), 1 uxx(m,n),uyy(m,n),vxx(m,n),vyy(m,n),x(m,n),y(m,n) 1 ,o(m,n),ox(m,n),oy(m,n),oxx(m,n),oyy(m,n) COMMON/aa2/nx,ny,nt,dx,dy,dt,pr,ra,i1,i2,j1,j2 DIMENSION h(m,n,6),s(m,n,6),a(5),b(5)
103
DATA a(1),a(2),a(3),a(4),a(5)/0.,-0.41789047,-1.19215169, 1 -1.69778469,-1.51418344/ DATA b(1),b(2),b(3),b(4),b(5)/0.14965902,0.37921031,0.82295502, 1 0.69945045,0.15305724/ do i=2,nx-1 do j=2,ny-1 s(i,j,1)=o(i,j) end do end do do k=1,5 call dero1(o,ox,oy) call derv2(o,oxx,oyy) do i=2,nx-1 do j=2,ny-1 IF(i.lt.101.and.j.gt.38.and.j.lt.42)then o(i,j)=0. elseif(i.lt.101.and.j.gt.78.and.j.lt.82)then o(i,j)=0. ELSEIF(i.lt.101.and.j.gt.118.and.j.lt.122)then o(i,j)=0. ELSEIF(i.lt.101.and.j.gt.158.and.j.lt.162)then o(i,j)=0. else h(i,j,k)=-u(i,j)*ox(i,j)-v(i,j)*oy(i,j)+ 1 (oxx(i,j)+oyy(i,j))/SQRT(ra)+a(k)*h(i,j,k-1) s(i,j,k+1)=s(i,j,k)+b(k)*dt*h(i,j,k) o(i,j)=s(i,j,k+1) endif end do end do do i=1,nx IF(i.le.101)then j1=1 j2=38 j3=42 j4=82 j5=78 j6=118 j7=122 j8=158 j9=162 j10=ny o(i,j1)=(48*o(i,j1+1)-36*o(i,j1+2)+16*o(i,j1+3)-3*o(i,j1+4))/25 o(i,j2)=0.5 o(i,j3)=0.5
104
o(i,j4)=0.5 o(i,j5)=0.5 o(i,j6)=0.5 o(i,j7)=0.5 o(i,j8)=0.5 o(i,j9)=0.5 o(i,j10)=(48*o(i,j10-1)-36*o(i,j10-2)+16*o(i,j10-3)-3*o(i,j10-4)) 1 /25 else j1=1 j2=ny o(i,j1)=(48*o(i,j1+1)-36*o(i,j1+2)+16*o(i,j1+3)-3*o(i,j1+4))/25 o(i,j2)=(48*o(i,j2-1)-36*o(i,j2-2)+16*o(i,j2-3)-3*o(i,j2-4))/25 endif end do do j=1,ny IF(j.ge.38.and.j.le.42)then i1=101 elseif(j.ge.78.and.j.le.82)then i1=101 elseif(j.ge.118.and.j.le.122)then i1=101 elseif(j.ge.158.and.j.le.162)then i1=101 else i1=1 i2=nx endif o(i1,j)=0.5 end do i1=1 i2=nx j1=1 j2=ny do i=1,nx do j=1,ny IF(i.lt.101.and.j.gt.38.and.j.lt.42)then o(i,j)=0. elseif(i.lt.101.and.j.gt.78.and.j.lt.82)then o(i,j)=0. ELSEIF(i.lt.101.and.j.gt.118.and.j.lt.122)then o(i,j)=0. ELSEIF(i.lt.101.and.j.gt.158.and.j.lt.162)then o(i,j)=0. endif end do
105
end do end do return end C------------------------------------------ C Turunan pertama variabel kecepatan C------------------------------------------ subroutine derv1(q,qx,qy) COMMON/aa2/nx,ny,nt,dx,dy,dt,pr,ra,i1,i2,j1,j2 COMMON/aa4/a(500),b(500),c(500),d(500),l1,l2 DIMENSION q(500,500),qx(500,500),qy(500,500) alp=0.25 ak=1.5 do j=1,ny IF(j.ge.38.and.j.le.42)then i1=101 elseif(j.ge.78.and.j.le.82)then i1=101 elseif(j.ge.118.and.j.le.122)then i1=101 elseif(j.ge.158.and.j.le.162)then i1=101 else i1=1 i2=nx endif qx(i1,j)=(-3*q(i1+4,j)+16*q(i1+3,j)-36*q(i1+2,j)+48*q(i1+1,j) 1 -25*q(i1,j))/12/dx qx(i2,j)=(3*q(i2-4,j)-16*q(i2-3,j)+36*q(i2-2,j)-48*q(i2-1,j) 1 +25*q(i2,j))/12/dx do 10 i=i1+1,i2-1 a(i)=alp b(i)=1. c(i)=alp 10 d(i)=ak*(q(i+1,j)-q(i-1,j))/2/dx d(i1+1)=d(i1+1)-a(i1+1)*qx(i1,j) a(i1+1)=0. d(i2-1)=d(i2-1)-c(i2-1)*qx(i2,j) c(i2-1)=0. l1=i1+2 l2=i2-1 call tridi do 20 i=i1+1,i2-1 20 qx(i,j)=d(i) enddo
106
do i=1,nx IF(i.le.101)then j1=1 j2=38 j3=42 j4=78 j5=82 j6=118 j7=122 j8=158 j9=162 j10=ny qy(i,j3)=(-3*q(i,j3+4)+16*q(i,j3+3)-36*q(i,j3+2)+48*q(i,j3+1) 1 -25*q(i,j3))/12/dy qy(i,j4)=(3*q(i,j4-4)-16*q(i,j4-3)+36*q(i,j4-2)-48*q(i,j4-1) 1 +25*q(i,j4))/12/dy do 110 j=j3+1,j4-1 a(j)=alp b(j)=1. c(j)=alp 110 d(j)=ak*(q(i,j+1)-q(i,j-1))/2/dy d(j3+1)=d(j3+1)-a(j3+1)*qy(i,j3) a(j3+1)=0. d(j4-1)=d(j4-1)-c(j4-1)*qy(i,j4) c(j4-1)=0. l1=j3+2 l2=j4-1 call tridi do 210 j=j3+1,j4-1 210 qy(i,j)=d(j) qy(i,j5)=(-3*q(i,j5+4)+16*q(i,j5+3)-36*q(i,j5+2)+48*q(i,j5+1) 1 -25*q(i,j5))/12/dy qy(i,j6)=(3*q(i,j6-4)-16*q(i,j6-3)+36*q(i,j6-2)-48*q(i,j6-1) 1 +25*q(i,j6))/12/dy do 222 j=j5+1,j6-1 a(j)=alp b(j)=1. c(j)=alp 222 d(j)=ak*(q(i,j+1)-q(i,j-1))/2/dy d(j5+1)=d(j5+1)-a(j5+1)*qy(i,j5) a(j5+1)=0. d(j6-1)=d(j6-1)-c(j6-1)*qy(i,j6) c(j6-1)=0. l1=j5+2 l2=j6-1 call tridi do 322 j=j5+1,j6-1
107
322 qy(i,j)=d(j) qy(i,j7)=(-3*q(i,j7+4)+16*q(i,j7+3)-36*q(i,j7+2)+48*q(i,j7+1) 1 -25*q(i,j7))/12/dy qy(i,j8)=(3*q(i,j8-4)-16*q(i,j8-3)+36*q(i,j8-2)-48*q(i,j8-1) 1 +25*q(i,j8))/12/dy do 333 j=j7+1,j8-1 a(j)=alp b(j)=1. c(j)=alp 333 d(j)=ak*(q(i,j+1)-q(i,j-1))/2/dy d(j7+1)=d(j7+1)-a(j7+1)*qy(i,j7) a(j7+1)=0. d(j8-1)=d(j8-1)-c(j8-1)*qy(i,j8) c(j8-1)=0. l1=j7+2 l2=j8-1 call tridi do 433 j=j7+1,j8-1 433 qy(i,j)=d(j) qy(i,j9)=(-3*q(i,j9+4)+16*q(i,j9+3)-36*q(i,j9+2)+48*q(i,j9+1) 1 -25*q(i,j9))/12/dy qy(i,j10)=(3*q(i,j10-4)-16*q(i,j10-3)+36*q(i,j10-2)-48*q(i,j10-1) 1 +25*q(i,j10))/12/dy do 666 j=j9+1,j10-1 a(j)=alp b(j)=1. c(j)=alp 666 d(j)=ak*(q(i,j+1)-q(i,j-1))/2/dy d(j9+1)=d(j9+1)-a(j9+1)*qy(i,j9) a(j9+1)=0. d(j10-1)=d(j10-1)-c(j10-1)*qy(i,j10) c(j10-1)=0. l1=j9+2 l2=j10-1 call tridi do 766 j=j9+1,j10-1 766 qy(i,j)=d(j) else j1=1 j2=ny endif qy(i,j1)=(-3*q(i,j1+4)+16*q(i,j1+3)-36*q(i,j1+2)+48*q(i,j1+1) 1 -25*q(i,j1))/12/dy qy(i,j2)=(3*q(i,j2-4)-16*q(i,j2-3)+36*q(i,j2-2)-48*q(i,j2-1)
108
1 +25*q(i,j2))/12/dy do 11 j=j1+1,j2-1 a(j)=alp b(j)=1. c(j)=alp 11 d(j)=ak*(q(i,j+1)-q(i,j-1))/2/dy d(j1+1)=d(j1+1)-a(j1+1)*qy(i,j1) a(j1+1)=0. d(j2-1)=d(j2-1)-c(j2-1)*qy(i,j2) c(j2-1)=0. l1=j1+2 l2=j2-1 call tridi do 21 j=j1+1,j2-1 21 qy(i,j)=d(j) enddo return end C------------------------------------------ C turunan pertama variabel temperatur C------------------------------------------ subroutine dero1(q,qx,qy) COMMON/aa2/nx,ny,nt,dx,dy,dt,pr,ra,i1,i2,j1,j2 COMMON/aa4/a(500),b(500),c(500),d(500),l1,l2 DIMENSION q(500,500),qx(500,500),qy(500,500) alp=0.25 ak=1.5 do j=1,ny IF(j.ge.38.and.j.le.42)then i1=101 elseif(j.ge.78.and.j.le.82)then i1=101 elseif(j.ge.118.and.j.le.122)then i1=101 elseif(j.ge.158.and.j.le.162)then i1=101 else i1=1 i2=nx endif qx(i1,j)=(-3*q(i1+4,j)+16*q(i1+3,j)-36*q(i1+2,j)+48*q(i1+1,j) 1 -25*q(i1,j))/12/dx qx(i2,j)=(3*q(i2-4,j)-16*q(i2-3,j)+36*q(i2-2,j)-48*q(i2-1,j) 1 +25*q(i2,j))/12/dx
109
do 10 i=i1+1,i2-1 a(i)=alp b(i)=1. c(i)=alp 10 d(i)=ak*(q(i+1,j)-q(i-1,j))/2/dx d(i1+1)=d(i1+1)-a(i1+1)*qx(i1,j) a(i1+1)=0. d(i2-1)=d(i2-1)-c(i2-1)*qx(i2,j) c(i2-1)=0. l1=i1+2 l2=i2-1 call tridi do 20 i=i1+1,i2-1 20 qx(i,j)=d(i) enddo do i=1,nx IF(i.le.101)then j1=1 j2=38 j3=42 j4=78 j5=82 j6=118 j7=122 j8=158 j9=162 j10=ny qy(i,j1)=0. qy(i,j2)=(3*q(i,j2-4)-16*q(i,j2-3)+36*q(i,j2-2)-48*q(i,j2-1) 1 +25*q(i,j2))/12/dy qy(i,j3)=(-3*q(i,j3+4)+16*q(i,j3+3)-36*q(i,j3+2)+48*q(i,j3+1) 1 -25*q(i,j3))/12/dy qy(i,j4)=(3*q(i,j4-4)-16*q(i,j4-3)+36*q(i,j4-2)-48*q(i,j4-1) 1 +25*q(i,j4))/12/dy qy(i,j5)=(-3*q(i,j5+4)+16*q(i,j5+3)-36*q(i,j5+2)+48*q(i,j5+1) 1 -25*q(i,j5))/12/dy qy(i,j6)=(3*q(i,j6-4)-16*q(i,j6-3)+36*q(i,j6-2)-48*q(i,j6-1) 1 +25*q(i,j6))/12/dy qy(i,j7)=(-3*q(i,j7+4)+16*q(i,j7+3)-36*q(i,j7+2)+48*q(i,j7+1) 1 -25*q(i,j7))/12/dy qy(i,j8)=(3*q(i,j8-4)-16*q(i,j8-3)+36*q(i,j8-2)-48*q(i,j8-1) 1 +25*q(i,j8))/12/dy qy(i,j9)=(-3*q(i,j9+4)+16*q(i,j9+3)-36*q(i,j9+2)+48*q(i,j9+1) 1 -25*q(i,j9))/12/dy qy(i,j10)=0. do 110 j=j1+1,j2-1 a(j)=alp
110
b(j)=1. c(j)=alp 110 d(j)=ak*(q(i,j+1)-q(i,j-1))/2/dy d(j1+1)=d(j1+1)-a(j1+1)*qy(i,j1) a(j1+1)=0. d(j2-1)=d(j2-1)-c(j2-1)*qy(i,j2) c(j2-1)=0. l1=j1+2 l2=j2-1 call tridi do 210j=j1+1,j2-1 210 qy(i,j)=d(j) do 111 j=j3+1,j4-1 a(j)=alp b(j)=1. c(j)=alp 111 d(j)=ak*(q(i,j+1)-q(i,j-1))/2/dy d(j3+1)=d(j3+1)-a(j3+1)*qy(i,j3) a(j3+1)=0. d(j4-1)=d(j4-1)-c(j4-1)*qy(i,j4) c(j4-1)=0. l1=j3+2 l2=j4-1 call tridi do 211 j=j3+1,j4-1 211 qy(i,j)=d(j) do 345 j=j5+1,j6-1 a(j)=alp b(j)=1. c(j)=alp 345 d(j)=ak*(q(i,j+1)-q(i,j-1))/2/dy d(j5+1)=d(j5+1)-a(j5+1)*qy(i,j5) a(j5+1)=0. d(j6-1)=d(j6-1)-c(j6-1)*qy(i,j6) c(j6-1)=0. l1=j5+2 l2=j6-1 call tridi do 789 j=j5+1,j6-1 789 qy(i,j)=d(j) do 444 j=j7+1,j8-1 a(j)=alp b(j)=1. c(j)=alp
111
444 d(j)=ak*(q(i,j+1)-q(i,j-1))/2/dy d(j7+1)=d(j7+1)-a(j7+1)*qy(i,j7) a(j7+1)=0. d(j8-1)=d(j8-1)-c(j8-1)*qy(i,j8) c(j8-1)=0. l1=j7+2 l2=j8-1 call tridi do 544 j=j7+1,j8-1 544 qy(i,j)=d(j) do 255 j=j9+1,j10-1 a(j)=alp b(j)=1. c(j)=alp 255 d(j)=ak*(q(i,j+1)-q(i,j-1))/2/dy d(j9+1)=d(j9+1)-a(j9+1)*qy(i,j9) a(j9+1)=0. d(j10-1)=d(j10-1)-c(j10-1)*qy(i,j10) c(j10-1)=0. l1=j9+2 l2=j10-1 call tridi do 665 j=j9+1,j10-1 665 qy(i,j)=d(j) else j1=1 j2=ny qy(i,j1)=0. qy(i,j2)=0. do 11 j=j1+1,j2-1 a(j)=alp b(j)=1. c(j)=alp 11 d(j)=ak*(q(i,j+1)-q(i,j-1))/2/dy d(j1+1)=d(j1+1)-a(j1+1)*qy(i,j1) a(j1+1)=0. d(j2-1)=d(j2-1)-c(j2-1)*qy(i,j2) c(j2-1)=0. l1=j1+2 l2=j2-1 call tridi do 21 j=j1+1,j2-1 21 qy(i,j)=d(j) endif enddo
112
return end C---------------------------------------- C Turunan pertama variabel tekanan C---------------------------------------- subroutine derp1(q,qx,qy) COMMON/aa2/nx,ny,nt,dx,dy,dt,pr,ra,i1,i2,j1,j2 COMMON/aa4/a(500),b(500),c(500),d(500),l1,l2 DIMENSION q(500,500),qx(500,500),qy(500,500) alp=0.25 ak=1.5 do j=1,ny IF(j.ge.48.and.j.le.42)then i1=101 elseif(j.ge.78.and.j.le.82)then i1=101 elseif(j.ge.118.and.j.le.122)then i1=101 elseif(j.ge.158.and.j.le.162)then i1=101 else i1=1 i2=nx endif qx(i1,j)=0. qx(i2,j)=0. do 10 i=i1+1,i2-1 a(i)=alp b(i)=1. c(i)=alp 10 d(i)=ak*(q(i+1,j)-q(i-1,j))/2/dx d(i1+1)=d(i1+1)-a(i1+1)*qx(i1,j) a(i1+1)=0. d(i2-1)=d(i2-1)-c(i2-1)*qx(i2,j) c(i2-1)=0. l1=i1+2 l2=i2-1 call tridi do 20 i=i1+1,i2-1 20 qx(i,j)=d(i) enddo do i=1,nx IF(i.le.101)then
113
j1=1 j2=38 j3=42 j4=78 j5=82 j6=118 j7=122 j8=158 j9=162 j10=ny qy(i,j3)=0. qy(i,j4)=0. do 110 j=j3+1,j4-1 a(j)=alp b(j)=1. c(j)=alp 110 d(j)=ak*(q(i,j+1)-q(i,j-1))/2/dy d(j3+1)=d(j3+1)-a(j3+1)*qy(i,j3) a(j3+1)=0. d(j4-1)=d(j4-1)-c(j4-1)*qy(i,j4) c(j4-1)=0. l1=j3+2 l2=j4-1 call tridi do 210 j=j3+1,j4-1 210 qy(i,j)=d(j) qy(i,j5)=0. qy(i,j6)=0. do 222 j=j5+1,j6-1 a(j)=alp b(j)=1. c(j)=alp 222 d(j)=ak*(q(i,j+1)-q(i,j-1))/2/dy d(j5+1)=d(j5+1)-a(j5+1)*qy(i,j5) a(j5+1)=0. d(j6-1)=d(j6-1)-c(j6-1)*qy(i,j6) c(j6-1)=0. l1=j5+2 l2=j6-1 call tridi do 322 j=j5+1,j6-1 322 qy(i,j)=d(j) qy(i,j7)=0. qy(i,j8)=0. do 555 j=j7+1,j8-1
114
a(j)=alp b(j)=1. c(j)=alp 555 d(j)=ak*(q(i,j+1)-q(i,j-1))/2/dy d(j7+1)=d(j7+1)-a(j7+1)*qy(i,j7) a(j7+1)=0. d(j8-1)=d(j8-1)-c(j8-1)*qy(i,j8) c(j8-1)=0. l1=j7+2 l2=j8-1 call tridi do 655 j=j7+1,j8-1 655 qy(i,j)=d(j) qy(i,j9)=0. qy(i,j10)=0. do 777 j=j9+1,j10-1 a(j)=alp b(j)=1. c(j)=alp 777 d(j)=ak*(q(i,j+1)-q(i,j-1))/2/dy d(j9+1)=d(j9+1)-a(j9+1)*qy(i,j9) a(j9+1)=0. d(j10-1)=d(j10-1)-c(j10-1)*qy(i,j10) c(j10-1)=0. l1=j9+2 l2=j10-1 call tridi do 877 j=j9+1,j10-1 877 qy(i,j)=d(j) else j1=1 j2=ny endif qy(i,j1)=0. qy(i,j2)=0. do 11 j=j1+1,j2-1 a(j)=alp b(j)=1. c(j)=alp 11 d(j)=ak*(q(i,j+1)-q(i,j-1))/2/dy d(j1+1)=d(j1+1)-a(j1+1)*qy(i,j1) a(j1+1)=0. d(j2-1)=d(j2-1)-c(j2-1)*qy(i,j2) c(j2-1)=0. l1=j1+2
115
l2=j2-1 call tridi do 21 j=j1+1,j2-1 21 qy(i,j)=d(j) enddo return end C-------------------------------------------------------- C Turunan kedua variabel kecepatan dan temperatur C-------------------------------------------------------- subroutine derv2(q,qxx,qyy) COMMON/aa2/nx,ny,nt,dx,dy,dt,pr,ra,i1,i2,j1,j2 COMMON/aa4/a(500),b(500),c(500),d(500),l1,l2 DIMENSION q(500,500),qxx(500,500),qyy(500,500) alp=0.1 ak=1.2 do 10 j=2,ny-1 IF(j.ge.38.and.j.le.42)then i1=101 elseif(j.ge.78.and.j.le.82)then i1=101 elseif(j.ge.118.and.j.le.122)then i1=101 elseif(j.ge.158.and.j.le.162)then i1=101 else i1=1 i2=nx endif s1=(13*q(i1,j)-27*q(i1+1,j)+15*q(i1+2,j)-1*q(i1+3,j))/dx/dx s2=(-1*q(i2-3,j)+15*q(i2-2,j)-27*q(i2-1,j)+13*q(i2,j))/dx/dx do 20 i=i1+1,i2-1 a(i)=alp b(i)=1. c(i)=alp 20 d(i)=ak*(q(i+1,j)-2*q(i,j)+q(i-1,j))/dx/dx b(i1+1)=b(i1+1)-11*alp d(i1+1)=d(i1+1)-s1*alp b(i2-1)=b(i2-1)-11*alp d(i2-1)=d(i2-1)-s2*alp l1=i1+2 l2=i2-1 call tridi do 30 i=i1+1,i2-1 30 qxx(i,j)=d(i)
116
qxx(i1,j)=s1-11*qxx(i1+1,j) qxx(i2,j)=s2-11*qxx(i2-1,j) 10 continue do 40 i=1,nx-1 IF(i.le.101)then j1=1 j2=38 j3=42 j4=78 j5=82 j6=118 j7=122 j8=158 j9=162 j10=ny s3=(13*q(i,j3)-27*q(i,j3+1)+15*q(i,j3+2)-q(i,j3+3))/dy/dy s4=(-q(i,j4-3)+15*q(i,j4-2)-27*q(i,j4-1)+13*q(i,j4))/dy/dy do 51 j=j3+1,j4-1 a(j)=alp b(j)=1. c(j)=alp 51 d(j)=ak*(q(i,j+1)-2*q(i,j)+q(i,j-1))/dy/dy b(j3+1)=b(j3+1)-11*alp d(j3+1)=d(j3+1)-s3*alp b(j4-1)=b(j4-1)-11*alp d(j4-1)=d(j4-1)-s4*alp l1=j3+2 l2=j4-1 call tridi do 61 j=j3+1,j4-1 61 qyy(i,j)=d(j) qyy(i,j3)=s1-11*qyy(i,j3+1) qyy(i,j4)=s2-11*qyy(i,j4-1) s5=(13*q(i,j5)-27*q(i,j5+1)+15*q(i,j5+2)-q(i,j5+3))/dy/dy s6=(-q(i,j6-3)+15*q(i,j6-2)-27*q(i,j6-1)+13*q(i,j6))/dy/dy do 71 j=j5+1,j6-1 a(j)=alp b(j)=1. c(j)=alp 71 d(j)=ak*(q(i,j+1)-2*q(i,j)+q(i,j-1))/dy/dy b(j5+1)=b(j5+1)-11*alp d(j5+1)=d(j5+1)-s5*alp b(j6-1)=b(j6-1)-11*alp d(j6-1)=d(j6-1)-s6*alp l1=j5+2 l2=j6-1
117
call tridi do 81 j=j5+1,j6-1 81 qyy(i,j)=d(j) qyy(i,j5)=s1-11*qyy(i,j5+1) qyy(i,j6)=s2-11*qyy(i,j6-1) s7=(13*q(i,j7)-27*q(i,j7+1)+15*q(i,j7+2)-q(i,j7+3))/dy/dy s8=(-q(i,j8-3)+15*q(i,j8-2)-27*q(i,j8-1)+13*q(i,j8))/dy/dy do 91 j=j7+1,j8-1 a(j)=alp b(j)=1. c(j)=alp 91 d(j)=ak*(q(i,j+1)-2*q(i,j)+q(i,j-1))/dy/dy b(j7+1)=b(j7+1)-11*alp d(j7+1)=d(j7+1)-s7*alp b(j8-1)=b(j8-1)-11*alp d(j8-1)=d(j8-1)-s8*alp l1=j7+2 l2=j8-1 call tridi do 82 j=j7+1,j8-1 82 qyy(i,j)=d(j) qyy(i,j7)=s1-11*qyy(i,j7+1) qyy(i,j8)=s2-11*qyy(i,j8-1) s9=(13*q(i,j9)-27*q(i,j9+1)+15*q(i,j9+2)-q(i,j9+3))/dy/dy s10=(-q(i,j10-3)+15*q(i,j10-2)-27*q(i,j10-1)+13*q(i,j10))/dy/dy do 92 j=j9+1,j10-1 a(j)=alp b(j)=1. c(j)=alp 92 d(j)=ak*(q(i,j+1)-2*q(i,j)+q(i,j-1))/dy/dy b(j9+1)=b(j9+1)-11*alp d(j9+1)=d(j9+1)-s9*alp b(j10-1)=b(j10-1)-11*alp d(j10-1)=d(j10-1)-s10*alp l1=j9+2 l2=j10-1 call tridi do 83 j=j9+1,j10-1 83 qyy(i,j)=d(j) qyy(i,j9)=s1-11*qyy(i,j9+1) qyy(i,j10)=s2-11*qyy(i,j10-1) else j1=1 j2=ny endif
118
s1=(13*q(i,j1)-27*q(i,j1+1)+15*q(i,j1+2)-q(i,j1+3))/dy/dy s2=(-q(i,j2-3)+15*q(i,j2-2)-27*q(i,j2-1)+13*q(i,j2))/dy/dy do 50 j=j1+1,j2-1 a(j)=alp b(j)=1. c(j)=alp 50 d(j)=ak*(q(i,j+1)-2*q(i,j)+q(i,j-1))/dy/dy b(j1+1)=b(j1+1)-11*alp d(j1+1)=d(j1+1)-s1*alp b(j2-1)=b(j2-1)-11*alp d(j2-1)=d(j2-1)-s2*alp l1=j1+2 l2=j2-1 call tridi do 60 j=j1+1,j2-1 60 qyy(i,j)=d(j) qyy(i,j1)=s1-11*qyy(i,j1+1) qyy(i,j2)=s2-11*qyy(i,j2-1) 40 continue return end C------------------------- C Algoritma Thomas C------------------------- SUBROUTINE TRIDI parameter (m=500) COMMON /AA4/A(m),B(m),C(m),D(m),L1,l2 DO 1 I=L1,L2 RT=-A(I)/B(I-1) B(I)=B(I)+RT*C(I-1) 1 D(I)=D(I)+RT*D(I-1) D(L2)=D(L2)/B(L2) DO 2 I=L2-1,L1-1,-1 2 D(I)=(D(I)-C(I)*D(I+1))/B(I) RETURN END C-------------------------- C Hasil perhitungan C-------------------------- subroutine hasil PARAMETER(m=500,n=500) COMMON/aa1/u(m,n),v(m,n),p(m,n),ux(m,n),uy(m,n), 1 vx(m,n),vy(m,n),px(m,n),py(m,n), 1 uxx(m,n),uyy(m,n),vxx(m,n),vyy(m,n),x(m,n),y(m,n) 1 ,o(m,n),ox(m,n),oy(m,n),oxx(m,n),oyy(m,n)
119
COMMON/aa2/nx,ny,nt,dx,dy,dt,pr,ra,i1,i2,j1,j2 WRITE(2,*)NX WRITE(2,*)NY do 10 j=1,ny do 10 i=1,nx WRITE(3,*)x(i,j),y(i,j),u(i,j),v(i,j)!,p(i,j) 10 WRITE(4,*)x(i,j),y(i,j),o(i,j) return end
120
Lampiran 9. Program Tambahan Untuk Sirip Tunggal c -------------------------------------------------------------------- c PROGRAM TAMBAHAN UNTUK SIRIP TUNGGAL c -------------------------------------------------------------------- PARAMETER(m=500,n=500) COMMON/aa1/u(m,n),v(m,n),ux(m,n),uy(m,n),vx(m,n),vy(m,n) 1 ,p(m,n),x(m,n),y(m,n),sf(m,n) 1 ,o(m,n),ox(m,n),oy(m,n),oxx(m,n),oyy(m,n) COMMON/aa2/nx,ny,nt,dx,dy,dt OPEN(1,FILE='C:\matlab6p1\work\pv') OPEN(2,FILE='C:\matlab6p1\work\temp') OPEN(3,FILE='C:\matlab6p1\work\streamf') OPEN(4,FILE='C:\matlab6p1\work\num') nx=201 ny=201 dx=1./200. dy=1./200. do j=1,ny do i=1,nx READ(1,*)x(i,j),y(i,j),u(i,j),v(i,j)!,p(i,j) READ(2,*)x(i,j),y(i,j),o(i,j) end do end do call derv1(u,ux,uy) call derv1(v,vx,vy) call stream WRITE(4,*)nx WRITE(4,*)ny do 10 j=1,ny do 10 i=1,nx 10 WRITE(3,*)x(i,j),y(i,j),-1*sf(i,j) stop end subroutine dero1(q,qx,qy) COMMON/aa2/nx,ny,nt,dx,dy,dt COMMON/aa4/a(500),b(500),c(500),d(500),l1,l2 DIMENSION q(500,500),qx(500,500),qy(500,500) alp=0.25 ak=1.5 do j=1,ny IF(j.ge.98.and.j.le.102)then i1=101 else i1=1 i2=nx endif
121
qx(i1,j)=(-3*q(i1+4,j)+16*q(i1+3,j)-36*q(i1+2,j)+48*q(i1+1,j) 1 -25*q(i1,j))/12/dx qx(i2,j)=(3*q(i2-4,j)-16*q(i2-3,j)+36*q(i2-2,j)-48*q(i2-1,j) 1 +25*q(i2,j))/12/dx do 10 i=i1+1,i2-1 a(i)=alp b(i)=1. c(i)=alp 10 d(i)=ak*(q(i+1,j)-q(i-1,j))/2/dx d(i1+1)=d(i1+1)-a(i1+1)*qx(i1,j) a(i1+1)=0. d(i2-1)=d(i2-1)-c(i2-1)*qx(i2,j) c(i2-1)=0. l1=i1+2 l2=i2-1 call tridi do 20 i=i1+1,i2-1 20 qx(i,j)=d(i) enddo do i=1,nx IF(i.le.101)then j1=1 j2=98 j3=102 j4=ny qy(i,j1)=0. qy(i,j2)=(3*q(i,j2-4)-16*q(i,j2-3)+36*q(i,j2-2)-48*q(i,j2-1) 1 +25*q(i,j2))/12/dy qy(i,j3)=(-3*q(i,j3+4)+16*q(i,j3+3)-36*q(i,j3+2)+48*q(i,j3+1) 1 -25*q(i,j3))/12/dy qy(i,j4)=0. do 110 j=j1+1,j2-1 a(j)=alp b(j)=1. c(j)=alp 110 d(j)=ak*(q(i,j+1)-q(i,j-1))/2/dy d(j1+1)=d(j1+1)-a(j1+1)*qy(i,j1) a(j1+1)=0. d(j2-1)=d(j2-1)-c(j2-1)*qy(i,j2) c(j2-1)=0. l1=j1+2 l2=j2-1 call tridi do 210j=j1+1,j2-1 210 qy(i,j)=d(j)
122
do 111 j=j3+1,j4-1 a(j)=alp b(j)=1. c(j)=alp 111 d(j)=ak*(q(i,j+1)-q(i,j-1))/2/dy d(j3+1)=d(j3+1)-a(j3+1)*qy(i,j3) a(j3+1)=0. d(j4-1)=d(j4-1)-c(j4-1)*qy(i,j4) c(j4-1)=0. l1=j3+2 l2=j4-1 call tridi do 211 j=j3+1,j4-1 211 qy(i,j)=d(j) else j1=1 j2=ny qy(i,j1)=0. qy(i,j2)=0. do 11 j=j1+1,j2-1 a(j)=alp b(j)=1. c(j)=alp 11 d(j)=ak*(q(i,j+1)-q(i,j-1))/2/dy d(j1+1)=d(j1+1)-a(j1+1)*qy(i,j1) a(j1+1)=0. d(j2-1)=d(j2-1)-c(j2-1)*qy(i,j2) c(j2-1)=0. l1=j1+2 l2=j2-1 call tridi do 21 j=j1+1,j2-1 21 qy(i,j)=d(j) endif enddo return end cxx subroutine derv1(q,qx,qy) COMMON/aa2/nx,ny,nt,dx,dy,dt COMMON/aa4/a(500),b(500),c(500),d(500),l1,l2 DIMENSION q(500,500),qx(500,500),qy(500,500) alp=0.25 ak=1.5 do j=1,ny
123
IF(j.ge.98.and.j.le.102)then i1=101 else i1=1 i2=nx endif qx(i1,j)=(-3*q(i1+4,j)+16*q(i1+3,j)-36*q(i1+2,j)+48*q(i1+1,j) 1 -25*q(i1,j))/12/dx qx(i2,j)=(3*q(i2-4,j)-16*q(i2-3,j)+36*q(i2-2,j)-48*q(i2-1,j) 1 +25*q(i2,j))/12/dx do 10 i=i1+1,i2-1 a(i)=alp b(i)=1. c(i)=alp 10 d(i)=ak*(q(i+1,j)-q(i-1,j))/2/dx d(i1+1)=d(i1+1)-a(i1+1)*qx(i1,j) a(i1+1)=0. d(i2-1)=d(i2-1)-c(i2-1)*qx(i2,j) c(i2-1)=0. l1=i1+2 l2=i2-1 call tridi do 20 i=i1+1,i2-1 20 qx(i,j)=d(i) enddo do i=1,nx IF(i.le.101)then j1=1 j2=98 j3=102 j4=ny qy(i,j3)=(-3*q(i,j3+4)+16*q(i,j3+3)-36*q(i,j3+2)+48*q(i,j3+1) 1 -25*q(i,j3))/12/dy qy(i,j4)=(3*q(i,j4-4)-16*q(i,j4-3)+36*q(i,j4-2)-48*q(i,j4-1) 1 +25*q(i,j4))/12/dy do 110 j=j3+1,j4-1 a(j)=alp b(j)=1. c(j)=alp 110 d(j)=ak*(q(i,j+1)-q(i,j-1))/2/dy d(j3+1)=d(j3+1)-a(j3+1)*qy(i,j3) a(j3+1)=0. d(j4-1)=d(j4-1)-c(j4-1)*qy(i,j4) c(j4-1)=0. l1=j3+2 l2=j4-1
124
call tridi do 210 j=j3+1,j4-1 210 qy(i,j)=d(j) else j1=1 j2=ny endif qy(i,j1)=(-3*q(i,j1+4)+16*q(i,j1+3)-36*q(i,j1+2)+48*q(i,j1+1) 1 -25*q(i,j1))/12/dy qy(i,j2)=(3*q(i,j2-4)-16*q(i,j2-3)+36*q(i,j2-2)-48*q(i,j2-1) 1 +25*q(i,j2))/12/dy do 11 j=j1+1,j2-1 a(j)=alp b(j)=1. c(j)=alp 11 d(j)=ak*(q(i,j+1)-q(i,j-1))/2/dy d(j1+1)=d(j1+1)-a(j1+1)*qy(i,j1) a(j1+1)=0. d(j2-1)=d(j2-1)-c(j2-1)*qy(i,j2) c(j2-1)=0. l1=j1+2 l2=j2-1 call tridi do 21 j=j1+1,j2-1 21 qy(i,j)=d(j) enddo return end SUBROUTINE TRIDI parameter (m=500) COMMON /AA4/A(m),B(m),C(m),D(m),L1,l2 DO 1 I=L1,L2 RT=-A(I)/B(I-1) B(I)=B(I)+RT*C(I-1) 1 D(I)=D(I)+RT*D(I-1) D(L2)=D(L2)/B(L2) DO 2 I=L2-1,L1-1,-1 2 D(I)=(D(I)-C(I)*D(I+1))/B(I) RETURN END subroutine stream parameter (m=500,n=500) COMMON/aa1/u(m,n),v(m,n),ux(m,n),uy(m,n),vx(m,n),vy(m,n) 1 ,p(m,n),x(m,n),y(m,n),sf(m,n) 1 ,o(m,n),ox(m,n),oy(m,n),oxx(m,n),oyy(m,n)
125
COMMON/aa2/nx,ny,nt,dx,dy,dt COMMON/AA4/A(m),B(m),C(m),D(m),L1,l2 DIMENSION f(m,n) ermx=0.000001 k=0 c----------------------------------------- c initial condition c----------------------------------------- do i=2,nx-1 IF(i.le.101)then j1=1 j2=98 j3=102 j4=ny do j=j3+1,j4-1 f(i,j)=-(vx(i,j)-uy(i,j)) sf(i,j)=0. end do else j1=1 j2=ny endif do j=j1+1,j2-1 f(i,j)=-(vx(i,j)-uy(i,j)) sf(i,j)=0. end do end do c----------------------------------------- c boundary condition c----------------------------------------- do i=1,nx IF(i.le.101)then j1=1 j2=98 j3=102 j4=ny sf(i,j3)=0. sf(i,j4)=0. else j1=1 j2=ny endif sf(i,j1)=0. sf(i,j2)=0. end do do j=1,ny
126
IF(j.ge.98.and.j.le.102)then i1=101 else i1=1 i2=nx endif sf(i1,j)=0. sf(i2,j)=0. end do c----------------------------------------- 15 ERR=0. k=k+1 IF(k.gt.20000)stop c----------------------------------------- c matric coefficient c----------------------------------------- do j=2,ny-1 IF(j.ge.98.and.j.le.102)then i1=101 else i1=1 i2=nx endif do i=i1+1,i2-1 a(i)=1. b(i)=-4. c(i)=1. d(i)=-sf(i,j+1)-sf(i,j-1)+f(i,j)*dx*dx enddo c----------------------------------------- c modification matric coefficien c----------------------------------------- d(i1+1)=d(i1+1)-a(i1+1)*sf(i1,j) a(i1+1)=0. d(i2-1)=d(i2-1)-c(i2-1)*sf(i2,j) c(i2-1)=0. l1=i1+2 l2=i2-1 call tridi do i=i1+1,i2-1 ERR=ERR+ABS(d(i)-sf(i,j)) sf(i,j)=d(i) end do enddo WRITE(*,*)k,err IF(err.gt.ermx)GOTO 15 return end
127
Lampiran 10. Program Tambahan Untuk 2 Sirip c -------------------------------------------------------- c PROGRAM TAMBAHAN UNTUK 2 SIRIP c -------------------------------------------------------- PARAMETER(m=500,n=500) COMMON/aa1/u(m,n),v(m,n),ux(m,n),uy(m,n),vx(m,n),vy(m,n) 1 ,p(m,n),x(m,n),y(m,n),sf(m,n) 1 ,o(m,n),ox(m,n),oy(m,n),oxx(m,n),oyy(m,n) COMMON/aa2/nx,ny,nt,dx,dy,dt OPEN(1,FILE='C:\matlab6p1\work\pv') OPEN(2,FILE='C:\matlab6p1\work\temp') OPEN(3,FILE='C:\matlab6p1\work\streamf') OPEN(4,FILE='C:\matlab6p1\work\num') nx=201 ny=201 dx=1./200. dy=1./200. do j=1,ny do i=1,nx READ(1,*)x(i,j),y(i,j),u(i,j),v(i,j)!,p(i,j) READ(2,*)x(i,j),y(i,j),o(i,j) end do end do call derv1(u,ux,uy) call derv1(v,vx,vy) call stream WRITE(4,*)nx WRITE(4,*)ny do 10 j=1,ny do 10 i=1,nx 10 WRITE(3,*)x(i,j),y(i,j),-1*sf(i,j) stop end subroutine dero1(q,qx,qy) COMMON/aa2/nx,ny,nt,dx,dy,dt COMMON/aa4/a(500),b(500),c(500),d(500),l1,l2 DIMENSION q(500,500),qx(500,500),qy(500,500) alp=0.25 ak=1.5 do j=1,ny IF(j.ge.65.and.j.le.69)then i1=101 elseif(j.ge.131.and.j.le.135)then i1=101 else
128
i1=1 i2=nx endif qx(i1,j)=(-3*q(i1+4,j)+16*q(i1+3,j)-36*q(i1+2,j)+48*q(i1+1,j) 1 -25*q(i1,j))/12/dx qx(i2,j)=(3*q(i2-4,j)-16*q(i2-3,j)+36*q(i2-2,j)-48*q(i2-1,j) 1 +25*q(i2,j))/12/dx do 10 i=i1+1,i2-1 a(i)=alp b(i)=1. c(i)=alp 10 d(i)=ak*(q(i+1,j)-q(i-1,j))/2/dx d(i1+1)=d(i1+1)-a(i1+1)*qx(i1,j) a(i1+1)=0. d(i2-1)=d(i2-1)-c(i2-1)*qx(i2,j) c(i2-1)=0. l1=i1+2 l2=i2-1 call tridi do 20 i=i1+1,i2-1 20 qx(i,j)=d(i) enddo do i=1,nx IF(i.le.101)then j1=1 j2=65 j3=69 j4=131 j5=135 j6=ny qy(i,j1)=0. qy(i,j2)=(3*q(i,j2-4)-16*q(i,j2-3)+36*q(i,j2-2)-48*q(i,j2-1) 1 +25*q(i,j2))/12/dy qy(i,j3)=(-3*q(i,j3+4)+16*q(i,j3+3)-36*q(i,j3+2)+48*q(i,j3+1) 1 -25*q(i,j3))/12/dy qy(i,j4)=(3*q(i,j4-4)-16*q(i,j4-3)+36*q(i,j4-2)-48*q(i,j4-1) 1 +25*q(i,j4))/12/dy qy(i,j5)=(-3*q(i,j5+4)+16*q(i,j5+3)-36*q(i,j5+2)+48*q(i,j5+1) 1 -25*q(i,j5))/12/dy qy(i,j6)=0. do 110 j=j1+1,j2-1 a(j)=alp b(j)=1. c(j)=alp
129
110 d(j)=ak*(q(i,j+1)-q(i,j-1))/2/dy d(j1+1)=d(j1+1)-a(j1+1)*qy(i,j1) a(j1+1)=0. d(j2-1)=d(j2-1)-c(j2-1)*qy(i,j2) c(j2-1)=0. l1=j1+2 l2=j2-1 call tridi do 210j=j1+1,j2-1 210 qy(i,j)=d(j) do 111 j=j3+1,j4-1 a(j)=alp b(j)=1. c(j)=alp 111 d(j)=ak*(q(i,j+1)-q(i,j-1))/2/dy d(j3+1)=d(j3+1)-a(j3+1)*qy(i,j3) a(j3+1)=0. d(j4-1)=d(j4-1)-c(j4-1)*qy(i,j4) c(j4-1)=0. l1=j3+2 l2=j4-1 call tridi do 211 j=j3+1,j4-1 211 qy(i,j)=d(j) do 333 j=j5+1,j6-1 a(j)=alp b(j)=1. c(j)=alp 333 d(j)=ak*(q(i,j+1)-q(i,j-1))/2/dy d(j5+1)=d(j5+1)-a(j5+1)*qy(i,j5) a(j5+1)=0. d(j6-1)=d(j6-1)-c(j6-1)*qy(i,j6) c(j6-1)=0. l1=j5+2 l2=j6-1 call tridi do 433 j=j5+1,j6-1 433 qy(i,j)=d(j) else j1=1 j2=ny qy(i,j1)=0. qy(i,j2)=0. do 11 j=j1+1,j2-1 a(j)=alp b(j)=1.
130
c(j)=alp 11 d(j)=ak*(q(i,j+1)-q(i,j-1))/2/dy d(j1+1)=d(j1+1)-a(j1+1)*qy(i,j1) a(j1+1)=0. d(j2-1)=d(j2-1)-c(j2-1)*qy(i,j2) c(j2-1)=0. l1=j1+2 l2=j2-1 call tridi do 21 j=j1+1,j2-1 21 qy(i,j)=d(j) endif enddo return end cxx subroutine derv1(q,qx,qy) COMMON/aa2/nx,ny,nt,dx,dy,dt COMMON/aa4/a(500),b(500),c(500),d(500),l1,l2 DIMENSION q(500,500),qx(500,500),qy(500,500) alp=0.25 ak=1.5 do j=1,ny IF(j.ge.65.and.j.le.69)then i1=101 elseif(j.ge.131.and.j.le.135)then i1=101 else i1=1 i2=nx endif qx(i1,j)=(-3*q(i1+4,j)+16*q(i1+3,j)-36*q(i1+2,j)+48*q(i1+1,j) 1 -25*q(i1,j))/12/dx qx(i2,j)=(3*q(i2-4,j)-16*q(i2-3,j)+36*q(i2-2,j)-48*q(i2-1,j) 1 +25*q(i2,j))/12/dx do 10 i=i1+1,i2-1 a(i)=alp b(i)=1. c(i)=alp 10 d(i)=ak*(q(i+1,j)-q(i-1,j))/2/dx d(i1+1)=d(i1+1)-a(i1+1)*qx(i1,j) a(i1+1)=0. d(i2-1)=d(i2-1)-c(i2-1)*qx(i2,j) c(i2-1)=0. l1=i1+2 l2=i2-1
131
call tridi do 20 i=i1+1,i2-1 20 qx(i,j)=d(i) enddo do i=1,nx IF(i.le.101)then j1=1 j2=65 j3=69 j4=131 j5=135 j6=ny qy(i,j3)=(-3*q(i,j3+4)+16*q(i,j3+3)-36*q(i,j3+2)+48*q(i,j3+1) 1 -25*q(i,j3))/12/dy qy(i,j4)=(3*q(i,j4-4)-16*q(i,j4-3)+36*q(i,j4-2)-48*q(i,j4-1) 1 +25*q(i,j4))/12/dy do 110 j=j3+1,j4-1 a(j)=alp b(j)=1. c(j)=alp 110 d(j)=ak*(q(i,j+1)-q(i,j-1))/2/dy d(j3+1)=d(j3+1)-a(j3+1)*qy(i,j3) a(j3+1)=0. d(j4-1)=d(j4-1)-c(j4-1)*qy(i,j4) c(j4-1)=0. l1=j3+2 l2=j4-1 call tridi do 210 j=j3+1,j4-1 210 qy(i,j)=d(j) qy(i,j5)=(-3*q(i,j5+4)+16*q(i,j5+3)-36*q(i,j5+2)+48*q(i,j5+1) 1 -25*q(i,j5))/12/dy qy(i,j6)=(3*q(i,j6-4)-16*q(i,j6-3)+36*q(i,j6-2)-48*q(i,j6-1) 1 +25*q(i,j6))/12/dy do 330 j=j5+1,j6-1 a(j)=alp b(j)=1. c(j)=alp 330 d(j)=ak*(q(i,j+1)-q(i,j-1))/2/dy d(j5+1)=d(j5+1)-a(j5+1)*qy(i,j5) a(j5+1)=0. d(j6-1)=d(j6-1)-c(j6-1)*qy(i,j6) c(j6-1)=0. l1=j5+2
132
l2=j6-1 call tridi do 340 j=j5+1,j6-1 340 qy(i,j)=d(j) else j1=1 j2=ny endif qy(i,j1)=(-3*q(i,j1+4)+16*q(i,j1+3)-36*q(i,j1+2)+48*q(i,j1+1) 1 -25*q(i,j1))/12/dy qy(i,j2)=(3*q(i,j2-4)-16*q(i,j2-3)+36*q(i,j2-2)-48*q(i,j2-1) 1 +25*q(i,j2))/12/dy do 11 j=j1+1,j2-1 a(j)=alp b(j)=1. c(j)=alp 11 d(j)=ak*(q(i,j+1)-q(i,j-1))/2/dy d(j1+1)=d(j1+1)-a(j1+1)*qy(i,j1) a(j1+1)=0. d(j2-1)=d(j2-1)-c(j2-1)*qy(i,j2) c(j2-1)=0. l1=j1+2 l2=j2-1 call tridi do 21 j=j1+1,j2-1 21 qy(i,j)=d(j) enddo return end SUBROUTINE TRIDI parameter (m=500) COMMON /AA4/A(m),B(m),C(m),D(m),L1,l2 DO 1 I=L1,L2 RT=-A(I)/B(I-1) B(I)=B(I)+RT*C(I-1) 1 D(I)=D(I)+RT*D(I-1) D(L2)=D(L2)/B(L2) DO 2 I=L2-1,L1-1,-1 2 D(I)=(D(I)-C(I)*D(I+1))/B(I) RETURN END subroutine stream parameter (m=500,n=500)
133
COMMON/aa1/u(m,n),v(m,n),ux(m,n),uy(m,n),vx(m,n),vy(m,n) 1 ,p(m,n),x(m,n),y(m,n),sf(m,n) 1 ,o(m,n),ox(m,n),oy(m,n),oxx(m,n),oyy(m,n) COMMON/aa2/nx,ny,nt,dx,dy,dt COMMON/AA4/A(m),B(m),C(m),D(m),L1,l2 DIMENSION f(m,n) ermx=0.000001 k=0 c----------------------------------------- c initial condition c----------------------------------------- do i=2,nx-1 IF(i.le.101)then j1=1 j2=65 j3=69 j4=131 j5=135 j6=ny do j=j3+1,j4-1 f(i,j)=-(vx(i,j)-uy(i,j)) sf(i,j)=0. end do do j=j5+1,j6-1 f(i,j)=-(vx(i,j)-uy(i,j)) sf(i,j)=0. end do else j1=1 j2=ny endif do j=j1+1,j2-1 f(i,j)=-(vx(i,j)-uy(i,j)) sf(i,j)=0. end do end do c----------------------------------------- c boundary condition c----------------------------------------- do i=1,nx IF(i.le.101)then j1=1 j2=65 j3=69 j4=131 j5=135
134
j6=ny sf(i,j3)=0. sf(i,j4)=0. sf(i,j5)=0. sf(i,j6)=0. else j1=1 j2=ny endif sf(i,j1)=0. sf(i,j2)=0. end do do j=1,ny IF(j.ge.65.and.j.le.69)then i1=101 elseif(j.ge.131.and.j.le.135)then i1=101 else i1=1 i2=nx endif sf(i1,j)=0. sf(i2,j)=0. end do c----------------------------------------- 15 ERR=0. k=k+1 IF(k.gt.20000)stop c----------------------------------------- c matric coefficient c----------------------------------------- do j=2,ny-1 IF(j.ge.65.and.j.le.69)then i1=101 elseif(j.ge.131.and.j.le.135)then i1=101 else i1=1 i2=nx endif do i=i1+1,i2-1 a(i)=1. b(i)=-4. c(i)=1. d(i)=-sf(i,j+1)-sf(i,j-1)+f(i,j)*dx*dx enddo c-----------------------------------------
135
c modification matric coefficien c----------------------------------------- d(i1+1)=d(i1+1)-a(i1+1)*sf(i1,j) a(i1+1)=0. d(i2-1)=d(i2-1)-c(i2-1)*sf(i2,j) c(i2-1)=0. l1=i1+2 l2=i2-1 call tridi do i=i1+1,i2-1 ERR=ERR+ABS(d(i)-sf(i,j)) sf(i,j)=d(i) end do enddo WRITE(*,*)k,err IF(err.gt.ermx)GOTO 15 return end
136
Lampiran11. Program Tambahan Untuk 3 Sirip c -------------------------------------------------------- c PROGRAM TAMBAHAN UNTUK 3 SIRIP c -------------------------------------------------------- PARAMETER(m=500,n=500) COMMON/aa1/u(m,n),v(m,n),ux(m,n),uy(m,n),vx(m,n),vy(m,n) 1 ,p(m,n),x(m,n),y(m,n),sf(m,n) 1 ,o(m,n),ox(m,n),oy(m,n),oxx(m,n),oyy(m,n) COMMON/aa2/nx,ny,nt,dx,dy,dt OPEN(1,FILE='C:\matlab6p1\work\pv') OPEN(2,FILE='C:\matlab6p1\work\temp') OPEN(3,FILE='C:\matlab6p1\work\streamf') OPEN(4,FILE='C:\matlab6p1\work\num') nx=201 ny=201 dx=1./200. dy=1./200. do j=1,ny do i=1,nx READ(1,*)x(i,j),y(i,j),u(i,j),v(i,j)!,p(i,j) READ(2,*)x(i,j),y(i,j),o(i,j) end do end do call derv1(u,ux,uy) call derv1(v,vx,vy) call stream WRITE(4,*)nx WRITE(4,*)ny do 10 j=1,ny do 10 i=1,nx 10 WRITE(3,*)x(i,j),y(i,j),-1*sf(i,j) stop end subroutine dero1(q,qx,qy) COMMON/aa2/nx,ny,nt,dx,dy,dt COMMON/aa4/a(500),b(500),c(500),d(500),l1,l2 DIMENSION q(500,500),qx(500,500),qy(500,500) alp=0.25 ak=1.5 do j=1,ny IF(j.ge.48.and.j.le.52)then i1=101 elseif(j.ge.98.and.j.le.102)then i1=101 elseif(j.ge.148.and.j.le.152)then
137
i1=101 else i1=1 i2=nx endif qx(i1,j)=(-3*q(i1+4,j)+16*q(i1+3,j)-36*q(i1+2,j)+48*q(i1+1,j) 1 -25*q(i1,j))/12/dx qx(i2,j)=(3*q(i2-4,j)-16*q(i2-3,j)+36*q(i2-2,j)-48*q(i2-1,j) 1 +25*q(i2,j))/12/dx do 10 i=i1+1,i2-1 a(i)=alp b(i)=1. c(i)=alp 10 d(i)=ak*(q(i+1,j)-q(i-1,j))/2/dx d(i1+1)=d(i1+1)-a(i1+1)*qx(i1,j) a(i1+1)=0. d(i2-1)=d(i2-1)-c(i2-1)*qx(i2,j) c(i2-1)=0. l1=i1+2 l2=i2-1 call tridi do 20 i=i1+1,i2-1 20 qx(i,j)=d(i) enddo do i=1,nx IF(i.le.101)then j1=1 j2=48 j3=52 j4=98 j5=102 j6=148 j7=152 j8=ny qy(i,j1)=0. qy(i,j2)=(3*q(i,j2-4)-16*q(i,j2-3)+36*q(i,j2-2)-48*q(i,j2-1) 1 +25*q(i,j2))/12/dy qy(i,j3)=(-3*q(i,j3+4)+16*q(i,j3+3)-36*q(i,j3+2)+48*q(i,j3+1) 1 -25*q(i,j3))/12/dy qy(i,j4)=(3*q(i,j4-4)-16*q(i,j4-3)+36*q(i,j4-2)-48*q(i,j4-1) 1 +25*q(i,j4))/12/dy qy(i,j5)=(-3*q(i,j5+4)+16*q(i,j5+3)-36*q(i,j5+2)+48*q(i,j5+1) 1 -25*q(i,j5))/12/dy qy(i,j6)=(3*q(i,j6-4)-16*q(i,j6-3)+36*q(i,j6-2)-48*q(i,j6-1)
138
1 +25*q(i,j6))/12/dy qy(i,j7)=(-3*q(i,j7+4)+16*q(i,j7+3)-36*q(i,j7+2)+48*q(i,j7+1) 1 -25*q(i,j7))/12/dy qy(i,j8)=0. do 110 j=j1+1,j2-1 a(j)=alp b(j)=1. c(j)=alp 110 d(j)=ak*(q(i,j+1)-q(i,j-1))/2/dy d(j1+1)=d(j1+1)-a(j1+1)*qy(i,j1) a(j1+1)=0. d(j2-1)=d(j2-1)-c(j2-1)*qy(i,j2) c(j2-1)=0. l1=j1+2 l2=j2-1 call tridi do 210j=j1+1,j2-1 210 qy(i,j)=d(j) do 111 j=j3+1,j4-1 a(j)=alp b(j)=1. c(j)=alp 111 d(j)=ak*(q(i,j+1)-q(i,j-1))/2/dy d(j3+1)=d(j3+1)-a(j3+1)*qy(i,j3) a(j3+1)=0. d(j4-1)=d(j4-1)-c(j4-1)*qy(i,j4) c(j4-1)=0. l1=j3+2 l2=j4-1 call tridi do 211 j=j3+1,j4-1 211 qy(i,j)=d(j) do 333 j=j5+1,j6-1 a(j)=alp b(j)=1. c(j)=alp 333 d(j)=ak*(q(i,j+1)-q(i,j-1))/2/dy d(j5+1)=d(j5+1)-a(j5+1)*qy(i,j5) a(j5+1)=0. d(j6-1)=d(j6-1)-c(j6-1)*qy(i,j6) c(j6-1)=0. l1=j5+2 l2=j6-1 call tridi do 433 j=j5+1,j6-1
139
433 qy(i,j)=d(j) do 555 j=j7+1,j8-1 a(j)=alp b(j)=1. c(j)=alp 555 d(j)=ak*(q(i,j+1)-q(i,j-1))/2/dy d(j7+1)=d(j7+1)-a(j7+1)*qy(i,j7) a(j7+1)=0. d(j8-1)=d(j8-1)-c(j8-1)*qy(i,j8) c(j8-1)=0. l1=j7+2 l2=j8-1 call tridi do 655 j=j7+1,j8-1 655 qy(i,j)=d(j) else j1=1 j2=ny qy(i,j1)=0. qy(i,j2)=0. do 11 j=j1+1,j2-1 a(j)=alp b(j)=1. c(j)=alp 11 d(j)=ak*(q(i,j+1)-q(i,j-1))/2/dy d(j1+1)=d(j1+1)-a(j1+1)*qy(i,j1) a(j1+1)=0. d(j2-1)=d(j2-1)-c(j2-1)*qy(i,j2) c(j2-1)=0. l1=j1+2 l2=j2-1 call tridi do 21 j=j1+1,j2-1 21 qy(i,j)=d(j) endif enddo return end cxx subroutine derv1(q,qx,qy) COMMON/aa2/nx,ny,nt,dx,dy,dt COMMON/aa4/a(500),b(500),c(500),d(500),l1,l2 DIMENSION q(500,500),qx(500,500),qy(500,500) alp=0.25 ak=1.5
140
do j=1,ny IF(j.ge.48.and.j.le.52)then i1=101 elseif(j.ge.98.and.j.le.102)then i1=101 elseif(j.ge.148.and.j.le.152)then i1=101 else i1=1 i2=nx endif qx(i1,j)=(-3*q(i1+4,j)+16*q(i1+3,j)-36*q(i1+2,j)+48*q(i1+1,j) 1 -25*q(i1,j))/12/dx qx(i2,j)=(3*q(i2-4,j)-16*q(i2-3,j)+36*q(i2-2,j)-48*q(i2-1,j) 1 +25*q(i2,j))/12/dx do 10 i=i1+1,i2-1 a(i)=alp b(i)=1. c(i)=alp 10 d(i)=ak*(q(i+1,j)-q(i-1,j))/2/dx d(i1+1)=d(i1+1)-a(i1+1)*qx(i1,j) a(i1+1)=0. d(i2-1)=d(i2-1)-c(i2-1)*qx(i2,j) c(i2-1)=0. l1=i1+2 l2=i2-1 call tridi do 20 i=i1+1,i2-1 20 qx(i,j)=d(i) enddo do i=1,nx IF(i.le.101)then j1=1 j2=48 j3=52 j4=98 j5=102 j6=148 j7=152 j8=ny qy(i,j3)=(-3*q(i,j3+4)+16*q(i,j3+3)-36*q(i,j3+2)+48*q(i,j3+1) 1 -25*q(i,j3))/12/dy qy(i,j4)=(3*q(i,j4-4)-16*q(i,j4-3)+36*q(i,j4-2)-48*q(i,j4-1) 1 +25*q(i,j4))/12/dy do 110 j=j3+1,j4-1
141
a(j)=alp b(j)=1. c(j)=alp 110 d(j)=ak*(q(i,j+1)-q(i,j-1))/2/dy d(j3+1)=d(j3+1)-a(j3+1)*qy(i,j3) a(j3+1)=0. d(j4-1)=d(j4-1)-c(j4-1)*qy(i,j4) c(j4-1)=0. l1=j3+2 l2=j4-1 call tridi do 210 j=j3+1,j4-1 210 qy(i,j)=d(j) qy(i,j5)=(-3*q(i,j5+4)+16*q(i,j5+3)-36*q(i,j5+2)+48*q(i,j5+1) 1 -25*q(i,j5))/12/dy qy(i,j6)=(3*q(i,j6-4)-16*q(i,j6-3)+36*q(i,j6-2)-48*q(i,j6-1) 1 +25*q(i,j6))/12/dy do 330 j=j5+1,j6-1 a(j)=alp b(j)=1. c(j)=alp 330 d(j)=ak*(q(i,j+1)-q(i,j-1))/2/dy d(j5+1)=d(j5+1)-a(j5+1)*qy(i,j5) a(j5+1)=0. d(j6-1)=d(j6-1)-c(j6-1)*qy(i,j6) c(j6-1)=0. l1=j5+2 l2=j6-1 call tridi do 340 j=j5+1,j6-1 340 qy(i,j)=d(j) qy(i,j7)=(-3*q(i,j7+4)+16*q(i,j7+3)-36*q(i,j7+2)+48*q(i,j7+1) 1 -25*q(i,j7))/12/dy qy(i,j8)=(3*q(i,j8-4)-16*q(i,j8-3)+36*q(i,j8-2)-48*q(i,j8-1) 1 +25*q(i,j8))/12/dy do 440 j=j7+1,j8-1 a(j)=alp b(j)=1. c(j)=alp 440 d(j)=ak*(q(i,j+1)-q(i,j-1))/2/dy d(j7+1)=d(j7+1)-a(j7+1)*qy(i,j7) a(j7+1)=0. d(j8-1)=d(j8-1)-c(j8-1)*qy(i,j8) c(j8-1)=0. l1=j7+2
142
l2=j8-1 call tridi do 450 j=j7+1,j8-1 450 qy(i,j)=d(j) else j1=1 j2=ny endif qy(i,j1)=(-3*q(i,j1+4)+16*q(i,j1+3)-36*q(i,j1+2)+48*q(i,j1+1) 1 -25*q(i,j1))/12/dy qy(i,j2)=(3*q(i,j2-4)-16*q(i,j2-3)+36*q(i,j2-2)-48*q(i,j2-1) 1 +25*q(i,j2))/12/dy do 11 j=j1+1,j2-1 a(j)=alp b(j)=1. c(j)=alp 11 d(j)=ak*(q(i,j+1)-q(i,j-1))/2/dy d(j1+1)=d(j1+1)-a(j1+1)*qy(i,j1) a(j1+1)=0. d(j2-1)=d(j2-1)-c(j2-1)*qy(i,j2) c(j2-1)=0. l1=j1+2 l2=j2-1 call tridi do 21 j=j1+1,j2-1 21 qy(i,j)=d(j) enddo return end SUBROUTINE TRIDI parameter (m=500) COMMON /AA4/A(m),B(m),C(m),D(m),L1,l2 DO 1 I=L1,L2 RT=-A(I)/B(I-1) B(I)=B(I)+RT*C(I-1) 1 D(I)=D(I)+RT*D(I-1) D(L2)=D(L2)/B(L2) DO 2 I=L2-1,L1-1,-1 2 D(I)=(D(I)-C(I)*D(I+1))/B(I) RETURN END subroutine stream
143
parameter (m=500,n=500) COMMON/aa1/u(m,n),v(m,n),ux(m,n),uy(m,n),vx(m,n),vy(m,n) 1 ,p(m,n),x(m,n),y(m,n),sf(m,n) 1 ,o(m,n),ox(m,n),oy(m,n),oxx(m,n),oyy(m,n) COMMON/aa2/nx,ny,nt,dx,dy,dt COMMON/AA4/A(m),B(m),C(m),D(m),L1,l2 DIMENSION f(m,n) ermx=0.000001 k=0 c----------------------------------------- c initial condition c----------------------------------------- do i=2,nx-1 IF(i.le.101)then j1=1 j2=48 j3=52 j4=98 j5=102 j6=148 j7=152 j8=ny do j=j3+1,j4-1 f(i,j)=-(vx(i,j)-uy(i,j)) sf(i,j)=0. end do do j=j5+1,j6-1 f(i,j)=-(vx(i,j)-uy(i,j)) sf(i,j)=0. end do do j=j7+1,j8-1 f(i,j)=-(vx(i,j)-uy(i,j)) sf(i,j)=0. end do else j1=1 j2=ny endif do j=j1+1,j2-1 f(i,j)=-(vx(i,j)-uy(i,j)) sf(i,j)=0. end do end do c----------------------------------------- c boundary condition c-----------------------------------------
144
do i=1,nx IF(i.le.101)then j1=1 j2=48 j3=52 j4=98 j5=102 j6=148 j7=152 j8=ny sf(i,j3)=0. sf(i,j4)=0. sf(i,j5)=0. sf(i,j6)=0. sf(i,j7)=0. sf(i,j8)=0. else j1=1 j2=ny endif sf(i,j1)=0. sf(i,j2)=0. end do do j=1,ny IF(j.ge.48.and.j.le.52)then i1=101 elseif(j.ge.98.and.j.le.102)then i1=101 elseif(j.ge.148.and.j.le.152)then i1=101 else i1=1 i2=nx endif sf(i1,j)=0. sf(i2,j)=0. end do c----------------------------------------- 15 ERR=0. k=k+1 IF(k.gt.20000)stop c----------------------------------------- c matric coefficient c----------------------------------------- do j=2,ny-1 IF(j.ge.48.and.j.le.52)then i1=101
145
elseif(j.ge.98.and.j.le.102)then i1=101 elseif(j.ge.148.and.j.le.152)then i1=101 else i1=1 i2=nx endif do i=i1+1,i2-1 a(i)=1. b(i)=-4. c(i)=1. d(i)=-sf(i,j+1)-sf(i,j-1)+f(i,j)*dx*dx enddo c----------------------------------------- c modification matric coefficien c----------------------------------------- d(i1+1)=d(i1+1)-a(i1+1)*sf(i1,j) a(i1+1)=0. d(i2-1)=d(i2-1)-c(i2-1)*sf(i2,j) c(i2-1)=0. l1=i1+2 l2=i2-1 call tridi do i=i1+1,i2-1 ERR=ERR+ABS(d(i)-sf(i,j)) sf(i,j)=d(i) end do enddo WRITE(*,*)k,err IF(err.gt.ermx)GOTO 15 return end
146
Lampiran 12. Program Tambahan Untuk 4 Sirip c -------------------------------------------------------- c PROGRAM TAMBAHAN UNTUK 4 SIRIP c -------------------------------------------------------- PARAMETER(m=500,n=500) COMMON/aa1/u(m,n),v(m,n),ux(m,n),uy(m,n),vx(m,n),vy(m,n) 1 ,p(m,n),x(m,n),y(m,n),sf(m,n) 1 ,o(m,n),ox(m,n),oy(m,n),oxx(m,n),oyy(m,n) COMMON/aa2/nx,ny,nt,dx,dy,dt OPEN(1,FILE='C:\matlab6p1\work\pv') OPEN(2,FILE='C:\matlab6p1\work\temp') OPEN(3,FILE='C:\matlab6p1\work\streamf') OPEN(4,FILE='C:\matlab6p1\work\num') nx=201 ny=201 dx=1./200. dy=1./200. do j=1,ny do i=1,nx READ(1,*)x(i,j),y(i,j),u(i,j),v(i,j)!,p(i,j) READ(2,*)x(i,j),y(i,j),o(i,j) end do end do call derv1(u,ux,uy) call derv1(v,vx,vy) call stream WRITE(4,*)nx WRITE(4,*)ny do 10 j=1,ny do 10 i=1,nx 10 WRITE(3,*)x(i,j),y(i,j),-1*sf(i,j) stop end subroutine dero1(q,qx,qy) COMMON/aa2/nx,ny,nt,dx,dy,dt COMMON/aa4/a(500),b(500),c(500),d(500),l1,l2 DIMENSION q(500,500),qx(500,500),qy(500,500) alp=0.25 ak=1.5 do j=1,ny IF(j.ge.38.and.j.le.42)then i1=101 elseif(j.ge.78.and.j.le.82)then i1=101 elseif(j.ge.118.and.j.le.122)then i1=101
147
elseif(j.ge.158.and.j.le.162)then i1=101 else i1=1 i2=nx endif qx(i1,j)=(-3*q(i1+4,j)+16*q(i1+3,j)-36*q(i1+2,j)+48*q(i1+1,j) 1 -25*q(i1,j))/12/dx qx(i2,j)=(3*q(i2-4,j)-16*q(i2-3,j)+36*q(i2-2,j)-48*q(i2-1,j) 1 +25*q(i2,j))/12/dx do 10 i=i1+1,i2-1 a(i)=alp b(i)=1. c(i)=alp 10 d(i)=ak*(q(i+1,j)-q(i-1,j))/2/dx d(i1+1)=d(i1+1)-a(i1+1)*qx(i1,j) a(i1+1)=0. d(i2-1)=d(i2-1)-c(i2-1)*qx(i2,j) c(i2-1)=0. l1=i1+2 l2=i2-1 call tridi do 20 i=i1+1,i2-1 20 qx(i,j)=d(i) enddo do i=1,nx IF(i.le.101)then j1=1 j2=38 j3=42 j4=78 j5=82 j6=118 j7=122 j8=158 j9=162 j10=ny qy(i,j1)=0. qy(i,j2)=(3*q(i,j2-4)-16*q(i,j2-3)+36*q(i,j2-2)-48*q(i,j2-1) 1 +25*q(i,j2))/12/dy qy(i,j3)=(-3*q(i,j3+4)+16*q(i,j3+3)-36*q(i,j3+2)+48*q(i,j3+1) 1 -25*q(i,j3))/12/dy qy(i,j4)=(3*q(i,j4-4)-16*q(i,j4-3)+36*q(i,j4-2)-48*q(i,j4-1) 1 +25*q(i,j4))/12/dy qy(i,j5)=(-3*q(i,j5+4)+16*q(i,j5+3)-36*q(i,j5+2)+48*q(i,j5+1)
148
1 -25*q(i,j5))/12/dy qy(i,j6)=(3*q(i,j6-4)-16*q(i,j6-3)+36*q(i,j6-2)-48*q(i,j6-1) 1 +25*q(i,j6))/12/dy qy(i,j7)=(-3*q(i,j7+4)+16*q(i,j7+3)-36*q(i,j7+2)+48*q(i,j7+1) 1 -25*q(i,j7))/12/dy qy(i,j8)=(3*q(i,j8-4)-16*q(i,j8-3)+36*q(i,j8-2)-48*q(i,j8-1) 1 +25*q(i,j8))/12/dy qy(i,j9)=(-3*q(i,j9+4)+16*q(i,j9+3)-36*q(i,j9+2)+48*q(i,j9+1) 1 -25*q(i,j9))/12/dy qy(i,j10)=0. do 110 j=j1+1,j2-1 a(j)=alp b(j)=1. c(j)=alp 110 d(j)=ak*(q(i,j+1)-q(i,j-1))/2/dy d(j1+1)=d(j1+1)-a(j1+1)*qy(i,j1) a(j1+1)=0. d(j2-1)=d(j2-1)-c(j2-1)*qy(i,j2) c(j2-1)=0. l1=j1+2 l2=j2-1 call tridi do 210j=j1+1,j2-1 210 qy(i,j)=d(j) do 111 j=j3+1,j4-1 a(j)=alp b(j)=1. c(j)=alp 111 d(j)=ak*(q(i,j+1)-q(i,j-1))/2/dy d(j3+1)=d(j3+1)-a(j3+1)*qy(i,j3) a(j3+1)=0. d(j4-1)=d(j4-1)-c(j4-1)*qy(i,j4) c(j4-1)=0. l1=j3+2 l2=j4-1 call tridi do 211 j=j3+1,j4-1 211 qy(i,j)=d(j) do 333 j=j5+1,j6-1 a(j)=alp b(j)=1. c(j)=alp 333 d(j)=ak*(q(i,j+1)-q(i,j-1))/2/dy d(j5+1)=d(j5+1)-a(j5+1)*qy(i,j5) a(j5+1)=0.
149
d(j6-1)=d(j6-1)-c(j6-1)*qy(i,j6) c(j6-1)=0. l1=j5+2 l2=j6-1 call tridi do 433 j=j5+1,j6-1 433 qy(i,j)=d(j) do 555 j=j7+1,j8-1 a(j)=alp b(j)=1. c(j)=alp 555 d(j)=ak*(q(i,j+1)-q(i,j-1))/2/dy d(j7+1)=d(j7+1)-a(j7+1)*qy(i,j7) a(j7+1)=0. d(j8-1)=d(j8-1)-c(j8-1)*qy(i,j8) c(j8-1)=0. l1=j7+2 l2=j8-1 call tridi do 655 j=j7+1,j8-1 655 qy(i,j)=d(j) do 666 j=j9+1,j10-1 a(j)=alp b(j)=1. c(j)=alp 666 d(j)=ak*(q(i,j+1)-q(i,j-1))/2/dy d(j9+1)=d(j9+1)-a(j9+1)*qy(i,j9) a(j9+1)=0. d(j10-1)=d(j10-1)-c(j10-1)*qy(i,j10) c(j10-1)=0. l1=j9+2 l2=j10-1 call tridi do 755 j=j9+1,j10-1 755 qy(i,j)=d(j) else j1=1 j2=ny qy(i,j1)=0. qy(i,j2)=0. do 11 j=j1+1,j2-1 a(j)=alp b(j)=1. c(j)=alp 11 d(j)=ak*(q(i,j+1)-q(i,j-1))/2/dy d(j1+1)=d(j1+1)-a(j1+1)*qy(i,j1)
150
a(j1+1)=0. d(j2-1)=d(j2-1)-c(j2-1)*qy(i,j2) c(j2-1)=0. l1=j1+2 l2=j2-1 call tridi do 21 j=j1+1,j2-1 21 qy(i,j)=d(j) endif enddo return end cxx subroutine derv1(q,qx,qy) COMMON/aa2/nx,ny,nt,dx,dy,dt COMMON/aa4/a(500),b(500),c(500),d(500),l1,l2 DIMENSION q(500,500),qx(500,500),qy(500,500) alp=0.25 ak=1.5 do j=1,ny IF(j.ge.38.and.j.le.42)then i1=101 elseif(j.ge.78.and.j.le.82)then i1=101 elseif(j.ge.118.and.j.le.122)then i1=101 elseif(j.ge.158.and.j.le.162)then i1=101 else i1=1 i2=nx endif qx(i1,j)=(-3*q(i1+4,j)+16*q(i1+3,j)-36*q(i1+2,j)+48*q(i1+1,j) 1 -25*q(i1,j))/12/dx qx(i2,j)=(3*q(i2-4,j)-16*q(i2-3,j)+36*q(i2-2,j)-48*q(i2-1,j) 1 +25*q(i2,j))/12/dx do 10 i=i1+1,i2-1 a(i)=alp b(i)=1. c(i)=alp 10 d(i)=ak*(q(i+1,j)-q(i-1,j))/2/dx d(i1+1)=d(i1+1)-a(i1+1)*qx(i1,j) a(i1+1)=0. d(i2-1)=d(i2-1)-c(i2-1)*qx(i2,j)
151
c(i2-1)=0. l1=i1+2 l2=i2-1 call tridi do 20 i=i1+1,i2-1 20 qx(i,j)=d(i) enddo do i=1,nx IF(i.le.101)then j1=1 j2=38 j3=42 j4=78 j5=82 j6=118 j7=122 j8=158 j9=162 j10=ny qy(i,j3)=(-3*q(i,j3+4)+16*q(i,j3+3)-36*q(i,j3+2)+48*q(i,j3+1) 1 -25*q(i,j3))/12/dy qy(i,j4)=(3*q(i,j4-4)-16*q(i,j4-3)+36*q(i,j4-2)-48*q(i,j4-1) 1 +25*q(i,j4))/12/dy do 110 j=j3+1,j4-1 a(j)=alp b(j)=1. c(j)=alp 110 d(j)=ak*(q(i,j+1)-q(i,j-1))/2/dy d(j3+1)=d(j3+1)-a(j3+1)*qy(i,j3) a(j3+1)=0. d(j4-1)=d(j4-1)-c(j4-1)*qy(i,j4) c(j4-1)=0. l1=j3+2 l2=j4-1 call tridi do 210 j=j3+1,j4-1 210 qy(i,j)=d(j) qy(i,j5)=(-3*q(i,j5+4)+16*q(i,j5+3)-36*q(i,j5+2)+48*q(i,j5+1) 1 -25*q(i,j5))/12/dy qy(i,j6)=(3*q(i,j6-4)-16*q(i,j6-3)+36*q(i,j6-2)-48*q(i,j6-1) 1 +25*q(i,j6))/12/dy do 330 j=j5+1,j6-1 a(j)=alp b(j)=1.
152
c(j)=alp 330 d(j)=ak*(q(i,j+1)-q(i,j-1))/2/dy d(j5+1)=d(j5+1)-a(j5+1)*qy(i,j5) a(j5+1)=0. d(j6-1)=d(j6-1)-c(j6-1)*qy(i,j6) c(j6-1)=0. l1=j5+2 l2=j6-1 call tridi do 340 j=j5+1,j6-1 340 qy(i,j)=d(j) qy(i,j7)=(-3*q(i,j7+4)+16*q(i,j7+3)-36*q(i,j7+2)+48*q(i,j7+1) 1 -25*q(i,j7))/12/dy qy(i,j8)=(3*q(i,j8-4)-16*q(i,j8-3)+36*q(i,j8-2)-48*q(i,j8-1) 1 +25*q(i,j8))/12/dy do 440 j=j7+1,j8-1 a(j)=alp b(j)=1. c(j)=alp 440 d(j)=ak*(q(i,j+1)-q(i,j-1))/2/dy d(j7+1)=d(j7+1)-a(j7+1)*qy(i,j7) a(j7+1)=0. d(j8-1)=d(j8-1)-c(j8-1)*qy(i,j8) c(j8-1)=0. l1=j7+2 l2=j8-1 call tridi do 450 j=j7+1,j8-1 450 qy(i,j)=d(j) qy(i,j9)=(-3*q(i,j9+4)+16*q(i,j9+3)-36*q(i,j9+2)+48*q(i,j9+1) 1 -25*q(i,j9))/12/dy qy(i,j10)=(3*q(i,j10-4)-16*q(i,j10-3)+36*q(i,j10-2)-48*q(i,j10-1) 1 +25*q(i,j10))/12/dy do 550 j=j9+1,j10-1 a(j)=alp b(j)=1. c(j)=alp 550 d(j)=ak*(q(i,j+1)-q(i,j-1))/2/dy d(j9+1)=d(j9+1)-a(j9+1)*qy(i,j9) a(j9+1)=0. d(j10-1)=d(j10-1)-c(j10-1)*qy(i,j10) c(j10-1)=0. l1=j9+2 l2=j10-1 call tridi do 560 j=j9+1,j10-1
153
560 qy(i,j)=d(j) else j1=1 j2=ny endif qy(i,j1)=(-3*q(i,j1+4)+16*q(i,j1+3)-36*q(i,j1+2)+48*q(i,j1+1) 1 -25*q(i,j1))/12/dy qy(i,j2)=(3*q(i,j2-4)-16*q(i,j2-3)+36*q(i,j2-2)-48*q(i,j2-1) 1 +25*q(i,j2))/12/dy do 11 j=j1+1,j2-1 a(j)=alp b(j)=1. c(j)=alp 11 d(j)=ak*(q(i,j+1)-q(i,j-1))/2/dy d(j1+1)=d(j1+1)-a(j1+1)*qy(i,j1) a(j1+1)=0. d(j2-1)=d(j2-1)-c(j2-1)*qy(i,j2) c(j2-1)=0. l1=j1+2 l2=j2-1 call tridi do 21 j=j1+1,j2-1 21 qy(i,j)=d(j) enddo return end SUBROUTINE TRIDI parameter (m=500) COMMON /AA4/A(m),B(m),C(m),D(m),L1,l2 DO 1 I=L1,L2 RT=-A(I)/B(I-1) B(I)=B(I)+RT*C(I-1) 1 D(I)=D(I)+RT*D(I-1) D(L2)=D(L2)/B(L2) DO 2 I=L2-1,L1-1,-1 2 D(I)=(D(I)-C(I)*D(I+1))/B(I) RETURN END subroutine stream parameter (m=500,n=500) COMMON/aa1/u(m,n),v(m,n),ux(m,n),uy(m,n),vx(m,n),vy(m,n) 1 ,p(m,n),x(m,n),y(m,n),sf(m,n) 1 ,o(m,n),ox(m,n),oy(m,n),oxx(m,n),oyy(m,n)
154
COMMON/aa2/nx,ny,nt,dx,dy,dt COMMON/AA4/A(m),B(m),C(m),D(m),L1,l2 DIMENSION f(m,n) ermx=0.000001 k=0 c----------------------------------------- c initial condition c----------------------------------------- do i=2,nx-1 IF(i.le.101)then j1=1 j2=38 j3=42 j4=78 j5=82 j6=118 j7=122 j8=158 j9=162 j10=ny do j=j3+1,j4-1 f(i,j)=-(vx(i,j)-uy(i,j)) sf(i,j)=0. end do do j=j5+1,j6-1 f(i,j)=-(vx(i,j)-uy(i,j)) sf(i,j)=0. end do do j=j7+1,j8-1 f(i,j)=-(vx(i,j)-uy(i,j)) sf(i,j)=0. end do do j=j9+1,j10-1 f(i,j)=-(vx(i,j)-uy(i,j)) sf(i,j)=0. end do else j1=1 j2=ny endif do j=j1+1,j2-1 f(i,j)=-(vx(i,j)-uy(i,j)) sf(i,j)=0. end do end do c-----------------------------------------
155
c boundary condition c----------------------------------------- do i=1,nx IF(i.le.101)then j1=1 j2=38 j3=42 j4=78 j5=82 j6=118 j7=122 j8=158 j9=162 j10=ny sf(i,j3)=0. sf(i,j4)=0. sf(i,j5)=0. sf(i,j6)=0. sf(i,j7)=0. sf(i,j8)=0. sf(i,j9)=0. sf(i,j10)=0. else j1=1 j2=ny endif sf(i,j1)=0. sf(i,j2)=0. end do do j=1,ny IF(j.ge.38.and.j.le.42)then i1=101 elseif(j.ge.78.and.j.le.82)then i1=101 elseif(j.ge.118.and.j.le.122)then i1=101 elseif(j.ge.158.and.j.le.162)then i1=101 else i1=1 i2=nx endif sf(i1,j)=0. sf(i2,j)=0. end do c-----------------------------------------
156
15 ERR=0. k=k+1 IF(k.gt.20000)stop c----------------------------------------- c matric coefficient c----------------------------------------- do j=2,ny-1 IF(j.ge.38.and.j.le.42)then i1=101 elseif(j.ge.78.and.j.le.82)then i1=101 elseif(j.ge.118.and.j.le.122)then i1=101 elseif(j.ge.158.and.j.le.162)then i1=101 else i1=1 i2=nx endif do i=i1+1,i2-1 a(i)=1. b(i)=-4. c(i)=1. d(i)=-sf(i,j+1)-sf(i,j-1)+f(i,j)*dx*dx enddo c----------------------------------------- c modification matric coefficien c----------------------------------------- d(i1+1)=d(i1+1)-a(i1+1)*sf(i1,j) a(i1+1)=0. d(i2-1)=d(i2-1)-c(i2-1)*sf(i2,j) c(i2-1)=0. l1=i1+2 l2=i2-1 call tridi do i=i1+1,i2-1 ERR=ERR+ABS(d(i)-sf(i,j)) sf(i,j)=d(i) end do enddo WRITE(*,*)k,err IF(err.gt.ermx)GOTO 15 return end
157
Lampiran 13. Kode Program MATLAB Program Visualisasi Isotermal
load eko -ascii; load num -ascii; im=num(1); jm=num(2); imax=im*jm; for i=1:im for j=1:jm is=i+(j-1)*im; x(i,j)=eko(is); y(i,j)=eko(is+imax); u(i,j)=eko(is+2*imax); end end hold on; box on; contour(x,y,u,30); colorbar; hold off; clear
Program Visualisasi Steam function
load streamf -ascii; load num -ascii; im=num(1); jm=num(2); imax=im*jm; for i=1:im for j=1:jm is=i+(j-1)*im; x(i,j)=streamf(is); y(i,j)=streamf(is+imax); u(i,j)=streamf(is+2*imax); end end hold on; box on; contour(x,y,u,40); colorbar; hold off; clear