MATLAB: Defining boundary condition for pde for pdepe function

boundary conditionpdepe

I have got a pde as show in the function [c,f,s]. Unable to get the solution for the equation and not able figure out the mistake in boundary condition
L = 200;
s1 = 0.5; %equal to k at x=0
s2 = 0;
T = 4;
qr = 0.218;
f = 0.52;
a = 0.0115;
n = 2.03;
ks = 31.6;
x = linspace(0,L,100);
t = linspace(0,T,25);
options=odeset('RelTol',1e-4,'AbsTol',1e-4,'NormControl','off','InitialStep',1e-7)
u = pdepe(0,@unsatpde,@unsatic,@unsatbc,x,t,options,s1,s2,qr,f,a,n,ks);
I'M STRUCK AT THIS POINT. Following gives the editor .m files
% -------------------------------------------------------------------------


function [c,f,s] = trial1(x,t,u,DuDx)
global k n qr a ks p
c=1;
f = k*((DuDx)+1);
s = 0;
m =0.51;
q=qr+(p-qr)*(1+(-a*u)).^-m;
k=ks*((q-qr)/(p-qr))^0.5*(1-(1-((q-qr)/(p-qr))^(1/m))^m)^2;
% -------------------------------------------------------------------------
function u0 = unsatic(x,s1,s2,qr,f,a,n,ks)
u0 = 200+x;
% -------------------------------------------------------------------------
function [pl,ql,pr,qr] = unsatbc(xl,ul,xr,ur,t,s1,s2,qr,f,a,n,ks)
pl = 0;
ql = 1;
pr = ur(1);
qr =0;

Best Answer

1. "trial1" is not part of the list of functions you call pdepe with.
2. You will have to include s1,s2,qr,f,a,n,ks in the parameter list for "trial1".
3. in "trial1", you use k before you calculate it.
4. In unsatbc, you set as boundary conditions
u=0 at x=L
and
du/dx = -1/k at x=0
I don't know if this is what you want to set.
Best wishes
Torsten.
Related Question