mpqc::lcao::pbc::ThreeCenterContractionBuilder< Tile, Policy > Class Template Reference
Documentation
template<typename Tile, typename Policy>
class mpqc::lcao::pbc::ThreeCenterContractionBuilder< Tile, Policy >
ThreeCenterContractionBuilder is an integral-direct implementation of two types of contractions (X|μν) D_μν and (X|μν) X that appear in periodic DF-J method. This builder takes advantage of shell-level screening and parallelized summation over unit cells for coulomb interaction
Public Types | |
using | array_type = TA::DistArray< Tile, Policy > |
using | const_data_ptr = typename Tile::const_pointer |
using | WorldObject_ = madness::WorldObject< ThreeCenterContractionBuilder< Tile, Policy > > |
using | ThreeCenterContractionBuilder_ = ThreeCenterContractionBuilder< Tile, Policy > |
using | Factory = ::mpqc::lcao::pbc::gaussian::AOFactory< Tile, Policy > |
using | Engine = ::mpqc::lcao::gaussian::ShrPool< libint2::Engine > |
using | Basis = ::mpqc::lcao::gaussian::Basis |
using | Shell = ::mpqc::lcao::gaussian::Shell |
using | shellpair_list_t = std::vector< std::vector< size_t > > |
using | func_offset_list = std::unordered_map< size_t, std::tuple< size_t, size_t > > |
Public Member Functions | |
ThreeCenterContractionBuilder (madness::World &world, std::shared_ptr< const Basis > basis, std::shared_ptr< const Basis > aux_basis, const std::shared_ptr< const UnitCell > &unitcell, const Vector3i &R_max, const Vector3i &RJ_max, const Vector3i &RD_max, const shellpair_list_t &sig_shellpair_list, const std::string &screen="dist", double density_threshold=Policy::shape_type::threshold()) | |
This constructs ThreeCenterContractionBuilder using specific basis sets, lattice params, and thresholds. More... | |
ThreeCenterContractionBuilder (Factory &ao_factory) | |
This constructs ThreeCenterContractionBuilder using a Factory object. More... | |
~ThreeCenterContractionBuilder () | |
template<size_t target_rank> | |
array_type | contract_with (array_type const &M, double target_precision) |
This computes either (X|μν) D_μν or (X|μν) X contraction. More... | |
void | init_screener (double target_precision) const |
array_type | compute_contr_Xmn_mn (array_type const &D, double target_precision) const |
This is the implementation of (X|μν) D_μν contraction. More... | |
array_type | compute_contr_Xmn_X (array_type const &X, double target_precision) const |
This is the implementation of (X|μν) X contraction. More... | |
Member Typedef Documentation
◆ array_type
template<typename Tile , typename Policy >
using mpqc::lcao::pbc::ThreeCenterContractionBuilder< Tile, Policy >::array_type = TA::DistArray<Tile, Policy> |
◆ Basis
template<typename Tile , typename Policy >
using mpqc::lcao::pbc::ThreeCenterContractionBuilder< Tile, Policy >::Basis = ::mpqc::lcao::gaussian::Basis |
◆ const_data_ptr
template<typename Tile , typename Policy >
using mpqc::lcao::pbc::ThreeCenterContractionBuilder< Tile, Policy >::const_data_ptr = typename Tile::const_pointer |
◆ Engine
template<typename Tile , typename Policy >
using mpqc::lcao::pbc::ThreeCenterContractionBuilder< Tile, Policy >::Engine = ::mpqc::lcao::gaussian::ShrPool<libint2::Engine> |
◆ Factory
template<typename Tile , typename Policy >
using mpqc::lcao::pbc::ThreeCenterContractionBuilder< Tile, Policy >::Factory = ::mpqc::lcao::pbc::gaussian::AOFactory<Tile, Policy> |
◆ func_offset_list
template<typename Tile , typename Policy >
using mpqc::lcao::pbc::ThreeCenterContractionBuilder< Tile, Policy >::func_offset_list = std::unordered_map<size_t, std::tuple<size_t, size_t> > |
◆ Shell
template<typename Tile , typename Policy >
using mpqc::lcao::pbc::ThreeCenterContractionBuilder< Tile, Policy >::Shell = ::mpqc::lcao::gaussian::Shell |
◆ shellpair_list_t
template<typename Tile , typename Policy >
using mpqc::lcao::pbc::ThreeCenterContractionBuilder< Tile, Policy >::shellpair_list_t = std::vector<std::vector<size_t> > |
◆ ThreeCenterContractionBuilder_
template<typename Tile , typename Policy >
using mpqc::lcao::pbc::ThreeCenterContractionBuilder< Tile, Policy >::ThreeCenterContractionBuilder_ = ThreeCenterContractionBuilder<Tile, Policy> |
◆ WorldObject_
template<typename Tile , typename Policy >
using mpqc::lcao::pbc::ThreeCenterContractionBuilder< Tile, Policy >::WorldObject_ = madness::WorldObject<ThreeCenterContractionBuilder<Tile, Policy> > |
Constructor & Destructor Documentation
◆ ThreeCenterContractionBuilder() [1/2]
template<typename Tile , typename Policy >
|
inline |
This constructs ThreeCenterContractionBuilder using specific basis sets, lattice params, and thresholds.
- Parameters
-
world MADNESS world object basis orbital basis set aux_basis auxiliary fitting basis set unitcell unit cell R_max range of expansion of Bloch Gaussians in AO Gaussians RJ_max range of Coulomb operation RD_max range of density representation sig_shellpair_list a non-negligible (μ, ν) shell pair list where μ is in the reference unit cell and ν is in the neighboring unit cells screen method for screening three-body integrals density_threshold threshold for screening density blocks
◆ ThreeCenterContractionBuilder() [2/2]
template<typename Tile , typename Policy >
|
inline |
This constructs ThreeCenterContractionBuilder using a Factory object.
- Parameters
-
ao_factory a Factory object
◆ ~ThreeCenterContractionBuilder()
template<typename Tile , typename Policy >
|
inline |
Member Function Documentation
◆ compute_contr_Xmn_mn()
template<typename Tile , typename Policy >
|
inline |
This is the implementation of (X|μν) D_μν contraction.
- Parameters
-
D density matrix target_precision
- Returns
◆ compute_contr_Xmn_X()
template<typename Tile , typename Policy >
|
inline |
This is the implementation of (X|μν) X contraction.
- Parameters
-
X is array X target_precision
- Returns
◆ contract_with()
template<typename Tile , typename Policy >
template<size_t target_rank>
|
inline |
This computes either (X|μν) D_μν or (X|μν) X contraction.
- Template Parameters
-
target_rank is 1 for (X|μν) D_μν and is 2 for (X|μν) X
- Parameters
-
M is density matrix or X target_precision
- Returns
- result array should have same rank as
- Template Parameters
-
target_rank
◆ init_screener()
template<typename Tile , typename Policy >
|
inline |
The documentation for this class was generated from the following files:
- mpqc/chemistry/qc/lcao/scf/fwd.h
- mpqc/chemistry/qc/lcao/scf/pbc/three_center_contraction_builder.h