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$
0

1 Answer 1

4
$\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$

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