4
68 Lampiran 1. Kode Program FORTRAN Metode Beda Hingga Cerobong Penuh Material Sama c ************************************************************************ c Program Simulasi Numerik Perpindahan Panas Pada c CerobongDengan Metode Elemen Hingga dan Beda Hingga c c EKO YANUARTO c ---------------- c I 0402029 c c c ************************************************************************ c c Membaca data masukan real k1 dimension u(41,41),x(41,41),y(41,41) dimension a(41),b(41),c(41),d(41) open (1,file='c:\matlab7\work\temp') open (2,file='c:\matlab7\work\num') ah=4. al=4. nx=41 ny=41 dx=0.1 dy=0.1 h1=17.0196 h2=68.0784 c material pertama common brick dengan k1=0.7292 k1=0.7292 alpa=0.000495 dt=0.01 d1=alpa*dt/dx/dx d2=alpa*dt/dy/dy bi1=h1*dx/k1 bi2=h1*dy/k1 n=nx m=ny c inisial condition do i=1,nx do j=1,ny x(i,j)=(i-1)*dx y(i,j)=(j-1)*dy u(i,j)=30. end do end do write(*,10) read(*,*)tmax 10 format(' tmax =',\) t=0 123 t=t+dt c x-sweep do j=2,ny-1 if(j.ge.11.and.j.le.31)then n1=10 n2=32

Lampiran 1

Embed Size (px)

DESCRIPTION

Lampiran 1

Citation preview

  • 68

    Lampiran 1. Kode Program FORTRAN Metode Beda Hingga Cerobong Penuh Material Sama c ************************************************************************ c Program Simulasi Numerik Perpindahan Panas Pada c CerobongDengan Metode Elemen Hingga dan Beda Hingga c c EKO YANUARTO c ---------------- c I 0402029 c c c ************************************************************************ c c Membaca data masukan real k1 dimension u(41,41),x(41,41),y(41,41) dimension a(41),b(41),c(41),d(41) open (1,file='c:\matlab7\work\temp') open (2,file='c:\matlab7\work\num') ah=4. al=4. nx=41 ny=41 dx=0.1 dy=0.1 h1=17.0196 h2=68.0784 c material pertama common brick dengan k1=0.7292 k1=0.7292 alpa=0.000495 dt=0.01 d1=alpa*dt/dx/dx d2=alpa*dt/dy/dy bi1=h1*dx/k1 bi2=h1*dy/k1 n=nx m=ny c inisial condition do i=1,nx do j=1,ny x(i,j)=(i-1)*dx y(i,j)=(j-1)*dy u(i,j)=30. end do end do write(*,10) read(*,*)tmax 10 format(' tmax =',\) t=0 123 t=t+dt c x-sweep do j=2,ny-1 if(j.ge.11.and.j.le.31)then n1=10 n2=32

  • 69

    Lampiran 1 (lanjutan) do i=2,n1 a(i)=-d1/2 b(i)=1.+d1 c(i)=-d1/2 d(i)=u(i,j)+d2*(u(i,j-1)-2*u(i,j)+u(i,j+1)) end do b(2)=b(2)+a(2)/(1+h1/k1*dx) d(2)=d(2)-a(2)*h1/k1*dx*30/(1+h1/k1*dx) a(2)=0 b(n1)=b(n1)+c(n1)/(1+h2/k1*dx) d(n1)=d(n1)-h2/k1*dx*240*c(n1)/(1+h2/k1*dx) c(n1)=0 call tridag(a,b,c,d,2,n1) do i=2,n1 u(i,j)=d(i) end do u(1,j)=1/(1+h1/k1*dx)*(u(2,j)+h1/k1*dx*30) u(n1+1,j)=1/(1+h2/k1*dx)*(u(n1,j)+h2/k1*dx*240) do i=n2,n-1 a(i)=-d1/2 b(i)=1+d1 c(i)=-d1/2 d(i)=u(i,j)+d2*(u(i,j-1)-2*u(i,j)+u(i,j+1)) end do b(n2)=b(n2)+a(n2)/(1+h2/k1*dx) d(n2)=d(n2)-a(n2)*h2/k1*dx*240/(1+h2/k1*dx) a(n2)=0 b(n-1)=b(n-1)+c(n-1)/(1+h1/k1*dx) d(n-1)=d(n-1)-c(n-1)*h1/k1*dx*30/(1+h1/k1*dx) c(n-1)=0 call tridag(a,b,c,d,n2,n-1) do i=n2,n-1 u(i,j)=d(i) end do u(n2-1,j)=1/(1+h2/k1*dx)*(u(n2,j)+h2/k1*dx*240) u(n,j)=1/(1+h1/k1*dx)*(u(n-1,j)+h1/k1*dx*30) else do i=2,n-1 a(i)=-d1/2 b(i)=1+d1 c(i)=-d1/2 d(i)=u(i,j)+d2*(u(i,j-1)-2*u(i,j)+u(i,j+1)) end do b(2)=b(2)+a(2)/(1+h1/k1*dx) d(2)=d(2)-a(2)*h1/k1*dx*30/(1+h1/k1*dx) a(2)=0 b(n-1)=b(n-1)+c(n-1)/(1+h2/k1*dx) d(n-1)=d(n-1)-c(n-1)*h2/k1*dx*30/(1+h2/k1*dx) c(n-1)=0

    call tridag(a,b,c,d,2,n-1) do i=2,n-1 u(i,j)=d(i) end do u(1,j)=1/(1+h1/k1*dx)*(u(2,j)+h1/k1*dx*30) u(n,j)=1/(1+h1/k1*dx)*(u(n-1,j)+h1/k1*dx*30)

  • 70

    Lampiran 1 (lanjutan) endif u(1,1)=2*d1*(u(2,1)+u(1,2)+2*bi1*30)+(1-4*d1-4*d1*bi1)*u(1,1) u(1,m)=2*d1*(u(2,m)+u(1,m-1)+2*bi1*30)+(1-4*d1-4*d1*bi1)*u(1,m) u(n,1)=2*d1*(u(n-1,1)+u(n,2)+2*bi1*30)+(1-4*d1-4*d1*bi1)*u(n,1) u(n,m)=2*d1*(u(n-1,m)+u(n,m-1)+2*bi1*30)+(1-4*d1-4*d1*bi1)*u(n,m) end do c y-sweep do i=2,nx-1 if(i.ge.11.and.i.le.31) then m1=10 m2=32 do j=2,m1 a(j)=-d2/2 b(j)=1.+d2 c(j)=-d2/2 d(j)=u(i,j)+d1*(u(i-1,j)-2*u(i,j)+u(i+1,j)) end do b(2)=b(2)+a(2)/(1+h1/k1*dy) d(2)=d(2)-a(2)*h1/k1*dy*30/(1+h1/k1*dy) a(2)=0 b(m1)=b(m1)+c(m1)/(1+h1/k1*dy) d(m1)=d(m1)-h1/k1*dy*240*c(m1)/(1+h1/k1*dy) c(m1)=0 call tridag(a,b,c,d,2,m1) do j=2,m1 u(i,j)=d(j) end do u(i,1)=1/(1+h1/k1*dy)*(u(i,2)+h1/k1*dy*30) u(i,m1+1)=1/(1+h2/k1*dy)*(u(i,m1)+h2/k1*dy*240) do j=m2,m-1 a(j)=-d2/2 b(j)=1.+d2 c(j)=-d2/2 d(j)=u(i,j)+d1*(u(i-1,j)-2*u(i,j)+u(i+1,j)) end do b(m2)=b(m2)+a(m2)/(1+h2/k1*dy) d(m2)=d(m2)-a(m2)*h2/k1*dy*240/(1+h2/k1*dy) a(m2)=0 b(m-1)=b(m-1)+c(m-1)/(1+h1/k1*dy) d(m-1)=d(m-1)-c(m-1)*h1/k1*dy*30/(1+h1/k1*dy) c(m-1)=0 call tridag(a,b,c,d,m2,m-1) do j=m2,m-1 u(i,j)=d(j) end do u(i,m2-1)=1/(1+h2/k1*dy)*(u(i,m2)+h2/k1*dy*240) u(i,m)=1/(1+h1/k1*dy)*(u(i,m-1)+h1/k1*dy*30) else do j=2,m-1 a(j)=-d2/2 b(j)=1+d2 c(j)=-d2/2 d(j)=u(i,j)+d1*(u(i-1,j)-2*u(i,j)+u(i+1,j))

  • 71

    Lampiran 1 (lanjutan) end do b(2)=b(2)+a(2)/(1+h1/k1*dy) d(2)=d(2)-a(2)*h1/k1*dy*30/(1+h1/k1*dy) a(2)=0 b(m-1)=b(m-1)+c(m-1)/(1+h1/k1*dy) d(m-1)=d(m-1)-c(m-1)*h1/k1*dy*30/(1+h1/k1*dy) c(m-1)=0 call tridag(a,b,c,d,2,m-1) do j=2,m-1 u(i,j)=d(j) end do u(i,1)=1/(1+h1/k1*dy)*(u(i,2)+h1/k1*dy*30) u(i,m)=1/(1+h1/k1*dy)*(u(i,m-1)+h1/k1*dy*30) endif u(1,1)=2*d2*(u(2,1)+u(1,2)+2*bi2*30)+(1-4*d2-4*d2*bi2)*u(1,1) u(1,m)=2*d2*(u(2,m)+u(1,m-1)+2*bi2*30)+(1-4*d2-4*d2*bi2)*u(1,m) u(n,1)=2*d2*(u(n-1,1)+u(n,2)+2*bi2*30)+(1-4*d2-4*d2*bi2)*u(n,1) u(n,m)=2*d2*(u(n-1,m)+u(n,m-1)+2*bi2*30)+(1-4*d2-4*d2*bi2)*u(n,m) end do if((tmax-t).gt.dt/2)goto 123 write(*,*)'t=',t write(2,*)nx write(2,*)ny do j=1,ny do i=1,nx write(1,*)x(i,j),y(i,j),u(i,j) end do end do end subroutine tridag(a,b,c,d,l1,l2) dimension a(41),b(41),c(41),d(41) do 1 i=l1+1,l2 r=-a(i)/b(i-1) b(i)=b(i)+r*c(i-1) 1 d(i)=d(i)+r*d(i-1) d(l2)=d(l2)/b(l2) do 2 j=l2-1,l1,-1 2 d(j)=(d(j)-c(j)*d(j+1))/b(j) return end