# NDSolve:PDE system, initial-boundary value problem:warning:NDSolve::mconly: For the method NDSolveIDA, only machine real code is available

I tried to NDSolve the PDE system $$\partial_t w =x\cdot w\quad\quad\partial_z x=w$$ for $$(t,z)\in[0,1]\times[0,\pi]$$ with boundary conditions $$x(t,0)=w(t,0)=w(t,\pi)=0$$ and initial conditions $$w(0,z)=\sin z\quad\quad x(0,z)=1-\cos z$$ Here's my code:

s = NDSolve[{D[w[t, z], t] == w[t, z]*x[t, z],
D[x[t, z], z] == w[t, z], w[0, z] == Sin[z], x[0, z] == 1 - Cos[z],
w[t, 0] == 0, w[t, π] == 0, x[t, 0] == 0}, {w , x}, {t, 0,
1}, {z, 0, π}]


Mathematica displays the following warning:

"NDSolve::mconly: For the method NDSolveIDA, only machine real code is available. Unable to continue with complex values or beyond floating-point exceptions."

I would appreciate any help on how to overcome this error or solve numerically this kind of PDE system anyway.

This is a quasilinear hyperbolic system of equations. Not all initial data is valid, w=0 should be excluded from the initial data. An example of solving the problem

s = NDSolve[{D[w[t, z], t] == w[t, z]*x[t, z],
D[x[t, z], z] == w[t, z], w[0, z] == 1, x[0, z] == 1 - Cos[z],
w[t, 0] == 1, w[t, \[Pi]] == 1, x[t, 0] == 0}, {w, x}, {t, 0,
1}, {z, 0, \[Pi]},
Method -> {"MethodOfLines",
"SpatialDiscretization" -> {"TensorProductGrid",
"MinPoints" -> 80, "MaxPoints" -> 100,
"DifferenceOrder" -> "Pseudospectral"}}];
{ContourPlot[Evaluate[w[t, z] /. s], {t, 0, 1}, {z, 0, \[Pi]},
Contours -> 20, ColorFunction -> Hue, PlotLabel -> "w",
FrameLabel -> {"t", "z"}, PlotLegends -> Automatic],
ContourPlot[Evaluate[x[t, z] /. s], {t, 0, 1}, {z, 0, \[Pi]},
Contours -> 20, ColorFunction -> Hue, PlotLabel -> "x",
FrameLabel -> {"t", "z"}, PlotLegends -> Automatic]}


• Thanks for great help! Also: how can I see that boundary condition $w(t,0)=0$ is invalid? – user61386 Nov 27 '18 at 15:05
• @user61386 It is necessary to bring the system to a second order equation using $x=w_t/w$ and then $x_z=w=(w_t/w)_z$ – Alex Trounev Nov 27 '18 at 15:22
• My only problem is that with the initial conditions used above, i.e. $w(0,z)=1$ and $x(0,z)=1-\cos z$, the PDE system equation $\partial_t x =w$ seems to fail for $t=0$. – user61386 Nov 27 '18 at 20:59
• Sorry, where does this equation come from? – Alex Trounev Nov 27 '18 at 21:12
• Initial and boundary conditions must be consistent. – Alex Trounev Nov 28 '18 at 10:28