High-precision calculations for one- and two-valence atomic systems
CI::Integrals

ok

The integral tables required to construct the CI Hamiltonian matrix.

Everything needed to construct the CI Hamiltonian for any (J, parity), as it was constructed for the CI solutions: the single-particle basis, the one-body matrix elements (which may include \( \Sigma_1 \)), and the two-body Coulomb, Breit and \( \Sigma_2 \) tables.

Filled by configuration_interaction and stored in the Wavefunction (see Wavefunction::CI_integrals), so that later calculations can construct CI Hamiltonians - e.g., for the mixed-states equation, solve_mixed_state - without recalculating any integrals.

Note
The Breit and \( \Sigma_2 \) tables are empty if those corrections were not included; construct_Hci then skips them.
These tables are large (the Coulomb table especially): keeping them for the entire run costs memory.

#include <CI_Integrals.hpp>

Public Member Functions

bool availableQ () const
 False if the tables were never calculated (e.g., CI was run 'read_only')
 

Public Attributes

std::vector< DiracSpinor > ci_basis {}
 Single-particle basis used for the CI expansion.
 
Coulomb::meTable< double > h1 {}
 One-body matrix elements, <a|h1|b>; may include Sigma_1.
 
Coulomb::QkTable qk {}
 Two-body Coulomb integrals, Q^k.
 
Coulomb::WkTable Bk {}
 Two-body Breit integrals, B^k; empty if not included.
 
Coulomb::LkTable Sk {}
 Two-body Sigma_2 integrals, S^k; empty if not included.
 
std::vector< double > hk {}
 Average S^k/Q^k ratios, indexed by k; empty if Sigma_2 is not being extrapolated beyond the cis2 basis. Diagrams with no stored S^k then use S^k = hk[k] * Q^k. See MBPT::average_hk.
 
Coulomb::LkTable dSk {}
 Energy derivatives dS^k/dE0 of the Sigma_2 integrals; empty unless the Brillouin-Wigner (E0-dependent) Sigma_2 correction is included. See CI::corrected_Sk.
 
double E0_sigma2 {0.0}
 Reference E0 that Sk and dSk were tabulated at (Brillouin-Wigner)
 
Sigma1Correction s1_corr {}
 Derivative (dSigma/dE) correction for Sigma_1; empty if not included.
 

Member Function Documentation

◆ availableQ()

bool CI::Integrals::availableQ ( ) const
inline

False if the tables were never calculated (e.g., CI was run 'read_only')

Member Data Documentation

◆ ci_basis

std::vector<DiracSpinor> CI::Integrals::ci_basis {}

Single-particle basis used for the CI expansion.

◆ h1

Coulomb::meTable<double> CI::Integrals::h1 {}

One-body matrix elements, <a|h1|b>; may include Sigma_1.

◆ qk

Coulomb::QkTable CI::Integrals::qk {}

Two-body Coulomb integrals, Q^k.

◆ Bk

Coulomb::WkTable CI::Integrals::Bk {}

Two-body Breit integrals, B^k; empty if not included.

◆ Sk

Coulomb::LkTable CI::Integrals::Sk {}

Two-body Sigma_2 integrals, S^k; empty if not included.

◆ hk

std::vector<double> CI::Integrals::hk {}

Average S^k/Q^k ratios, indexed by k; empty if Sigma_2 is not being extrapolated beyond the cis2 basis. Diagrams with no stored S^k then use S^k = hk[k] * Q^k. See MBPT::average_hk.

◆ dSk

Coulomb::LkTable CI::Integrals::dSk {}

Energy derivatives dS^k/dE0 of the Sigma_2 integrals; empty unless the Brillouin-Wigner (E0-dependent) Sigma_2 correction is included. See CI::corrected_Sk.

◆ E0_sigma2

double CI::Integrals::E0_sigma2 {0.0}

Reference E0 that Sk and dSk were tabulated at (Brillouin-Wigner)

◆ s1_corr

Sigma1Correction CI::Integrals::s1_corr {}

Derivative (dSigma/dE) correction for Sigma_1; empty if not included.


The documentation for this struct was generated from the following file: