![](https://www.mathworks.com/matlabcentral/answers/uploaded_files/650085/image.png)
Using PDEPE for Ficks second law ?
10 views (last 30 days)
Show older comments
Hello together,
i tried to use the PDEPE-Solver for Fick's second law of diffusion:
![](https://www.mathworks.com/matlabcentral/answers/uploaded_files/649020/image.png)
But I realy got confused with the initial and boundary conditions.
Is it possible to set the initial condition as c(x>0,0)=0
and the two boundaries as c(x=0,t)=10 und dc(x=l,t)/dt=0 ?
clc
clear
global dcoeff flux
L = 0.01; % m length of slab
tend = 36000; % s total of 10 hours
dcoeff = 10^-10; % m^2/s
flux = 10; % surface concentration wt%
m = 0;
x = linspace(0,L,20);
t = linspace(0,tend,20);
sol = pdepe(m,@pdefun,@icfun,@bcfun,x,t);
u = sol(:,:,1);
surf(x,t,u)
xlabel('distance')
ylabel('time')
figure
ptot(x,u(:,:))
xlabel('distance')
ylabel('wt%')
figure
plot(t,u(:,:))
xlabel('time')
ylabel('wt%')
function [c,f,s] = pdefun(x,t,u,DuDx)
global dcoeff
c = 1/dcoeff;
f = DuDx;
s = 0;
end
function u0 = icfun(x)
if x > 0
u0 = 0;
else
u0 = 10,
end
end
function [pl,ql,pr,qr] = bcfun(xl,ul,xr,ur,t)
pl = ul-10;
ql = 0;
pr = 0;
qr = 1;
end
Thank you for every hint.
2 Comments
Bill Greene
on 11 Jun 2021
You say you want a BC
. Is this a typo? This is a strange BC that would have no other effect than to set the value of c there equal to the initial condition.
![](https://www.mathworks.com/matlabcentral/answers/uploaded_files/650085/image.png)
Accepted Answer
More Answers (0)
See Also
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!