Search All of the Math Forum:

Views expressed in these public forums are not endorsed by NCTM or The Math Forum.

Notice: We are no longer accepting new posts, but the forums will continue to be readable.

Topic: PDE unstable, need help
Replies: 1   Last Post: Feb 6, 2013 10:42 AM

 Torsten Posts: 1,717 Registered: 11/8/10
Re: PDE unstable, need help
Posted: Feb 6, 2013 10:42 AM

"Moritz" wrote in message <ketp47\$qmn\$1@newscl01ah.mathworks.com>...
> Hi,
>
> i tried to implement one part of a sedimentation model in Matlab. Because my mathematical background is not so strong ( i am working on it) i tried to use pdepe.
>
> What you will see is a 3D plot of a sedimentation process. A growing sediment layer and a clear liquor interface (cli) (i think you would call that a shock and a fan ?).
>
> The code is instable at the clear liquor interface and when the sediment and the cli meet.
>
> Any suggestions ? Limiter functions ? (aside of the probably bad programming style)
>
>
> My code:
>
> function Direct
> %#ok<*NASGU>
> global u0 omega sigmaN k drho c g wun r0 rb xmax uc
> %initial Parameters from S.Berres Chem Eng J 111 (2004) 91-103
> % Attempt to solve the second order parabolic equation from the phenomenological
> % sedimentation model. If any of the authors may read this code, yes i am
> % considering to use your method.
> %
> %
> %
> %
> %
> c=5;
> uc=0.08;
> sigmaN=5.7;
> k=9;
> xmax=0.66; %
> u0=0.1; % should be >uc
> drho=1660; % density difference in kg/m^3
> wun=0.001; % sedimentation velocity of a single floc
> r0=0.06; % radius at the liquor height
> rb=0.3; % radius at the bottom of the tube
> g=9.81; % earth acceleration m/s^2
> omega=sqrt(100/rb); %
> %
> m=0;
> Nx=200;
> conc0=0.07;
> Nt=50;
> tend=10;
> xmesh=linspace(r0,rb,Nx);
> tmesh=linspace(0,tend,Nt);
> %
> sol=pdepe(m,@pdefun,@icfun,@bcfun,xmesh,tmesh);
> Concentration=sol(:,:,1);
> figure
> surf(xmesh,tmesh,Concentration)
> ylabel('time')
> %
> function [a,f,s]=pdefun(xmesh,t,u,ux)
> %global xc omega sigma0 k drho c g wun r0 rb
> % if (u > uc & u < xmax)
> fbk=wun.*u.*(1-u).^c;
> sigmaE=sigmaN.*((u/uc)^k-1);
> sigmaEu=sigmaN.*k.*(u/uc).^(k-1)./uc;
> kla=-fbk.*sigmaEu./(drho.*g.*u);
> % f=kla.*ux+omega.^2.*xmesh./g*fbk;
> f = -kla.*ux-omega^2.*xmesh.*fbk;
> s=0;
> a=1;
> end
>
> function uinit = icfun(r)
> uinit = u0;%(xmesh==r);
> %u0=u0;
> end
>
> function [pl,ql,pr,qr] = bcfun(xl,ul,xr,ur,t)
>
> %global xc omega sigma0 k drho c g wun r0 rb
> pl=0;
> ql=1;
> pr=0;
> qr=1;
> end
> end

pdepe is not suited to solve your problem.
This software is: