# Solving logarithmic 2D Nonlinear GPE Equation

I am trying to solve the logarithmic 2D Nonlinear GPE Equation from this paper https://arxiv.org/pdf/1801.10274.pdf. But failed to get the ground state solution and vortices. I tried to solve in cartesian coordinate. Here is a brief description of the problem and the results I am trying to get.

Here is my code

boundary = 40;       xl = yl = -boundary;           xr =
yr = boundary;
finalt = 2;
seedwave[x_, y_] := Exp[-0.005 (x^2 + y^2) + I*svalue];
pnumber =
NIntegrate[
Exp[-0.005 (x^2 +
y^2)], {x, -\[Infinity], \[Infinity]}, {y, -\[Infinity], \
\[Infinity]}];(*particle number check*)
svalue = 0; lvalue = 0;

sol = NDSolveValue[{D[\[Psi][x, y, t],
t] == -0.5 Laplacian[\[Psi][x, y, t], {x, y}] +
Abs[\[Psi][x, y, t]]^2 \[Psi][x, y, t] Log[
Abs[\[Psi][x, y, t]]^2] -
I*0.25*value*Abs[\[Psi][x, y, t]]^4 \[Psi][x, y, t],
\[Psi][xl, y, t] == \[Psi][xr, y, t] == 0,
\[Psi][x, yl, t] == \[Psi][x, yr, t] == 0,
\[Psi][x, y, 0] == seedwave[x, y]},
\[Psi][x, y, t], {x, xl, xr}, {y, yl, yr}, {t, 0, finalt},
Method -> {"MethodOfLines",
"SpatialDiscretization" -> {"TensorProductGrid",
"MinPoints" -> 400, "MaxPoints" -> 800,
"DifferenceOrder" -> 4}}, MaxSteps -> 10^6];
Plot3D[Abs[sol[x, y, 1]], {x, xl, xr}, {y, yl, yr}]
Table[DensityPlot[Abs[sol], {x, xl, xr}, {y, yl, yr},
PlotRange -> All, PlotPoints -> 200,
ColorFunction -> "BlueGreenYellow", Frame -> True,
FrameTicks -> Automatic, PlotPoints -> 200, ImageSize -> 350,
LabelStyle -> {24, Bold, Large, Black},
FrameLabel -> {{Style["y", FontFamily -> "Times New Roman",
FontSlant -> "Italic", FontWeight -> Bold, FontSize -> 30],
None}, {Style["x", FontFamily -> "Times New Roman",
FontSlant -> "Italic", FontWeight -> Bold, FontSize -> 30],
Row[{Style["t=", FontFamily -> "Times New Roman",
FontSlant -> "Italic", FontWeight -> Bold, FontSize -> 30],
t}]}}], {t, 0, finalt,
0.5*finalt}]

\



It is not clear how in the paper they normalize $$\psi$$ in Figure 1, may be as in equation (2). Without normalization we have

boundary = 40; xl = yl = -boundary; xr = yr = boundary;
finalt = 10;
seedwave[x_, y_] :=Exp[-0.005 (x^2 + y^2) + I*svalue ArcTan[x, y]] (x^2+y^2)^(svalue/2);
pnumber =
NIntegrate[
Exp[-0.005 (x^2 +
y^2)], {x, -\[Infinity], \[Infinity]}, {y, -\[Infinity], \
\[Infinity]}](*particle number check*)
svalue = 0; lvalue = 0;

sol = NDSolveValue[{-D[\[Psi][x, y, t],
t] == -0.5 Laplacian[\[Psi][x, y, t], {x, y}] +
Abs[\[Psi][x, y, t]]^2 \[Psi][x, y, t] Log[
Abs[\[Psi][x, y, t]]^2] -
I*0.25*lvalue*Abs[\[Psi][x, y, t]]^4 \[Psi][x, y, t], \[Psi][xl,
y, t] == seedwave[xl, y], \[Psi][xr, y, t] ==
seedwave[xr, y], \[Psi][x, yl, t] ==
seedwave[x, yl], \[Psi][x, yr, t] ==
seedwave[x, yr], \[Psi][x, y, 0] == seedwave[x, y]}, \[Psi][x, y,
t], {x, xl, xr}, {y, yl, yr}, {t, 0, finalt},
Method -> {"MethodOfLines",
"SpatialDiscretization" -> {"TensorProductGrid",
"MinPoints" -> 400, "MaxPoints" -> 800,
"DifferenceOrder" -> 4}}, MaxSteps -> 10^6]


Note that we change sign at D[\[Psi][x, y, t],t] since we use imaginary time method. Visualization

Plot3D[Evaluate[ Abs[sol]^2 /. t -> finalt], {x, xl, xr}, {y, yl, yr},
PlotRange -> All, MeshStyle -> White, ColorFunction -> "Rainbow",
PlotTheme -> "Marketing", PlotPoints -> 100]
Plot[Evaluate[
Table[Evaluate[Abs[sol]^2 /. {t -> t1, y -> 0}], {t1, 0, finalt,
1}]], {x, xl, xr}, PlotLegends -> Automatic]


Solutions with $$L3\ne 0$$ are unstable (central vortex decays into several vortexes), to simulate these solutions we use Pseudospectral option as follows (example with $$S=L3=2$$)

boundary = 40; xl = yl = -boundary; xr = yr = boundary;
finalt = 10; svalue = 2; lvalue = 2;
seedwave[x_, y_] :=
Exp[-0.005 (x^2 + y^2) +
I*svalue ArcTan[x + I 10^-14, y]] (x^2 + y^2)^(svalue/2);
pnumber =
NIntegrate[
Exp[-0.005 (x^2 +
y^2)]^2, {x, -\[Infinity], \[Infinity]}, {y, -\[Infinity], \
\[Infinity]}](*particle number check*)

sol = NDSolveValue[{-D[\[Psi][x, y, t],
t] == -0.5 Laplacian[\[Psi][x, y, t], {x, y}] +
Abs[\[Psi][x, y, t]]^2 \[Psi][x, y, t] Log[
Abs[\[Psi][x, y, t]]^2] -
I*0.25*svalue*Abs[\[Psi][x, y, t]]^4 \[Psi][x, y, t], \[Psi][xl,
y, t] == seedwave[xl, y], \[Psi][xr, y, t] ==
seedwave[xr, y], \[Psi][x, yl, t] ==
seedwave[x, yl], \[Psi][x, yr, t] ==
seedwave[x, yr], \[Psi][x, y, 0] == seedwave[x, y]}, \[Psi][x, y,
t], {x, xl, xr}, {y, yl, yr}, {t, 0, finalt},
Method -> {"MethodOfLines",
"SpatialDiscretization" -> {"TensorProductGrid",
"MinPoints" -> 100, "MaxPoints" -> 161,
"DifferenceOrder" -> "Pseudospectral"}}, MaxSteps -> 10^6]


Visualization

Plot3D[Evaluate[ Abs[sol]^2 /. t -> finalt], {x, xl, xr}, {y, yl, yr},
PlotRange -> All, MeshStyle -> White, ColorFunction -> "Rainbow",
PlotTheme -> "Marketing", PlotPoints -> 100]


Example with $$S=1,L3=0$$

boundary = 40; xl = yl = -boundary; xr = yr = boundary;
finalt = 10; svalue = 1; lvalue = 0;
seedwave[x_, y_] :=
Exp[-0.005 (x^2 + y^2) +
I*svalue ArcTan[x + I 10^-14, y]] (x^2 + y^2)^(svalue/2);

sol = NDSolveValue[{-D[\[Psi][x, y, t],
t] == -0.5 Laplacian[\[Psi][x, y, t], {x, y}] +
Abs[\[Psi][x, y, t]]^2 \[Psi][x, y, t] Log[
Abs[\[Psi][x, y, t]]^2] -
I*0.25*lvalue*Abs[\[Psi][x, y, t]]^4 \[Psi][x, y, t], \[Psi][xl,
y, t] == seedwave[xl, y], \[Psi][xr, y, t] ==
seedwave[xr, y], \[Psi][x, yl, t] ==
seedwave[x, yl], \[Psi][x, yr, t] ==
seedwave[x, yr], \[Psi][x, y, 0] == seedwave[x, y]}, \[Psi][x, y,
t], {x, xl, xr}, {y, yl, yr}, {t, 0, finalt},
Method -> {"MethodOfLines",
"SpatialDiscretization" -> {"TensorProductGrid",
"MinPoints" -> 100, "MaxPoints" -> 161,
"DifferenceOrder" -> "Pseudospectral"}}, MaxSteps -> 10^6]


Visualization

• Thanks, @AlexTrounev. Remember you helped me with this mathematica.stackexchange.com/questions/266736/…. I used it in my recently published review frontiersin.org/articles/10.3389/fphy.2022.887338/full. I used your program in sec 3.3 fig.3. I acknowledged you in acknowledgment sec. In that review, I had to regenerate other people's results so we do not need to take permission and I was stuck with the said one until you helped. Commented Aug 2, 2022 at 14:40
• I think I nearly solved this one @AlexTrounev. I submitted my thesis. So I am trying to regenerate other people's work to understand their topics at home so I will be bothering you with more nonlinear diff. equations from now on. I am trying for a postdoc. I do not want to go for teaching. Do you have any suggestions on what I can look forward to as I am getting only rejection emails. I know this station is not the right place to talk. Commented Aug 2, 2022 at 14:46
• How can I density plot the phase of the sol? Commented Aug 2, 2022 at 15:49
• @ArghaDebnath To plot phase just use Arg. Could you send me CV on docsie.io ? Commented Aug 4, 2022 at 7:00