Hello, it is not my first post about how to use NDSolve for solving PDEs, but unfortunately, I have been unable to make any progress for more than a month. I think I want to accomplish a simple task: solve a certain PDE using exclusively fixed, uniform grids, and observe how the errors diminish when I refine the grids and/or increase discretization orders, and simultaneously increase the working precision. My goal is to obtain the solution having ca. 19 accurate digits. Unfortunately, whatever I do, I get different kinds of errors, and it seems nobody can tell me how to proceed. Is there noone there, in this list, who knows how NDSolve works? Maybe some authors of the marvel called NDSolve?
I now try to solve a PDE of the nonlinear reaction-diffusion-convection type, in which there is a coefficient standing at the temporal derivative (y is the temporal variable), which becomes zero when y=0. For this reason, I decided to use ImplicitRungeKutta methods. As far as I understand implicit methods, they should sample the PDEs at y>1, but never at y=0, so that there should be no problem with obtaining the solutions. But I get error messages stating that there are divide by zero errors. Here is my code:
ClearAll;
y0=0;
wmax=10;
ystep=1/10;
difford=2;
wprec=8;
pdesol=NDSolve[{D[psi[w,y],{w,2}]+2*w*D[psi[w,y],{w,1}]-4*y*(1-y)*D[psi[w,y],{y,1}]-4*(psi[w,y]^2-psi[w,y])==0,psi[w,y0]==Erf[w],psi[0,y]==0,psi[wmax,y]==Erf[wmax]},psi,{w,0,wmax},{y,y0,1},WorkingPrecision->wprec ,Method->{"FixedStep", Method->{"ImplicitRungeKutta","DifferenceOrder"->difford}},
StartingStepSize->ystep,
Method->{"MethodOfLines","DifferentiateBoundaryConditions"->true,"SpatialDiscretization"->{"TensorProductGrid", "MaxPoints"->20, "MinPoints"->20,"DifferenceOrder"->2}}];
What should I do to get at last the results I need? How to eliminate the divide by zero errors?
I know, of course, that I can select y0 not identical to zero, but equal to some small value, but this causes other error messages, depending also on the choice of other parameters. Some of these error messages suggest that my choice of MinPoints and MaxPoints is ignored, and NDSolve uses
10000 grid points for unclear reason. So, I am also not sure whether I really have fixed uniform grids.
If ImplicitRungeKutta methods are not suitable, than what other kind of fixed grid implicit methods can be used for my purpose? I mean here built-in methods, as I expect devising my own procedures would be much more difficult.
Leslaw