Using PDEPE for Ficks second law ?
16 次查看(过去 30 天)
显示 更早的评论
Hello together,
i tried to use the PDEPE-Solver for Fick's second law of diffusion:
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 个评论
Bill Greene
2021-6-11
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.
采纳的回答
更多回答(0 个)
另请参阅
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!