Services & Resources / Wolfram Forums / MathGroup Archive

MathGroup Archive 2010

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

Search the Archive

Re: Numerical solution of coupled nonlinear PDEs

  • To: mathgroup at
  • Subject: [mg112106] Re: Numerical solution of coupled nonlinear PDEs
  • From: schochet123 <schochet123 at>
  • Date: Tue, 31 Aug 2010 04:15:01 -0400 (EDT)
  • References: <i5g0j8$gq1$>

Since you have no time derivative in the equation for x, the system is
a DAE (Differential-Algebraic System), which can be tricky, especially
when the system involves PDEs and boundary conditions rather than just
ODEs. Apparently NDSolve's solver for this case is not quite ready for
prime time.

To work around the difficulty, add a term  -eps D[x[t,y],t] to the
left side of the equation D[x[t, y], {y, 2}] == b[t, y] - a[t, y] for
x, to turn it into purely differential (i.e., time-dependent) system.
You want to pick eps small in order to make the added term negligible,
but not too small because that would make the resulting system too
stiff. The value eps=10^(-6) seemed to work OK.

However, NDSolve then complains about having too large a local error,
which can be avoided by adding the option
Method -> {"MethodOfLines", {SpatialDiscretization ->
{TensorProductGrid, MinPoints -> 200}}}
to NDSolve.

Be sure to check that the solution approximately satisfies the
original equation. One way to do this is to plot Evaluate[D[x[t, y],
{y, 2}] -( b[t, y] - a[t, y]) /. mysol1[[1]]] at various times, using
the PlotRange->All option.

Also note that in order to avoid an initial layer that may induce
large errors, it is important that the initial data for x satisfy its
algebraic equation, as yours does here.


On Aug 30, 1:19 pm, "Dominic" <miliot... at> wrote:
> Hi guys,
> For the functions a(t,y), b(t,y), and x(t,y),I have the PDE system:
> a'=a''+a x''+x'a'
> b'=b''-bx''-x'b'
> x''=b-a
> Sorry I can't show the system more clearly here but on the left side the
> partial is respect to t for a and b and it's with respect to y for the
> x(t,y), and on the right, all partials are with respect to y,
> and I'd like to obtain a numerical solution for any simple IBVP using
> NDSolve, for example in the domain 0<t<1 and 0<y<1 with all initial
> conditions set to y  This is the code I'm using:
> mysol = NDSolve[{D[a[t, y], t] ==
> D[a[t, y], {y, 2}] + a[t, y] D[x[t, y], {y, 2}] +
> D[x[t, y], y] D[a[t, y], y]
> ,
> D[b[t, y], t] ==
> D[b[t, y], {y, 2}] - b[t, y] D[x[t, y], {y, 2}] -
> D[x[t, y], y] D[b[t, y], y]
> ,
> D[x[t, y], {y, 2}] == b[t, y] - a[t, y]
> ,
> a[0, y] == y, a[t, 0] == 0, a[t, 1] == 1,
> b[0, y] == y, b[t, 0] == 0, b[t, 1] == 1,
> x[0, y] == y, x[t, 0] == 0, x[t, 1] == 1},
> {a, b, x}, {t, 0, 1}, {y, 0, 1}, MaxSteps -> 10000]
> However, I receive boundary-value errors and singular errors.
> Can someone help me set up this system in any way for any reasonable
> domain with any reasonable initial and bondary values to obtain a
> non-trivial solution?
> Thanks guys,
> Dominic

  • Prev by Date: Weighted graphs with sum of weights determining vertex placement?
  • Next by Date: Re: Could you prove this proposition:the i-th prime gap p[i+1]-p[i]<=i
  • Previous by thread: Re: Numerical solution of coupled nonlinear PDEs
  • Next by thread: Re: Numerical solution of coupled nonlinear PDEs