Solving advection diffusion pde

I want to solve the above pde with the given boundary and initial conditions. I came across the pdepe function in MATLAB.
I had a chance to look at the example given here . I couldn't understand how pdex1pde function has to be defined for my case.
Could someone help?

댓글 수: 1

Hi All,
Is the following implementation correct?
function DiffusionConvection
m = 0;
x = linspace(0,62,10);
t = linspace(0,10,100);
sol = pdepe(m,@pdefun,@icfun,@bcfun,x,t)
function [g,f,s] = pdefun(x,t,c,DcDx)
D = 900;
v = 10;
g = 1;
f = D*DcDx;
s = -v*DcDx;
end
function c0 = icfun(x)
c0 = 80;
end
function [pl,ql,pr,qr] = bcfun(xl,cl,xr,cr,t)
pl = cl -10;
ql = 1;
pr = cr;
qr = 1;
end
end

댓글을 달려면 로그인하십시오.

답변 (1개)

Bill Greene
Bill Greene 2018년 12월 27일

1 개 추천

The only problem I see with your code is in the boundary conditions. I corrected your bcfun function and have attached my version of your code below.
function DiffusionConvection
m = 0;
x = linspace(0,62,10);
t = linspace(0,10,100);
D = 900;
sol = pdepe(m,@pdefun,@icfun,@bcfun,x,t);
function [g,f,s] = pdefun(x,t,c,DcDx)
v = 10;
g = 1;
f = D*DcDx;
s = -v*DcDx;
end
function c0 = icfun(x)
c0 = 80;
end
function [pl,ql,pr,qr] = bcfun(xl,cl,xr,cr,t)
pl = -10*D;
ql = 1;
pr = 0;
qr = 1;
end
end

댓글 수: 5

Deepa Maheshvare
Deepa Maheshvare 2018년 12월 28일
편집: Deepa Maheshvare 2018년 12월 28일
Should it be
pl = cl - 10*D
% Could you please explain?
Bill Greene
Bill Greene 2018년 12월 29일
Equation 3 on this page, pdepe, shows the boundary condition form required. I simply matched terms from the BCs you defined above.
From what I understand, if it were
C(0,t) - DcDx = 10
then,
pl = cl - 10*D
Could you please confirm whether this is right?
Torsten
Torsten 2019년 1월 2일
편집: Torsten 2019년 1월 2일
pl = -10*D;
ql = 1;
If you insert in the form used by pdepe (p+q*f=0), you get
-10*D + 1*D*Dcdx = 0,
thus
DcDx = 10.
Deepa Maheshvare
Deepa Maheshvare 2019년 1월 2일
Thanks a lot for the clarification

댓글을 달려면 로그인하십시오.

카테고리

태그

질문:

2018년 12월 25일

댓글:

2019년 1월 2일

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by