pconf - configuration interaction

The parallel program pconf performs the configuration interaction method in the CI space defined by the list of configurations contained in the CONF.INP input file created by the add program. It takes the CONF.DAT, CONF.GNT, CONF.INT, and CONF.INP files as input. In addition, pconf can also take in the SGC.CON and SCRC.CON files, which contain one- and two-electron effective radial integrals, respectively.

Here is a summary of the input and output files used in pconf.

Input Files:

  • HFD.DAT - basis set radial orbitals \(\phi_{nlj}\) and radial derivatives of the orbitals \(\partial_r\phi_{nlj}\)

  • CONF.DAT - basis set radial orbitals \(\phi_{nlj}\) and functions \(\chi_{nlj}=h_\text{HF}^r\phi_{nlj}\), where \(h_\text{HF}^r\) is the radial part of the Dirac-Fock operator

  • CONF.GNT - relativistic Gaunt coefficients produced by basc

  • CONF.INT - relativistic Coulomb coefficients produced by basc

  • SGC.CON (optional) - one-electron effective radial integrals of the MBPT/all-order corrections

  • SCRC.CON (optional) - two-electron effective radial integrals of the MBPT/all-order corrections

  • CONF.INP - list of relativistic configurations and user defined parameters

Output Files:

  • CONF.DET - basis set of determinants

  • CONFp.HIJ - list of matrix elements of the Hamiltonian (generated only if Kw = 1 in ci.in)

  • CONFp.JJJ - list of matrix elements of the operator \(J^2\) (generated only if Kw = 1 in ci.in)

  • CONF.XIJ - quantum numbers, eigenvalues and eigenvectors of the Hamiltonian

  • CONF.ENG - tables of calculated quantum numbers \(J_i\) and energy eigenvalues \(E_i\) calculated each time CONF.XIJ is constructed during the Davidson procedure

  • CONF.LVL - tables of top contributing configurations for each energy level calculated each time CONF.XIJ is constructed during the Davidson procedure

  • CONF.RES - results of pconf program

  • FINAL.RES - final table of quantum numbers \(J_i\) and energy eigenvalues \(E_i\)

  • LEVELS.RES - final table of top contributing configurations for each energy level

  • CONFSTR.RES - list of top contributing configurations along with their atomic term symbol for each energy level

The following is a sample of the head of a CONF.INP for calculating the even-parity states of \(\text{Ir}^{17+}\). Here, we include 481 relativistic configurations in the CI space, and 1132 relativistic configurations in the PT space (if conf_pt is to be used after pconf).

  Ir17+_even            # ion_parity
  Z = 77.0              # atomic number
 Am =193.0              # atomic weight
  J =  2.0              # total angular momentum
 Jm =  2.0              # angular momentum projection
 Nso=  14               # number of closed core shells
 Nc = 481               # number of relativistic configurations
 Kv =   4               # Kv = (3 - use projections, 4 - no projections)
 Nlv= 5                 # number of energy levels
 Ne =  14               # number of valence electrons
 Kl4=   1               # Kl4 = (1 - initial approx. from energy matrix, 2 - initial approx. from CONF.XIJ file)
 Nc4=  28               # number of relativistic configurations in initial approximation
Crt4=  0.0001           # cutoff criteria for davidson convergence
kout= 0                 # key for level of output (0 - low detail output, 1 - detailed output)
Ncpt=  1132             # number of relativistic configurations in PT block (used in conf_pt)
Cut0= 0.0001            # cutoff criteria for davidson convergence
N_it=  100              # number of davidson iterations
Kbrt= 1                 # key for Breit (0 - Coulomb, 1 - Gaunt, 2 - Full Breit)
Gnuc= 1.07              # gyromagnetic ratio
     0.1002     0.2002    -0.2102     0.2104     0.3002    -0.3102
     0.3104    -0.3204     0.3206     0.4002    -0.4102     0.4104
    -0.4204     0.4206
   1
   1-0.4306     0.4308
   2
   2-0.4306     0.4306     0.5002
   3-0.4305     0.4307     0.5002
   4-0.4304     0.4308     0.5002
   3
   5-0.4305     0.4308    -0.5101
   6-0.4305     0.4308     0.5101
   7-0.4306     0.4307    -0.5101
   8-0.4306     0.4307     0.5101
   :

Note

The first 5 columns up to the ‘=’ sign are fixed, and the program will give an error if there are any discrepancies here.

Note

The list of core shells are fixed to have a maximum of 6 shells per row.

In addition to the input files listed above, pconf also requires the file ci.in, which contains a list of key-value pairs defining the CI computation:

Kl = (0,1,2,3) - (0 - start, 1 - continue calculation, 2 - include corrections, 3 - add configurations)
Ksig = (0,1,2) - (0 - pure CI, 1 - include one-electron corrections, 2 - include one- and two-electron corrections)
Kdsig = (0,1) - (0 - no energy dependence on Sigma, 1 - energy dependence on Sigma)
Kw = (0,1) - (0 - do not write matrices, 1 - write matrices)
KLSJ = (0,1) - (0 - do not calculate LSJ, 1 - calculate LSJ)

The value of Kl can take the following values:

  • Kl = 0 - start a new CI calculation

  • Kl = 1 - continue a previous CI calculation

  • Kl = 2 - start a new CI calculation, including corrections from SGC.CON

  • Kl = 3 - continue a previous CI calculation, adding new configurations

Note

Note that for Kl=1,3 to work, the file CONFp.HIJ must have been successfully written with Kw=1 in the original run. CONFp.HIJ stores the previous Hamiltonian matrix, which must be read to continue a CI calculation. However, this file can be as big as 1 TB or more for large systems, so it should not be used unless the user has exceptional available computational resources.

The value of Ksig can take the following values:

  • Ksig = 0 - pure CI

  • Ksig = 1 - include one-electron corrections from SCRC.CON

  • Ksig = 2 - include one- and two-electron corrections from SCRC.CON

The value of Kdsig can take the following values:

  • Kdsig = 0 - automatic approximation of the energy dependence of the operator \(\Sigma(E)\)

  • Kdsig = 1 - manually specify the energy \(E_\mathrm{val}\) to treat the energy dependence of \(\Sigma(E)\)

The value of Kw can take the following values:

  • Kw = 0 - do not write the files CONFp.HIJ and CONFp.JJJ

  • Kw = 1 - write the files CONFp.HIJ and CONFp.JJJ

The value of KLSJ can take the following values:

  • KLSJ = 0 - do not calculate \(\langle S^2 \rangle\), \(\langle L^2 \rangle\), or form approximate terms for each energy level

  • KLSJ = 1 - calculate \(\langle S^2 \rangle\), \(\langle L^2 \rangle\), and form approximate term symbols for each energy level

After reading the keys from ci.in, the pconf program reads the general parameters and the list of configurations from the CONF.INP file. Next, the information about the basis set is read from CONF.DAT, relativistic Gaunt coefficients are read from CONF.GNT, radial integrals are read from CONF.INT, and optionally, effective radial integrals are read from SGC.CON and SCRC.CON.

Having read all required input files, the pconf program forms a list of determinants from the list of relativistic configurations and writes them to the file CONF.DET. With the list of determinants, it forms the Hamiltonian matrix and then the matrix of the operator \(J^2\). The construction of the Hamiltonian matrix is the most time-consuming part of the pconf program.

After the matrices are constructed, the pconf program enters the Davidson iterative procedure, where the Hamiltonian is diagonalized to obtain a specified number of low-lying energy eigenvalues and eigenvectors. The progress of the Davidson iterative procedure is written in the CONF.PRG file at each iteration. At selected intervals before the final iteration, the eigenvalues and eigenvectors are saved to CONF.XIJ. Each time CONF.XIJ is written on disk, a table of the energy levels is appended to the file CONF.ENG, and tables of the top contributing configurations for each level are appended to CONF.LVL.

Once the Davidson iterative procedure has converged, the final eigenvalues and eigenvectors are saved once again to CONF.XIJ, the final energy table is saved to FINAL.RES, the final list of the top contributing configurations for each level is saved to LEVELS.RES, and the configurations along with their atomic term symbol is written to CONFSTR.RES.

If polarizability calculations are required, the Hamiltonian matrix elements will have to be written to the file CONFp.HIJ``by setting the key ``Kw=1 in ci.in. Note that depending on the size of the Hamiltonian, this file could take up hundreds of GB to over 1 TB. By default, Kw=0 is set to not write the Hamiltonian to disk. As a reference, polarizability calculations have typically been done with Hamiltonian sizes of up to 4 million determinants.

Running conf

To run pconf, run the command:

mpirun -n <nprocs> pconf