Abstract
Accurate representation of intermolecular forces has been the central task of classical atomic simulations, known as molecular mechanics. Recent advancements in molecular mechanics models have put forward the explicit representation of permanent and/or induced electric multipole (EMP) moments. The formulas developed so far to calculate EMP interactions tend to have complicated expressions, especially in Cartesian coordinates, which can only be applied to a specific kernel potential function. For example, one needs to develop a new formula each time a new kernel function is encountered. The complication of these formalisms arises from an intriguing and yet obscured mathematical relation between the kernel functions and the gradient operators. Here, I uncover this relation via rigorous derivation and find that the formula to calculate EMP interactions is basically invariant to the potential kernel functions as long as they are of the form f(r), i.e., any Green’s function that depends on inter-particle distance. I provide an algorithm for efficient evaluation of EMP interaction energies, forces, and torques for any kernel f(r) up to any arbitrary rank of EMP moments in Cartesian coordinates. The working equations of this algorithm are essentially the same for any kernel f(r). Recently, a few recursive algorithms were proposed to calculate EMP interactions. Depending on the kernel functions, the algorithm here is about 4–16 times faster than these algorithms in terms of the required number of floating point operations and is much more memory efficient. I show that it is even faster than a theoretically ideal recursion scheme, i.e., one that requires 1 floating point multiplication and 1 addition per recursion step. This algorithm has a compact vector-based expression that is optimal for computer programming. The Cartesian nature of this algorithm makes it fit easily into modern molecular simulation packages as compared with spherical coordinate-based algorithms. A software library based on this algorithm has been implemented in C++11 and has been released.
I. INTRODUCTION
Classical molecular mechanics simulations use empirical potential energy functions, called force fields, to model molecular interactions at the atomic level. Force fields are typically divided into bonded and nonbonded terms, the latter of which are usually approximations of electrostatics, dispersion, and repulsion interactions. The most commonly used models for the nonbonded interactions are Coulomb and Lennard-Jones potentials. These potentials are, in general, functions of the nuclear positions and atomic properties such as the electron density, the latter of which are called parameters and are determined from quantum mechanical calculations.
Historically, the parameters for the Coulomb potential are the so-called atomic “partial charges,” which are fractional atom-centered charges representing the continuous electron density. Although the partial-charge model simplifies the calculation and is easy to implement, its failure to reproduce the molecular electrostatic potential has been known for decades,1–9 especially in the biomolecular simulation field. This issue mainly arises from the fact that molecular orbitals, in general, are not isotropic in space as implicitly assumed by the partial-charge model. We refer the reader to recent reviews10,11 on this issue. Most notably, this issue is more pronounced in the case of a coarse-grained force field, where a group of atoms are modeled as a super-atom whose partial charges sum to neutrality. Under this circumstance, the complete loss of electrostatics between neutral super-atoms has been shown to cause simulation artifacts.12,13 One intuitive way to improve the electrostatic model is to include higher order electric multipole (EMP) moments to better represent the electron cloud. Significant effort has been devoted to the development of force fields that explicitly represent permanent and polarizable point atomic EMP moments14–20 as well as continuous Gaussian EMP moments.21,22 EMP moments have also been used in recent coarse-grained force fields for proteins23 and lipids.24 Very recently, a polarizable Gaussian atomic EMP model was used in refining x-ray crystal structure,25–28 where the authors found that an expansion up to rank-4 EMP (hexadecapole) moments are sometimes necessary to describe bond electron density in tetrahedral geometries.
Another concern for calculating molecular potential is long-range interactions. This is most prominent in evaluating the Coulomb potential, although recently there are also reports on the importance of long-range dispersion interaction in computing fluid-fluid interfacial properties.29–32 One of the first and yet most popular ways to evaluate the long-range interactions is Ewald summation and the particle-mesh (PM) method based on it. The details of this method have been extensively reviewed.10,33,34 While the formalism for the PM method in the case of partial-charge model as well as the implementation has been established for several decades, the equivalent for the case of higher-rank EMP moments was only developed recently.15,35–37 There are also real-space methods based on the Wolf summation38 that have been developed recently39,40 which explicitly incorporate EMP moments.
While the importance of higher-rank EMP moments in improving force fields has become more appreciated, the additional equations beyond the partial-charge model have not been cast into a easily recognizable form. Also, the formalism to compute the EMP-EMP interaction energies and forces is not generalized to encompass the variety of potential energy functions used under different situations, especially when additional, not necessarily complicated, mathematical or numerical manipulation is needed in treatment of long-range interactions. For example, the formalism to compute Ewald summation up to the quadrupole level was originally proposed by Smith41 but later recast by Aguado and Madden,35 in a completely different form and in either case, but neither formalism is readily generalizable to support EMP moments of higher ranks. Moreover, these formalisms use sparse and obscure expressions that have to be written out explicitly in computer program, which makes them difficult to implement and debug.
The other aspect of the calculation involving EMP is efficiency. The canonical tensor-based method for calculating EMP interaction energies and forces has a vector-matrix-vector bilinear form and requires populating the central matrix. However, it is generally not the most efficient way to first populate the matrix and then carry out the bilinear contraction (or vector-matrix multiplication); I will show later that the algorithm developed here needs significantly fewer floating point operations to evaluate EMP interaction energies and forces than several algorithms developed recently where the central matrix is populated by recursion. Specifically, the algorithm reported here is about 4 times faster (in terms of the required number of floating-point operations) than the McMurchie-Davidson algorithm prosed by Sagui et al.15 and about 16 times faster than another one proposed by Boateng and Todorov37 for evaluating the damped Coulomb potential used in Ewald summation at the hexadecapole level. It is even more competitive than a theoretically ideal recursion scheme where only 1 multiplication and 1 addition are needed to construct each element of the central matrix.
In this study, I summarize the problems in electric multipole-multipole interaction and provide an efficient algorithm to evaluate the multipole interaction energies, forces, and torques in Cartesian coordinates for any kernel function f(r). This study is based on the work of Applequist42 and Burgos and Bonadeo43 on Cartesian tensor applied in the solution to Poisson’s equation, i.e., the Coulomb potential function. This algorithm is superior to the canonical tensor-based one in terms of computational efficiency and has a compact vector-based expression that makes the implementation in computer programs very easy. I compare its computational complexity to that of several recursive algorithms developed recently and show that the current method is, in general, more efficient. A C+ + 11 template library based on this algorithm has been developed and released.
The rest of this paper is organized as follows: Section II presents the basics of multipole expansion and multipole interaction with a generalization to a wide range of kernel functions. Sections III and IV present a derivation to an efficient algorithm to calculate multipole interactions via any kernel function of the form f(r) and show that its mathematical expression is invariant with the kernel function. Sections V and VI provide insight into how the algorithm works and its novelty, respectively. Section VII shows how one can apply the algorithm to Ewald summation. Section VIII provides complexity analysis of this algorithm in comparison to various recursive algorithms developed recently. In Section IX, I will describe how to implement the algorithm in computer programs.
II. THE BASIC PROBLEM
First, I refer the reader to the Appendix for an explanation of the notation I use throughout this paper. The Poisson’s equation for the electrostatic potential ϕ(r) of a given source ρ(r) is
| (2.1) |
where Δ ≡ ∇2 is the Laplace operator. For convenience, I denote the pair of ϕ(r) and ρ(r) as
| (2.2) |
The Green’s function for Equation (2.1) is
| (2.3) |
Now consider a cluster of N sources around a point (called the electric multipole or EMP site): rj ∈ ℝ3,
| (2.4) |
where δ(r) is the Dirac delta function, γj(r) represents the “shape” of the source function, and ∗ denotes convolution. Since convolution commutes with Δ, we have for ,
| (2.5) |
Define djk ≡ rk − rj ∀k = 1, 2, …, N so that at a point r outside the cluster, i.e., |r − rj| > max{|djk|}, the Taylor series of Equation (2.5) about (dj1, …, djN) = (0, …, 0) converges,
| (2.6) |
where ⋅ n ⋅ denotes n-fold contraction (see the Appendix for a description of the notation used) and are the Cartesian multipoles at site j,
| (2.7) |
with being the n-fold tensor product of djk:
| (2.8) |
and is the order-n gradient (with respect to the coordinates of site j) operator
| (2.9) |
Similarly, the electrostatic energy between EMP site j and another site i is
| (2.10) |
We define a rank-n point EMP operator mj and the corresponding shaped operator of site j as
| (2.11) |
| (2.12) |
so that as in Equation (2.6) and
| (2.13) |
as in Equation (2.10), which means that mj () acts as a point (shaped) EMP density distribution of site j and the electrostatic energies, forces, and torques between a pair EMP sites can be obtained from that between a pair of charge density distributions with the charge density replaced with the EMP operator defined in Equation (2.11). For example, the electrostatic energy between 2 point-EMP sites i and j is (by inserting Equation (2.6) into Equation (2.10))
| (2.14) |
where
| (2.15) |
and the force on site i is
| (2.16) |
and the torque on site i is (see Section S1 in the supplementary material for the derivation57)
| (2.17) |
where is the Levi-Civita symbol. In general, we need to evaluate the bi-contraction of the form
| (2.18) |
where the n-fold gradient of f(r) exists.
For most applications of EMP moments, such as Ewald sum or the Fast Multipole Method44,45 (FMM), f is a function of inter-particle distance only. If we restrict f to f ≡ f(r2), we can rewrite Equation (2.18) as
| (2.19) |
In Sec. III, I will develop an expansion of in terms of a function of so that expression (2.18) can be evaluated in the same expansion in terms of contractions of the form A(n) ⋅ k ⋅ r(k) and B(m) ⋅ k ⋅ r(k) without the need to populate the central tensor . However, I want to remind the reader here that the definitions of Equations (2.11) and (2.12) are independent of the linear operator Δ and its Green’s function and are valid as long as the Taylor series in Equation (2.6) converges. That said, I do assume the linear operator is translation invariant, which is true for simulations of particle systems. This means we can apply it to other linear equations (with appropriate shaping function γ(r) to guarantee the convergence of Equation (2.15)) such as Yukawa’s equation,
| (2.20) |
or the Helmholtz equation,
| (2.21) |
III. THE n-FOLD GRADIENT OF f(r2)
The direct approach to evaluating expression (2.19) is to first populate the tensor as a matrix and then perform a vector-matrix-vector multiplication. However, the complexity of this approach could be very high depending on the complexity of calculating . For example, the complexity of populating in is on the order of n6 based on the algorithm published previously.42
On the other hand, if we can decompose into , where t ≡ t(r) is a simple function of r, the order-2n bi-contraction can be split into two order-n contractions and the complexity is reduced to n3. Although such a decomposition does not exist, in general, a similar “divide-and-conquer” approach has been proposed previously for using a diagrammatic method to evaluate EMP interactions.43 Here, we take one step forward and generalize the approach to any function f ≡ f(r2) where f is a function of the squared norm of r.
First, we need the help of the following definition:
Definition 3.1.
Define r(n)δ(s) as a tensor of rank n + 2s,
(3.1) where δij is the Kronecker delta and the sum is over all the permutations of the set of index {α1…αn+2s} that give distinct terms and there are a total of terms. The permutations in the sum guarantee that r(n)δ(s) is totally symmetric.
The following lemmas are direct applications of Definition 3.1:
Lemma 3.1.
Given a tensor r(n)δ(1) of rank n + 2, as in Definition 3.1 and one of its index i ∈ [0, n + 2], we have the following equality:
(3.2) where δir(n) is r(r)δ(1) with a specific index i fixed on δ.
Proof.
This can be obtained trivially by realizing that the sum in Definition 3.1 can be split into a sum over index i attached to r plus another sum where i is attached to δ.□
Lemma 3.2.
(3.3)
Proof.
Since r(n) = rα1rα2…rαn, the chain rules give us
(3.4)
□
With the help of Definition 3.1 and Lemmas 3.1 and 3.2, we arrive at the following theorem:
Theorem 3.1.
Given a real-valued function f on , whose n-fold gradient exists, its n-fold gradient can be expanded into
(3.5) where is the biggest integer no larger than n/2 and
(3.6)
Proof.
We will proceed by induction. Equation (3.5) is obviously true for n = 0 and we have
where the 2nd equality follows directly from Lemma 3.2. Note that for k = 0 in the sum, the 1st term on the right-hand side is just 2n+1Fn+1r(n+1); for , the 2nd term on the right-hand side is just 2n−kFn−kδ(k+1) if n is odd and it vanishes if n is even; for , the kth and the k + 1th term can be merged as
which follows from Lemma 3.1. Thus, we have for
and for
In general, we have
which is Equation (3.5) with n replaced by n + 1.□
Because is totally symmetric, it is more convenient to rewrite Equation (3.5) in its compressed tensor form. Notice that the non-vanishing terms in r(n−2k)δ(k) are those of the form , where , and 2ki ≤ ni. The redundancy of this term in the sum is the number of ways k1 distinct pairs of index αiαj can be selected from those in α1…αn which are assigned the value of 1, which is , times that number for k2 and k3. Thus,
| (3.7) |
where the sum is over all the combination of k1, k2, k3 whose sum is k. Insert this into Equation (3.5) and we get
| (3.8) |
One can verify that when , Equations (3.5) and (3.8) reduce to the solid spherical harmonics of degree n in Cartesian coordinates, which is central to EMP interactions and has been given before.42,43 Also, if , which is the Boys function of order 0, Equations (3.5) and (3.8) reduce to the Hermite Coulomb integral, which plays an important role in evaluation of quantum molecular integrals in Gaussian type orbitals theory.46,47 Notice that Definition 3.1 and Theorem 3.1 are independent of the dimension N of r, which means they can be applied to cases N ≥ 3. For example, if f(r2) = 1/(2π)N/2exp(−r2/2), Equation (3.5) reduces to the N-dimensional Hermite polynomials.48
The factorization of the derivatives of f in Theorem 3.1 provides a way to evaluate expression (2.18) without the need to populate the central tensor since r(n−2k)δ(k) is a simple function of r only. This is given in Section IV.
IV. EVALUATION OF THE BI-CONTRACTION FORM
Given Equation (3.5), evaluating expression (2.18) is equivalent to evaluating
| (4.1) |
for , multiplying by the coefficients and summing over all k. The terms in expression (4.1) can be split into the following categories:
-
1.
terms arising from r contracted with A(n) or B(m);
-
2.
terms arising from δij contracted with both A(n) and B(m) where i comes from A(n) and j comes from B(m);
-
3.
terms arising from δij contracted with A(n), i.e., taking A(n)’s trace;
-
4.
terms arising from δij contracted with B(m), i.e., taking B(m)’s trace.
If we let lc, ln, and lm be the number of terms in categories 2–4, we arrive at the following expression:
| (4.2) |
where Om ≡ m − 2lm − lc, On ≡ n − 2ln − lc, and the sum is over all lc, ln, lm ∈ ℕ0 so that lc + ln + lm = k. The coefficient is the degeneracy of each term in the sum. We can insert Equation (4.2) into (3.5) and (2.19) to get
| (4.3) |
Similarly, we can obtain the expansion for the bi-contraction for forces as in Equation (2.16),
| (4.4) |
and torques as in Equation (2.17),
| (4.5) |
where the inner sum is over all lc, ln, lm, qr, qn, qm ∈ ℕ0 so that lc + ln + lm = k and qr + qn + qm = 1 and , . The coefficient is again the degeneracy. One can verify that Equations (4.3) and (4.4) in the case of and are equivalent to those given by Burgos and Bonadeo,43 and Smith,41 respectively, although the expression given here is not limited to those cases.
There are a few things I want to point out here before changing the topic. First, note that when A(n) or B(m) is traceless, the terms corresponding to ln≠0 or lm≠0 vanish and Equations (4.3)–(4.5) are then much simpler. When both A(n) and B(m) are non-traceless, one can easily prove that if and only if is totally symmetric and traceless would the following equations be true:
| (4.6) |
and
| (4.7) |
where !! indicates the double factorial and 𝒯n is the so called “detracer” operator defined by Applequist,42 which acts on a totally symmetric tensor A(n) to give a totally symmetric and traceless tensor 𝒯nA(n). In practice, the traceless EMP moments are often used in lieu of as defined in Equation (2.7). However, we want to remind the reader here that this , in general, is not traceless and Equation (4.7) is not necessarily true. It can be proved that is totally traceless if and only if
| (4.8) |
The proof is given in Section S257 but the reader can easily verify that the Coulomb kernel satisfies this condition while does not, the latter of which is the damped Coulomb potential as used in the direct-space sum in the Ewald summation method. Second, some spherical coordinate-based algorithms for calculating EMP interactions also take advantage of the traceless tensor when Equation (4.8) is satisfied.36 With that, one would argue that a spherical coordinate-based algorithm is more efficient than a Cartesian coordinate one. However, I want to point out here that this very same trick in the spherical coordinate-based algorithm simply manifests itself in the current Cartesian coordinate-based approach by reducing the number of terms in Equations (4.3)–(4.5). Since Cartesian coordinate-based algorithms are generally more straightforward to implement, most molecular simulation packages use Cartesian rather than spherical coordinates. Therefore, coordinate transformation at every time step is required to use such a spherical coordinate-based algorithm in most simulation packages. Note that this transformation involves evaluating a large number of trigonometric functions, which, in general, is at least an order of magnitude slower than simple multiplication or addition and incurs a big overhead. Thus, the current algorithm is more efficient than the spherical coordinate-based one in terms of implementation in modern simulation software.
V. INTERPRETATION OF THE ALGORITHM
The tensor algebra shown in Section IV might seem difficult to digest for non-specialist so I also supply an intuitive explanation. Let us take Equation (4.3), for example. After a close examination, it is easy to show that the right-hand side of Equation (4.3) is a series of tensor contractions of the EMP moments with r(m+n) (Om and On), with themselves (lm and ln) and each other (lc). As dot products can be interpreted as projections between vectors, the tensor contraction here can be read as the projection of the EMP moments onto r(m+n), themselves, and each other. These projections arise from the contraction of the EMP moments with the r(m+n)δ(k) tensor, which in turn arises from the application of gradient operator on r(m+n) by the chain rule of derivative (see the derivation from Lemma 3.2 and Theorem 3.1). In fact, the multipole expansion (right-hand side of Equation (2.6)) is equivalent to an expansion on the basis of spherical harmonics in Cartesian coordinates when the kernel function is Coulomb kernel , with each term in the expansion being a projection of the EMP moment on the spherical harmonic of the same degree. This has been discussed previously by Applequist.42 Here, the author generalized such expansion to any kernel function of the form f(r).
VI. NOVELTY OF THE ALGORITHM
There are three major novelties of the algorithm developed here. First of all, it shows that multipole interactions via all kernel functions of the form f(r), i.e., any function that depends on inter-particle distance, have essentially the same mathematical expression except for a few coefficients. This means the same set of working equations can be used for a wide variety of kernel potentials, e.g., direct Coulomb potential, reaction field potential, or the damped Coulomb potential in the Ewald summation, making it fit easily into modern molecular dynamics simulation packages for a broad range of applications.
Second, the number of floating-point operations required to perform the calculation is minimal as compared to the recursive algorithms developed previously;15,37 the algorithm developed here is even faster than the best possible recursion scheme. The comparison will be given in Section VIII along with the explanation for why the algorithm is fast. I want to point out here that this reduction in floating-point operation has nothing to do with the implementation of the algorithm but it stems from the fact that the algorithm only takes into account necessary operations.
Last but not the least, the mathematical expression of this algorithm is highly compact and modularized, making it very easy to implement. One can easily cast these formulas into a set of matrix-vector multiplications, which can be performed using various high performance linear algebra packages. Also, a close examination of working equations (4.3)–(4.5) reveals that the derivatives of the kernel functions are just coefficients (Fi) of the tensor contraction and one only needs up to the (m + n)th scalar derivatives. These derivatives can be implemented as modules independent of the contraction, making the codes highly reusable for a wide variety of kernel functions. The details of the implementation will be given in Section IX.
VII. THE EWALD SUMMATION
The idea of Ewald summation for point charges has been discussed extensively so I refer the reader to the excellent reviews for details.33,34 Here, I will apply the same idea to a system of general EMPs. I again refer the reader to the Appendix for the notation I use in what follows. Consider a system of N point EMP mj at position rj, j = 1, 2, …, N in a unit cell with mj defined as in Equation (2.11). The unit cell is replicated to form a lattice . The electrostatic energy of the unit cell is
| (7.1) |
where ϕj,p ≡ mj,p(r)∗γj(r)∗G(r) with and the ′ in the 3rd sum means exclusion of i = j if p = 0. This sum is conditionally convergent for the interacting EMPs where the sum of the ranks is less than 2, i.e., for charge-charge, charge-dipole, dipole-dipole, and charge-quadrupole interaction.49 However, in practice, the appropriate cutoff for rank >2 might be needed to be very large in order to converge the sum. In fact, it has been shown that short cutoffs of dispersion interaction of the form r−6 could cannot correctly reproduce the fluid-fluid interfacial properties.29–32 It is thus reasonable to consider EMP interaction of rank 5 as long-range interaction. The idea of Ewald summation is to decompose ϕj,p into two functions, one of which decays rapidly in real space while the other decays rapidly in Fourier space, so that the sum can be evaluated with relatively small cutoffs in real and Fourier space. Because of the linearity of the Poisson’s equation, decomposition of the potential is equivalent to decomposition of the source density. The canonical choice of such decomposition is to let γj(r) = δ(r) = δ(r) − gα(r) + gα(r) as in Equation (2.6), where gα(r) ≡ (α/π)3/2e−α|r|2, so that ϕj,p = mj,p∗G∗(δ − gα) + mj,p∗G∗gα. Let and so that Equation (7.1) can be rewritten as U = Ud + Uk, where
| (7.2) |
| (7.3) |
The second sum Uk is done in Fourier space (see the Appendix for a description of the notation used),
| (7.4) |
where , , and are the Fourier transform of gα, G, and , respectively. Uself is defined as
| (7.5) |
where is the error function. Uself is the interaction energy between mj∗G∗gα and mj at rj, which is a non-physical term included in the Fourier series of Ud and should be subtracted from the sum. The derivation will be given in Section S3 of the supplementary material.57 Because has a very simple form in Fourier space (see Section S357), the evaluation of Uk does not involve complicated tensor-tensor contractions and can be done efficiently using the Fast Fourier Transform (FFT) technique.15 On the other hand, Ud can be summed rapidly in real space with a relatively small cut-off distance rcut due to rapid decay of ,
| (7.6) |
where erfc ≡ 1 − erf is the complementary error function and rij ≡ |ri − rj|. Thus, aside from the need to maintain physical fidelity as discussed earlier in this section, efficient calculation is another argument for using Ewald summation to handle long-range EMP interactions.
Here, I will apply the results obtained from Sections III and IV to the evaluation of Uself and Ud. First, from Theorem 3.1, it is clear that if r = 0, as in Equation (7.5) with i = j, all the terms involving r(n−2k) with n − 2k≠0 vanish, i.e., for i = j and |ri − rj| = 0,
| (7.7) |
so that in case of m + n = 2g, g ∈ ℕ0, Uself can be evaluated using Equation (4.3) with the constraint k = g, On = 0, and Om = 0.
On the other hand, Ud can be evaluated using Equation (4.3) with , where is the complementary Boys function of order k. A very useful downward recursion can be used to evaluate all Bn−k and Fn−k if we know Bn: Bk(x) = (2xBk+1(x) − exp(−x))/(2n + 1).
VIII. COMPLEXITY ANALYSIS OF THE ALGORITHM
A. Comparison to recently developed recursion schemes
Previously, the McMurchie-Davidson formalism46 has been exploited to populate the components of and make the evaluation of Ud efficient.15 More recently, similar recursion schemes for the kernel functions and were proposed by Boateng and Todorov.37 Since the algorithm I develop here (Equation (4.3)) does not require population of the central tensor in Equation (7.6), I would like to compare the efficiency of the current approach with the aforementioned recursion ones. For simplicity, the discussion here is restricted to the interaction energy between two EMP moments of the same rank p, but it is trivial to generalize the conclusions here to forces or torques as well as to EMP moments of different ranks.
In general, there are two major steps in the aforementioned recursion schemes:
-
1.
Construct a matrix representing the central tensor of where f(r2) is the kernel function.
-
2.
Evaluate the vector-matrix-vector bilinear form, where the two interacting EMP moments are represented by the two vectors.
Without going into the details, I simply give the number of multiplication and addition as a function of p for the algorithms under comparison here (the derivation is given in Section S4 of the supplementary material57). Note that I do not explicitly give the “big O” notation for complexity here because it only tells how the complexity scales as a function of the inputs and does not necessarily indicate the efficiency of the algorithm in solving a given problem. (However, one can easily fit a polynomial to the result I give later to obtain a “big O” estimate.) For example, the FMM, which scales as O(N), is significantly slower than the Particle Mesh Ewald (PME), which scales as O(NlogN), for most reasonable system sizes.10,50 In molecular simulations with explicit representations of EMP, one usually cannot afford going higher than p = 4 even with state-of-the-art computation facilities. p ≤ 2 is more commonly seen.14–20,23,24 In fact, in the later comparison with the recursive algorithms developed previously (see below), one can verify that the algorithm here is faster than the recursive ones until p ≥ 100. Therefore, the “big O” notation is irrelevant in the comparison among the methods under discussion.
The McMurchie-Davidson formalism costs
| (8.1) |
multiplications and
| (8.2) |
additions. The recursion scheme proposed by Boateng and Todorov for costs
| (8.3) |
multiplications and
| (8.4) |
additions, while that for costs
| (8.5) |
multiplications and
| (8.6) |
additions.
On the other hand, Equation (4.3) costs
| (8.7) |
multiplications and
| (8.8) |
additions, where
| (8.9) |
The ratios between the complexity of the 3 recursion schemes and Equation (4.3) are plotted as function of p in Figure 1. While the recursion schemes are intuitively easy to interpret, they are significantly slower as compared to the algorithm here. For example, to evaluate the energy between two hexadecapoles (p = 4) with the kernel , the algorithm here is about 9 times faster than that prosed by Boateng and Todorov (Figures 1(c) and 1(d)); to evaluate the direct space energy between two hexadecapoles in the Ewald summation with the kernel function , the algorithm here is about 4 times faster than the McMurchie-Davidson formalism (Figures 1(a) and 1(b)) and about 16 times faster than the algorithm proposed by Boateng and Todorov (Figures 1(e) and 1(f)).
FIG. 1.
The ratio of computational complexity (Y-axis) between the two recursion schemes and Equation (4.3) ((a) and (b): McMurchie-Davidson;15 (c) and (d): recursion scheme for computing gradients of as in Ref. 37; (e) and (f): recursion scheme for computing gradients of as in Ref. 37; (g) and (h): ideal recursion scheme where constructing the central tensor requires 1 operation per element) in terms of multiplication ((a), (c), (e), and (g)) or addition ((b), (d), (f), and (h)) as a function of EMP ranks (X-axis).
What makes the recursion algorithms slow is the construction of the central matrix in step 1. For small p, the reader can easily verify that step 1 alone is already much more expensive than the complete computation of the energy via Equation (4.3). This can also be seen from the fact that for the same kernel , the McMurchie-Davidson formalism differs only in step 1 from that proposed by Boateng and Todorov and former is faster than the latter (compare Figures 1(a) and 1(b) with 1(e) and 1(f)) because of a much simpler recursion scheme15,37 for constructing the central tensor. Also, from an optimization prospective, it is much easier to parallelize the computation in Equation (4.3) (see Section IX) than the recursive ones; the construction of the central tensor, which is the bottleneck step, is almost impossible to parallelize since its elements have to be computed in a specific order.
The need to construct the central tensor also requires a large amount of memory. In typical molecular simulations, the central tensor in Equation (7.6) has to be stored in memory for each pair of atoms, and this costs , where n is the total number of atoms and C depends on the distance cut-off scheme in the simulation. Care has to be taken in order to optimize for memory access, which adds to the difficulty of implementation.15 On the other hand, Equation (4.3) only requires storage of an array of elements regardless of what cut-off scheme is used. This means Equation (4.3) is not only faster and more memory efficient but also easier to implement and optimize than the recursive algorithms for computing EMP interactions. Figure 2 shows the ratio between the memory consumption of the recursion schemes and the current algorithm. It is obvious that the recursion schemes consume about 3 orders of magnitude more memory than the current algorithm.
FIG. 2.
The ratio of memory consumption between the recursion schemes and Equation (4.3) as a function of EMP ranks. Note that in the recursion schemes, one needs to store a matrix for each pair of atoms. The number of pairs for each atom is assumed to be 140, which amounts to the typical size of the pair list with a distance cutoff of 10 Å in a simulation system that has the same density as water.
B. Comparison to the best possible recursion scheme
As the current algorithm is faster than the aforementioned recursive ones, one interesting question to ask is whether we can improve the recursion to speed up the calculation. Let us assume that in an ideal recursion scheme, one would need only one multiplication and one addition to construct each element of the central tensor/matrix. To build the central tensor/matrix up to rank p, one would need to calculate at least elements. This means we need at least multiplications and additions. To perform the bilinear form, we need additional multiplications and additions. This totals to
| (8.10) |
multiplications and
| (8.11) |
additions. Figures 1(g) and 1(h) show the complexity ratio between this ideal recursion scheme and the algorithm I develop here. It is obvious that the algorithm here is even more competitive than such an ideal (impossibly simple) recursion scheme. Also note that when the central tensor is traceless, the algorithm developed here can be even faster (see discussion in Section IV) while the recursion scheme cannot use this trick to speed up the calculation.
C. Numerical validation
To validate the comparison in Section VIII A, I implemented the algorithm developed here and the recursive one by Boateng and Todorov37 for the Coulomb kernel () and did a performance test on both. The test was to evaluate the electrostatic potential of a system containing 5000 hexadecapoles randomly and evenly distributed across a 20 × 20 × 20 box. The components of the hexadecapole were chosen randomly between 0 and 0.05. Units are chosen such that the Coulomb’s constant is 1. The potential energies between all unique pairs of hexadecapoles are evaluated, totaling the number of pairwise energy evaluations to . The same test is repeated for 100 times and at each time, the ratio between the execution time of the two algorithms is plotted in Figure 3. The recursive algorithm costs about 6.5 times as much as the algorithm developed here when the two algorithms give the same electrostatic potential energy (with 15-digit accuracy in double precision). Note that this ratio might vary a bit with different implementations but it agrees qualitatively with the result (9 times) from complexity analysis in Section VIII A. Again, this shows that the algorithm developed here is faster than the recursive one.
FIG. 3.
The ratio of execution time between the recursive algorithm by Boateng and Todorov37 and Equation (4.3) with the Coulomb kernel at the hexadecapole level (p = 4) for each of the 100 tests.
D. Reasons for the algorithm’s efficiency
The efficiency of the current algorithm stems from the gist of the multipole expansion, which is basically a series of projections in multilinear space (see Section V), and decomposing the bilinear form into the minimal set of these projection operations. Perhaps more importantly, each of these projection operations has very simple operands, i.e., the two interacting EMP moments and the distance-dependent r(m+n), so that no operation is wasted on computing intermediate variables. I will simply conclude this section with the textbook example of dipole-dipole interaction. It is easy to recover the following well-known dipole-dipole interaction energy equation by plugging the Coulomb potential () into Equations (4.3) and (2.10):
| (8.12) |
where is the unit vector of rij ≡ ri − rj. This only requires 3 dot products and a few scalar multiplications. On the other hand, if one was to use the recursive algorithm, e.g., the one proposed by Boateng and Todorov,37 the working equation would be
| (8.13) |
where one would need to first fill out the upper triangle of the 3 × 3 symmetric matrix M via recursion, with the costs of each element being more than 20 floating-point operations, and then carry out the bilinear form with the equivalent of 4 dot products. Arguably, one could manually optimize out some multiplication-by-zero operations from the published equations;37 however, even if we assume an ideal case where it needs only 1 multiplication and 1 addition, such a method spends a significant number of operations on computing unnecessary intermediate variables, making it suboptimal compared to the algorithm developed here.
IX. IMPLEMENTATION
Equations (4.3), (2.16), and (2.17) can be easily implemented as a series of matrix-vector products. Taking Equation (4.3) as an example, we can cast it into a triple sum over lc, lm, and ln as follows:
| (9.1) |
where
| (9.2) |
For a given triplet of m, n, and lc, can be re-interpreted as a matrix C′{m,n,lc},
| (9.3) |
where the superscript {m, n, lc} is just a reminder of the fact that C′ is a function of m, n, and lc. Similarly, A(m:lm) ⋅ Om ⋅ r(Om) and B(n:ln) ⋅ On ⋅ r(On) can be treated as the elements of the respective lm + 1 and ln + 1 array of lc-rank tensors,
| (9.4) |
| (9.5) |
where the superscripts {m, lc} and {n, lc} again indicate that A and B are functions of m or n and lc. Equation (9.1) can then be cast into a vector-matrix-vector bilinear form
| (9.6) |
if we define the vector-vector dot product between the two tensor arrays A and C′B as element-wise lc-fold tensor contraction.
There are a few advantages to using the bilinear form in Equation (9.6) to calculate the EMP energy in Equation (2.14). First of all, as discussed in Section VIII, the number of operations is much smaller than directly evaluating the bi-contraction via the canonical matrix formalism even in the case where the central tensor can be populated recursively. Second, in applications where the EMP sites are represented by EMP polytensor,51,52 e.g., as in a molecular dynamics force field, one needs to evaluate Equation (9.6) for each A(n) against a series of B(m) at the same displacement r where m varies. One can just populate the array defined in Equation (9.4) for the largest possible lc and use it for any m. This is in contrast with the canonical matrix formalism where the central tensor has to be populated for each individual pair of m and n, which costs extra operations. Last but not the least, unlike the formalism proposed by Smith,41 where a large number of scalar arithmetic terms have to be written out manually, the simplicity of Equation (9.6) makes it possible to use compact data structures such as arrays in implementation with the ease of debugging and code maintenance. For example, for a list of EMP sites interacting with A(n), one can build up a matrix D whose rows are the B arrays for each of the interacting sites so that the total energy can be computed using Equation (9.6) with the matrix-vector product C′B simply replaced by the matrix-matrix product of C′D. This also makes it very easy to use high performance linear algebra libraries such as BLAS53,54 or Blaze55,56 to carry out the computation.
For force and torque as in Equations (4.4) and (4.5), one can also find an expression similar to Equation (9.6). Instead of elaborating the details, the author has implemented a C++11 template library for basic operations of symmetric Cartesian tensors with the focus on its application in computation of EMP energy, force, and torque. It is available for download at https://github.com/dejunlin/emp/releases. The implementation achieves consistency between the numerical and analytical forces and torques with 10-digit accuracy (see Section S5 and Figure S1 for details57).
X. CONCLUSIONS
In conclusion, I established the algorithm to calculate multipole-multipole interaction of a generalized potential, which is a function of inter-site distance only. The method presented here is much faster than the canonical tensor-based formalism and has a compact expression that is very easy to implement in computer programs. A comparison of the current method to various recursive algorithms developed recently showed that this method is generally faster. This formalism is applicable to various interaction potentials where the explicit representation of multipole moments is needed and its Cartesian basis makes it a natural fit in modern molecular simulation scheme.
Acknowledgments
Thanks goes to Dr. Alan Grossfield at the University of Rochester for helpful comments on the paper. This work was supported by Grant No. GM095496 from the NIH and the Elon Huntington Hooker Graduate Fellowship from the University of Rochester.
APPENDIX: MATHEMATICAL NOTATION
1. Tensors
Here, I adopt the tensor notation used elsewhere.42 We will denote a Cartesian tensor of rank n by the boldface symbol A(n), or by , where the subscripts αi (i = 1, 2, …, n) denote Cartesian axes 1, 2, 3 (corresponding to x, y, z, respectively). A(n) is called a totally symmetric tensor if is invariant under any permutation of the sequence of subscripts. A totally symmetric tensor can be denoted by its compressed form A(n)(n1, n2, n3), where ni is the number of times the i occurs in the sequence of subscripts α1…αn and n1 + n2 + n3 = n. For simplicity, I will abbreviate a rank-1 tensor v(1), which is a vector, as v unless specified otherwise. In the context that v is defined as a vector, I will denote its kth component by the corresponding non-bold character with subscript k, i.e., vk and the norm of v by the same character with no subscript, i.e., v ≡ |v| if v is a vector.
2. Tensor contractions and traces
We denote an n-fold contraction by ⋅ n ⋅ , e.g.,
| (A1) |
where a summation is assumed over a index that appears twice in a product. Contraction can also be performed between tensors of different ranks, e.g.,
| (A2) |
or
| (A3) |
We will abbreviate ⋅ 1 ⋅ as ⋅ and thus a dot product between 2 vectors or a matrix-vector multiplication is abbreviated as
| (A4) |
or
| (A5) |
respectively.
The m-fold trace of A(n) is defined as
| (A6) |
3. Fourier transform
The Fourier transform of a function f(r) is denoted as
| (A7) |
where dr ≡ dr1dr2dr3. The corresponding inverse transform is denoted as
| (A8) |
so that .
4. Lattice and Dirac comb
A lattice in ℝ3 is defined by 3 linearly independent bases u1, u2, u3 so that any lattice point p is expressed by the integer linear combination of the bases,
| (A9) |
We will denote such a lattice by . Any can be transformed from ℤ3 via an invertible linear transformation A, i.e.,
| (A10) |
A can be expressed as a rank-2 Cartesian tensor A(2) so that
| (A11) |
The dual lattice of is given by
| (A12) |
where is the transpose of the inverse of A, so that
| (A13) |
We denote the Dirac comb function associated with as
| (A14) |
where the sum is over all points in ℤ3. A function f(r) defined in 𝕍 (𝕍 ⊂ ℝ3) can be periodized by convolving it with ,
| (A15) |
where ∗ denotes convolution.
Define
| (A16) |
as a vector in . The Fourier transform of is given by
| (A17) |
| (A18) |
where |detA(2)| is the determinant of A(2). Taking the inverse transform of both sides of Equation (A18) will give
| (A19) |
5. Poisson’s equation on a lattice
The Poisson’s equation for the electrostatic potential of a given source is
| (A20) |
where both and are periodic on lattice ℒ ≡ A(ℤ3) and Δ ≡ ∇2 is the Laplace operator. We will denote the pair of solution and the source function in Equation (A20) as
| (A21) |
By using Equation (A19), Equation (A20) has the solution as the Fourier series,
| (A22) |
| (A23) |
where and are the Fourier transform of ϕ(r) and ρ(r), which are in turn one period of and , respectively, and k and are defined as in Equations (A16) and (A12), respectively.
REFERENCES
- 1.Buckingham A. D. and Fowler P. W., Can. J. Chem. 63, 2018–2025 (1985). 10.1139/v85-334 [DOI] [Google Scholar]
- 2.Hurst G. J. B., Fowler P. W., Stone A. J., and Buckingham A. D., Int. J. Quantum Chem. 29, 1223–1239 (1986). 10.1002/qua.560290520 [DOI] [Google Scholar]
- 3.Williams D. E., J. Comput. Chem. 9, 745–763 (1988). 10.1002/jcc.540090705 [DOI] [Google Scholar]
- 4.Spackman M. A., J. Chem. Phys. 85, 6587 (1986). 10.1063/1.451441 [DOI] [Google Scholar]
- 5.Colonna F., Evleth E., and Ángyán J. G., J. Comput. Chem. 13, 1234–1245 (1992). 10.1002/jcc.540131007 [DOI] [Google Scholar]
- 6.Sokalski W. A., Keller D. A., Ornstein R. L., and Rein R., J. Comput. Chem. 14, 970–976 (1993). 10.1002/jcc.540140812 [DOI] [PubMed] [Google Scholar]
- 7.Dykstra C. E., Chem. Rev. 93, 2339–2353 (1993). 10.1021/cr00023a001 [DOI] [Google Scholar]
- 8.Price S. L., Faerman C. H., and Murray C. W., J. Comput. Chem. 12, 1187–1197 (1991). 10.1002/jcc.540121005 [DOI] [Google Scholar]
- 9.Kong Y., “Multipole electrostatic methods for protein modeling with reaction field treatment,” Ph.D. thesis, Graduate School of Arts and Sciences of Washington University, 1997. [Google Scholar]
- 10.Cisneros G. A., Karttunen M., Ren P., and Sagui C., Chem. Rev. 114, 779–814 (2014). 10.1021/cr300461d [DOI] [PMC free article] [PubMed] [Google Scholar]
- 11.Marshall G., J. Comput.-Aided Mol. Des. 27, 107–114 (2013). 10.1007/s10822-013-9634-x [DOI] [PMC free article] [PubMed] [Google Scholar]
- 12.Vorobyov I., Li L., and Allen T. W., J. Phys. Chem. B 112, 9588–9602 (2008). 10.1021/jp711492h [DOI] [PubMed] [Google Scholar]
- 13.Bennett W. D. and Tieleman D. P., J. Chem. Theory Comput. 7, 2981–2988 (2011). 10.1021/ct200291v [DOI] [PubMed] [Google Scholar]
- 14.Toukmaji A., Sagui C., Board J., and Darden T., J. Chem. Phys. 113, 10913–10927 (2000). 10.1063/1.1324708 [DOI] [Google Scholar]
- 15.Sagui C., Pedersen L. G., and Darden T. A., J. Chem. Phys. 120, 73–87 (2004). 10.1063/1.1630791 [DOI] [PubMed] [Google Scholar]
- 16.Wang W. and Skeel R. D., J. Chem. Phys. 123, 164107 (2005). 10.1063/1.2056544 [DOI] [PubMed] [Google Scholar]
- 17.Cerda J. J., Ballenegger V., Lenz O., and Holm C., J. Chem. Phys. 129, 234104 (2008). 10.1063/1.3000389 [DOI] [PubMed] [Google Scholar]
- 18.Ponder J. W., Wu C., Ren P., Pande V. S., Chodera J. D., Schnieders M. J., Haque I., Mobley D. L., Lambrecht D. S., DiStasio R. A., Head-Gordon M., Clark G. N. I., Johnson M. E., and Head-Gordon T., J. Phys. Chem. B 114, 2549–2564 (2010). 10.1021/jp910674d [DOI] [PMC free article] [PubMed] [Google Scholar]
- 19.Shi Y., Xia Z., Zhang J., Best R., Wu C., Ponder J. W., and Ren P., J. Chem. Theory Comput. 9, 4046–4063 (2013). 10.1021/ct4003702 [DOI] [PMC free article] [PubMed] [Google Scholar]
- 20.Laury M. L., Wang L.-P., Pande V. S., Head-Gordon T., and Ponder J. W., J. Phys. Chem. B 119, 9423–9437 (2015). 10.1021/jp510896n [DOI] [PMC free article] [PubMed] [Google Scholar]
- 21.Elking D., Darden T., and Woods R. J., J. Comput. Chem. 28, 1261–1274 (2007). 10.1002/jcc.20574 [DOI] [PMC free article] [PubMed] [Google Scholar]
- 22.Elking D. M., Cisneros G. A., Piquemal J.-P., Darden T. A., and Pedersen L. G., J. Chem. Theory Comput. 6, 190–202 (2010). 10.1021/ct900348b [DOI] [PMC free article] [PubMed] [Google Scholar]
- 23.Wu J., Zhen X., Shen H., Li G., and Ren P., J. Chem. Phys. 135, 155104 (2011). 10.1063/1.3651626 [DOI] [PMC free article] [PubMed] [Google Scholar]
- 24.Orsi M. and Essex J. W., PLoS One 6, e28637 (2011). 10.1371/journal.pone.0028637 [DOI] [PMC free article] [PubMed] [Google Scholar]
- 25.Schnieders M. J., Fenn T. D., Pande V. S., and Brunger A. T., Acta Crystallogr., Sect. D: Biol. Crystallogr. 65, 952–965 (2009). 10.1107/S0907444909022707 [DOI] [PMC free article] [PubMed] [Google Scholar]
- 26.Fenn T. D., Schnieders M. J., Brunger A. T., and Pande V. S., Biophys. J. 98, 2984–2992 (2010). 10.1016/j.bpj.2010.02.057 [DOI] [PMC free article] [PubMed] [Google Scholar]
- 27.Schnieders M. J., Fenn T. D., and Pande V. S., J. Chem. Theory Comput. 7, 1141–1156 (2011). 10.1021/ct100506d [DOI] [PubMed] [Google Scholar]
- 28.Fenn T. D. and Schnieders M. J., Acta Crystallogr., Sect. D: Biol. Crystallogr. 67, 957–965 (2011). 10.1107/S0907444911039060 [DOI] [PubMed] [Google Scholar]
- 29.in’t Veld P. J., Ismail A. E., and Grest G. S., J. Chem. Phys. 127, 144711 (2007). 10.1063/1.2770730 [DOI] [PubMed] [Google Scholar]
- 30.Mazars M., J. Phys. A: Math. Theor. 43, 425002 (2010). 10.1088/1751-8113/43/42/425002 [DOI] [Google Scholar]
- 31.Isele-Holder R. E., Mitchell W., and Ismail A. E., J. Chem. Phys. 137, 174107 (2012). 10.1063/1.4764089 [DOI] [PubMed] [Google Scholar]
- 32.Míguez J. M., Piñeiro M. M., and Blas F. J., J. Chem. Phys. 138, 034707 (2013). 10.1063/1.4775739 [DOI] [PubMed] [Google Scholar]
- 33.Deserno M. and Holm C., J. Chem. Phys. 109, 7678–7693 (1998). 10.1063/1.477414 [DOI] [Google Scholar]
- 34.Sagui C. and Darden T. A., Annu. Rev. Biophys. Biomol. Struct. 28, 155–179 (1999). 10.1146/annurev.biophys.28.1.155 [DOI] [PubMed] [Google Scholar]
- 35.Aguado A. and Madden P. A., J. Chem. Phys. 119, 7471–7483 (2003). 10.1063/1.1605941 [DOI] [Google Scholar]
- 36.Simmonett A. C., Pickard F. C. IV, Schaefer H. F. III, and Brooks B. R., J. Chem. Phys. 140, 184101 (2014). 10.1063/1.4873920 [DOI] [PMC free article] [PubMed] [Google Scholar]
- 37.Boateng H. A. and Todorov I. T., J. Chem. Phys. 142, 034117 (2015). 10.1063/1.4905952 [DOI] [PubMed] [Google Scholar]
- 38.Wolf D., Keblinski P., Phillpot S. R., and Eggebrecht J., J. Chem. Phys. 110, 8254–8282 (1999). 10.1063/1.478738 [DOI] [Google Scholar]
- 39.Lamichhane M., Gezelter J. D., and Newman K. E., J. Chem. Phys. 141, 134109 (2014). 10.1063/1.4896627 [DOI] [PubMed] [Google Scholar]
- 40.Lamichhane M., Newman K. E., and Gezelter J. D., J. Chem. Phys. 141, 134110 (2014). 10.1063/1.4896628 [DOI] [PubMed] [Google Scholar]
- 41.Smith W., CCP5 Info. Quart. 46, 18–30 (1998). [Google Scholar]
- 42.Applequist J., J. Phys. A: Math. Gen. 22, 4303 (1989). 10.1088/0305-4470/22/20/011 [DOI] [Google Scholar]
- 43.Burgos E. and Bonadeo H., Mol. Phys. 44, 1–15 (1981). 10.1080/00268978100102251 [DOI] [Google Scholar]
- 44.Greengard L. and Rokhlin V., J. Comput. Phys. 73, 325–348 (1987). 10.1016/0021-9991(87)90140-9 [DOI] [Google Scholar]
- 45.Greengard L. and Rokhlin V., Acta Numer. 6, 229–269 (1997). 10.1017/S0962492900002725 [DOI] [Google Scholar]
- 46.McMurchie L. E. and Davidson E. R., J. Comput. Phys. 26, 218–231 (1978). 10.1016/0021-9991(78)90092-X [DOI] [Google Scholar]
- 47.Helgaker T., Jørgensen P., and Olsen J., Molecular Electronic Structure Theory (John Wiley & Sons, Ltd., Chichester, 2000). [Google Scholar]
- 48.Grad H., Commun. Pure Appl. Math. 2, 325–330 (1949). 10.1002/cpa.3160020402 [DOI] [Google Scholar]
- 49.de Leeuw S. W., Perram J. W., and Smith E. R., Proc. R. Soc. London, Ser. A 373, 27–56 (1980). 10.1098/rspa.1980.0135 [DOI] [Google Scholar]
- 50.Pollock E. and Glosli J., Comput. Phys. Commun. 95, 93–110 (1996). 10.1016/0010-4655(96)00043-4 [DOI] [Google Scholar]
- 51.Applequist J., J. Math. Phys. 24, 736–741 (1983). 10.1063/1.525770 [DOI] [Google Scholar]
- 52.Applequist J., J. Chem. Phys. 83, 809–826 (1985). 10.1063/1.449496 [DOI] [Google Scholar]
- 53.Dongarra J. J., Du Croz J., Hammarling S., and Duff I. S., ACM Trans. Math. Software 16, 1–17 (1990). 10.1145/77626.79170 [DOI] [Google Scholar]
- 54.Dongarra J. J., Du Croz J., Hammarling S., and Hanson R. J., ACM Trans. Math. Software 14, 18–32 (1988). 10.1145/42288.42292 [DOI] [Google Scholar]
- 55.Iglberger K., Hager G., Treibig J., and Rüde U., in 2012 International Conference on High Performance Computing & Simulation (HPCS), 2012. [Google Scholar]
- 56.Iglberger K., Hager G., Treibig J., and Rüde U., SIAM J. Sci. Comput. 34, C42–C69 (2012). 10.1137/110830125 [DOI] [Google Scholar]
- 57.See supplementary material at http://dx.doi.org/10.1063/1.4930984 E-JCPSA6-143-026536 for the details of the derivation of some equations.
Associated Data
This section collects any data citations, data availability statements, or supplementary materials included in this article.
Data Citations
- See supplementary material at http://dx.doi.org/10.1063/1.4930984 E-JCPSA6-143-026536 for the details of the derivation of some equations.



