Program title: corr3p_tr
Catalogue identifier: AEYR_v1_0
Program summary URL:class="interref" data-locatorType="url" data-locatorKey="http://cpc.cs.qub.ac.uk/summaries/AEYR_v1_0.html">http://cpc.cs.qub.ac.uk/summaries/AEYR_v1_0.html
Program obtainable from: CPC Program Library, Queen’s University, Belfast, N. Ireland
Licensing provisions: Standard CPC licence, class="interref" data-locatorType="url" data-locatorKey="http://cpc.cs.qub.ac.uk/licence/licence.html">http://cpc.cs.qub.ac.uk/licence/licence.html
No. of lines in distributed program, including test data, etc.: 15025
No. of bytes in distributed program, including test data, etc.: 156430
Distribution format: tar.gz
Programming language: ANSI C.
Computer: Linux 64bit PC.
Operating system: Linux 64bit.
RAM: 300 M bytes
Classification: 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 class="mathmlsrc">class="formulatext stixSupport mathImg" data-mathURL="/science?_ob=MathURL&_method=retrieve&_eid=1-s2.0-S0010465515004038&_mathId=si82.gif&_user=111111111&_pii=S0010465515004038&_rdoc=1&_issn=00104655&md5=897ad5734be3eab77fb1f4bd72d3692f" title="Click to view the MathML source">Q(r1,r2,μ)=r1r2(1−μ2)φ(r1,r2,μ)class="mathContainer hidden">class="mathCode">, where class="mathmlsrc">class="formulatext stixSupport mathImg" data-mathURL="/science?_ob=MathURL&_method=retrieve&_eid=1-s2.0-S0010465515004038&_mathId=si83.gif&_user=111111111&_pii=S0010465515004038&_rdoc=1&_issn=00104655&md5=4e6462919f547f66b48fc22c94b95ef5" title="Click to view the MathML source">μ=cos(012)class="mathContainer hidden">class="mathCode">. The cusps class="mathmlsrc">class="formulatext stixSupport mathImg" data-mathURL="/science?_ob=MathURL&_method=retrieve&_eid=1-s2.0-S0010465515004038&_mathId=si84.gif&_user=111111111&_pii=S0010465515004038&_rdoc=1&_issn=00104655&md5=a0c1f2ed30b304d12228d62188158e4f" title="Click to view the MathML source">(r1=r2,μ=1)class="mathContainer hidden">class="mathCode"> 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 class="mathmlsrc">class="formulatext stixSupport mathImg" data-mathURL="/science?_ob=MathURL&_method=retrieve&_eid=1-s2.0-S0010465515004038&_mathId=si85.gif&_user=111111111&_pii=S0010465515004038&_rdoc=1&_issn=00104655&md5=f2a603962c95c6ac8c12b2dae870dfd1" title="Click to view the MathML source">(r1=r2=0,μ)class="mathContainer hidden">class="mathCode"> is treated in the same way. The second step is to replace class="mathmlsrc">class="formulatext stixSupport mathImg" data-mathURL="/science?_ob=MathURL&_method=retrieve&_eid=1-s2.0-S0010465515004038&_mathId=si86.gif&_user=111111111&_pii=S0010465515004038&_rdoc=1&_issn=00104655&md5=c5f99fb92b6bcee3cf9b534c9860add1" title="Click to view the MathML source">Q(r1,r2,μ)class="mathContainer hidden">class="mathCode"> with class="mathmlsrc">class="mathImg" data-mathURL="/science?_ob=MathURL&_method=retrieve&_eid=1-s2.0-S0010465515004038&_mathId=si87.gif&_user=111111111&_pii=S0010465515004038&_rdoc=1&_issn=00104655&md5=c6d1d4cfd83c64e45c36b3e721cdae9f">class="imgLazyJSB inlineImage" height="19" width="157" alt="View the MathML source" title="View the MathML source" src="/sd/grey_pxl.gif" data-inlimgeid="1-s2.0-S0010465515004038-si87.gif">class="mathContainer hidden">class="mathCode">. The space class="mathmlsrc">class="formulatext stixSupport mathImg" data-mathURL="/science?_ob=MathURL&_method=retrieve&_eid=1-s2.0-S0010465515004038&_mathId=si180.gif&_user=111111111&_pii=S0010465515004038&_rdoc=1&_issn=00104655&md5=3b7735f0fe2c5c4d0a1b917405c69952" title="Click to view the MathML source">(x1,x2,μ)class="mathContainer hidden">class="mathCode"> is much more appropriate for a finite difference approach since the square roots class="mathmlsrc">class="mathImg" data-mathURL="/science?_ob=MathURL&_method=retrieve&_eid=1-s2.0-S0010465515004038&_mathId=si89.gif&_user=111111111&_pii=S0010465515004038&_rdoc=1&_issn=00104655&md5=fc2fdfec30b144acb90df31cc6c08b02">class="imgLazyJSB inlineImage" height="17" width="136" alt="View the MathML source" title="View the MathML source" src="/sd/grey_pxl.gif" data-inlimgeid="1-s2.0-S0010465515004038-si89.gif">class="mathContainer hidden">class="mathCode"> allow the boundaries to be much further out. The non-linearity of the class="mathmlsrc">class="formulatext stixSupport mathImg" data-mathURL="/science?_ob=MathURL&_method=retrieve&_eid=1-s2.0-S0010465515004038&_mathId=si90.gif&_user=111111111&_pii=S0010465515004038&_rdoc=1&_issn=00104655&md5=92e4f03b2fee5f2514e64f68df58c0ae" title="Click to view the MathML source">xclass="mathContainer hidden">class="mathCode">-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 class="mathmlsrc">class="formulatext stixSupport mathImg" data-mathURL="/science?_ob=MathURL&_method=retrieve&_eid=1-s2.0-S0010465515004038&_mathId=si91.gif&_user=111111111&_pii=S0010465515004038&_rdoc=1&_issn=00104655&md5=0aec5046c9b774ac178df3cd2352ffcc" title="Click to view the MathML source">r12class="mathContainer hidden">class="mathCode">, we have instead used class="mathmlsrc">class="formulatext stixSupport mathImg" data-mathURL="/science?_ob=MathURL&_method=retrieve&_eid=1-s2.0-S0010465515004038&_mathId=si92.gif&_user=111111111&_pii=S0010465515004038&_rdoc=1&_issn=00104655&md5=2d5d1c9ec8f907fa226fd871ce84bfe4" title="Click to view the MathML source">μclass="mathContainer hidden">class="mathCode"> 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 class="mathmlsrc">class="formulatext stixSupport mathImg" data-mathURL="/science?_ob=MathURL&_method=retrieve&_eid=1-s2.0-S0010465515004038&_mathId=si93.gif&_user=111111111&_pii=S0010465515004038&_rdoc=1&_issn=00104655&md5=90911e5ec2e93d1cea1babd7b1908971" title="Click to view the MathML source">(x1,x2)class="mathContainer hidden">class="mathCode">.
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 class="mathmlsrc">class="formulatext stixSupport mathImg" data-mathURL="/science?_ob=MathURL&_method=retrieve&_eid=1-s2.0-S0010465515004038&_mathId=si94.gif&_user=111111111&_pii=S0010465515004038&_rdoc=1&_issn=00104655&md5=2d49e77f27d1e691c606f14a02ee5321" title="Click to view the MathML source">r1class="mathContainer hidden">class="mathCode"> and class="mathmlsrc">class="formulatext stixSupport mathImg" data-mathURL="/science?_ob=MathURL&_method=retrieve&_eid=1-s2.0-S0010465515004038&_mathId=si95.gif&_user=111111111&_pii=S0010465515004038&_rdoc=1&_issn=00104655&md5=5fe0bcccebbc974acd020a7523c34af8" title="Click to view the MathML source">r2class="mathContainer hidden">class="mathCode"> 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 class="mathmlsrc">class="formulatext stixSupport mathImg" data-mathURL="/science?_ob=MathURL&_method=retrieve&_eid=1-s2.0-S0010465515004038&_mathId=si96.gif&_user=111111111&_pii=S0010465515004038&_rdoc=1&_issn=00104655&md5=3d76655813d79c2514fc024ded305e8e" title="Click to view the MathML source">h1=h2=h3=1/16class="mathContainer hidden">class="mathCode"> 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.
References: [20] S. Edvardsson, M. Gulliksson, and J. Persson. J. Appl. Mech. ASME, 79 (2012) 021012.
[21] S. Edvardsson, M. Neuman, P Edstrom, and H. Olin. Comp. Phys. Commun. 197 (2015) 169.
[23] M. Neuman, S. Edvardsson, P. Edstrom, Opt. Lett. 40 (2015) 4325.