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.

video





FISIKA SIMULASI III - Difusi Suhu Satu Dimensi

Difusi dapat diartikan sebagai perambatan energi dari konsentrasi tinggi ke konsentrasi rendah. Difusi akan terus terjadi hingga seluruh partikel tersebar luas secara merata atau mencapai keadaan kesetimbangan dimana perpindahan molekul tetap terjadi walaupun tidak ada perbedaan konsentrasi. Perambatan energi panas pada besi atau logam merupakan salah satu contoh proses difusi suhu.

Persamaan difusi

dengan D adalah tetapan difusi.

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


Pada sistem fisis ini kita asumsikan:
L   = 1     (panjang besi/logam)
T = 70    (suhu pada bagian x = 1)
TR  = 90   (suhu pada x = nx+1)
To  = 27   (suhu mula-mula batang logam)
Hx = 0.1
dt = 1 
untuk n tertentu maka berlaku

Script program menggunakan Matlab
---------------------------------------------------------------------
clear all;
clc;

L = 1; %panjang bahan 
D = 1; %konstanta difusi
dt = 0.1;
hx = 0.1;

perhx = 1/hx;
perhx2 = perhx*perhx;
Nx = L/hx;
tmax = 130000;

T(1)=70;
T(Nx+1)=90;
x(1)=0;
x(Nx+1)=1;
for i=2:Nx
 T(i)=27;
 x(i)=(i-1)*hx;
end

for tn = 1:tmax
 for i = 2:Nx
  T(i) = (D*dt/perhx2)*(T(i+1)-2*T(i)+T(i-1))+T(i);
 end
    
 for m=1:1300
  n=m*100;
  if ((n==tn) || (tn==1))
   suhu=[x' T'];
   csvwrite (['difusi_' num2str(tn) '.csv'],suhu,0,0); %perintah untuk menyimpan 'suhu'
  end
 end
end
---------------------------------------------------------------------
Selanjutnya data 'suhu' dibuka di software PARAVIEW, dan dibuat video seperti di bawah ini. 

video