•All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Modules Pages
Search Results
mpqc::lcao::pbc::FockBuilderImpl< Tile, Policy, J_Builder, K_Builder, MA_Builder > Class Template Reference
Collaboration diagram for mpqc::lcao::pbc::FockBuilderImpl< Tile, Policy, J_Builder, K_Builder, MA_Builder >:

Documentation
template<typename Tile, typename Policy, typename J_Builder = DirectFockBuilder<Tile, Policy>, typename K_Builder = DirectFockBuilder<Tile, Policy>, typename MA_Builder = ::mpqc::pbc::ma::MA_CFFLatticeSum< pbc::gaussian::AOFactory<Tile, Policy>>>
class mpqc::lcao::pbc::FockBuilderImpl< Tile, Policy, J_Builder, K_Builder, MA_Builder >
pbc::MaJFockBuilder is an implementation of pbc::FockBuilder with multipole-accelerated 4-center Coulomb and 4-center exchange. For Coulomb, multipole approximation is used in Crystal Far Field. The builders for near-field Coulomb and exchange are customizable.
Public Types | |
using factory_type = pbc::gaussian::AOFactory< Tile, Policy > | |
using array_type = typename factory_type::TArray | |
using result_type = typename FockBuilder< Tile, Policy >::result_type | |
![]() | |
using array_type = TA::DistArray< Tile, Policy > | |
using result_type = std::tuple< array_type, std::optional< double > > | |
Public Member Functions | |
FockBuilderImpl (factory_type &factory) | |
~FockBuilderImpl () | |
result_type operator() (array_type const &D, double target_precision, bool is_density_diagonal) override | |
This computes the 2-e part of the closed-shell Fock matrix in periodic HF. More... | |
void register_fock (const array_type &fock, FormulaRegistry< array_type > ®istry) const override | |
Vector3i fock_lattice_range () const override | |
This returns the lattice range of Fock representation F(μ_0, ν_R) More... | |
const MA_Builder * multipole_builder () const | |
const J_Builder * coulomb_builder () const | |
const K_Builder * exchange_builder () const | |
![]() | |
virtual ~FockBuilder () | |
Static Public Attributes | |
static constexpr const bool have_ma = !std::is_same_v<MA_Builder, void> | |
Member Typedef Documentation
◆ array_type
template<typename Tile , typename Policy , typename J_Builder = DirectFockBuilder<Tile, Policy>, typename K_Builder = DirectFockBuilder<Tile, Policy>, typename MA_Builder = ::mpqc::pbc::ma::MA_CFFLatticeSum< pbc::gaussian::AOFactory<Tile, Policy>>>
using mpqc::lcao::pbc::FockBuilderImpl< Tile, Policy, J_Builder, K_Builder, MA_Builder >::array_type = typename factory_type::TArray |
◆ factory_type
template<typename Tile , typename Policy , typename J_Builder = DirectFockBuilder<Tile, Policy>, typename K_Builder = DirectFockBuilder<Tile, Policy>, typename MA_Builder = ::mpqc::pbc::ma::MA_CFFLatticeSum< pbc::gaussian::AOFactory<Tile, Policy>>>
using mpqc::lcao::pbc::FockBuilderImpl< Tile, Policy, J_Builder, K_Builder, MA_Builder >::factory_type = pbc::gaussian::AOFactory<Tile, Policy> |
◆ result_type
template<typename Tile , typename Policy , typename J_Builder = DirectFockBuilder<Tile, Policy>, typename K_Builder = DirectFockBuilder<Tile, Policy>, typename MA_Builder = ::mpqc::pbc::ma::MA_CFFLatticeSum< pbc::gaussian::AOFactory<Tile, Policy>>>
using mpqc::lcao::pbc::FockBuilderImpl< Tile, Policy, J_Builder, K_Builder, MA_Builder >::result_type = typename FockBuilder<Tile, Policy>::result_type |
Constructor & Destructor Documentation
◆ FockBuilderImpl()
template<typename Tile , typename Policy , typename J_Builder = DirectFockBuilder<Tile, Policy>, typename K_Builder = DirectFockBuilder<Tile, Policy>, typename MA_Builder = ::mpqc::pbc::ma::MA_CFFLatticeSum< pbc::gaussian::AOFactory<Tile, Policy>>>
|
inline |
◆ ~FockBuilderImpl()
template<typename Tile , typename Policy , typename J_Builder = DirectFockBuilder<Tile, Policy>, typename K_Builder = DirectFockBuilder<Tile, Policy>, typename MA_Builder = ::mpqc::pbc::ma::MA_CFFLatticeSum< pbc::gaussian::AOFactory<Tile, Policy>>>
|
inline |
Member Function Documentation
◆ coulomb_builder()
template<typename Tile , typename Policy , typename J_Builder = DirectFockBuilder<Tile, Policy>, typename K_Builder = DirectFockBuilder<Tile, Policy>, typename MA_Builder = ::mpqc::pbc::ma::MA_CFFLatticeSum< pbc::gaussian::AOFactory<Tile, Policy>>>
|
inline |
◆ exchange_builder()
template<typename Tile , typename Policy , typename J_Builder = DirectFockBuilder<Tile, Policy>, typename K_Builder = DirectFockBuilder<Tile, Policy>, typename MA_Builder = ::mpqc::pbc::ma::MA_CFFLatticeSum< pbc::gaussian::AOFactory<Tile, Policy>>>
|
inline |
◆ fock_lattice_range()
template<typename Tile , typename Policy , typename J_Builder = DirectFockBuilder<Tile, Policy>, typename K_Builder = DirectFockBuilder<Tile, Policy>, typename MA_Builder = ::mpqc::pbc::ma::MA_CFFLatticeSum< pbc::gaussian::AOFactory<Tile, Policy>>>
|
inlineoverridevirtual |
This returns the lattice range of Fock representation F(μ_0, ν_R)
- Returns
- a vector of number of unit cells included in each positive direction
Implements mpqc::lcao::pbc::FockBuilder< Tile, Policy >.
◆ multipole_builder()
template<typename Tile , typename Policy , typename J_Builder = DirectFockBuilder<Tile, Policy>, typename K_Builder = DirectFockBuilder<Tile, Policy>, typename MA_Builder = ::mpqc::pbc::ma::MA_CFFLatticeSum< pbc::gaussian::AOFactory<Tile, Policy>>>
|
inline |
◆ operator()()
template<typename Tile , typename Policy , typename J_Builder = DirectFockBuilder<Tile, Policy>, typename K_Builder = DirectFockBuilder<Tile, Policy>, typename MA_Builder = ::mpqc::pbc::ma::MA_CFFLatticeSum< pbc::gaussian::AOFactory<Tile, Policy>>>
|
inlineoverridevirtual |
This computes the 2-e part of the closed-shell Fock matrix in periodic HF.
- Parameters
-
D the (1-particle) density matrix D(μ_0, ν_Rd); this should be single-occupancy, i.e. integrate to half the number of electrons target_precision the (absolute) target precision of the Fock matrix; this precision is not in general guaranteed, but the actual precision of the Fock matrix is usually proportional to this value. is_density_diagonal true if D only has a D(μ_0, ν_0) block
- Returns
- Fock matrix + an optional energy correction
Implements mpqc::lcao::pbc::FockBuilder< Tile, Policy >.
◆ register_fock()
template<typename Tile , typename Policy , typename J_Builder = DirectFockBuilder<Tile, Policy>, typename K_Builder = DirectFockBuilder<Tile, Policy>, typename MA_Builder = ::mpqc::pbc::ma::MA_CFFLatticeSum< pbc::gaussian::AOFactory<Tile, Policy>>>
|
inlineoverridevirtual |
Implements mpqc::lcao::pbc::FockBuilder< Tile, Policy >.
Member Data Documentation
◆ have_ma
template<typename Tile , typename Policy , typename J_Builder = DirectFockBuilder<Tile, Policy>, typename K_Builder = DirectFockBuilder<Tile, Policy>, typename MA_Builder = ::mpqc::pbc::ma::MA_CFFLatticeSum< pbc::gaussian::AOFactory<Tile, Policy>>>
|
staticconstexpr |
The documentation for this class was generated from the following file:
- mpqc/chemistry/qc/lcao/scf/pbc/fock_builder.h