High-precision calculations for one- and two-valence atomic systems
HF Namespace Reference

Detailed Description

Functions and classes for Hartree-Fock.

Classes

class  Breit
 Breit potentials for one- (Hartree-Fock Breit) and two-body Breit integrals. More...
 
struct  EpsIts
 Convergence results of for each self-consistent-field solve. 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 (e.g., HartreeFock) to HF::Method enum.
 
std::string parseMethod (const Method &in_method)
 Convers HF::Method enum to string (name) of method (e.g., HartreeFock)
 
std::string parseMethod_short (const Method &in_method)
 Convers HF::Method enum to short string (name) of method (e.g., HF)
 
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.
 
std::vector< double > vex_KS (const std::vector< DiracSpinor > &core)
 Density-based (Kohn-Sham/Slater) local exchange potential, ~rho^1/3.
 
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).
 

Enumeration Type Documentation

◆ Method

enum class 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

◆ parseMethod() [1/2]

Method HF::parseMethod ( const std::string &  in_method)

Convers string (name) of method (e.g., HartreeFock) to HF::Method enum.

◆ parseMethod() [2/2]

std::string HF::parseMethod ( const Method in_method)

Convers HF::Method enum to string (name) of method (e.g., HartreeFock)

◆ parseMethod_short()

std::string HF::parseMethod_short ( const Method in_method)

Convers HF::Method enum to short string (name) of method (e.g., HF)

◆ 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]

◆ vex_KS()

std::vector< double > HF::vex_KS ( const std::vector< DiracSpinor > &  core)

Density-based (Kohn-Sham/Slater) local exchange potential, ~rho^1/3.

Does not depend on the orbital, so it conditions all symmetries uniformly – useful as the local-exchange term on the LHS of the mixed-states iteration (where vex_approx, which divides by the perturbation, is poorly conditioned). Grid is taken from core.

◆ 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]