ampsci
c++ program for high-precision atomic structure calculations of single-valence systems
Classes | Enumerations | Functions
HF Namespace Reference

Functions and classes for Hartree-Fock. More...

Classes

class  Breit
 Breit (Hartree-Fock Breit) interaction potential. More...
 
struct  EpsIts
 Small struct to store: {eps, its, symbol}. eps=convergence; its=iterations; symbol=which state. May be sorted (by eps). More...
 
class  HartreeFock
 Solves relativistic Hartree-Fock equations for core and valence. Optionally includes Breit and QED effects. Can include Sigma (correlations) for valence states. Class stores nuc. and direct potentials, a set of yk integrals, and QED potential. Stores the core orbitals. More...
 

Enumerations

enum class  Method {
  HartreeFock , ApproxHF , Hartree , KohnSham ,
  Local
}
 Methods available for self-consistant field model. More...
 

Functions

Method parseMethod (const std::string &in_method)
 Convers string (name) of method (HartreeFock, Hartree etc.) to enum.
 
std::string parseMethod (const Method &in_method)
 
std::vector< double > vex_approx (const DiracSpinor &Fa, const std::vector< DiracSpinor > &core, int k_cut=99, double lambda_cut=0.003)
 Forms approx (localised) exchange potential, from scratch. More...
 
DiracSpinor vexFa (const DiracSpinor &Fa, const std::vector< DiracSpinor > &core, int k_cut=99)
 Calculates V_exch * Fa, for any orbital Fa (calculates Coulomb integral from scratch). More...
 

Detailed Description

Functions and classes for Hartree-Fock.

Enumeration Type Documentation

◆ Method

enum HF::Method
strong

Methods available for self-consistant field model.

  • HartreeFock: Self-consistent Hartree-Fock method
  • ApproxHF : Approximate (localised) Hartree-Fock method
  • Hartree : Core-Hartree method. No exchange, Vdir includes self-interaction
  • KohnSham : Kohn-Sham (Density functional), includes Latter correction
  • Local : Uses a local parameteric potential. [NOT self-consistant field]

Function Documentation

◆ vex_approx()

std::vector< double > HF::vex_approx ( const DiracSpinor Fa,
const std::vector< DiracSpinor > &  core,
int  k_cut = 99,
double  lambda_cut = 0.003 
)

Forms approx (localised) exchange potential, from scratch.

Needs existing orbital Fa, and the core orbitals. k_cut is max multipolarity to sum over for exchange term [can limit to ~1 (e.g.) for speed when high accuracy is not required]

◆ vexFa()

DiracSpinor HF::vexFa ( const DiracSpinor Fa,
const std::vector< DiracSpinor > &  core,
int  k_cut = 99 
)

Calculates V_exch * Fa, for any orbital Fa (calculates Coulomb integral from scratch).

k_cut is max multipolarity to sum over for exchange term [can limit to ~1 (e.g.) for speed when high accuracy is not required]