# Follow up: how to plot a function under NDSolve domain

Here is the details of the code to plot.

Clear[x, y, ψ1, ψ2, ψ3, ψ4, eqn, eqnWithInitial,v, j];
I D[{ψ1[x, y, t], ψ2[x, y, t], ψ3[x, y, t], ψ4[
x, y, t]},
t] == {v (-I D[ψ3[x, y, t], x] - D[ψ3[x, y, t], y]) +
2 Δ ψ4[x, y, t],
v (-I D[ψ4[x, y, t], x] - D[ψ4[x, y, t], y]),
v (-I D[ψ1[x, y, t], x] + D[ψ1[x, y, t], y]),
v (-I D[ψ2[x, y, t], x] + D[ψ2[x, y, t], y]) +
2 Δ ψ1[x, y, t]}];
eqnWithInitial =
Join[eqn,
Thread[{ψ1[x, y, 0], ψ2[x, y, 0], ψ3[x, y,
0], ψ4[x, y, 0]} == {1, 1, 1,
1} (x + I*y) Exp[-(x^2 + y^2)]],
Thread[{ψ1[-5, y, t], ψ2[-5, y, t], ψ3[-5, y,
t], ψ4[-5, y, t]} == {ψ1[5, y, t], ψ2[5, y,
t], ψ3[5, y, t], ψ4[5, y, t]}],
Thread[{ψ1[x, -5, t], ψ2[x, -5, t], ψ3[x, -5,
t], ψ4[x, -5, t]} == {ψ1[x, 5, t], ψ2[x, 5,
t], ψ3[x, 5, t], ψ4[x, 5, t]}]];

v = 1;
Δ = 1;
tMax = 8;

solution =
First @ NDSolve[
eqnWithInitial, {ψ1[x, y, t], ψ2[x, y, t], ψ3[x, y,
t], ψ4[x, y, t]}, {x, -5, 5}, {y, -5, 5}, {t, 0, tMax},
Method -> {"MethodOfLines",
"SpatialDiscretization" -> {"TensorProductGrid",
"DifferenceOrder" -> "Pseudospectral"}}];

Ψ1[x_, y_, t_] = ψ1[x, y, t] /. solution;
Ψ2[x_, y_, t_] = ψ2[x, y, t] /. solution;
Ψ3[x_, y_, t_] = ψ3[x, y, t] /. solution;
Ψ4[x_, y_, t_] = ψ4[x, y, t] /. solution;

myrotorz1[x_?NumericQ, y_?NumericQ, t_?NumericQ] =
I/2 * (-Conjugate[D[Ψ1[x, y, t], y]] * D[Ψ1[x, y, t], x] +
D[Ψ1[x, y, t],y] * Conjugate[D[Ψ1[x, y, t], x]] +
Conjugate[D[Ψ1[x, y, t], x]] * D[Ψ1[x, y, t], y] -
D[Ψ1[x, y, t], x] * Conjugate[D[Ψ1[x, y, t], y]]);


Here is something that may be reasonable as R. M. suggested

NIntegrate[myrotorz1[x, y, 0], {x, -5, 5}, {y, -5, 5},Method -> "Trapezoidal"]

(Debug) During evaluation of In[18]:= NIntegrate::ncvi: NIntegrate failed to converge to prescribed accuracy after 9 iterated refinements in y in the region {{-5.,5.},{-5.,5.}}. NIntegrate obtained 0.012104690946256463 and 0.8391566465710514 for the integral and error estimates. >>

(Debug) Out[18]= 0.0121047


My point is to plot for myrotorz1[x, y, t] as a function of t but takes too much time. Any tips would be greatly appreciated.

Plot[NIntegrate[myrotorz1[x, y, t], {x, -5, 5}, {y, -5, 5},Method -> "Trapezoidal"], {t, 0, 4}]

• See this answer to the pitfalls question. -- The hint contained in the error message is that the symbols x and y do not have numerical values. Oct 16, 2015 at 10:17
• Your definition for myrotorz1 is has syntax errors. Perhaps this is because of an error introduced in transferring your code to this site, but it needs to corrected before we can help you further. Oct 16, 2015 at 21:44
• @m_goldberg, you are right. I have made the correction. Oct 17, 2015 at 9:40
• I don't get the error you indicated in the first post. I get only NIntegrate::slwcon (slow convergence). I'm using V10.2. -- What error are you getting? Oct 17, 2015 at 12:30
• @MichaelE2 slow convergence plus suppressed the output Oct 17, 2015 at 13:55

f[x_, y_, t_] := x^2 + y^2 + t^2