mpqc::lcao::FockBuilder< Tile, Policy > Class Template Referenceabstract
Collaboration diagram for mpqc::lcao::FockBuilder< Tile, Policy >:

Documentation

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

FockBuilder computes the (2-e part) of the Fock matrix using either the (1-particle) density matrix or the occupied orbital AO coefficients.

Public Types

using array_type = TA::DistArray< Tile, Policy >
 
using arrayvec_type = TA::DistArrayVector< Tile, Policy >
 
using result_type = std::tuple< arrayvec_type, std::optional< double > >
 
- Public Types inherited from mpqc::DescribedClass
typedef std::shared_ptr< DescribedClass >(* keyval_ctor_wrapper_type) (const KeyVal &)
 

Public Member Functions

virtual ~FockBuilder ()
 
virtual result_type operator() (arrayvec_type const &D, arrayvec_type const &C, double target_precision=std::numeric_limits< double >::epsilon())=0
 computes the 2-e part of the Fock matrix More...
 
virtual void log_iter (std::ostream &os=ExEnv::out0()) const
 
virtual void register_fock (const arrayvec_type &, FormulaRegistry< array_type > &) const =0
 
- Public Member Functions inherited from mpqc::DescribedClass
 DescribedClass ()=default
 
virtual ~DescribedClass ()
 
std::string class_key () const
 
- Public Member Functions inherited from mpqc::enable_shared_from_this< DescribedClass >
virtual ~enable_shared_from_this ()=default
 
std::shared_ptr< DescribedClassshared_from_this ()
 returns the pointer to this object More...
 
std::shared_ptr< std::add_const_t< DescribedClass > > shared_from_this () const
 returns the pointer to this object More...
 
- Public Member Functions inherited from mpqc::detail::virt_base_of_enable_shared_from_this
virtual ~virt_base_of_enable_shared_from_this ()=default
 
bool shared_from_this_possible () const
 
template<typename Target , typename = std::enable_if_t<!std::is_const_v<Target>>>
std::shared_ptr< Target > cast_shared_from_this_to ()
 returns the pointer to this cast to a particular type More...
 
template<typename Target >
std::shared_ptr< std::add_const_t< Target > > cast_shared_from_this_to () const
 returns the pointer to this cast to a particular type More...
 

Additional Inherited Members

- Static Public Member Functions inherited from mpqc::DescribedClass
static keyval_ctor_wrapper_type type_to_keyval_ctor (const std::string &type_name)
 
template<typename T >
static void register_keyval_ctor ()
 
template<typename T >
static bool is_registered ()
 
template<typename T >
static std::string class_key ()
 
static const keyval_ctor_registry_type & keyval_ctor_registry ()
 returns const ref to the keyval ctor registry More...
 

Member Typedef Documentation

◆ array_type

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

◆ arrayvec_type

template<typename Tile , typename Policy >
using mpqc::lcao::FockBuilder< Tile, Policy >::arrayvec_type = TA::DistArrayVector<Tile, Policy>

◆ result_type

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

Constructor & Destructor Documentation

◆ ~FockBuilder()

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

Member Function Documentation

◆ log_iter()

template<typename Tile , typename Policy >
virtual void mpqc::lcao::FockBuilder< Tile, Policy >::log_iter ( std::ostream &  os = ExEnv::out0()) const
inlinevirtual

Logs the iteration info (timings, etc.)

Parameters
osthe ostream for writing the iteration log

Reimplemented in mpqc::lcao::DFJ4cKBuilder< Tile, Policy >, mpqc::lcao::ClrDfJCadfKFockBuilder< Tile, Policy, DirectArray >, and mpqc::lcao::CadfFockBuilder< Tile, Policy, DirectArray >.

◆ operator()()

template<typename Tile , typename Policy >
virtual result_type mpqc::lcao::FockBuilder< Tile, Policy >::operator() ( arrayvec_type const &  D,
arrayvec_type const &  C,
double  target_precision = std::numeric_limits< double >::epsilon() 
)
pure virtual

computes the 2-e part of the Fock matrix

Parameters
Dthe (1-particle) density matrix
Cthe occupied orbital AO coefficient matrix
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.
Returns
the 2-electron contribution to the Fock matrix and optional correction to the energy, e.g. due to nonlinear dependence of (components) of the Fock matrix on the density (for example, the exchange-correlation contribution)
Note
the energy correction for Fock matrix F when added to F.D should produce the correct energy

Implemented in mpqc::lcao::JKFockBuilder< Tile, Policy >.

◆ register_fock()

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

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