MATLAB: 1D time dependent mass transfer and reaction in a very small slab

1d pde

I am trying to model a pde including advection-diffusion and reaction terms. i want to see the concentration profil after a long time(2*60*60 sec) in a very tiny slab(5 micrometer). i used method of line(ode15s) to solve this pde but my result is not match with the experimental result. because the outlet concentration gets maximum concetration right away(as can be seen in myplot).does anybody know where is my mistake?

Best Answer

By carefully defining the parameters of your function in matlab using the pdepe solver, I was able to obtain the image below. Does this look like what you want to see?
function PDEPE_diff
m = 0;
x = linspace(0,1,200);
t = linspace(0,2,100);
sol = pdepe(m,@pdepfun,@icfun,@bcfun,x,t);
u = sol(:,:,1);
plot(x,u(1:100,:,1),'linewidth',1.5)
title('Numerical solution computed with 200 mesh points.')
xlabel('Distance x')
ylabel('Time t')
grid
function [g,f,s] = pdepfun(x,t,c,DcDx)
D = 8.6e-6;
k = 1;
K = 0.24;
ux = 0.5;
g = 1;
f = D*DcDx;
s = -(ux*DcDx + k*K*c);
function c0 = icfun(x)
c0 = 0*x;
function [pl,ql,pr,qr] = bcfun(xl,cl,xr,cr,t)
pl = cl-20;
ql = 0;
pr = cr;
qr = 1;
%
Related Question