mpqc.Chemistry.ElectronicStructure.Spin.Util
Collaboration diagram for mpqc.Chemistry.ElectronicStructure.Spin.Util:
Documentation
Utilities manipulating spin-specific (meta)data.
- Note
- In spin-collinear (e.g., nonrelativistic) theory alpha and beta spin states are distinct. Metadata
T
for alpha ( , or spin-up) and beta ( , or spin-down) states will be commonly paired together as astd::pair<T,T>
. For example, the SlaterDeterminant class is such a pair. This adds syntactic sugar for dealing with such data pairs using a domain-specific terminology.
Functions | |
template<typename T1 , typename T2 > | |
const auto & | mpqc::alpha (const std::pair< T1, T2 > &p) |
template<typename T1 , typename T2 > | |
auto & | mpqc::alpha (std::pair< T1, T2 > &p) |
template<typename T1 , typename T2 > | |
const auto & | mpqc::alpha (const std::tuple< T1, T2 > &p) |
template<typename T1 , typename T2 > | |
auto & | mpqc::alpha (std::tuple< T1, T2 > &p) |
template<typename T1 , typename T2 > | |
const auto & | mpqc::beta (const std::pair< T1, T2 > &p) |
template<typename T1 , typename T2 > | |
auto & | mpqc::beta (std::pair< T1, T2 > &p) |
template<typename T1 , typename T2 > | |
const auto & | mpqc::beta (const std::tuple< T1, T2 > &p) |
template<typename T1 , typename T2 > | |
auto & | mpqc::beta (std::tuple< T1, T2 > &p) |
template<typename StringRange , typename = std::enable_if_t<!meta::is_string_v<StringRange>>> | |
const auto & | mpqc::alpha (const SlaterDeterminant< StringRange > &det) |
template<typename StringRange , typename = std::enable_if_t<!meta::is_string_v<StringRange>>> | |
auto & | mpqc::alpha (SlaterDeterminant< StringRange > &det) |
template<typename StringRange , typename = std::enable_if_t<!meta::is_string_v<StringRange>>> | |
const auto & | mpqc::alphastr (const SlaterDeterminant< StringRange > &det) |
template<typename String , typename = std::enable_if_t<meta::is_string_v<String>>> | |
auto | mpqc::alpha (const SlaterDeterminant< String > &det) |
template<typename String , typename = std::enable_if_t<meta::is_string_v<String>>> | |
auto | mpqc::alpha (SlaterDeterminant< String > &det) |
template<typename String > | |
std::enable_if_t< meta::is_string_v< String >, const String & > | mpqc::alphastr (const SlaterDeterminant< String > &det) |
template<typename StringRange , typename = std::enable_if_t<!meta::is_string_v<StringRange>>> | |
decltype(auto) | mpqc::beta (const SlaterDeterminant< StringRange > &det) |
template<typename StringRange , typename = std::enable_if_t<!meta::is_string_v<StringRange>>> | |
auto & | mpqc::beta (SlaterDeterminant< StringRange > &det) |
template<typename StringRange , typename = std::enable_if_t<!meta::is_string_v<StringRange>>> | |
const auto & | mpqc::betastr (const SlaterDeterminant< StringRange > &det) |
template<typename String , typename = std::enable_if_t<meta::is_string_v<String>>> | |
auto | mpqc::beta (const SlaterDeterminant< String > &det) |
template<typename String , typename = std::enable_if_t<meta::is_string_v<String>>> | |
auto | mpqc::beta (SlaterDeterminant< String > &det) |
template<typename String > | |
std::enable_if_t< meta::is_string_v< String >, const String & > | mpqc::betastr (const SlaterDeterminant< String > &det) |
template<typename RangeA , typename RangeB , typename = std::enable_if_t<TiledArray::detail::is_range_v<RangeA> && TiledArray::detail::is_range_v<RangeB>>> | |
decltype(auto) | mpqc::begin (const std::pair< RangeA, RangeB > &rng) |
template<typename RangeA , typename RangeB , typename = std::enable_if_t<TiledArray::detail::is_range_v<RangeA> && TiledArray::detail::is_range_v<RangeB>>> | |
decltype(auto) | mpqc::end (const std::pair< RangeA, RangeB > &rng) |
auto | mpqc::occ_range (const std::pair< PopulatedSparseOrbitalRange, PopulatedSparseOrbitalRange > &poporbs) |
auto | mpqc::uocc_range (const std::pair< PopulatedSparseOrbitalRange, PopulatedSparseOrbitalRange > &poporbs) |
Function Documentation
◆ alpha() [1/8]
template<typename String , typename = std::enable_if_t<meta::is_string_v<String>>>
auto mpqc::alpha | ( | const SlaterDeterminant< String > & | det | ) |
- Parameters
-
[in] det a SlaterDeterminant object
- Returns
- const reference to alpha string
◆ alpha() [2/8]
template<typename StringRange , typename = std::enable_if_t<!meta::is_string_v<StringRange>>>
const auto& mpqc::alpha | ( | const SlaterDeterminant< StringRange > & | det | ) |
- Parameters
-
[in] det a SlaterDeterminant object
- Returns
- alpha string iterator
◆ alpha() [3/8]
template<typename T1 , typename T2 >
const auto& mpqc::alpha | ( | const std::pair< T1, T2 > & | p | ) |
extract alpha component of pair p
- Parameters
-
[in] p spin-specific metadata pair
◆ alpha() [4/8]
template<typename T1 , typename T2 >
const auto& mpqc::alpha | ( | const std::tuple< T1, T2 > & | p | ) |
extract alpha component of 2-tuple p
- Parameters
-
[in] p spin-specific metadata pair
◆ alpha() [5/8]
template<typename String , typename = std::enable_if_t<meta::is_string_v<String>>>
auto mpqc::alpha | ( | SlaterDeterminant< String > & | det | ) |
- Parameters
-
[in] det a SlaterDeterminant object
- Returns
- reference to alpha string
◆ alpha() [6/8]
template<typename StringRange , typename = std::enable_if_t<!meta::is_string_v<StringRange>>>
auto& mpqc::alpha | ( | SlaterDeterminant< StringRange > & | det | ) |
- Parameters
-
[in] det a SlaterDeterminant object
- Returns
- alpha string iterator
◆ alpha() [7/8]
template<typename T1 , typename T2 >
auto& mpqc::alpha | ( | std::pair< T1, T2 > & | p | ) |
extract alpha component of pair p
- Parameters
-
[in] p spin-specific metadata pair
◆ alpha() [8/8]
template<typename T1 , typename T2 >
auto& mpqc::alpha | ( | std::tuple< T1, T2 > & | p | ) |
extract alpha component of 2-tuple p
- Parameters
-
[in] p spin-specific metadata pair
◆ alphastr() [1/2]
template<typename String >
std::enable_if_t<meta::is_string_v<String>, const String&> mpqc::alphastr | ( | const SlaterDeterminant< String > & | det | ) |
- Parameters
-
[in] det a SlaterDeterminant object
- Returns
- const reference to alpha string object
◆ alphastr() [2/2]
template<typename StringRange , typename = std::enable_if_t<!meta::is_string_v<StringRange>>>
const auto& mpqc::alphastr | ( | const SlaterDeterminant< StringRange > & | det | ) |
- Parameters
-
[in] det a SlaterDeterminant object
- Returns
- const reference to alpha string object
◆ begin()
template<typename RangeA , typename RangeB , typename = std::enable_if_t<TiledArray::detail::is_range_v<RangeA> && TiledArray::detail::is_range_v<RangeB>>>
decltype(auto) mpqc::begin | ( | const std::pair< RangeA, RangeB > & | rng | ) |
constructs a pair of begin iterators for the alpha and beta ranges
- Template Parameters
-
RangeA a range type RangeB a range type
◆ beta() [1/8]
template<typename String , typename = std::enable_if_t<meta::is_string_v<String>>>
auto mpqc::beta | ( | const SlaterDeterminant< String > & | det | ) |
- Parameters
-
[in] det a SlaterDeterminant object
- Returns
- const reference to beta string
◆ beta() [2/8]
template<typename StringRange , typename = std::enable_if_t<!meta::is_string_v<StringRange>>>
decltype(auto) mpqc::beta | ( | const SlaterDeterminant< StringRange > & | det | ) |
- Parameters
-
[in] det a SlaterDeterminant object
- Returns
- beta string iterator
◆ beta() [3/8]
template<typename T1 , typename T2 >
const auto& mpqc::beta | ( | const std::pair< T1, T2 > & | p | ) |
extract beta component of pair p
- Parameters
-
[in] p spin-specific metadata pair
◆ beta() [4/8]
template<typename T1 , typename T2 >
const auto& mpqc::beta | ( | const std::tuple< T1, T2 > & | p | ) |
extract beta component of 2-tuple p
- Parameters
-
[in] p spin-specific metadata pair
◆ beta() [5/8]
template<typename String , typename = std::enable_if_t<meta::is_string_v<String>>>
auto mpqc::beta | ( | SlaterDeterminant< String > & | det | ) |
- Parameters
-
[in] det a SlaterDeterminant object
- Returns
- reference to beta string
◆ beta() [6/8]
template<typename StringRange , typename = std::enable_if_t<!meta::is_string_v<StringRange>>>
auto& mpqc::beta | ( | SlaterDeterminant< StringRange > & | det | ) |
- Parameters
-
[in] det a SlaterDeterminant object
- Returns
- beta string iterator
◆ beta() [7/8]
template<typename T1 , typename T2 >
auto& mpqc::beta | ( | std::pair< T1, T2 > & | p | ) |
extract beta component of pair p
- Parameters
-
[in] p spin-specific metadata pair
◆ beta() [8/8]
template<typename T1 , typename T2 >
auto& mpqc::beta | ( | std::tuple< T1, T2 > & | p | ) |
extract beta component of 2-tuple p
- Parameters
-
[in] p spin-specific metadata pair
◆ betastr() [1/2]
template<typename String >
std::enable_if_t<meta::is_string_v<String>, const String&> mpqc::betastr | ( | const SlaterDeterminant< String > & | det | ) |
- Parameters
-
[in] det a SlaterDeterminant object
- Returns
- const reference to beta string object
◆ betastr() [2/2]
template<typename StringRange , typename = std::enable_if_t<!meta::is_string_v<StringRange>>>
const auto& mpqc::betastr | ( | const SlaterDeterminant< StringRange > & | det | ) |
- Parameters
-
[in] det a SlaterDeterminant object
- Returns
- reference to beta string object
◆ end()
template<typename RangeA , typename RangeB , typename = std::enable_if_t<TiledArray::detail::is_range_v<RangeA> && TiledArray::detail::is_range_v<RangeB>>>
decltype(auto) mpqc::end | ( | const std::pair< RangeA, RangeB > & | rng | ) |
constructs a pair of end iterators for the alpha and beta ranges
- Template Parameters
-
RangeA a range type RangeB a range type
◆ occ_range()
|
inline |
◆ uocc_range()
|
inline |