MathGroup Archive 2011

[Date Index] [Thread Index] [Author Index]

Search the Archive

PDE backward solution problem

  • To: mathgroup at smc.vnet.net
  • Subject: [mg116930] PDE backward solution problem
  • From: Arturas.Acus at tfai.vu.lt
  • Date: Sat, 5 Mar 2011 06:03:57 -0500 (EST)

Dear Group,
I am trying to solve ambipolar diffusion PDE (following approach of   
Philip Rosenau and Eli Turkel, Physica Scripta Vol. 31, 207-209,  
1985). Unfortunatelly so far I had no expierence dealing with PDE  
solvers. My attempts follows

(* initialization part *)
vp=ViewPoint/.Options[Plot3D];
fitparametersBaPP={a->0.9636882463878201,b->-99.380833179029,c->4.728158060984305};
fitparametersBaP={a->0.9920813114501638,b->-72.49635350172733,c->3.3297289189080654};fitCurvesfor3D[t_?NumberQ]:=Graphics3D[{fitCurves[[1,1]]/.{x_?NumberQ,y_?NumberQ}:>{t,x,y}}]
Show[{fitCurves=Plot[{a*Exp[b*x^2+c*x]/.fitparametersBaPP,a*Exp[b*x^2+c*x]/.fitparametersBaP},{x,-0.05,0.2},PlotStyle->{{Red,Thick},{Blue,Thick}}]}]

(* nonlinear PDE *)
equationsForSolution={
  (-D[(diffusionC[1]*(((1 + \[Alpha][1])*n[1][t, x] + 2*n[2][t,  
x])*Derivative[0, 1][n[1]][
            t, x] + 2*\[Alpha][1]*n[1][t, x]*Derivative[0, 1][n[2]][t, x]))/
        (n[1][t, x] + 2*n[2][t, x]), x] + Derivative[1, 0][n[1]][t,  
x])/n0[1] == 0,
  (-D[(diffusionC[2]*(2*\[Alpha][2]*n[2][t, x]*Derivative[0, 1][n[1]][t, x] +
          (n[1][t, x] + 2*(1 + 2*\[Alpha][2])*n[2][t,  
x])*Derivative[0, 1][n[2]][t, x]))/
        (n[1][t, x] + 2*n[2][t, x]), x] + Derivative[1, 0][n[2]][t,  
x])/n0[2] == 0};


Notations: n[ ][t, x] are ion (2 species) concentrations we are  
interesting in, \[Alpha][ ] are some temperature ratio (constant close  
to 1) , diffusionC[ ] are diffusion coefficients ( not well known, we  
assume it should be between 100-500). The species initial  
concentration ratio is about 100. We assume the following parameter  
values


diffusionC[1]=100;diffusionC[2]=100;
n0[1]=100;n0[2]=1;
\[Alpha][1]=1;\[Alpha][2]=1;
bp=6/10 (*cm*);
tend=1/3000(*s*);


We start to solve from experimentally measured concentration  
distribution (say, at t=0) and assume that at x=bp = 6/10 boundary  
point all particles are absorbed.


initialCondition["GaussFit",1]=( n[1][0, x] ==  
(n0[1]/diffusionC[1])*(a*Exp[b*x^2+c*x]/.fitparametersBaP));initialCondition["GaussFit",2]=(n[2][0, x] ==  
(n0[2]/diffusionC[2])*(a*Exp[b*x^2+c*x]/.fitparametersBaPP));

As a result we have a solution


sol["GaussFit1"]=NDSolve[Flatten[{equationsForSolution,
initialCondition["GaussFit",1],initialCondition["GaussFit",2],n[1][t,bp] == 0,  
   n[1][t,-bp] == 0,n[2][t,bp] == 0,n[2][t,-bp] ==  
0}],{n[1],n[2]},{t,0,tend},{x,-bp,bp},Method->{"MethodOfLines",  
"SpatialDiscretization"->{"TensorProductGrid","DifferenceOrder"->"Pseudospectral"}}]


sprend["GaussFit1"]=GraphicsGrid[{{Plot3D[First[n[2][t,x] /.  
sol["GaussFit1"]],{t,0,tend},{x,-bp, bp},  
PlotRange->All,AxesLabel->{"t","x"},ViewPoint->Dynamic[vp]],Plot3D[First[n[1][t,x]/. sol["GaussFit1"]],{t,0,tend},{x,-bp, bp},  
PlotRange->All,AxesLabel->{"t","x"},ViewPoint->Dynamic[vp]]}},ImageSize->1000]


The problems start when we try to solve this equations backward in  
time. We need this because fitted initial distribution was measured  
with some delay. So we want to look how this distribution might look  
fraction of second before. Unfortunatelly Mathematica PDE solver refuses to  
solve that way, claiming that singularity had formed. Sure it have to  
form at some moment, however time scale looks unrealistic (Mathematica solves  
backward to 10^-6 s only). So, my questions are

1) Does it is possible to get some solution, say 1/1000 fraction of  
second before?

2) We have small boundary and initial condition mismatch at t=0 (the  
function is not strictly 0 at point x=bp). How similar mismaches  
practically are resolved in other similar PDE problems?

3) And the naive one. Can this nonlinear problem be classified as  
being "elliptic", "parabolic" or some other kind, or this  
classification is not possible for general nonlinear PDEs.  In other  
words, can  linearization in principle help to determine the kind of  
this PDE? Does this would help to choose the right options in Mathematica?

Sincerely, Arturas Acus























  • Prev by Date: Mathematica 8 Link for Excel 2010
  • Next by Date: case sensitive auto-completion in Mathematica 8?
  • Previous by thread: Mathematica 8 Link for Excel 2010
  • Next by thread: Re: PDE backward solution problem