occ
Loading...
Searching...
No Matches
occ::qm::IntegralEngine Class Reference

#include <integral_engine.h>

Classes

struct  IntegralResult
 

Public Types

using ShellList = std::vector< Shell >
 
using AtomList = std::vector< occ::core::Atom >
 
using ShellPairList = std::vector< std::vector< size_t > >
 
using IntEnv = cint::IntegralEnvironment
 
using ShellKind = Shell::Kind
 
using Op = cint::Operator
 

Public Member Functions

 IntegralEngine (const AtomList &at, const ShellList &sh)
 
 IntegralEngine (const AOBasis &basis)
 
auto nbf () const noexcept
 
auto nbf_aux () const noexcept
 
auto nsh () const noexcept
 
auto nsh_aux () const noexcept
 
const AOBasisaobasis () const
 
const AOBasisauxbasis () const
 
const auto & env () const
 
auto & env ()
 
const auto & first_bf () const noexcept
 
const auto & first_bf_aux () const noexcept
 
const auto & shellpairs () const noexcept
 
const auto & shells () const noexcept
 
void set_auxiliary_basis (const ShellList &bs, bool dummy=false)
 
void set_dummy_basis (const AtomList &dummy_atoms, const ShellList &bs)
 
void clear_auxiliary_basis ()
 
bool have_auxiliary_basis () const noexcept
 
bool have_effective_core_potentials () const noexcept
 
Mat one_electron_operator (Op op, bool use_shellpair_list=true) const
 
MatTriple one_electron_operator_grad (Op op, bool use_shellpair_list=true) const
 
Mat effective_core_potential (bool use_shellpair_list=true) const
 
Mat fock_operator (SpinorbitalKind, const MolecularOrbitals &mo, const Mat &Schwarz=Mat()) const
 
Mat fock_operator_mixed_basis (const Mat &D, const AOBasis &D_bs, bool is_shell_diagonal)
 
MatTriple fock_operator_grad (SpinorbitalKind, const MolecularOrbitals &mo, const Mat &Schwarz=Mat()) const
 
Mat coulomb (SpinorbitalKind, const MolecularOrbitals &mo, const Mat &Schwarz=Mat()) const
 
MatTriple coulomb_grad (SpinorbitalKind, const MolecularOrbitals &mo, const Mat &Schwarz=Mat()) const
 
JKTriple coulomb_exchange_grad (SpinorbitalKind, const MolecularOrbitals &mo, const Mat &Schwarz=Mat()) const
 
JKPair coulomb_and_exchange (SpinorbitalKind, const MolecularOrbitals &mo, const Mat &Schwarz=Mat()) const
 
std::vector< Matcoulomb_list (SpinorbitalKind, const std::vector< MolecularOrbitals > &mos, const Mat &Schwarz=Mat()) const
 
std::vector< JKPaircoulomb_and_exchange_list (SpinorbitalKind, const std::vector< MolecularOrbitals > &mos, const Mat &Schwarz=Mat()) const
 
Mat point_charge_potential (const std::vector< occ::core::PointCharge > &charges, double alpha=1e16)
 
Mat wolf_point_charge_potential (const std::vector< occ::core::PointCharge > &charges, const std::vector< double > &partial_charges, double alpha, double cutoff_radius)
 
Vec electric_potential (const MolecularOrbitals &mo, const Mat3N &points)
 
template<ShellKind kind>
void compute_shellpairs (double threshold=1e-12)
 
Mat rinv_operator_atom_center (size_t atom_index, bool use_shellpair_list=true) const
 
MatTriple rinv_operator_grad_atom (size_t atom_index, bool use_shellpair_list=true) const
 
Vec multipole (int order, const MolecularOrbitals &mo, const Vec3 &origin={0, 0, 0}) const
 
Mat schwarz () const
 
bool is_spherical () const
 
void set_effective_core_potentials (const ShellList &ecp_shells, const std::vector< int > &ecp_electrons)
 
double range_separated_omega () const
 
void set_range_separated_omega (double omega)
 
void set_precision (double precision)
 

Member Typedef Documentation

◆ AtomList

◆ IntEnv

◆ Op

◆ ShellKind

◆ ShellList

◆ ShellPairList

using occ::qm::IntegralEngine::ShellPairList = std::vector<std::vector<size_t> >

Constructor & Destructor Documentation

◆ IntegralEngine() [1/2]

occ::qm::IntegralEngine::IntegralEngine ( const AtomList at,
const ShellList sh 
)
inline

◆ IntegralEngine() [2/2]

occ::qm::IntegralEngine::IntegralEngine ( const AOBasis basis)
inline

Member Function Documentation

◆ aobasis()

const AOBasis & occ::qm::IntegralEngine::aobasis ( ) const
inline

◆ auxbasis()

const AOBasis & occ::qm::IntegralEngine::auxbasis ( ) const
inline

◆ clear_auxiliary_basis()

void occ::qm::IntegralEngine::clear_auxiliary_basis ( )
inline

◆ compute_shellpairs()

template<ShellKind kind>
void occ::qm::IntegralEngine::compute_shellpairs ( double  threshold = 1e-12)
inline

◆ coulomb()

Mat occ::qm::IntegralEngine::coulomb ( SpinorbitalKind  ,
const MolecularOrbitals mo,
const Mat Schwarz = Mat() 
) const

◆ coulomb_and_exchange()

JKPair occ::qm::IntegralEngine::coulomb_and_exchange ( SpinorbitalKind  ,
const MolecularOrbitals mo,
const Mat Schwarz = Mat() 
) const

◆ coulomb_and_exchange_list()

std::vector< JKPair > occ::qm::IntegralEngine::coulomb_and_exchange_list ( SpinorbitalKind  ,
const std::vector< MolecularOrbitals > &  mos,
const Mat Schwarz = Mat() 
) const

◆ coulomb_exchange_grad()

JKTriple occ::qm::IntegralEngine::coulomb_exchange_grad ( SpinorbitalKind  ,
const MolecularOrbitals mo,
const Mat Schwarz = Mat() 
) const

◆ coulomb_grad()

MatTriple occ::qm::IntegralEngine::coulomb_grad ( SpinorbitalKind  ,
const MolecularOrbitals mo,
const Mat Schwarz = Mat() 
) const

◆ coulomb_list()

std::vector< Mat > occ::qm::IntegralEngine::coulomb_list ( SpinorbitalKind  ,
const std::vector< MolecularOrbitals > &  mos,
const Mat Schwarz = Mat() 
) const

◆ effective_core_potential()

Mat occ::qm::IntegralEngine::effective_core_potential ( bool  use_shellpair_list = true) const

◆ electric_potential()

Vec occ::qm::IntegralEngine::electric_potential ( const MolecularOrbitals mo,
const Mat3N points 
)

◆ env() [1/2]

auto & occ::qm::IntegralEngine::env ( )
inline

◆ env() [2/2]

const auto & occ::qm::IntegralEngine::env ( ) const
inline

◆ first_bf()

const auto & occ::qm::IntegralEngine::first_bf ( ) const
inlinenoexcept

◆ first_bf_aux()

const auto & occ::qm::IntegralEngine::first_bf_aux ( ) const
inlinenoexcept

◆ fock_operator()

Mat occ::qm::IntegralEngine::fock_operator ( SpinorbitalKind  ,
const MolecularOrbitals mo,
const Mat Schwarz = Mat() 
) const

◆ fock_operator_grad()

MatTriple occ::qm::IntegralEngine::fock_operator_grad ( SpinorbitalKind  ,
const MolecularOrbitals mo,
const Mat Schwarz = Mat() 
) const

◆ fock_operator_mixed_basis()

Mat occ::qm::IntegralEngine::fock_operator_mixed_basis ( const Mat D,
const AOBasis D_bs,
bool  is_shell_diagonal 
)

◆ have_auxiliary_basis()

bool occ::qm::IntegralEngine::have_auxiliary_basis ( ) const
inlinenoexcept

◆ have_effective_core_potentials()

bool occ::qm::IntegralEngine::have_effective_core_potentials ( ) const
inlinenoexcept

◆ is_spherical()

bool occ::qm::IntegralEngine::is_spherical ( ) const
inline

◆ multipole()

Vec occ::qm::IntegralEngine::multipole ( int  order,
const MolecularOrbitals mo,
const Vec3 origin = {0, 0, 0} 
) const

◆ nbf()

auto occ::qm::IntegralEngine::nbf ( ) const
inlinenoexcept

◆ nbf_aux()

auto occ::qm::IntegralEngine::nbf_aux ( ) const
inlinenoexcept

◆ nsh()

auto occ::qm::IntegralEngine::nsh ( ) const
inlinenoexcept

◆ nsh_aux()

auto occ::qm::IntegralEngine::nsh_aux ( ) const
inlinenoexcept

◆ one_electron_operator()

Mat occ::qm::IntegralEngine::one_electron_operator ( Op  op,
bool  use_shellpair_list = true 
) const

◆ one_electron_operator_grad()

MatTriple occ::qm::IntegralEngine::one_electron_operator_grad ( Op  op,
bool  use_shellpair_list = true 
) const

◆ point_charge_potential()

Mat occ::qm::IntegralEngine::point_charge_potential ( const std::vector< occ::core::PointCharge > &  charges,
double  alpha = 1e16 
)

◆ range_separated_omega()

double occ::qm::IntegralEngine::range_separated_omega ( ) const
inline

◆ rinv_operator_atom_center()

Mat occ::qm::IntegralEngine::rinv_operator_atom_center ( size_t  atom_index,
bool  use_shellpair_list = true 
) const

◆ rinv_operator_grad_atom()

MatTriple occ::qm::IntegralEngine::rinv_operator_grad_atom ( size_t  atom_index,
bool  use_shellpair_list = true 
) const

◆ schwarz()

Mat occ::qm::IntegralEngine::schwarz ( ) const

◆ set_auxiliary_basis()

void occ::qm::IntegralEngine::set_auxiliary_basis ( const ShellList bs,
bool  dummy = false 
)
inline

◆ set_dummy_basis()

void occ::qm::IntegralEngine::set_dummy_basis ( const AtomList dummy_atoms,
const ShellList bs 
)
inline

◆ set_effective_core_potentials()

void occ::qm::IntegralEngine::set_effective_core_potentials ( const ShellList ecp_shells,
const std::vector< int > &  ecp_electrons 
)

◆ set_precision()

void occ::qm::IntegralEngine::set_precision ( double  precision)
inline

◆ set_range_separated_omega()

void occ::qm::IntegralEngine::set_range_separated_omega ( double  omega)
inline

◆ shellpairs()

const auto & occ::qm::IntegralEngine::shellpairs ( ) const
inlinenoexcept

◆ shells()

const auto & occ::qm::IntegralEngine::shells ( ) const
inlinenoexcept

◆ wolf_point_charge_potential()

Mat occ::qm::IntegralEngine::wolf_point_charge_potential ( const std::vector< occ::core::PointCharge > &  charges,
const std::vector< double > &  partial_charges,
double  alpha,
double  cutoff_radius 
)

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