mpqc::lcao::gaussian::DirectIntegralBuilder< Tile, ComputeTile, Engine > Class Template Reference
Collaboration diagram for mpqc::lcao::gaussian::DirectIntegralBuilder< Tile, ComputeTile, Engine >:

Documentation

template<typename Tile, typename ComputeTile = Tile, typename Engine = libint2::Engine>
class mpqc::lcao::gaussian::DirectIntegralBuilder< Tile, ComputeTile, Engine >

Extends IntegralBuilder for on-the-fly evaluation of integrals. This is not a WorldObject, but is registered with a World so that its tasks can find it.

Public Types

using Op = typename IntegralBuilder< Tile, ComputeTile, Engine >::Op
 
using range_type = typename Tile::range_type
 
- Public Types inherited from mpqc::lcao::gaussian::IntegralBuilder< Tile, Tile, libint2::Engine >
using Op = std::function< Tile(Tile &&)>
 
using range_type = typename ComputeTile::range_type
 

Public Member Functions

 DirectIntegralBuilder (madness::World &world, ShrPool< Engine > shr_epool, const BasisShrVector &bases, std::shared_ptr< Screener > screen, Op op, std::function< shellpair_data_accessor_t(const Basis *, const Basis *)> make_shellpair_data_accessor={}, std::shared_ptr< const math::PetiteList > plist=math::PetiteList::make_trivial())
 Constructor which copies all shared_ptr members. More...
 
 DirectIntegralBuilder (const DirectIntegralBuilder &builder)=delete
 
DirectIntegralBuilderoperator= (const DirectIntegralBuilder &builder)=delete
 
madness::uniqueidT id () const
 
 ~DirectIntegralBuilder ()
 
- Public Member Functions inherited from mpqc::lcao::gaussian::IntegralBuilder< Tile, Tile, libint2::Engine >
 IntegralBuilder (ShrPool< libint2::Engine > shr_epool, const BasisShrVector &bases, std::shared_ptr< Screener > screen, Op op, std::function< shellpair_data_accessor_t(const Basis *, const Basis *)> make_shellpair_data_accessor={}, std::shared_ptr< const math::PetiteList > plist=math::PetiteList::make_trivial())
 Constructor which copies all shared_ptr members. More...
 
virtual ~IntegralBuilder ()
 
const auto & bases () const
 
Tile operator() (Idx &&idx, range_type range={})
 Compute a tile corresponding to the given cluster shellset. More...
 
Tile integrals (Idx &&idx, range_type range={})
 Compute a tile corresponding to the given cluster shellset. More...
 
std::array< Tile, libint2::operator_traits< libint2_oper >::nopers > integrals (Idx &&idx, range_type range={})
 This computes an std::array of integrals for operators that have nopers components, e.g. multipole moments, geometrical derivatives, etc. Note that only one tile is computed for each component, and all nopers tiles share the same index and range. More...
 
Tile op (Tile &&tensor)
 
- Public Member Functions inherited from mpqc::enable_shared_from_this< DirectIntegralBuilder< Tile, Tile, libint2::Engine > >
virtual ~enable_shared_from_this ()=default
 
std::shared_ptr< DirectIntegralBuilder< Tile, Tile, libint2::Engine > > shared_from_this ()
 returns the pointer to this object More...
 
std::shared_ptr< std::add_const_t< DirectIntegralBuilder< Tile, Tile, libint2::Engine > > > 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...
 

Member Typedef Documentation

◆ Op

template<typename Tile , typename ComputeTile = Tile, typename Engine = libint2::Engine>
using mpqc::lcao::gaussian::DirectIntegralBuilder< Tile, ComputeTile, Engine >::Op = typename IntegralBuilder<Tile, ComputeTile, Engine>::Op

◆ range_type

template<typename Tile , typename ComputeTile = Tile, typename Engine = libint2::Engine>
using mpqc::lcao::gaussian::DirectIntegralBuilder< Tile, ComputeTile, Engine >::range_type = typename Tile::range_type

Constructor & Destructor Documentation

◆ DirectIntegralBuilder() [1/2]

template<typename Tile , typename ComputeTile = Tile, typename Engine = libint2::Engine>
mpqc::lcao::gaussian::DirectIntegralBuilder< Tile, ComputeTile, Engine >::DirectIntegralBuilder ( madness::World &  world,
ShrPool< Engine >  shr_epool,
const BasisShrVector bases,
std::shared_ptr< Screener screen,
Op  op,
std::function< shellpair_data_accessor_t(const Basis *, const Basis *)>  make_shellpair_data_accessor = {},
std::shared_ptr< const math::PetiteList >  plist = math::PetiteList::make_trivial() 
)
inline

Constructor which copies all shared_ptr members.

Parameters
worldthe world object in this and the result array will belong to
shr_epoola shared pointer to an IntegralTSPool
basesa vector of shared_ptr's to Basis
screena shared pointer to a Screener type
opa thread-safe function or functor that takes a rvalue to Tile and returns a Tile object.
make_shellpair_data_accessora functor that makes shellpair data accessors; such accessors are to accept basis function indices, rather than shell indices
plistthe PetiteList object describing the symmetry properties of the set of AO integrals

◆ DirectIntegralBuilder() [2/2]

template<typename Tile , typename ComputeTile = Tile, typename Engine = libint2::Engine>
mpqc::lcao::gaussian::DirectIntegralBuilder< Tile, ComputeTile, Engine >::DirectIntegralBuilder ( const DirectIntegralBuilder< Tile, ComputeTile, Engine > &  builder)
delete

◆ ~DirectIntegralBuilder()

template<typename Tile , typename ComputeTile = Tile, typename Engine = libint2::Engine>
mpqc::lcao::gaussian::DirectIntegralBuilder< Tile, ComputeTile, Engine >::~DirectIntegralBuilder ( )
inline

Member Function Documentation

◆ id()

template<typename Tile , typename ComputeTile = Tile, typename Engine = libint2::Engine>
madness::uniqueidT mpqc::lcao::gaussian::DirectIntegralBuilder< Tile, ComputeTile, Engine >::id ( ) const
inline

◆ operator=()

template<typename Tile , typename ComputeTile = Tile, typename Engine = libint2::Engine>
DirectIntegralBuilder& mpqc::lcao::gaussian::DirectIntegralBuilder< Tile, ComputeTile, Engine >::operator= ( const DirectIntegralBuilder< Tile, ComputeTile, Engine > &  builder)
delete

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