MATLAB: Solving second order PDE

pdesecond order pde

Hi, I am trying to solve the following pde with initial condition CA(0,r)=0 and boundary conditions CA(t,0)=F(t) and CA(t,5)=0.
, where D_A and gamma_A are known constants.
I tried using pdepe but was told that left boundary condition would be ignored when m=1 (cylindrical symmetry).
Then I tried discretizing space variable r before using ode15s, but was confused about how to construct the equation exactly.
Can anybody help?

Best Answer

The reason that pdepe imposes a boundary condition of the flux equal zero at the
center is that this is required for the problem to be mathematically well-posed.
Imposing a prescribed temperature at the center would require that the flux go to
infinity there.
An easy way to understand this is to solve the problem with the left end a small distance
from the center and with a fine mesh. I have attached a short script below that shows this.
function matlabAnswers_6_27_2020
r0=1e-6;
x = linspace(r0,1,1000);
tf=1;
t = linspace(0,tf,40);
pdeFunc = @(x,t,u,DuDx) heatpde(x,t,u,DuDx);
icFunc = @(x) heatic(x);
bcFunc = @(xl,ul,xr,ur,t) heatbcDirichlet(xl,ul,xr,ur,t);
m=1;
sol = pdepe(m, pdeFunc,icFunc,bcFunc,x,t);
figure; plot(t, sol(:,end)); grid on; title 'Temperature at outer surface'
figure; plot(t, sol(:,1)); grid on; title 'Temperature at center'
figure; plot(x, sol(end,:)); grid; title 'Temperature at final time'
end
function [c,f,s] = heatpde(x,t,u,DuDx)
c = 1;
f = DuDx;
s = 0;
end
function u0 = heatic(x)
u0 = 0;
end
function [pl,ql,pr,qr] = heatbcDirichlet(xl,ul,xr,ur,t)
pl = ul-1;
ql = 0;
pr = 0;
qr = 1;
end
Related Question