mpqc::lcao::gaussian::IntegralBuilder< Tile, ComputeTile, Engine > Class Template Reference
Documentation
template<typename Tile, typename ComputeTile = Tile, typename Engine = libint2::Engine>
class mpqc::lcao::gaussian::IntegralBuilder< Tile, ComputeTile, Engine >
Builds integrals from an array of bases and an integral engine pool.
- Parameters
-
Op is a function or functor that takes a Tile&& and returns a Tile object. The simplest type of Op is simply the following:
Public Types | |
using | Op = std::function< Tile(ComputeTile &&)> |
using | range_type = typename ComputeTile::range_type |
Public Member Functions | |
IntegralBuilder (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... | |
virtual | ~IntegralBuilder () |
const auto & | bases () const |
template<typename Idx > | |
Tile | operator() (Idx &&idx, range_type range={}) |
Compute a tile corresponding to the given cluster shellset. More... | |
template<typename Idx > | |
Tile | integrals (Idx &&idx, range_type range={}) |
Compute a tile corresponding to the given cluster shellset. More... | |
template<libint2::Operator libint2_oper, typename Idx > | |
std::array< ComputeTile, 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 (ComputeTile &&tensor) |
Member Typedef Documentation
◆ Op
template<typename Tile , typename ComputeTile = Tile, typename Engine = libint2::Engine>
using mpqc::lcao::gaussian::IntegralBuilder< Tile, ComputeTile, Engine >::Op = std::function<Tile(ComputeTile &&)> |
◆ range_type
template<typename Tile , typename ComputeTile = Tile, typename Engine = libint2::Engine>
using mpqc::lcao::gaussian::IntegralBuilder< Tile, ComputeTile, Engine >::range_type = typename ComputeTile::range_type |
Constructor & Destructor Documentation
◆ IntegralBuilder()
template<typename Tile , typename ComputeTile = Tile, typename Engine = libint2::Engine>
|
inline |
Constructor which copies all shared_ptr members.
- Parameters
-
shr_epool a shared pointer to an IntegralTSPool bases a vector of shared_ptr's to Basis screen a shared pointer to a Screener type op a thread-safe function or functor that takes a rvalue to Tile and returns a Tile object. make_shellpair_data_accessor a functor that makes shellpair data accessors; such accessors are to accept basis function indices, rather than shell indices plist the PetiteList object describing the symmetry properties of the set of AO integrals
◆ ~IntegralBuilder()
template<typename Tile , typename ComputeTile = Tile, typename Engine = libint2::Engine>
|
inlinevirtual |
Member Function Documentation
◆ bases()
template<typename Tile , typename ComputeTile = Tile, typename Engine = libint2::Engine>
|
inline |
Bases accessor
- Returns
- bases
◆ integrals() [1/2]
template<typename Tile , typename ComputeTile = Tile, typename Engine = libint2::Engine>
template<typename Idx >
|
inline |
Compute a tile corresponding to the given cluster shellset.
- Template Parameters
-
Idx an integer range type
- Parameters
-
idx the indices of shell clusters for each dimension, given as a range of integers of size equal to or greater than the order of bases. range the Range object to use to construct tile; if not given, will be computed assuming the function indices in the basis start at 0
- Returns
- the Tile object contaning the cluster shellset of integrals
◆ integrals() [2/2]
template<typename Tile , typename ComputeTile = Tile, typename Engine = libint2::Engine>
template<libint2::Operator libint2_oper, typename Idx >
|
inline |
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.
- Template Parameters
-
libint2_oper libint2 operator type
- Parameters
-
idx index of the target tile range the Range object to use to construct tile; if not given, will be computed assuming the function indices in the basis start at 0
- Returns
- the Tile object contaning the cluster shellset of integrals
◆ op()
template<typename Tile , typename ComputeTile = Tile, typename Engine = libint2::Engine>
|
inline |
◆ operator()()
template<typename Tile , typename ComputeTile = Tile, typename Engine = libint2::Engine>
template<typename Idx >
|
inline |
Compute a tile corresponding to the given cluster shellset.
- Template Parameters
-
Idx an integer range type
- Parameters
-
idx the indices of shell clusters for each dimension, given as a range of integers of size equal to or greater than the order of bases. range the Range object to use to construct tile; if not given, will be computed assuming the function indices in the basis start at 0
- Returns
- the Tile object containing the cluster shellset of integrals
The documentation for this class was generated from the following file:
- mpqc/chemistry/qc/lcao/integrals/integral_builder.h
Tile op(ComputeTile &&tensor)
Definition: integral_builder.h:265