This work presents a convenient way to solve the non-relativistic Schrödinger equation numerically for a general three-particle system including full correlation and mass polarization. Both Coulombic and non-Coulombic interactions can be studied. The eigensolver is based on a second order dynamical system treatment (particle method). The Hamiltonian matrix never needs to be realized. The wavefunction evolves towards the steady state solution for which the Schrödinger equation is fulfilled. Subsequent Richardson extrapolations for several meshes are then made symbolically in matlab to obtain the continuum solution. The computer C code is tested under Linux 64 bit and both double and extended precision versions are provided. Test runs are exemplified and, when possible, compared with corresponding values in the literature. The computer code is small and self contained making it unusually simple to compile and run on any system. Both serial and parallel computer runs are straight forward. Program summaryProgram title: corr3p_trCatalogue identifier: AEYR_v1_0Program summary URL:http://cpc.cs.qub.ac.uk/summaries/AEYR_v1_0.htmlProgram obtainable from: CPC Program Library, Queen’s University, Belfast, N. IrelandLicensing provisions: Standard CPC licence, http://cpc.cs.qub.ac.uk/licence/licence.htmlNo. of lines in distributed program, including test data, etc.: 15025No. of bytes in distributed program, including test data, etc.: 156430Distribution format: tar.gzProgramming language: ANSI C.Computer: Linux 64bit PC.Operating system: Linux 64bit.RAM: 300 M bytesClassification: 2.7, 2.8, 2.9.Nature of problem: The Schrödinger equation for an arbitrary three-particle system is solved using finite differences and a fast particle method for the eigenvalue problem [20, 21, 23].Solution method: A fast eigensolver is applied (see Appendix). This solver works for both symmetrical and nonsymmetrical matrices (which opens up for more accurate nonsymmetrical finite difference expressions to be applied at the boundaries). The three-particle Schrödinger equation is transformed in two major steps. First step is to introduce the function Q(r1,r2,μ)=r1r2(1−μ2)φ(r1,r2,μ), where μ=cos(012). The cusps (r1=r2,μ=1) are then transformed into boundary conditions. The derivatives of Q are then continuous in the whole computational space and thus the finite difference expressions are well defined. Three-particle coalescence (r1=r2=0,μ) is treated in the same way. The second step is to replace Q(r1,r2,μ) with (2x1x2)−1Q(x1,x2,μ). The space (x1,x2,μ) is much more appropriate for a finite difference approach since the square roots x1=r1,x2=r2 allow the boundaries to be much further out. The non-linearity of the x-grid also leads to a finer description near the nucleus and a coarser one further out thus resulting in a saving of grid points. Also, in contrast to the usual variable r12, we have instead used μ which is an independent variable. This simplifies the mathematics and numerical treatments. Several different grids can naturally run completely independent of each other thus making parallel computations trivial. From several grid results the physical property of interest is extrapolated to continuum space. The extrapolations are made in a matlab m-script where all computations can be made symbolically so the loss of decimal figures are minimized during this process. The computer code, including correlation effects and mass polarization, is highly optimized and deals with either triangular or quadratic domains in (x1,x2).Restrictions: The amount of CPU time may become unreasonable for states needing boundary conditions very far beyond the origin. Also if the condition number of the corresponding Hamiltonian matrix is very high, the number of iterations will grow. The use of double precision computations also puts a limit on the accuracy of extrapolated results to about 6–7 decimal figures.Unusual features: The numerical solver is based on a particle method presented in [20, 21, 23]. In the Appendix we provide specific details of dealing with eigenvalue problems. The program uses a 64 bit environment (Linux 64bit). Parallel runs can be made conveniently through a simple bash script.Additional comments: The discretized wavefunction is complete on every given grid. New interactions can therefore conveniently be added to the Hamiltonian without the need to seek for an appropriate basis set.Running time: Given a modern CPU such as Intel core i5 and that the outer boundary conditions of r1 and r2 is limited to, say 16 atomic units, the total CPU time of totally 10 grids of a serial run is typically limited to a few minutes. One can then expect about 6–7 correct figures in the extrapolated eigenvalue. A single grid of say h1=h2=h3=1/16 converges in less than 1 s (with an error in the eigenvalue of about 1 percent). Parallel runs are possible and can further minimize CPU times for more demanding tasks.
Read full abstract