We report the development of a parallel FORTRAN code, RCCPAC, to solve the relativistic coupled-cluster equations for closed-shell and one-valence atoms and ions. The parallelization is implemented through the use of message passing interface, which is suitable for distributed memory computers. The coupled-cluster equations are defined in terms of the reduced matrix elements, and solved iteratively using Jacobi method. The ground and excited states of coupled-cluster wave functions obtained from the code could be used to compute different properties of closed-shell and one-valence atom or ion. As an example we compute the ground state correlation energy, attachment energies, E1 reduced matrix elements and hyperfine structure constants. Program summaryProgram Title: RCCPACProgram Files doi:http://dx.doi.org/10.17632/34rwtn27nb.1Licensing provisions: MIT licenceProgramming language: FORTRAN 90Nature of problem: Compute the ground and excited state wave functions, correlation energy, attachment energies, and E1 transition amplitude and hyperfine structure constant of closed-shell and one-valence atoms or ions using relativistic coupled-cluster theory.Solution method: The basic input data required is an orbital basis set generated using the Dirac–Coulomb Hamiltonian. For the present case, closed-shell and one-valence systems, the orbitals are grouped into occupied, valence and virtual. The relativistic coupled-cluster equations of the single and double excitation cluster amplitudes, which form a set of coupled nonlinear equations, are defined in terms of reduced matrix elements of the residual Coulomb interaction. The equations are solved iteratively in parallel using Message Passing Interface (MPI) with the Jacobi method. However, to overcome the slow convergence of the method, we use Direct Inversion in the Iterated Sub-space (DIIS) to accelerate the convergence. For enhanced performance, the two-electron integrals and 6j- symbols are precalculated and stored. Furthermore, to optimize memory requirements, selected groups of integrals are computed and stored only by the thread which needs the integrals during computation.Restrictions: For efficient computations, the two-electron reduced Coulomb matrix elements consisting of three and four virtual states are stored in RAM. This limits the size of the basis set, as there should be sufficient space in RAM to store all the integrals.Unusual features: To avoid replication of data across the cores, and optimize the RAM use, the three particle and four particle two-electron Coulomb integrals are distributed. That is, following the loop structure in the driver, each core stores only the integrals it requires. With this feature there is enormous reduction in the RAM required to store the integrals.Additional comments: The code can be modified, with minimal changes, to compute properties other than electromagnetic transitions and hyperfine constants with appropriate modifications. The required modifications are addition of subroutine to compute the single-electron matrix element, and inclusion of calling sequence in the main driver subroutine.
Read full abstract