mpqc::lcao::f12 Namespace Reference

Namespaces

 detail
 

Classes

struct  F12PairEnergyReductor
 tile reductor that computes pair contributions to the F12 energy More...
 
struct  GTGParams
 

Functions

template<typename Tile >
TA::DistArray< Tile, TA::SparsePolicy > compute_V_ijkl_db_df (lcao::LCAOFactory< Tile, TA::SparsePolicy > &lcao_factory, TA::SparseShape< float > &shape)
 
template<typename Tile , typename Policy >
std::tuple< TA::DistArray< Tile, Policy >, TA::DistArray< Tile, Policy > > compute_V_ixjy_ixyj_db_df (lcao::LCAOFactory< Tile, Policy > &lcao_factory, bool cabs=true)
 
template<typename Tile , typename Policy >
TA::DistArray< Tile, Policy > compute_V_xyab_db_df (lcao::LCAOFactory< Tile, Policy > &lcao_factory)
 
template<typename Tile , typename Policy >
TA::DistArray< Tile, Policy > compute_V_iaxy_db_df (lcao::LCAOFactory< Tile, Policy > &lcao_factory)
 
template<typename Tile >
TA::DistArray< Tile, TA::SparsePolicy > compute_X_ijkl_db_df (lcao::LCAOFactory< Tile, TA::SparsePolicy > &lcao_factory, TA::SparseShape< float > &ijkl_shape)
 
template<typename Tile >
TA::DistArray< Tile, TA::SparsePolicy > compute_B_ijkl_db_df (lcao::LCAOFactory< Tile, TA::SparsePolicy > &lcao_factory, TA::SparseShape< float > &ijkl_shape)
 
template<typename Tile >
TA::DistArray< Tile, TA::SparsePolicy > compute_VT2_ijkl_db_df (lcao::LCAOFactory< Tile, TA::SparsePolicy > &lcao_factory, const TA::DistArray< Tile, TA::SparsePolicy > &t2, const TA::SparseShape< float > &ijkl_shape)
 
template<typename Tile >
TA::DistArray< Tile, TA::SparsePolicy > compute_VT1_ijkl_db_df (lcao::LCAOFactory< Tile, TA::SparsePolicy > &lcao_factory, const TA::DistArray< Tile, TA::SparsePolicy > &t1, const TA::SparseShape< float > &ijkl_shape)
 
template<typename Tile >
TA::DistArray< Tile, TA::SparsePolicy > compute_V_ijkl_df (LCAOFactory< Tile, TA::SparsePolicy > &lcao_factory, TA::SparseShape< float > &shape)
 
template<typename Tile >
TA::DistArray< Tile, TA::SparsePolicy > compute_V_ijkl (LCAOFactory< Tile, TA::SparsePolicy > &lcao_factory, TA::SparseShape< float > &shape)
 
template<typename Tile >
TA::DistArray< Tile, TA::SparsePolicy > compute_X_ijkl_df (LCAOFactory< Tile, TA::SparsePolicy > &lcao_factory, TA::SparseShape< float > &ijkl_shape)
 
template<typename Tile >
TA::DistArray< Tile, TA::SparsePolicy > compute_X_ijkl (LCAOFactory< Tile, TA::SparsePolicy > &lcao_factory, TA::SparseShape< float > &ijkl_shape)
 
template<typename Tile >
TA::DistArray< Tile, TA::SparsePolicy > compute_B_ijkl_C_df (LCAOFactory< Tile, TA::SparsePolicy > &lcao_factory, TA::SparseShape< float > &shape)
 
template<typename Tile >
TA::DistArray< Tile, TA::SparsePolicy > compute_B_ijkl_D_df (LCAOFactory< Tile, TA::SparsePolicy > &lcao_factory, TA::SparseShape< float > &shape)
 
template<typename Tile >
TA::DistArray< Tile, TA::SparsePolicy > compute_B_ijkl_C (LCAOFactory< Tile, TA::SparsePolicy > &lcao_factory, TA::SparseShape< float > &shape)
 
template<typename Tile >
TA::DistArray< Tile, TA::SparsePolicy > compute_B_ijkl_D (LCAOFactory< Tile, TA::SparsePolicy > &lcao_factory, TA::SparseShape< float > &shape)
 
template<typename Tile , typename Policy >
TA::DistArray< Tile, Policy > compute_V_iakl_df (LCAOFactory< Tile, Policy > &lcao_factory, bool use_cabs=true, bool pq=true)
 
template<typename Tile , typename Policy >
TA::DistArray< Tile, Policy > compute_V_iakl (LCAOFactory< Tile, Policy > &lcao_factory, bool use_cabs=true, bool pq=true)
 
template<typename Tile , typename Policy >
TA::DistArray< Tile, Policy > compute_V_ijab_df (LCAOFactory< Tile, Policy > &lcao_factory, bool use_cabs=true, bool reduced_memory=true)
 
template<typename Tile , typename Policy >
TA::DistArray< Tile, Policy > compute_V_ijab (LCAOFactory< Tile, Policy > &lcao_factory, bool use_cabs=true)
 
template<typename Tile , typename Policy >
TA::DistArray< Tile, Policy > compute_V_ijpq (LCAOFactory< Tile, Policy > &lcao_factory, bool use_cabs=true)
 
template<typename Tile , typename Policy >
TA::DistArray< Tile, Policy > compute_C_ijab_df (LCAOFactory< Tile, Policy > &lcao_factory)
 
template<typename Tile , typename Policy >
TA::DistArray< Tile, Policy > compute_C_ijab (LCAOFactory< Tile, Policy > &lcao_factory)
 
template<typename Tile , typename DirectArray >
TA::DistArray< Tile, TA::SparsePolicy > compute_VT2_ijkl_df_direct (LCAOFactory< Tile, TA::SparsePolicy > &lcao_factory, const TA::DistArray< Tile, TA::SparsePolicy > &t2, const TA::SparseShape< float > &shape, DirectArray direct_array, bool use_cabs=true)
 
template<typename Tile >
TA::DistArray< Tile, TA::SparsePolicy > compute_VT2_ijkl_df (LCAOFactory< Tile, TA::SparsePolicy > &lcao_factory, const TA::DistArray< Tile, TA::SparsePolicy > &t2, const TA::SparseShape< float > &shape, bool use_cabs=true, bool reduced_memory=true)
 
template<typename Tile >
TA::DistArray< Tile, TA::SparsePolicy > compute_VT2_ijkl (LCAOFactory< Tile, TA::SparsePolicy > &lcao_factory, const TA::DistArray< Tile, TA::SparsePolicy > &t2, const TA::SparseShape< float > &shape, bool use_cabs=true)
 
template<typename Tile >
TA::DistArray< Tile, TA::SparsePolicy > compute_VT1_ijkl_df (LCAOFactory< Tile, TA::SparsePolicy > &lcao_factory, const TA::DistArray< Tile, TA::SparsePolicy > &t1, const TA::SparseShape< float > &shape, bool use_cabs=true)
 
template<typename Tile >
TA::DistArray< Tile, TA::SparsePolicy > compute_VT1_ijkl (LCAOFactory< Tile, TA::SparsePolicy > &lcao_factory, const TA::DistArray< Tile, TA::SparsePolicy > &t1, const TA::SparseShape< float > &shape, bool use_cabs=true)
 
template<typename Tile , typename Policy , typename String >
std::tuple< TA::DistArray< Tile, Policy >, TA::DistArray< Tile, Policy > > VX_pqrs_pqsr (const std::string &target_str, LCAOFactory< Tile, Policy > &lcao_factory, const String &p, const String &q, const String &r, const String &s, bool df=true, bool cabs=true)
 
double basis_to_f12exponent (const std::string &basis_name)
 
std::vector< std::pair< double, double > > ttg_ng_fit (std::size_t n, double zeta)
 
std::vector< std::pair< double, double > > gtg_params_squared (const std::vector< std::pair< double, double >> &pragmas)
 
template<bool P1_eq_P2 = false>
TiledArray::SparseShape< float > make_ijij_ijji_shape (const TiledArray::TiledRange &trange)
 computes shape of F12 intermediates in "diagonal" approximation More...
 
template<typename Tile , typename Policy >
void convert_X_ijkl (TiledArray::Array< double, 4, Tile, Policy > &ijkl, const Eigen::MatrixXd &F)
 
template<typename Tile , typename Policy >
TiledArray::Array< double, 4, Tile, Policy > convert_C_ijab (TiledArray::Array< double, 4, Tile, Policy > &ijab, const std::size_t n_occ, const std::size_t n_frozen, const Eigen::VectorXd &ens)
 

Variables

constexpr double C_ijij = (1. / 2 + 1. / 4) / 2
 
constexpr double C_ijji = (1. / 2 - 1. / 4) / 2
 
constexpr double CC_ijij = C_ijij * C_ijij + C_ijji * C_ijji
 
constexpr double CC_ijji = 2 * C_ijij * C_ijji
 
constexpr double C_ijij_bar = 2 * C_ijij - C_ijji
 
constexpr double C_ijji_bar = 2 * C_ijji - C_ijij
 
constexpr double CC_ijij_bar = 2 * CC_ijij - CC_ijji
 
constexpr double CC_ijji_bar = 2 * CC_ijji - CC_ijij
 

Function Documentation

◆ basis_to_f12exponent()

double mpqc::lcao::f12::basis_to_f12exponent ( const std::string &  basis_name)

◆ compute_B_ijkl_C()

template<typename Tile >
TA::DistArray<Tile, TA::SparsePolicy> mpqc::lcao::f12::compute_B_ijkl_C ( LCAOFactory< Tile, TA::SparsePolicy > &  lcao_factory,
TA::SparseShape< float > &  shape 
)

Evaluates the MP2-F12 B intermediate, $B_{ij}^{kl}$ , via the approximation C.

Parameters
lcao_factorythe LCAO factory
[in]shapethe SparseShape object used to construct the result
Returns
B(i,j,k,l)

◆ compute_B_ijkl_C_df()

template<typename Tile >
TA::DistArray<Tile, TA::SparsePolicy> mpqc::lcao::f12::compute_B_ijkl_C_df ( LCAOFactory< Tile, TA::SparsePolicy > &  lcao_factory,
TA::SparseShape< float > &  shape 
)

Evaluates the MP2-F12 B intermediate, $B_{ij}^{kl}$ , via the approximation C and density fitting.

Parameters
lcao_factorythe LCAO factory
[in]shapethe SparseShape object used to construct the result
Returns
B(i,j,k,l)

◆ compute_B_ijkl_D()

template<typename Tile >
TA::DistArray<Tile, TA::SparsePolicy> mpqc::lcao::f12::compute_B_ijkl_D ( LCAOFactory< Tile, TA::SparsePolicy > &  lcao_factory,
TA::SparseShape< float > &  shape 
)

Evaluates the MP2-F12 B intermediate, $B_{ij}^{kl}$ , via the approximation D.

Parameters
lcao_factorythe LCAO factory
[in]shapethe SparseShape object used to construct the result
Returns
B(i,j,k,l)

◆ compute_B_ijkl_D_df()

template<typename Tile >
TA::DistArray<Tile, TA::SparsePolicy> mpqc::lcao::f12::compute_B_ijkl_D_df ( LCAOFactory< Tile, TA::SparsePolicy > &  lcao_factory,
TA::SparseShape< float > &  shape 
)

Evaluates the MP2-F12 B intermediate, $B_{ij}^{kl}$ , via the approximation D and density fitting.

Parameters
lcao_factorythe LCAO factory
[in]shapethe SparseShape object used to construct the result
Returns
B(i,j,k,l)

◆ compute_B_ijkl_db_df()

template<typename Tile >
TA::DistArray<Tile, TA::SparsePolicy> mpqc::lcao::f12::compute_B_ijkl_db_df ( lcao::LCAOFactory< Tile, TA::SparsePolicy > &  lcao_factory,
TA::SparseShape< float > &  ijkl_shape 
)

◆ compute_C_ijab()

template<typename Tile , typename Policy >
TA::DistArray<Tile, Policy> mpqc::lcao::f12::compute_C_ijab ( LCAOFactory< Tile, Policy > &  lcao_factory)

Evaluates the MP2-F12 C intermediate, $C_{ij}^{ab}$ , via the CABS approach.

Parameters
lcao_factorythe LCAO factory
Returns
C(i,j,a,b)

◆ compute_C_ijab_df()

template<typename Tile , typename Policy >
TA::DistArray<Tile, Policy> mpqc::lcao::f12::compute_C_ijab_df ( LCAOFactory< Tile, Policy > &  lcao_factory)

Evaluates the MP2-F12 C intermediate, $C_{ij}^{ab}$ , via the CABS approach and density fitting.

Parameters
lcao_factorythe LCAO factory
Returns
C(i,j,a,b)

◆ compute_V_iakl()

template<typename Tile , typename Policy >
TA::DistArray<Tile, Policy> mpqc::lcao::f12::compute_V_iakl ( LCAOFactory< Tile, Policy > &  lcao_factory,
bool  use_cabs = true,
bool  pq = true 
)

Evaluates the (CC-)F12 V intermediate, $V_{ia}^{kl}$ , via the CABS approach.

Parameters
lcao_factorythe LCAO factory
use_cabsif false, will skip the CABS-dependent contributions
pqif false, will skip the "pq" contribution
Returns
V(i,a,k,l)

◆ compute_V_iakl_df()

template<typename Tile , typename Policy >
TA::DistArray<Tile, Policy> mpqc::lcao::f12::compute_V_iakl_df ( LCAOFactory< Tile, Policy > &  lcao_factory,
bool  use_cabs = true,
bool  pq = true 
)

Evaluates the (CC-)F12 V intermediate, $V_{ia}^{kl}$ , via the CABS approach and density fitting.

Parameters
lcao_factorythe LCAO factory
use_cabsif false, will skip the CABS-dependent contributions
pqif false, will skip the "pq" contribution
Returns
V(i,a,k,l)

◆ compute_V_iaxy_db_df()

template<typename Tile , typename Policy >
TA::DistArray<Tile, Policy> mpqc::lcao::f12::compute_V_iaxy_db_df ( lcao::LCAOFactory< Tile, Policy > &  lcao_factory)

◆ compute_V_ijab()

template<typename Tile , typename Policy >
TA::DistArray<Tile, Policy> mpqc::lcao::f12::compute_V_ijab ( LCAOFactory< Tile, Policy > &  lcao_factory,
bool  use_cabs = true 
)

Evaluates the (CC-)F12 V intermediate, $V_{ij}^{ab}$ , via the CABS approach.

Parameters
lcao_factorythe LCAO factory
use_cabsif false, will skip the CABS-dependent contributions
Returns
V(i,j,a,b)

◆ compute_V_ijab_df()

template<typename Tile , typename Policy >
TA::DistArray<Tile, Policy> mpqc::lcao::f12::compute_V_ijab_df ( LCAOFactory< Tile, Policy > &  lcao_factory,
bool  use_cabs = true,
bool  reduced_memory = true 
)

Evaluates the (CC-)F12 V intermediate, $V_{ij}^{ab}$ , via the CABS approach and density fitting.

Parameters
lcao_factorythe LCAO factory
use_cabsif false, will skip the CABS-dependent contributions
reduced_memoryif true, evaluate abpq and abma' integrals via lazy DF
Returns
V(i,j,a,b)

◆ compute_V_ijkl()

template<typename Tile >
TA::DistArray<Tile, TA::SparsePolicy> mpqc::lcao::f12::compute_V_ijkl ( LCAOFactory< Tile, TA::SparsePolicy > &  lcao_factory,
TA::SparseShape< float > &  shape 
)

Evaluates the MP2-F12 V intermediate, $V_{ij}^{kl}$ , via the CABS approach.

Parameters
lcao_factorythe LCAO factory
[in]shapethe SparseShape object used to construct the result
Returns
V(i,j,k,l)

◆ compute_V_ijkl_db_df()

template<typename Tile >
TA::DistArray<Tile, TA::SparsePolicy> mpqc::lcao::f12::compute_V_ijkl_db_df ( lcao::LCAOFactory< Tile, TA::SparsePolicy > &  lcao_factory,
TA::SparseShape< float > &  shape 
)

◆ compute_V_ijkl_df()

template<typename Tile >
TA::DistArray<Tile, TA::SparsePolicy> mpqc::lcao::f12::compute_V_ijkl_df ( LCAOFactory< Tile, TA::SparsePolicy > &  lcao_factory,
TA::SparseShape< float > &  shape 
)

Evaluates the MP2-F12 V intermediate, $V_{ij}^{kl}$ , via the CABS approach and density fitting.

Parameters
lcao_factorythe LCAO factory
[in]shapethe SparseShape object used to construct the result
Returns
V(i,j,k,l)

◆ compute_V_ijpq()

template<typename Tile , typename Policy >
TA::DistArray<Tile, Policy> mpqc::lcao::f12::compute_V_ijpq ( LCAOFactory< Tile, Policy > &  lcao_factory,
bool  use_cabs = true 
)

Evaluates the (CC-)F12 V intermediate, $V_{ij}^{p'q'}$ , via the CABS approach.

Parameters
lcao_factorythe LCAO factory
use_cabsif false, will skip the CABS-dependent contributions
Returns
V(i,j,p',q')

◆ compute_V_ixjy_ixyj_db_df()

template<typename Tile , typename Policy >
std::tuple<TA::DistArray<Tile, Policy>, TA::DistArray<Tile, Policy> > mpqc::lcao::f12::compute_V_ixjy_ixyj_db_df ( lcao::LCAOFactory< Tile, Policy > &  lcao_factory,
bool  cabs = true 
)

◆ compute_V_xyab_db_df()

template<typename Tile , typename Policy >
TA::DistArray<Tile, Policy> mpqc::lcao::f12::compute_V_xyab_db_df ( lcao::LCAOFactory< Tile, Policy > &  lcao_factory)

◆ compute_VT1_ijkl()

template<typename Tile >
TA::DistArray<Tile, TA::SparsePolicy> mpqc::lcao::f12::compute_VT1_ijkl ( LCAOFactory< Tile, TA::SparsePolicy > &  lcao_factory,
const TA::DistArray< Tile, TA::SparsePolicy > &  t1,
const TA::SparseShape< float > &  shape,
bool  use_cabs = true 
)

Evaluates contraction of the V F12 intermediate with the singles amplitudes, $T_{a}^{j} * V_{ia}^{kl}$ , via the CABS approach.

Parameters
lcao_factorythe LCAO factory
t1the singles amplitude
shapethe SparseShape object used to construct the result
use_cabsif false, will skip the CABS-dependent terms
Returns
result("i,j,k,l")

◆ compute_VT1_ijkl_db_df()

template<typename Tile >
TA::DistArray<Tile, TA::SparsePolicy> mpqc::lcao::f12::compute_VT1_ijkl_db_df ( lcao::LCAOFactory< Tile, TA::SparsePolicy > &  lcao_factory,
const TA::DistArray< Tile, TA::SparsePolicy > &  t1,
const TA::SparseShape< float > &  ijkl_shape 
)

◆ compute_VT1_ijkl_df()

template<typename Tile >
TA::DistArray<Tile, TA::SparsePolicy> mpqc::lcao::f12::compute_VT1_ijkl_df ( LCAOFactory< Tile, TA::SparsePolicy > &  lcao_factory,
const TA::DistArray< Tile, TA::SparsePolicy > &  t1,
const TA::SparseShape< float > &  shape,
bool  use_cabs = true 
)

Evaluates contraction of the V F12 intermediate with the singles amplitudes, $T_{a}^{j} * V_{ia}^{kl}$ , via the CABS approach and density fitting.

Parameters
lcao_factorythe LCAO factory
t1the singles amplitude
shapethe SparseShape object used to construct the result
use_cabsif false, will skip the CABS-dependent terms
Returns
result("i,j,k,l")

◆ compute_VT2_ijkl()

template<typename Tile >
TA::DistArray<Tile, TA::SparsePolicy> mpqc::lcao::f12::compute_VT2_ijkl ( LCAOFactory< Tile, TA::SparsePolicy > &  lcao_factory,
const TA::DistArray< Tile, TA::SparsePolicy > &  t2,
const TA::SparseShape< float > &  shape,
bool  use_cabs = true 
)

Evaluates contraction of the V and C F12 intermediates with the doubles amplitudes, $T_{ab}^{ij} * (V_{kl}^{ab} + C_{kl}^{ab})$ , via the CABS approach.

Parameters
lcao_factorythe LCAO factory
t2the doubles amplitude
shapethe SparseShape object used to construct the result
use_cabsif false, will skip the CABS-dependent terms
Returns
result("i,j,k,l")

◆ compute_VT2_ijkl_db_df()

template<typename Tile >
TA::DistArray<Tile, TA::SparsePolicy> mpqc::lcao::f12::compute_VT2_ijkl_db_df ( lcao::LCAOFactory< Tile, TA::SparsePolicy > &  lcao_factory,
const TA::DistArray< Tile, TA::SparsePolicy > &  t2,
const TA::SparseShape< float > &  ijkl_shape 
)

◆ compute_VT2_ijkl_df()

template<typename Tile >
TA::DistArray<Tile, TA::SparsePolicy> mpqc::lcao::f12::compute_VT2_ijkl_df ( LCAOFactory< Tile, TA::SparsePolicy > &  lcao_factory,
const TA::DistArray< Tile, TA::SparsePolicy > &  t2,
const TA::SparseShape< float > &  shape,
bool  use_cabs = true,
bool  reduced_memory = true 
)

Evaluates contraction of the V and C F12 intermediates with the doubles amplitudes, $T_{ab}^{ij} * (V_{kl}^{ab} + C_{kl}^{ab})$ , via the CABS approach and density fitting.

Parameters
lcao_factorythe LCAO factory
t2the doubles amplitude
shapethe SparseShape object used to construct the result
use_cabsif false, will skip the CABS-dependent terms
reduced_memoryif true, evaluate abpq and abma' integrals via lazy DF
Returns
result("i,j,k,l")

◆ compute_VT2_ijkl_df_direct()

template<typename Tile , typename DirectArray >
TA::DistArray<Tile, TA::SparsePolicy> mpqc::lcao::f12::compute_VT2_ijkl_df_direct ( LCAOFactory< Tile, TA::SparsePolicy > &  lcao_factory,
const TA::DistArray< Tile, TA::SparsePolicy > &  t2,
const TA::SparseShape< float > &  shape,
DirectArray  direct_array,
bool  use_cabs = true 
)

Evaluates contraction of the V and C F12 intermediates with the doubles amplitudes, $T_{ab}^{ij} * (V_{kl}^{ab} + C_{kl}^{ab})$ , via the CABS approach, density fitting, and direct evaluation of 2-electron Coulomb integral

Parameters
lcao_factorythe LCAO factory
t2the doubles amplitude
shapethe SparseShape object used to construct the result
direct_arraydirect 2-e Coulomb integral tensor $V_{\rho \sigma}^{\mu \nu}$
use_cabsif false, will skip the CABS-dependent terms
Returns
result("i,j,k,l")

◆ compute_X_ijkl()

template<typename Tile >
TA::DistArray<Tile, TA::SparsePolicy> mpqc::lcao::f12::compute_X_ijkl ( LCAOFactory< Tile, TA::SparsePolicy > &  lcao_factory,
TA::SparseShape< float > &  ijkl_shape 
)

Evaluates the MP2-F12 V intermediate, $X_{ij}^{kl}$ , via the CABS approach.

Parameters
lcao_factorythe LCAO factory
[in]shapethe SparseShape object used to construct the result
Returns
X(i,j,k,l)

◆ compute_X_ijkl_db_df()

template<typename Tile >
TA::DistArray<Tile, TA::SparsePolicy> mpqc::lcao::f12::compute_X_ijkl_db_df ( lcao::LCAOFactory< Tile, TA::SparsePolicy > &  lcao_factory,
TA::SparseShape< float > &  ijkl_shape 
)

◆ compute_X_ijkl_df()

template<typename Tile >
TA::DistArray<Tile, TA::SparsePolicy> mpqc::lcao::f12::compute_X_ijkl_df ( LCAOFactory< Tile, TA::SparsePolicy > &  lcao_factory,
TA::SparseShape< float > &  ijkl_shape 
)

Evaluates the MP2-F12 X intermediate, $X_{ij}^{kl}$ , via the CABS approach and density fitting.

Parameters
lcao_factorythe LCAO factory
[in]shapethe SparseShape object used to construct the result
Returns
X(i,j,k,l)

◆ convert_C_ijab()

template<typename Tile , typename Policy >
TiledArray::Array<double, 4, Tile, Policy> mpqc::lcao::f12::convert_C_ijab ( TiledArray::Array< double, 4, Tile, Policy > &  ijab,
const std::size_t  n_occ,
const std::size_t  n_frozen,
const Eigen::VectorXd &  ens 
)

◆ convert_X_ijkl()

template<typename Tile , typename Policy >
void mpqc::lcao::f12::convert_X_ijkl ( TiledArray::Array< double, 4, Tile, Policy > &  ijkl,
const Eigen::MatrixXd &  F 
)

◆ gtg_params_squared()

std::vector<std::pair<double, double> > mpqc::lcao::f12::gtg_params_squared ( const std::vector< std::pair< double, double >> &  pragmas)

◆ make_ijij_ijji_shape()

template<bool P1_eq_P2 = false>
TiledArray::SparseShape<float> mpqc::lcao::f12::make_ijij_ijji_shape ( const TiledArray::TiledRange &  trange)

computes shape of F12 intermediates in "diagonal" approximation

F12 theory contains several intermediates which in the diagonal form are sparse: only elements $ I^{ij}_{ij} $ and $ I^{ji}_{ij} $ of the intermediate $ I^{ij}_{kl} $ must be computed. Therefore only shape elements [i,j,i,j] and [i,j,j,i] are needed.

Template Parameters
P1_eq_P2if true , restrict i <= j
Note
make sure the occ is blocked by 1! TODO must rewrite intermediate expressions to support P1_eq_P2==true, e.g. <ij|ma'><ma'|r|ij> term must become <ij|ma'><ma'|r|ij> + <ij|a'm><a'm|r|ij>

◆ ttg_ng_fit()

std::vector< std::pair< double, double > > mpqc::lcao::f12::ttg_ng_fit ( std::size_t  n,
double  zeta 
)

◆ VX_pqrs_pqsr()

template<typename Tile , typename Policy , typename String >
std::tuple<TA::DistArray<Tile, Policy>, TA::DistArray<Tile, Policy> > mpqc::lcao::f12::VX_pqrs_pqsr ( const std::string &  target_str,
LCAOFactory< Tile, Policy > &  lcao_factory,
const String &  p,
const String &  q,
const String &  r,
const String &  s,
bool  df = true,
bool  cabs = true 
)

the DF-based builder for the F12 intermediates V (or X). The V intermediate is defined as $V_{pq}^{rs} \equiv R_{pq}^{\alpha \beta} g_{\alpha \beta}^{r s}$ and $V_{pq}^{sr} \equiv R_{pq}^{\alpha \beta} g_{\alpha \beta}^{r s}$, and the X intermediate is obtained from these expressions by replacement $ g \to R $. If p refers to the same space as q or r refers to the same space as s , the two tensors are equivalent and only the former is computed.

Template Parameters
Stringany string type (e.g., std::basic_string and char[])
Parameters
target_strstd::string, the only valid vales are "V" or "X"
lcao_factorythe LCAO factory
pan OrbitalIndex key (must be known to lcao_factory )
qan OrbitalIndex key (must be known to lcao_factory )
ran OrbitalIndex key (must be known to lcao_factory )
san OrbitalIndex key (must be known to lcao_factory )
dfif true , use density fitting (df=false is not yet supported)
cabsif false , skip the CABS contributions; the default value is true
Returns
std::tuple with V("p,q,r,s") and V("p,q,s,r"); the latter is empty if p refers to the same space as q or r refers to the same space as s .

Variable Documentation

◆ C_ijij

constexpr double mpqc::lcao::f12::C_ijij = (1. / 2 + 1. / 4) / 2
constexpr

◆ C_ijij_bar

constexpr double mpqc::lcao::f12::C_ijij_bar = 2 * C_ijij - C_ijji
constexpr

◆ C_ijji

constexpr double mpqc::lcao::f12::C_ijji = (1. / 2 - 1. / 4) / 2
constexpr

◆ C_ijji_bar

constexpr double mpqc::lcao::f12::C_ijji_bar = 2 * C_ijji - C_ijij
constexpr

◆ CC_ijij

constexpr double mpqc::lcao::f12::CC_ijij = C_ijij * C_ijij + C_ijji * C_ijji
constexpr

◆ CC_ijij_bar

constexpr double mpqc::lcao::f12::CC_ijij_bar = 2 * CC_ijij - CC_ijji
constexpr

◆ CC_ijji

constexpr double mpqc::lcao::f12::CC_ijji = 2 * C_ijij * C_ijji
constexpr

◆ CC_ijji_bar

constexpr double mpqc::lcao::f12::CC_ijji_bar = 2 * CC_ijji - CC_ijij
constexpr