Selasa, 12 November 2013

FISIKA SIMULASI III - Difusi Suhu Dua Dimensi

       Ditinjau penghantar panas persegi dengan luas penampang L × L yang terletak di bidang xy dengan salah satu sudutnya terletak di pusat koordinat seperti disajikan pada Gambar 1. Penghantar ini dipandang sebagai tampang lintang (cross section) penghantar tiga dimensi yang panjangnya tak hingga dan homogen dalam arah panjangnya. Mula-mula penghantar bertemperatur To. Pada saat t = 0, sisi penghantar yang terletak di x = L dan di y = L secara bersamaan ditempelkan pada reservoir bertemperatur Tb dimana Tb > To. Sementara pada sisi penghantar yang terletak di x = 0 dan di y = 0 dijaga sedemikian rupa sehingga tidak ada aliran kalor. Selanjutnya akan dicari keadaan sistem pada saat t.
Gambar 1. Sistem fisis yang ditinjau

Persamaan yang sesuai dengan keadaan sistem fisis tersebut adalah persamaan difusi yang berbentuk
dengan  
           

Proses difusi suhu dua dimensi dapat diselesaikan secara numerik dengan menggunakan bahasa pemrograman fortran. Pertama-pertama kita membuatnya menjadi bentuk diskrit agar lebih mudah dihitung.



 Syarat Stabilitas
 Syarat stabilitas terpenuhi dengan rumus

 Sehingga diperoleh pilihan hx = 0,1 dan dx = 0,0025

Script program menggunakan Fortran
---------------------------------------------------------------------
PROGRAM DIFUSI2D
!Deklarasi Variabel
IMPLICIT NONE

INTEGER, PARAMETER:: imax = 1000, jmax = 1000
  CHARACTER(36)    :: label
  
  REAL           :: L,dt,hx,perhx,perhx2,meanT,D 
  INTEGER :: i,j,nwrite,nsave,tmax,n,nn,Nx,Ny
  REAL           :: T(1:imax,1:jmax)
  INTEGER           :: X(1:imax,1:jmax),Y(1:imax,1:jmax)
    
!Input
L = 1
 D = 1
dt = 0.0025
 hx = 0.1
perhx = 1/hx
perhx2 = perhx*perhx
Nx = L/hx
Ny = Nx
tmax = 4000000
 nwrite = 50
 nsave = 200
 !perintah membuat file baru
OPEN(80,FILE='data.csv',STATUS='NEW',FORM='FORMATTED')
 !isi file baru
WRITE(80,*) 'n,','dt*n,','meanT'
CLOSE(80)

!Syarat awal T
DO j = 1, Ny+1
 DO i =1, Nx+1
T(i,j) = 0
 END DO
END DO

 DO j = 1, Ny
   T(Nx+1,j) = 1
END DO
    
 DO i = 1, Nx
   T(i,Ny+1) = 1
END DO
    
 T(Nx+1,Ny+1) = 1

PRINT*, ' Bismillaahirrahmaanirrahiim....'
DO n = 1, tmax
    
!Menghitung
DO j = 2, Ny
DO i = 2, Nx
T(i,j) = (D*dt/perhx2)*(T(i1,j)+T(i+1,j)+T(i,j-
           1)+T(i,j+1)-4*T(i,j))+T(i,j);
END DO
END DO
        
DO j = 2, Ny
 T(1,j) = T(1,j)+2*D*dt/perhx2*(T(2,j)-T(1,j))+dt/perhx2*
         (T(1,j-1)-2*T(1,j)+T(1,j+1));
END DO
    
DO i = 2, Nx
 T(i,1) = T(i,1)+2*D*dt/perhx2*(T(i,2)-T(i,1))+dt/perhx2*(T(i-
          1,1)-2*T(i,1)+T(i+1, 1));
END DO
        
T(1,1) = 0.5*(T(2,1)+T(1,2));
        
meanT = 0
DO i = 1, Nx+1
 DO j = 1, Ny+1
  meanT = meanT + T(i,j) 
 END DO
END DO
meanT = meanT/((Nx+1)*(Ny+1))
        
IF (MOD(n,nwrite) < 1) THEN  
 PRINT*, '---------------------------------------------'
 WRITE(*,  ' (T2, A, T30, I20)')'n             :',n
 WRITE(*,  ' (T2, A, T30, F12.5)')'T           :',meanT          
END IF

IF (MOD(n,nsave) < 1) THEN
PRINT*, '-------------------------------------------'
PRINT*, ' S a v e data '
WRITE(*,  ' (T2, A, T30, F12.5)')'T         :',meanT
  !Menyimpan n, dt*n, meanT
OPEN (80,ACCESS='APPEND',FILE='data.csv',FORM='FORMATTED')
WRITE (80, 81) n, dt*n , meanT
81 FORMAT (i8',',F10.3',', F7.5)
CLOSE(80)

nn = n + 70000000

!Menyimpan T 
WRITE (Label, 51) 'T', nn
51 FORMAT (A, i8,'.csv')
OPEN (11, file = Label)
DO i = 1, (Nx+1)
DO j = 1,(Ny+1)
X(i,j) = i
Y(i,j) = j
WRITE (11,31) X(i,j), Y(i,j), T(i,j)
31 FORMAT(i5',',i5',',F7.5)
END DO
END DO
CLOSE (11)
    
  END IF
END DO

PRINT*,'----------------------------------------------'
PRINT*,"ALHAMDULILLAH"
PRINT*,"Perhitungan telah selesai"
PRINT*,'----------------------------------------------'

END PROGRAM DIFUSI2D
---------------------------------------------------------------------

Selanjutnya data meanT dengan variasi D 'data.csv' dibuka di software PARAVIEW, dan dibuat grafik seperti di bawah ini.


dan untuk data suhu 'T7.csv' dibuka di software PARAVIEW, dan dibuat video seperti di bawah ini.






Tidak ada komentar: