Documentation
OrbitalIndex denotes a LCAO or AO index space.
\implementation OrbitalIndex is a label (wide-char string) whose
semantics follow a convention common in the molecular electronic structure. Thus it forms a basis for a language describing mathematical expressions encountered in this domain.
The labels consist of a single wchar
, followed by an optional prime (specified as character Apostrophe (ASCII '
aka U+0027), Prime (U+2032) or Modifier Letter Prime (U+02B9); note that only the latter can be used as part of variable names in a Unicode-encoded C++ source code), followed by zero or more digits (can be regular or subscript), followed by an optional spin label. The non-digit characters must belong to the following dictionary:
Label base | OrbitalIndex::Type | Description |
m,n | occ | (active and core) occupied |
m', n' | frozen_occ | core occupied |
i,j,k,l | active_occ | active occupied |
x, y | active | active (e.g. active space in MR theories) |
e,f | uocc | (active and frozen) unoccupied/virtual |
e',f' | frozen_uocc | frozen unoccupied/virtual |
a,b,c,d | active_uocc | active unoccupied/virtual |
p,q,r,s | any | occupied or unoccupied expressed in the orbital AO basis and/or virtual AO basis |
p',q',r',s' | totalany | union of frozen_occ , corr_occ , active , active_uocc , and frozen_uocc ; spans same space as any |
a', b', c', d' | other_uocc | unoccupied orbitals orthogonal to any (in F12 theory denoted as CABS) |
A', B', C', D' | complete_uocc | all unoccupied orbitals, i.e. union of uocc and other_uocc |
P', Q', R', S' | complete_any | union of any and other_uocc |
κ, λ, μ, ν | obs | orbital AO basis, supports at least occupied orbitals, or more usually supports any and all of its subsets |
ε | min | minimal AO basis; supports core and valence orbitals only |
Α, Β, Γ, Δ | vbs | unoccupied/virtual AO basis, supports virt in dual-basis theories |
Κ, Λ, Μ, Ν | dfbs | density-fitting AO basis |
α, β, γ, δ | abs | auxiliary AO basis used in F12 theories |
ρ, σ, τ, υ | ribs | union of obs and abs , supports other_uocc , complete_uocc , and complete_any |
U | ubs | unit basis used in periodic density-fitting in Coulomb term |
Public Types | |
enum | Type { Type::frozen_occ = 1, Type::active = 2, Type::active_occ = 3, Type::occ = 4, Type::active_uocc = 5, Type::frozen_uocc = 6, Type::uocc = 7, Type::totalany = 8, Type::any = 9, Type::other_uocc = 10, Type::complete_uocc = 15, Type::complete_any = 19, Type::obs = -1, Type::vbs = -2, Type::abs = -3, Type::ribs = -4, Type::dfbs = -5, Type::ubs = -6, Type::min = -7 } |
enum | Spin { Spin::Alpha = 1, Spin::Beta = -1, Spin::None = 0 } |
Public Member Functions | |
OrbitalIndex ()=default | |
OrbitalIndex (OrbitalIndex const &)=default | |
OrbitalIndex (OrbitalIndex &&)=default | |
OrbitalIndex & | operator= (OrbitalIndex const &)=default |
OrbitalIndex & | operator= (OrbitalIndex &&)=default |
template<typename String , typename = typename std::enable_if<not std::is_same< typename std::decay<String>::type, OrbitalIndex>::value>::type> | |
OrbitalIndex (String &&symbol) | |
constructs from a label More... | |
bool | operator== (OrbitalIndex const &) const |
check equality by comparing index and spin More... | |
bool | operator!= (OrbitalIndex const &) const |
check inequality by comparing index and spin More... | |
bool | operator< (const OrbitalIndex &) const |
comparison by index and spin More... | |
bool | operator> (const OrbitalIndex &) const |
comparison by index and spin More... | |
bool | same (const OrbitalIndex &other) const |
if the same index and name More... | |
const Type & | index () const |
return index More... | |
const Spin & | spin () const |
return spin More... | |
const std::wstring & | name () const |
return index name More... | |
bool | is_ao () const |
if atomic orbital index More... | |
bool | is_lcao () const |
if molecular orbital index More... | |
bool | is_mo_in_obs () const |
return true if is mo in obs More... | |
bool | is_mo_in_abs () const |
return true if is mo in abs More... | |
bool | is_mo_in_ribs () const |
return true if is mo in ribs More... | |
OrbitalIndex | mo_to_ao () const |
std::string | to_ta_expression () const |
converts this index's name to a TiledArray-compatible expression More... | |
Static Public Attributes | |
static const wchar_t | frozen_occ_wchar [2] = {L'm', L'n'} |
static const wchar_t | active_occ_wchar [2] = {L'i', L'l'} |
static const wchar_t | occ_wchar [2] = {L'm', L'n'} |
static const wchar_t | active_wchar [2] = {L'x', L'y'} |
static const wchar_t | frozen_uocc_wchar [2] = {L'e', L'f'} |
static const wchar_t | active_uocc_wchar [2] = {L'a', L'd'} |
static const wchar_t | uocc_wchar [2] = {L'e', L'f'} |
static const wchar_t | totalany_wchar [2] = {L'p', L's'} |
static const wchar_t | any_wchar [2] = {L'p', L's'} |
static const wchar_t | other_uocc_wchar [2] = {L'a', L'd'} |
static const wchar_t | complete_uocc_wchar [2] = {L'A', L'D'} |
static const wchar_t | complete_any_wchar [2] = {L'P', L'S'} |
static const wchar_t | obs_wchar [4] = {L'κ', L'λ', L'μ', L'ν'} |
static const wchar_t | vbs_wchar [4] = {L'Α', L'Β', L'Γ', L'Δ'} |
static const wchar_t | dfbs_wchar [4] = {L'Κ', L'Λ', L'Μ', L'Ν'} |
static const wchar_t | abs_wchar [4] = {L'α', L'β', L'γ', L'δ'} |
static const wchar_t | ribs_wchar [4] = {L'ρ', L'σ', L'τ', L'υ'} |
static const wchar_t | ubs_wchar [1] = {L'U'} |
static const wchar_t | min_wchar [1] = {L'ε'} |
Member Enumeration Documentation
◆ Spin
|
strong |
◆ Type
|
strong |
Constructor & Destructor Documentation
◆ OrbitalIndex() [1/3]
|
default |
◆ OrbitalIndex() [2/3]
|
default |
◆ OrbitalIndex() [3/3]
|
default |
Member Function Documentation
◆ index()
|
inline |
return index
◆ is_ao()
bool mpqc::lcao::OrbitalIndex::is_ao | ( | ) | const |
if atomic orbital index
◆ is_lcao()
bool mpqc::lcao::OrbitalIndex::is_lcao | ( | ) | const |
if molecular orbital index
◆ is_mo_in_abs()
bool mpqc::lcao::OrbitalIndex::is_mo_in_abs | ( | ) | const |
return true if is mo in abs
◆ is_mo_in_obs()
bool mpqc::lcao::OrbitalIndex::is_mo_in_obs | ( | ) | const |
return true if is mo in obs
◆ is_mo_in_ribs()
bool mpqc::lcao::OrbitalIndex::is_mo_in_ribs | ( | ) | const |
return true if is mo in ribs
◆ mo_to_ao()
OrbitalIndex mpqc::lcao::OrbitalIndex::mo_to_ao | ( | ) | const |
Default MO to AO mapping othervir, allvir, allany -> ribs everything else -> obs
◆ name()
|
inline |
return index name
◆ operator!=()
bool mpqc::lcao::OrbitalIndex::operator!= | ( | OrbitalIndex const & | other | ) | const |
check inequality by comparing index and spin
◆ operator<()
bool mpqc::lcao::OrbitalIndex::operator< | ( | const OrbitalIndex & | other | ) | const |
comparison by index and spin
◆ operator=() [1/2]
|
default |
◆ operator=() [2/2]
|
default |
◆ operator==()
bool mpqc::lcao::OrbitalIndex::operator== | ( | OrbitalIndex const & | other | ) | const |
check equality by comparing index and spin
◆ operator>()
bool mpqc::lcao::OrbitalIndex::operator> | ( | const OrbitalIndex & | other | ) | const |
comparison by index and spin
◆ same()
bool mpqc::lcao::OrbitalIndex::same | ( | const OrbitalIndex & | other | ) | const |
if the same index and name
◆ spin()
|
inline |
return spin
◆ to_ta_expression()
std::string mpqc::lcao::OrbitalIndex::to_ta_expression | ( | ) | const |
converts this index's name to a TiledArray-compatible expression
Conversion narrows the wide characters to human-readable (narrow) char-based string by:
- converting greek letters with english equivalents
- converting prime Unicode characters with the apostrophe char
- Returns
- a std::string that can be used to compose TA DistArray annotations
Member Data Documentation
◆ abs_wchar
|
static |
◆ active_occ_wchar
|
static |
◆ active_uocc_wchar
|
static |
◆ active_wchar
|
static |
◆ any_wchar
|
static |
◆ complete_any_wchar
|
static |
◆ complete_uocc_wchar
|
static |
◆ dfbs_wchar
|
static |
◆ frozen_occ_wchar
|
static |
constant wchar_t used to map to Index
◆ frozen_uocc_wchar
|
static |
◆ min_wchar
|
static |
◆ obs_wchar
|
static |
◆ occ_wchar
|
static |
◆ other_uocc_wchar
|
static |
◆ ribs_wchar
|
static |
◆ totalany_wchar
|
static |
◆ ubs_wchar
|
static |
◆ uocc_wchar
|
static |
◆ vbs_wchar
|
static |
The documentation for this class was generated from the following files:
- mpqc/chemistry/qc/lcao/expression/orbital_index.h
- mpqc/chemistry/qc/lcao/expression/orbital_index.cpp