Documentation

Class to represent "logical" operators used in Formula.

Note that the logical operators differ from concrete operators whose integrals are computed using integral engines. E.g. Fock operator and its siblings are not computed by the integral engine directly. Similarly, operators involving F12 correlation factors may or may not be the actual operator kernels whose integrals will be computed, e.g. the square of a Ten-no type geminal is a logical operator whose integrals will be computed by computing (scaled) Slater geminal integrals with the exponent doubled.

Dictionary of operator labels to Operator::Type values

Public Types

enum  Type {
  Type::Invalid = -1, Type::__first_1body_operator = 0, Type::Identity = 0, Type::Overlap = 1,
  Type::Kinetic = 2, Type::Nuclear = 3, Type::Core = 4, Type::SphericalMultipole = 5,
  Type::ElectricDipole = 6, Type::ElectricQuadrupole = 7, Type::__last_1body_operator = 7, Type::__first_fock_operator = 32,
  Type::J = 32, Type::K = 33, Type::KAlpha = 34, Type::KBeta = 35,
  Type::Fock = 36, Type::FockAlpha = 37, Type::FockBeta = 38, Type::hJ = 39,
  Type::__last_fock_operator = 39, Type::__first_2body_operator = 127, Type::CADF = 127, Type::Coulomb = 128,
  Type::_F12 = 129, Type::_F12_2 = 130, Type::_F12_G = 131, Type::_F12_Del2 = 132,
  Type::cGTG = 133, Type::cGTG2 = 134, Type::cGTGCoulomb = 135, Type::DelcGTG2 = 136,
  Type::TTG = 137, Type::TTG2 = 138, Type::TTGCoulomb = 139, Type::DelTTG2 = 140,
  Type::STG = 141, Type::Yukawa = 142, Type::__last_2body_operator = 142
}
 

Public Member Functions

 Operator ()
 
 Operator (Operator const &)=default
 
 Operator (Operator &&)=default
 
Operatoroperator= (Operator const &)=default
 
Operatoroperator= (Operator &&)=default
 
 Operator (std::wstring op_id)
 
const Typetype () const
 
void set_type (const Type &type)
 set oper_ More...
 
const std::wstring oper_string () const
 return string that correspond to oper_ More...
 
bool is_onebody () const
 check if oper_ is one body operator More...
 
bool is_twobody () const
 check if oper_ is two body operator More...
 
bool is_fock () const
 check if oper_ is fock operator More...
 
bool is_jk () const
 check if oper_ is J or K operator More...
 
bool is_abstract (Type type) const
 
bool is_abstract () const
 check if this is an abstract operator More...
 
bool operator== (Operator const &other) const
 equality check by comparing oper_ and options_ More...
 
bool operator!= (Operator const &other) const
 equality check by comparing oper_ and options_ More...
 
bool operator< (const Operator &other) const
 comparison by comparing oper_ and options_ More...
 

Static Public Attributes

static const std::unordered_map< std::wstring, Typeone_body_operation
 
static const std::unordered_map< std::wstring, Typetwo_body_operation
 
static const std::unordered_map< std::wstring, Typefock_operation
 
static const std::map< Type, std::wstring > oper_to_string
 maps Operator::Type to string id More...
 

Member Enumeration Documentation

◆ Type

enum mpqc::Operator::Type
strong

Operator types

Enumerator
Invalid 
__first_1body_operator 
Identity 
Overlap 
Kinetic 
Nuclear 
Core 
SphericalMultipole 
ElectricDipole 
ElectricQuadrupole 
__last_1body_operator 
__first_fock_operator 
KAlpha 
KBeta 
Fock 
FockAlpha 
FockBeta 
hJ 
__last_fock_operator 
__first_2body_operator 
CADF 
Coulomb 
_F12 
_F12_2 
_F12_G 
_F12_Del2 
cGTG 
cGTG2 
cGTGCoulomb 
DelcGTG2 
TTG 
TTG2 
TTGCoulomb 
DelTTG2 
STG 
Yukawa 
__last_2body_operator 

Constructor & Destructor Documentation

◆ Operator() [1/4]

mpqc::Operator::Operator ( )
inline

◆ Operator() [2/4]

mpqc::Operator::Operator ( Operator const &  )
default

◆ Operator() [3/4]

mpqc::Operator::Operator ( Operator &&  )
default

◆ Operator() [4/4]

mpqc::Operator::Operator ( std::wstring  op_id)

Constructor

Parameters
op_idstring id of operator
See also
oper_to_string

Member Function Documentation

◆ is_abstract() [1/2]

bool mpqc::Operator::is_abstract ( ) const

check if this is an abstract operator

◆ is_abstract() [2/2]

bool mpqc::Operator::is_abstract ( Operator::Type  type) const

check if a type is abstract

Parameters
[in]typean Operator::Type object
Returns
true if type is abstract, i.e. does not correspond to a concrete integral type; see, for example, Type::_F12

◆ is_fock()

bool mpqc::Operator::is_fock ( ) const

check if oper_ is fock operator

◆ is_jk()

bool mpqc::Operator::is_jk ( ) const

check if oper_ is J or K operator

◆ is_onebody()

bool mpqc::Operator::is_onebody ( ) const

check if oper_ is one body operator

◆ is_twobody()

bool mpqc::Operator::is_twobody ( ) const

check if oper_ is two body operator

◆ oper_string()

const std::wstring mpqc::Operator::oper_string ( ) const

return string that correspond to oper_

◆ operator!=()

bool mpqc::Operator::operator!= ( Operator const &  other) const
inline

equality check by comparing oper_ and options_

◆ operator<()

bool mpqc::Operator::operator< ( const Operator other) const

comparison by comparing oper_ and options_

◆ operator=() [1/2]

Operator& mpqc::Operator::operator= ( Operator &&  )
default

◆ operator=() [2/2]

Operator& mpqc::Operator::operator= ( Operator const &  )
default

◆ operator==()

bool mpqc::Operator::operator== ( Operator const &  other) const

equality check by comparing oper_ and options_

◆ set_type()

void mpqc::Operator::set_type ( const Type type)
inline

set oper_

◆ type()

const Type& mpqc::Operator::type ( ) const
inline

operator accessor

Returns
the operator

Member Data Documentation

◆ fock_operation

const std::unordered_map<std::wstring, Type> mpqc::Operator::fock_operation
static

◆ one_body_operation

const std::unordered_map<std::wstring, Type> mpqc::Operator::one_body_operation
static

maps of string to operators and option vice versa

◆ oper_to_string

const std::map< Operator::Type, std::wstring > mpqc::Operator::oper_to_string
static
Initial value:
= {
{Type::Nuclear, L"V"}, {Type::Core, L"H"},
{Type::_F12, L"R"}, {Type::_F12_2, L"R2"},
{Type::_F12_G, L"GR"}, {Type::_F12_Del2, L"dR2"},
{Type::cGTG, L"R"}, {Type::cGTG2, L"R2"},
{Type::TTG, L"R"}, {Type::TTGCoulomb, L"GR"},
{Type::TTG2, L"R2"}, {Type::DelTTG2, L"dR2"},
{Type::STG, L"STG"}, {Type::Yukawa, L"Yukawa"},
{Type::J, L"J"},
{Type::hJ, L"hJ"}, {Type::K, L"K"},
{Type::KAlpha, L"K(α)"}, {Type::KBeta, L"K(β)"},
{Type::Fock, L"F"}, {Type::FockAlpha, L"F(α)"},
{Type::FockBeta, L"F(β)"}, {Type::CADF, L"CADF"},

maps Operator::Type to string id

◆ two_body_operation

const std::unordered_map<std::wstring, Type> mpqc::Operator::two_body_operation
static

The documentation for this class was generated from the following files:
const Vector3d & L() const
Definition: group.cpp:74