확산 방정식의 유한차분 수치해석

Download Report

Transcript 확산 방정식의 유한차분 수치해석

Numerical Methods for
Mass Transport Equations
Se-Woong Chung
Chungbuk National University
C
B
N
U
[email protected]
Reference
Computational Fluid Dynamics by Grétar Tryggvason)
(http://www.nd.edu/~gtryggva/CFD-Course/)
C
B
N
U
1차원 이류(Advection)
𝜕𝑢
𝜕𝑡
=-u
𝜕𝑢
𝜕𝑥
𝜕𝑐
𝜕𝑡
𝜕𝑐
𝜕𝑥
=-u
1차원 확산(Diffusion)
𝜕𝑢
𝜕2𝑢
= 𝐴𝑥 2
𝜕𝑡
𝜕𝑥
𝜕𝑐
𝜕2𝑐
= 𝐸𝑥 2
𝜕𝑡
𝜕𝑥
1차원 이류-확산(Advection-Diffusion)
𝜕𝑐
𝜕𝑡
C
B
N
U
𝜕𝑐
𝜕2 𝑐
=-u +D 2
𝜕𝑥
𝜕𝑥
2차원 확산(Diffusion)
𝜕𝑢
𝜕2𝑢
𝜕2𝑢
= 𝐴𝑥 2 + 𝐴𝑦 2
𝜕𝑡
𝜕𝑥
𝜕𝑦
𝜕𝑐
𝜕𝑡
=
𝜕2 𝑐
𝜕2 𝑐
𝐸𝑥 2 +𝐸𝑦 2
𝜕𝑥
𝜕𝑦
1차원 이류-확산 방정식의 유한차분 수치해석
𝜕𝑓
𝜕𝑡
𝜕𝑓
𝜕2 𝑓
=-u +D 2
𝜕𝑥
𝜕𝑥
A = amplitude, k = frequency, T = 1/k
𝟐
𝒇 𝒙, 𝒕 = 𝒆−𝑫(𝟐𝝅𝒌) 𝒕 𝐬𝐢𝐧(𝟐𝝅𝒌 𝒙 − 𝒖𝒕 )
C
B
N
U
A=1
1차원 이류-확산 방정식의 유한차분 수치해석
𝜕𝑐
𝜕𝑡
𝜕𝑐
𝜕2 𝑐
=-u +D 2
𝜕𝑥
𝜕𝑥
FTCS (Forward Time and Centered Space)
C
B
N
U
1차원 이류-확산 방정식의 유한차분 수치해석
𝜕𝑐
𝜕𝑡
𝜕𝑐
𝜕2 𝑐
=-u +D 2
𝜕𝑥
𝜕𝑥
FTCS (Forward Time and Centered Space)
C
B
N
U
1차원 이류-확산 방정식의 유한차분 수치해석
FTCS (Forward Time and Centered Space)
C
B
N
U
1차원 이류-확산 방정식의 유한차분 수치해석
Programming (Matlab macro)
C
B
N
U
% one-dimensional advection-diffusion by the FTCS scheme
n=21; nstep=100; length=2.0; h=length/(n-1); dt=0.05; D=0.05; % A = 0.5, k = 1, U = 1.0
f=zeros(n,1); y=zeros(n,1); ex=zeros(n,1); time=0.0;
for i=1:n, f(i)=0.5*sin(2*pi*h*(i-1)); end;
% initial conditions f(x, 0)
for m=1:nstep, m, time
% time (t) loop
for i=1:n, ex(i)=exp(-4*pi*pi*D*time)*...
0.5*sin(2*pi*(h*(i-1)-time)); end;
% exact solution
hold off; plot(f,'linewidt',2); axis([1 n -2.0, 2.0]); pause;
% plot solution
hold on; plot(ex,'r','linewidt',2);pause;
% plot exact solution
y=f;
% store the solution
for i=2:n-1,
% distance (x) loop
f(i)=y(i)-0.5*(dt/h)*(y(i+1)-y(i-1))+...
D*(dt/h^2)*(y(i+1)-2*y(i)+y(i-1));
% advect by centered differences
end;
f(n)=y(n)-0.5*(dt/h)*(y(2)-y(n-1))+...
D*(dt/h^2)*(y(2)-2*y(n)+y(n-1));
% do endpoints for periodic boundaries
f(1)=f(n);
time=time+dt;
end;
1차원 이류-확산 방정식의 유한차분 수치해석
t= 0 sec
C
B
N
U
t= 0.5 sec
1차원 이류-확산 방정식의 유한차분 수치해석
t= 0.5 sec with dt = 0.05 sec
C
B
N
U
t= 0.5 sec with dt = 0.01 sec
2차원 이류-확산 방정식의 유한차분 수치해석
𝜕𝑐
𝜕𝑡
C
B
N
U
𝜕𝑐
𝜕𝑐
𝜕2 𝑐
𝜕2 𝑐
=-u −𝑣 +D 2 +D 2
𝜕𝑥
𝜕𝑦
𝜕𝑥
𝜕𝑦
2차원 이류-확산 방정식의 유한차분 수치해석
𝜕𝑐
𝜕𝑡
C
B
N
U
𝜕𝑐
𝜕𝑐
𝜕2 𝑐
𝜕2 𝑐
=-u −𝑣 +D 2 +D 2
𝜕𝑥
𝜕𝑦
𝜕𝑥
𝜕𝑦
2차원 이류-확산 방정식의 유한차분 수치해석
C
B
N
U
dt=1.0*0.125*h*h/D
2차원 이류-확산 방정식의 유한차분 수치해석
예제
C
B
N
U
2차원 이류-확산 방정식의 유한차분 수치해석
C
B
N
U
2차원 이류-확산 방정식의 유한차분 수치해석
C
B
N
U
2차원 이류-확산 방정식의 유한차분 수치해석
C
B
N
U
% two-dimensional unsteady diffusion by the FTCS scheme
%-----------------------------------------------------------n=32;m=32;nstep=120;D=0.025;length=2.0;h=length/(n-1);
dt=1.0*0.125*h*h/D;f=zeros(n,m);fo=zeros(n,m);time=0.0;
u=-0.0; v=-1.0; f(12:21,n)=1.0;
for l=1:nstep,l,time
hold off;mesh(f); axis([0 n 0 m 0 1.5]);pause;
fo=f;
for i=2:n-1, for j=2:m-1
f(i,j)=fo(i,j)-(0.5*dt*u/h)*(fo(i+1,j)-fo(i-1,j))-...
(0.5*dt*v/h)*(fo(i,j+1)-fo(i,j-1))+...
(D*dt/h^2)*(fo(i+1,j)+ fo(i,j+1)+fo(i-1,j)+fo(i,j -1)-4*fo(i,j));
end
end
for i=1:n, f(i,1)=f(i,2);end;
% boundary conditions
for j=1:m,f(1,j)=f(2,j);f(m,j)=f(m-1,j);end;
time=time+dt;
end;
m (U)
n (V)
2차원 이류-확산 방정식의 유한차분 수치해석
U=0.0, V = -1.0
m (U)
n (V)
C
B
N
U
2차원 이류-확산 방정식의 유한차분 수치해석
U=-1.0, V = -1.0
m (U)
n (V)
C
B
N
U