mpqc::lcao::pbc::CadfKBuilder< Tile, Policy, Factory > Class Template Reference

Documentation

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

pbc::CadfKBuilder computes the exchange term in periodic HF using the concentric atomic density fitting (CADF) approximation.

K(μ_0, ρ_Rρ) = (μ_0 ν_Rν | ρ_Rρ σ_(Rρ+Rσ)) D(ν_Rν, σ_(Rρ+Rσ)) The left/right product density in the 2-body 4-center ERI is approximated by CADF, i.e. |μ_0 ν_Rν) = Sum_X C(X, μ_0, ν_Rν) |X) where X is on the center of either μ0 or νR_ν. Dunlap's robust formula is used.

Public Types

using array_type = TA::DistArray< Tile, Policy >
 
using direct_array_type = typename Factory::DirectTArray
 
using Basis = ::mpqc::lcao::gaussian::Basis
 
using shellpair_list_t = std::vector< std::vector< size_t > >
 
using WorldObject_ = madness::WorldObject< CadfKBuilder< Tile, Policy, Factory > >
 
using CadfKBuilder_ = CadfKBuilder< Tile, Policy, Factory >
 

Public Member Functions

template<typename... IgnoredArgs>
 CadfKBuilder (Factory &ao_factory, IgnoredArgs &&...)
 This constructs pbc::CadfKBuilder using a pbc::AOFactory object. More...
 
 CadfKBuilder (madness::World &world, Factory &ao_factory, std::shared_ptr< const Basis > obs, std::shared_ptr< const Basis > dfbs, const Vector3i &R_max, const Vector3i &RJ_max, const Vector3i &RD_max, const double density_threshold=Policy::shape_type::threshold(), const double cadf_contr_threshold=std::numeric_limits< double >::epsilon(), const bool print_detail=false, const double force_shape_threshold=0.0)
 This constructs pbc::CadfKBuilder using specific basis sets, lattice params, and thresholds. More...
 
 ~CadfKBuilder ()
 
template<typename... IgnoredArgs>
array_type operator() (array_type const &D, double target_precision, IgnoredArgs &&...)
 
Vector3i K_lattice_range () const
 
Vector3i fock_lattice_range () const
 

Member Typedef Documentation

◆ array_type

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

◆ Basis

template<typename Tile , typename Policy , typename Factory >
using mpqc::lcao::pbc::CadfKBuilder< Tile, Policy, Factory >::Basis = ::mpqc::lcao::gaussian::Basis

◆ CadfKBuilder_

template<typename Tile , typename Policy , typename Factory >
using mpqc::lcao::pbc::CadfKBuilder< Tile, Policy, Factory >::CadfKBuilder_ = CadfKBuilder<Tile, Policy, Factory>

◆ direct_array_type

template<typename Tile , typename Policy , typename Factory >
using mpqc::lcao::pbc::CadfKBuilder< Tile, Policy, Factory >::direct_array_type = typename Factory::DirectTArray

◆ shellpair_list_t

template<typename Tile , typename Policy , typename Factory >
using mpqc::lcao::pbc::CadfKBuilder< Tile, Policy, Factory >::shellpair_list_t = std::vector<std::vector<size_t> >

◆ WorldObject_

template<typename Tile , typename Policy , typename Factory >
using mpqc::lcao::pbc::CadfKBuilder< Tile, Policy, Factory >::WorldObject_ = madness::WorldObject<CadfKBuilder<Tile, Policy, Factory> >

Constructor & Destructor Documentation

◆ CadfKBuilder() [1/2]

template<typename Tile , typename Policy , typename Factory >
template<typename... IgnoredArgs>
mpqc::lcao::pbc::CadfKBuilder< Tile, Policy, Factory >::CadfKBuilder ( Factory ao_factory,
IgnoredArgs &&  ... 
)
inline

This constructs pbc::CadfKBuilder using a pbc::AOFactory object.

Parameters
worldMADNESS world object
ao_factorya Factory object
force_shape_thresholdthreshold used to construct the shape of F(Υ, μ, ν) using the shape of Q(Y, ρ, ν).

◆ CadfKBuilder() [2/2]

template<typename Tile , typename Policy , typename Factory >
mpqc::lcao::pbc::CadfKBuilder< Tile, Policy, Factory >::CadfKBuilder ( madness::World &  world,
Factory ao_factory,
std::shared_ptr< const Basis obs,
std::shared_ptr< const Basis dfbs,
const Vector3i R_max,
const Vector3i RJ_max,
const Vector3i RD_max,
const double  density_threshold = Policy::shape_type::threshold(),
const double  cadf_contr_threshold = std::numeric_limits<double>::epsilon(),
const bool  print_detail = false,
const double  force_shape_threshold = 0.0 
)
inline

This constructs pbc::CadfKBuilder using specific basis sets, lattice params, and thresholds.

Parameters
worldMADNESS world object
ao_factorya Factory object
obsorbital basis set
dfbsdensity fitting basis set
dcellunit cell parameters
R_maxrange of expansion of Bloch Gaussians in AO Gaussians
RJ_maxrange of Coulomb operation
RD_maxrange of density representation
shell_pair_thresholdthreshold for screening non-negligible shell pairs
density_thresholdthreshold for screening density blocks
target_precisioncontrols libint engine precision and the sparsity of C.D, C.M and F.Q products
print_detailprint more details if true
force_shape_thresholdthreshold used to construct the shape of F(Υ, μ, ν) using the shape of Q(Y, ρ, ν).

◆ ~CadfKBuilder()

template<typename Tile , typename Policy , typename Factory >
mpqc::lcao::pbc::CadfKBuilder< Tile, Policy, Factory >::~CadfKBuilder ( )
inline

Member Function Documentation

◆ fock_lattice_range()

template<typename Tile , typename Policy , typename Factory >
Vector3i mpqc::lcao::pbc::CadfKBuilder< Tile, Policy, Factory >::fock_lattice_range ( ) const
inline

◆ K_lattice_range()

template<typename Tile , typename Policy , typename Factory >
Vector3i mpqc::lcao::pbc::CadfKBuilder< Tile, Policy, Factory >::K_lattice_range ( ) const
inline

◆ operator()()

template<typename Tile , typename Policy , typename Factory >
template<typename... IgnoredArgs>
array_type mpqc::lcao::pbc::CadfKBuilder< Tile, Policy, Factory >::operator() ( array_type const &  D,
double  target_precision,
IgnoredArgs &&  ... 
)
inline

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