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

Stores the CI Solutions for given J and parity (only two-electron). More...

#include <CSF.hpp>

Public Member Functions

 PsiJPi (int twoJ, int pi, const std::vector< DiracSpinor > &cisp_basis)
 Construct containter for CI solutions. Constructs the CSFs, but doesn't solve system; have to call solve().
 
void solve (const LinAlg::Matrix< double > &Hci, int num_solutions=0, std::optional< double > all_below={})
 Solves the CI equation for Hamiltonian matrix Hci; finds first num_solutions solutions. Doesn't set the Config info: have to call update_config_info() manually.
 
void update_config_info (std::size_t i, const ConfigInfo &info)
 You must manuall update the config. info for each solution (if required)
 
const std::vector< CSF2 > & CSFs () const
 Full list of CSFs.
 
const CSF2CSF (std::size_t i) const
 The ith CSF.
 
double energy (std::size_t i) const
 Energy of the ith CI solution.
 
LinAlg::View< const double > coefs (std::size_t i) const
 List of CI expansion coefs for the ith CI solution.
 
double coef (std::size_t i, std::size_t j) const
 The CI coeficient for the ith CI solution, corresponding to the jth CSF.
 
int parity () const
 Parity for the CI solutions (+/-1)
 
int twoJ () const
 2J for the CI solutions
 
std::size_t num_solutions () const
 Number of CI solutions stored.
 
const ConfigInfoinfo (std::size_t i) const
 Configuration info for the ith CI solution, if it has been set.
 

Detailed Description

Stores the CI Solutions for given J and parity (only two-electron).

Constructor & Destructor Documentation

◆ PsiJPi()

CI::PsiJPi::PsiJPi ( int  twoJ,
int  pi,
const std::vector< DiracSpinor > &  cisp_basis 
)
inline

Construct containter for CI solutions. Constructs the CSFs, but doesn't solve system; have to call solve().

Member Function Documentation

◆ solve()

void CI::PsiJPi::solve ( const LinAlg::Matrix< double > &  Hci,
int  num_solutions = 0,
std::optional< double >  all_below = {} 
)

Solves the CI equation for Hamiltonian matrix Hci; finds first num_solutions solutions. Doesn't set the Config info: have to call update_config_info() manually.

If num_solutions<=0 (or not given), will calculate all solutions

◆ update_config_info()

void CI::PsiJPi::update_config_info ( std::size_t  i,
const ConfigInfo info 
)

You must manuall update the config. info for each solution (if required)

◆ CSFs()

const std::vector< CSF2 > & CI::PsiJPi::CSFs ( ) const

Full list of CSFs.

◆ CSF()

const CSF2 & CI::PsiJPi::CSF ( std::size_t  i) const

The ith CSF.

◆ energy()

double CI::PsiJPi::energy ( std::size_t  i) const

Energy of the ith CI solution.

◆ coefs()

LinAlg::View< const double > CI::PsiJPi::coefs ( std::size_t  i) const

List of CI expansion coefs for the ith CI solution.

◆ coef()

double CI::PsiJPi::coef ( std::size_t  i,
std::size_t  j 
) const

The CI coeficient for the ith CI solution, corresponding to the jth CSF.

◆ parity()

int CI::PsiJPi::parity ( ) const

Parity for the CI solutions (+/-1)

◆ twoJ()

int CI::PsiJPi::twoJ ( ) const

2J for the CI solutions

◆ num_solutions()

std::size_t CI::PsiJPi::num_solutions ( ) const

Number of CI solutions stored.

◆ info()

const ConfigInfo & CI::PsiJPi::info ( std::size_t  i) const

Configuration info for the ith CI solution, if it has been set.


The documentation for this class was generated from the following files: