MADNESS
0.10.1
|
The source is here.
This illustrates solution of a non-linear Schrödinger motivated by exploring problems associated with equations of the same form from nuclear physics.
We seek the lowest eigenfunction of
where the potential is
The parameters , , , , and are given in the code. The density is given by
There would normally be multiple states occupied but for simplicity we are employing just one.
The first term in the potential is weak and seems to be there to stabilize the solution. The second term seems to act as a confining potential since it becomes large and positive when the density is small. The third term represents short-range attraction between particles, and the fourth adjusts the zero of energy.
[These notes were written by a chemist ... if you are a nuclear physicist could you please clean them up?].
The integral form of the equation is
where is the Green's function for the Helmholtz equation
where .
We employ a simple fixed-point iteration to the self-consistent solution, but strong damping or step restriction is necessary to ensure convergence. This is due to the nearly singluar potential, the problem being exacerbated by small . A reliable solution scheme seems to be to first solve with a large value of and then to reduce it in several steps to its final value. A much more efficient scheme would involve use of a non-linear equation solver instead of simple iteration.
The density is analytically everywhere positive, but numeric noise can introduce regions where it is zero or even slightly negative. To avoid very non-physical results, we smoothly switch values less than some threshold to a minimum value. This is preferable to employing a sharp cutoff.