2016 Volume 2 Article ID: 2016-0003
A Fortran program is given for calculating wave functions of the molecular hydrogen ion, expanded in terms of single-center Laguerre-type orbitals. Using this program, the radial quantum number has been extended to 203, and accuracy has been attained in energy of the order of 10−6 a.u. The electron-nucleus Coulomb integrals are evaluated numerically by applying Gaussian quadratures.
In modern quantum chemical calculations, Gaussian-type orbitals (GTOs) [1] are most commonly used as basis functions. To perform accurate calculations for atoms or small molecules, Slater-type orbitals (STOs) [1] are also utilized. GTOs provide an advantage in efficient multi-center 2-electron integral evaluation.
As a result of overlap integrals among these basis functions, however, problems associated with linear dependence [2,3] occasionally prevent accurate computation. This may be a severe impediment when extending the basis toward completeness. In this paper we apply Laguerre-type orbitals (LTOs) [1] which do not suffer from linear dependence issues.
In Hartree-Fock calculations with basis-set expansions, the wave functions obtained often have artificial nodes [4,5,6], which should not appear in the exact wave function. Artificial nodes have been found for GTOs [5,6] and STOs [4,5]. It is of interest whether artificial nodes can occur even for orthogonal basis sets such as LTOs having no overlap integrals. This question motivated us to write the present program involving LTOs.
The Laguerre-type orbitals give rise to a complete orthonormal basis (CONS) [1,7,8]. It is well known that LTOs are complete sets for bound states of the hydrogen atom. By adding increasing numbers of LTOs, wave functions derived using this method approach the exact solution ever more closely.
LTOs nevertheless have shortcomings. The biggest problem, common to all exponential-type orbitals (ETOs), is in evaluating multi-center Coulomb integrals. For this reason, LTOs are applied only to single-center expansion, and actual single-center expansion calculations have been limited to small systems such as the He atom [2,3], H2+ [9,10], or H2 [11].
The hydrogen molecular ion (H2+) is the simplest molecule and has been studied from the early days of quantum chemistry, beginning with the pioneering works of Burrau [12] and Hylleraas [13]. The exact solution was obtained. Peek’s paper [14] presently provides the most precise value of the exact electronic energy, −1.1026342144949 a.u., for the internuclear distance Rbond = 2.0 a.u. using nonrelativistic theory and the Born-Oppenheimer approximation. This internuclear distance, which is quite close to the equilibrium distance of (Re = 1.9971933199 a.u.) [15], is used throughout this paper. Bates et al. [16] gave details of the exact wave function including contour maps and the peak value (0.458) at the nucleus. Even today H2+ is an important molecular system used as a testing ground for novel numerical methods and approaches.
Single-center expansion is usually based on the molecular midpoint, but its convergence is slow. Because no basis functions are placed on the nuclear positions, it will be difficult to give satisfactory results for the nuclear cusp condition [17] if a finite number of basis functions is used. This explains the slow convergence.
Single-center expansions with LTOs have been made before for H2+; the first was by Howell and Shull [9], and the second by Kranz and Steinborn [10]. In the latter, the maximum number (Nmax) of the radial quantum number (n) in the basis is 25 and the resulting electronic energy (−1.1022 a.u.) is accurate to the order of 10−4 a.u. This contrasts with the rapid convergence of the multi-center expansion method (linear combination of atomic orbitals, LCAO) using GTOs. Wells and Wilson [18] quote an energy accuracy of 2 × 10−7 a.u. with a reasonably compact basis set of [23s 9p 4d 4f 2g] (232 primitive GTOs in total).
In spite of the above shortcomings of LTOs, they are still valuable for their capability to construct a complete orthogonal basis. In testing newly developed methods on the hydrogen molecular ion, it is desirable to lift the limit for the radial quantum number (n) and attain accuracy in energy of the order of 10−6 a.u.
In calculations with LTOs, the most time-consuming step is the evaluation of electron-nucleus Coulomb integrals. Although analytical integration is possible, there is serious loss of accuracy, as will be described in section 3.1. To overcome this problem a multiple-precision arithmetic package such as MPfun90 [19] or FM [20] is required.
To evaluate integrals efficiently and precisely we wrote a program that implements numerical integration by Gaussian quadratures [21,22,23]. We examined the accuracy of the integrals and found that, even for n = 203, at least 20 decimal digits are maintained as significant figures. Using this program we have successfully extended n up to 203 and obtained energy accuracy of the order of 10−6 a.u. The dimension of the Hamiltonian matrix is 10404. We provide this program with the present paper.
The program is written in Fortran 2003. It is self-contained, so that no external library programs are needed. The computation is performed with quadruple precision arithmetic based on the IEEE Standard for Floating-Point Arithmetic [24], which is supported by most modern Fortran compilers. As a result, the program has good portability.
Studies of H2+ continue and recent theoretical work can be found in the literature [25,26,27].
The wave function for H2+ is expanded in terms of basis functions φnlm in polar coordinates, as
(1) |
(2) |
Here, Ylm is a spherical harmonic function. The expansion coefficients Cnlm are obtained by the variational principle,
(3) |
(4) |
Here H is the Hamiltonian, and RA and RB are the position vectors of nuclei A and B. Z is the nuclear charge. For H2+, Z is 1. The fourth term, the nuclear repulsion energy, is constant in the Born-Oppenheimer approximation and will be omitted henceforth. As a result we consider the electronic energy (EE) rather than the total energy (TE). Atomic units are used throughout.
We adopt a single-center expansion based on the molecular midpoint for the wave function. Laguerre-type orbitals (LTOs) [1] are used for the radial functions,
(5) |
Here
(6) |
These polynomials satisfy the following recurrence relation:
(7) |
(8) |
The Hamiltonian element consists of three terms,
(9) |
The first term, representing the kinetic energy, is evaluated according to the following formula, given in an Appendix (Eq.7) of the paper by Hagstrom and Shull [11],
(10) |
The second term in the Hamiltonian,
(11) |
(12) |
The Hamiltonian is nonzero only for m = 0. For H2+ (1s σg), both l and l’ are even. By substituting R and V for RA and VA, V can be written as follows:
(13) |
(14) |
(15) |
The integral K consists of two parts: F of finite interval [0, R], and G of infinite interval [R, ∞), as follows:
(16) |
(17) |
Then K becomes
(18) |
By inserting Eq.6 into Eq.16 and Eq.17, the integrals F and G can be written as the sum of the individual terms:
(19) |
(20) |
Analytical integration is possible for the individual terms [28] in this expression. However, F and G both contain a series of terms which alternate in sign as k(or k’) is incremented. This causes severe cancellations of significant digits.
We examined the cancellations for the case of n = n’ = 151, l = l’ = 0, s = 0, zl = zl’ = 37.65. The partial sum of F grew to 1.2357857664 × 10116 at the maximum, and F(151,0,151,0; 0,1) finally converged to 9.3719206312 × 10−2. It is immediately apparent that cancellation of 118 decimal digits was involved. Furthermore, the partial sum of G grew to 3.2394517384 × 10138 although G(151,0,151,0; 0,1) finished up as 1.1259694138 × 10−2. In this case the cancellation amounts to 140 digits.
These facts make clear that the quadruple precision arithmetic supported by current Fortran systems, ensuring 33 significant figures, is not sufficient. Accordingly a multiple-precision arithmetic package (such as MPfun90 [19], FM [20]) is required. In fact, 166 decimal digits were needed for the examination above. Such multiple-precision arithmetic requires much CPU time, however. Moreover the computational cost of evaluating one integral of V is of the order of n3. For these reasons we abandoned term-by-term analytical integration for large-scale calculations, using it only for testing purposes. Instead, we used selected numerical integration methods. Details are set out in the next subsection.
3.2 Gaussian quadraturesFor numerical integration we adopt the Gaussian quadrature formula [21,22,23].
(21) |
Here w(x) is a weighting function, xk are abscissas, Wk are weights, and M is the number of abscissas.
The integrands of Eq.16 and Eq.17 are plotted in Figure 1 and Figure 2, respectively. These figures reveal that the integrands oscillate frequently for large n or n’, and that as many abscissas as the frequency should be taken in order to provide sufficient accuracy for evaluation of the integrals.
The integrand of F(151,0,151,0; s = 0, R = 1) over [0,1].
The integrand of G(151,0,151,0; s = 0, R = 1) over [1,10].
Since the error in Gaussian quadrature can be made zero for G, but not for F, we describe the numerical integration of G(Eq.17) first, to simplify the discussion. Later we shall consider F(Eq.16).
Equation 17 can be changed to the following form by transformation of variable:
(22) |
(23) |
(24) |
(25) |
Here J is the order of the polynomial. To make the error zero, J should be ≤ 2M − 1. Then M takes the form,
(26) |
We next checked the accuracy of the integrals. The results of the test are listed below to 33 decimal places, taking the case of n = n’ = 151, l = l’ = 0, s = 0, zl = zl’ = 37.65 as an example. For this check we wrote a test program by modifying subroutines in the mathematical library NUMPAC [29,30] (Y.H. is one of its authors). The numerical integration was performed with quadruple precision arithmetic. Results from the Gaussian quadrature are compared with those obtained by analytical integration using the multiple-precision arithmetic package MPfun90 [19]. The result from the analytical integration with 158 significant digits specified for MPfun90 is quoted below as scheme (A). In the scheme (B)/(C), 166/173 digits are specified. G for n = n’ = 151, l = l’ = 0, s = 0, zl = zl’ = 37.65.
(a) Gauss 151 points
1.125969413770606624522211291992090E-02
(A) MPfun90 158 digits
1.125969413770606624522211268404800E-02
(B) MPfun90 166 digits
1.125969413770606624522211291991500E-02
(C) MPfun90 173 digits
1.125969413770606624522211291991500E-02
This test shows that M defined by Eq.26 works well. Since the order of the polynomial (J) reaches its maximum when l = l’ = s, the maximum M is given by Nmax. Thus, for Nmax = 203, M is 203.
Using the Golub and Welsch algorithm [22], the abscissas (zeros of the Laguerre polynomials LM(x)) are calculated efficiently from the eigenvalues of a symmetric tridiagonal matrix that is constructed from the three-term recurrence relation (Eq.7). The weights [21] are:
(27) |
We turn now to the evaluation of F(Eq.16). The Gauss-Legendre quadrature rule [23] is used, with the weighting function w(x) = 1.
(28) |
(29) |
(30) |
Since the integrand involves an exponential function, the error cannot be zero in this case. It is not easy to estimate the number of abscissas necessary by theory alone. We therefore performed trial calculations to find the number of abscissas that best balances accuracy and efficiency. We first tested a value of M obtained from J ≤ 2M − 1, namely
(31) |
We tested also the double of this value,
(32) |
We list below one of the results of the trial calculations. F for n = n’ = 125, l = l’ = 20, s = 5, zl = zl’ = 114.98528.
(a’) Gauss 141 points
2.878459649515099324510714516949794E-16
(b’) Gauss 281 points
2.878459649515099317492932366032297E-16
(A’) MPfun90 158 digits
2.878459649515099317492932366230900E-16
(B’) MPfun90 166 digits
2.878459649515099317492932366230900E-16
(C’) MPfun90 173 digits
2.878459649515099317492932366230900E-16
The scheme (a’) gives only 17 significant digits, whereas the scheme (b’) gives 28 digits. To obtain the desired accuracy, scheme (b’) is needed. We therefore adopt scheme (b’), i.e., we set M to J+1. Since J reaches its maximum when l = l’ = Lmax and s = 0, the maximum M is given by 2 × Nmax + 2 × Lmax +1. For Nmax = 203 and Lmax = 202, M takes the value 811. Here Lmax is the maximum of l or l’ in the basis.
The abscissas (zeros of the Legendre polynomials Pm(x)) are calculated using Newton’s iterative method, starting from approximate roots given by
(33) |
The weights [23], Wk, are calculated from the following formula:
(34) |
To conclude this subsection, we compare the Coulomb integral (V) obtained from the Gaussian quadrature scheme (a and b’) with that evaluated from Eq.13 using MPfun90 [19].
V for n = n’ = 151, l = l’ = 0, zl = zl’ = 37.65.
Gaussian quadratures
0.439338507119362656787621563083154
MPfun90 158 digits
0.439338507119362656787621559152698
MPfun90 166 digits
0.439338507119362656787621563540349
MPfun90 173 digits
0.439338507119362656787621563540349
V for n = n’ = 151, l = l’ = 150, zl = zl’ = 37.65.
Gaussian quadratures
0.253398692737192741982923026971287
MPfun90 158 digits
0.253398692737192741982923026971291
MPfun90 166 digits
0.253398692737192741982923026971291
MPfun90 173 digits
0.253398692737192741982923026971291
Further tests confirm at least 20-figure accuracy for Nmax ≤ 203. The cost of the numerical integration is O(Nmax6).
The program system provided is self-contained, so that other library routines are not necessary. The calling sequence of the major routines is shown in Figure 3. For Gauss-Legendre quadrature, subroutine TGLEGQ of NUMPAC library [29,30] is incorporated. For diagonalizing the Hamiltonian matrix to obtain EE, subroutine HOBSVQ of the NUMPAC library [29,30] is used.
Calling sequence.
The memory size required to run the program is determined by one large array named HMATRX, where the Hamiltonian elements are kept. The size of HMATRX is NNQH × NNQH, while NNQH = Nmax × (Nmax+1)/4 + Nmax. With Nmax = 203, the size of HMATRX exceeds 2 GB assuming quadruple precision of 16 B.
First, expand the downloaded file. Here we take its file name as scelto_gauss.tar.gz [31].
tar -zxvf scelto_gauss.tar.gz
Compile the source programs in the directory src using the make command.
cd src
make
cd ..
An executable program named sscelto_gauss.exe will be generated. Move it into the directory bin.
mv src/scelto_gauss.exe bin/
Run the program.
cd wshop.N19
../bin/scelto_gauss.exe
The Intel Fortran compiler is the default. For the Fujitsu compiler, Makefile.Fujitsu is available. To use other compilers, the command name and compile options must be changed. In particular, some compile options may have to be changed; the large array HMATRX) should therefore be placed in a memory region beyond 2 GB.
The value of the parameter constant NQMAX, which defines the upper limit for Nmax, is set to 211. By compiling the source programs with smaller NQMAX, the program size can be reduced.
Test input data c5nqg.inp is stored in the directory wshop.N19. This data is for the case Nmax = 19. It gives EE of− 1.10227888655218872575 a.u.
5.2 Input dataWe describe the input data parameters, taking the input file in the directory wshop.N19 as an example.
Line: Variable or array / Meaning
1: comment
2: Nmax / maximum of n.
3: comment
4: Lmax / maximum of l.
5: comment
6: R / nuclear position (a.u.) from the midpoint.
7: comment
8: ZNUC / nuclear charge. (1.0 for H2+)
9: comment
10–19: ZL / exponents for even l numbers.
5.3 Output filesThe following files will be generated after execution of theprogram.
c5nqg.outlist
c5nqg.log
c5nqg.out9.txt
c5nqg.out.txt
For each value of l, the Hamiltonian matrix is diagonalized and the exponents, eigenvalues, and eigenvectors are written to the file c5nqg.out.txt. Immediately after the diagonalization for a particular l is finished, the number l is output to the file c5nqg.log, so that users can observe the progress. To the file c5nqg.out9.txt, the eigenvalues alone are output.
Table 1 shows the computational results. The fourth column, named Ndim, gives the dimensions of the Hamiltonian matrices. For the method titled ‘Scaling’, identical exponents were used for all the l numbers. For Nmax = 203, the scaling method yields the energy as −1.10263287 a.u, which differs from the exact energy by 1.34 × 10−6 a.u. The exponents were determined by extrapolation from the preceding runs of n = 1–70. zl = 1.6193375636179528 + 0.2782894519200024n – 0.0005804140783906168n2 + 0.000002103469132713343n3 (35)
Method | Nmax | Lmax | Ndim | Exponent(zl) | EE(a.u.) | CPU-time(sec)* |
Scaling | 51 | 50 | 676 | 14.59721 | −1.10258505 | 271 |
Scaling | 71 | 70 | 1296 | 19.26503 | −1.10261435 | 2235 |
Scaling | 101 | 100 | 2601 | 25.97300 | −1.10262669 | 22493 |
Scaling | 131 | 130 | 4356 | 32.84360 | −1.10263056 | 126906 |
Scaling | 203 | 202 | 10404 | 51.18760 | −1.10263287 | 2521290 |
Full opt.† | 131 | 130 | 4356 | −1.10263323 | ||
Emp. opt.‡ | 203 | 202 | 10404 | −1.10263395 | ||
Exact (by Peek [14]) | −1.10263421 |
* CPU-time on an Intel Core i7-3970X (3.5 GHz) in serial mode.
† The exponents are fully optimized.
‡ The exponents are optimized empirically. See text.
By optimizing the exponents for l individually, EE has been decreased further to −1.10263395 a.u. The difference between the final energy for Nmax = 203 and the exact value is less than 2.6 × 10−7 a.u.
For Nmax = 203, the exponents were optimized in an empirical manner. First, the exponent for l = 0 (denoted as z0) is optimized, with Lmax set to 0. Next, the exponent for l = 2 (z2) is optimized from an initial value given by multiplying z0 by 1.1, with Lmax set to 2. By repeating this procedure the exponents are determined, until l = 50. The exponent for l = 202 (z202) is fixed to 203.5 by n+0.5. The exponents for l = 52–200 are calculated from a line connecting z50 and z202 (The optimization routines are not provided.)
The electronic energies are plotted versus Nmax in Figure 4. The blue curve marked with squares shows the energy obtained by the scaling method. The red curve marked with circles shows the energy obtained with optimized exponents. Solid circles indicate that the exponents are fully optimized. The open circles for Nmax = 161–203 signify that the exponents are optimized empirically. The calculated energies approach the exact value.
Electronic energy vs Nmax.
To observe the l-dependency of the eigenvalue, the Hamiltonian was diagonalized for each l-block (l = 0,1,...,Lmax). The CPU-time in Table 1 includes all the diagonalization steps for l. If the Hamiltonian is diagonalized only once for the maximum l(Lmax), the CPU time is drastically reduced. Moreover, we have found that the Hamiltonian can be diagonalized in the double-precision without loss of accuracy. By considering these 2 factors, we have reduced the CPU-time for Nmax = 203 to 681190 sec (about 1/4 of the original). Finally we succeeded to extend n to 241 and obtained EE = −1.10263406 a.u.
For the case of Nmax = 39 and Lmax = 38, EE was calculated to be −1.10253135 a.u. We have performed additional calculations by locating the expansion center at one nucleus and have obtained EE = −1.10244106 a.u. We call this computational scheme one-side expansion against midpoint expansion described in text. The midpoint expansion gives slightly better EE. In the one-side expansion, we have also calculated the nuclear cusp condition to be −2.34. Since in the midpoint expansion, the peak position differs from the nuclear position, the calculated cusp condition loses its exact physical meaning. However, we estimated its value to be −0.33 by numerical differentiation along the Z axis. Along the y axis (perpendicular to the molecular axis), it was − 1.0 × 10−5. In all these cases, the calculated values deviate considerably from the true value (−1). Although the LTOs themselves are considered to be superior to the GTOs for computing the cusp conditions, their single-center expansion gives unsatisfactory results.
We are grateful to Professor Emeritus Hiroshi Tatewaki of Nagoya City University for valuable suggestions. Y.H. thanks Professor Hiroshi Sugiura at Nanzan University and Professor Emeritus Takemitsu Hasegawa at Fukui University for their helpful suggestions regarding Gaussian quadratures. The main computation was performed using a cluster of Intel Xeon-based computers located at the Institute for Advanced Studies in Artificial Intelligence (IASAI) of Chukyo University. The Fujitsu PRIMEHPC FX100 supercomputer at the Information Technology Center of Nagoya University was used for portability testing.