corr3p_tr: A particle approach for the general three-body problem
详细信息    查看全文
文摘
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 summary

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">Q(r1,r2,μ)=r1r2(1μ2)φ(r1,r2,μ), 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">μ=cos(012). 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">(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 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">(r1=r2=0,μ) 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">Q(r1,r2,μ) 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">(2x1x2)1Q(x1,x2,μ). 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">(x1,x2,μ) 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">x1=r1,x2=r2 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">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 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">r12, 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">(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 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">r1 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">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 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">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.

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.

© 2004-2018 中国地质图书馆版权所有 京ICP备05064691号 京公网安备11010802017129号

地址:北京市海淀区学院路29号 邮编:100083

电话:办公室:(+86 10)66554848;文献借阅、咨询服务、科技查新:66554700