0
$\begingroup$

I am going to solve TISE for logarithmic potential in two dimensions. For bound state solution, the energy eigenvalues are to come negative. This is my code:

h = 1/10; 
V[x_?NumericQ, y_?NumericQ] := Log[(x^2 + y^2)^(0.5)];
ℒ = -h^2*Laplacian[u[x, y], {x, y}] + V[x, y]*u[x, y];

{vals, funs} = 
 NDEigensystem[
  ℒ, u[x, y], {x, y} ∈ Disk[{0, 0}, 40], 30, 
  Method -> 
    {"SpatialDiscretization" -> 
      {"FiniteElement", {"MeshOptions" -> {MaxCellMeasure -> 0.05}}}}
 ]; 

vals

The output is:

{-0.00198732, 0.00539817, -0.0661666, 0.104999, 0.10756, -0.127353,
  0.12829, -0.128495, 0.159509, 0.209388, 0.210758, -0.222747,
 -0.257318, 0.270692, 0.295442, 0.296305, 0.309708, 0.316885,
  0.380771, 0.382971, 0.407733, 0.434397, -0.439298, -0.444706,
  0.456338, 0.458949, 0.46411, 0.467077, 0.518833, 0.525313}

Now, when I plot the eigenfunctions with negative eigenvalues I get the desired wavefunction, but when I plot those with positive eigenvalues, as expected, the resultant wavefunction is not square-integrable and does not tend to zero at infinity. Now, as I require only the bound state eigenenergies and eigenfunctions, what can I do to get only the eigenfunctions with negative eigenvalues, arranged in proper order of increasing energy (i.e., firstly the most bound one with most negative eigenenergy, then 2nd most and so on)?

$\endgroup$
3
$\begingroup$
ord = Ordering[vals, Count[vals, z_ /; z < 0]]
(* {24, 23, 14, 13, 8, 7, 3, 1} *)

determines the positions of the negative eigenvalues in vals, sorted from most to least negative. Then

vals[[ord]]
(* {-0.440585, -0.437867, -0.267061, -0.253709, 
    -0.131002, -0.129766, -0.0845056, -0.000911545} *)

gives the sorted negative eigenvalues themselves, and

funs[[ord]]

gives the corresponding eigenfunctions in the same order.

$\endgroup$

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.