mpqc::lcao::pbc::FockBuilder< Tile, Policy > Class Template Referenceabstract

Documentation

template<typename Tile, typename Policy>
class mpqc::lcao::pbc::FockBuilder< Tile, Policy >

FockBuilder computes the (2-e part of) the Fock matrix under PBC using the (1-particle) density matrix

Public Types

using array_type = TA::DistArray< Tile, Policy >
 
using result_type = std::tuple< array_type, std::optional< double > >
 

Public Member Functions

virtual ~FockBuilder ()
 
virtual result_type operator() (array_type const &D, double target_precision=std::numeric_limits< double >::epsilon(), bool is_density_diagonal=false)=0
 This computes the 2-e part of the closed-shell Fock matrix in periodic HF. More...
 
virtual void register_fock (const array_type &, FormulaRegistry< array_type > &) const =0
 
virtual Vector3i fock_lattice_range () const =0
 This returns the lattice range of Fock representation F(μ_0, ν_R) More...
 

Member Typedef Documentation

◆ array_type

template<typename Tile , typename Policy >
using mpqc::lcao::pbc::FockBuilder< Tile, Policy >::array_type = TA::DistArray<Tile, Policy>

◆ result_type

template<typename Tile , typename Policy >
using mpqc::lcao::pbc::FockBuilder< Tile, Policy >::result_type = std::tuple<array_type, std::optional<double> >

Constructor & Destructor Documentation

◆ ~FockBuilder()

template<typename Tile , typename Policy >
virtual mpqc::lcao::pbc::FockBuilder< Tile, Policy >::~FockBuilder ( )
inlinevirtual

Member Function Documentation

◆ fock_lattice_range()

template<typename Tile , typename Policy >
virtual Vector3i mpqc::lcao::pbc::FockBuilder< Tile, Policy >::fock_lattice_range ( ) const
pure virtual

This returns the lattice range of Fock representation F(μ_0, ν_R)

Returns
a vector of number of unit cells included in each positive direction

Implemented in mpqc::lcao::pbc::FockBuilderImpl< Tile, Policy, J_Builder, K_Builder, MA_Builder >.

◆ operator()()

template<typename Tile , typename Policy >
virtual result_type mpqc::lcao::pbc::FockBuilder< Tile, Policy >::operator() ( array_type const &  D,
double  target_precision = std::numeric_limits< double >::epsilon(),
bool  is_density_diagonal = false 
)
pure virtual

This computes the 2-e part of the closed-shell Fock matrix in periodic HF.

Parameters
Dthe (1-particle) density matrix D(μ_0, ν_Rd); this should be single-occupancy, i.e. integrate to half the number of electrons
target_precisionthe (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_diagonaltrue if D only has a D(μ_0, ν_0) block
Returns
Fock matrix + an optional energy correction

Implemented in mpqc::lcao::pbc::FockBuilderImpl< Tile, Policy, J_Builder, K_Builder, MA_Builder >.

◆ register_fock()

template<typename Tile , typename Policy >
virtual void mpqc::lcao::pbc::FockBuilder< Tile, Policy >::register_fock ( const array_type ,
FormulaRegistry< array_type > &   
) const
pure virtual

The documentation for this class was generated from the following file: