1
$\begingroup$

When I run this code

diskLevels = 
  NDEigenvalues[
                {-Laplacian[u[x, y], {x, y}], 
                DirichletCondition[u[x, y] == 0, True]}, 
                u[x, y], {x, y} \[Element] Disk[], 1000
         ];

Mathematica objects that it can only supply me with 961 eigenvalues:

NDEigenvalues::maxeigen: A maximum number of 961 eigenvalues and functions can be computed for this discretized system.

Is there a way to get more values? I tried messing around with some options but any time I managed to prevent the error message the calculation would not terminate.

$\endgroup$

1 Answer 1

3
$\begingroup$
Clear["Global`*"]

(diskLevels = NDEigenvalues[
     {-Laplacian[u[x, y], {x, y}],
      DirichletCondition[u[x, y] == 0, True]},
     u[x, y], {x, y} \[Element] Disk[], 1000,
     Method -> {"SpatialDiscretization" ->
        {"FiniteElement",
         "MeshOptions" ->
          {"MaxCellMeasure" -> 0.0075}}}];) //
 AbsoluteTiming

(* {0.657356, Null} *)

Length@diskLevels

(* 1000 *)
$\endgroup$
1
  • $\begingroup$ Thanks! I thought I would note: the levels returned by this code may not be reliable. If you plot the differences here then they will not be distributed as $P \sim e^{(-s)}.$ But making MaxCellMeasure even smaller recovers the true behavior, although at a much longer time. $\endgroup$
    – Diffycue
    Commented Sep 13, 2021 at 17:52

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

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