occ
Loading...
Searching...
No Matches
occ::qm Namespace Reference

quantum mechanics/quantum chemistry functionality including Hartree-Fock and more More...

Namespaces

namespace  basis_sets
 
namespace  block
 
namespace  cint
 
namespace  cosx
 
namespace  guess
 
namespace  impl
 
namespace  orb
 

Classes

class  ADIIS
 ADIIS (Augmented Direct Inversion in Iterative Subspace) Based on Hu & Yang, J. More...
 
struct  AutoAuxResult
 Statistics about the auto auxiliary basis generation. More...
 
class  CanonicalOrthogonalizer
 
class  CDIIS
 
class  ConvergenceAccelerator
 Encapsulates SCF convergence acceleration strategies (CDIIS, EDIIS, ADIIS) More...
 
class  EDIIS
 
struct  Energy
 
class  GradientEvaluator
 
struct  GridBatchLeaf
 Leaf node containing grid point batch. More...
 
struct  GridBoundingSphere
 Bounding sphere for a group of grid points. More...
 
class  HartreeFock
 
class  HessianEvaluator
 Evaluates molecular Hessian matrices (second derivatives of energy) More...
 
struct  IndexRange
 
class  IntegralEngine
 
class  IntegralEngineDF
 
struct  JKPair
 
struct  JKTriple
 
class  MOIntegralEngine
 
struct  MolecularOrbitals
 
class  MP2
 
struct  MP2Components
 
struct  MP2OrbitalInfo
 
struct  MP2OrbitalSpec
 
struct  Oniom
 
struct  OrbitalSmearing
 
class  PointChargeCorrectedProcedure
 
class  PostHFMethod
 
struct  SCF
 
struct  SCFContext
 
struct  SCFConvergenceSettings
 
class  SCFMethodBase
 
class  SpatialGridHierarchy
 Spatial hierarchy for molecular grid points using Morton ordering. More...
 
struct  SpatialHierarchySettings
 Configuration for hierarchy construction. More...
 
class  SplitRIJ
 Split-RI-J: Coulomb matrix via Hermite Gaussian basis (Neese 2003) More...
 
struct  Wavefunction
 
class  WolfSumCorrectedProcedure
 

Concepts

concept  SCFMethod
 
concept  DensityFittingMethod
 
concept  PointChargeMethod
 

Typedefs

using PointChargeList = std::vector< occ::core::PointCharge >
 
using HessianMatrix = Mat
 
using Tensor4D = Eigen::Tensor< double, 4 >
 
using ShellPairList = std::vector< std::vector< size_t > >
 

Enumerations

enum class  DispersionType { None , D4 , XDM }
 
enum class  CoulombMethod { Traditional , SplitRIJ }
 Method for computing Coulomb matrix in density fitting. More...
 
enum class  DiisStrategy { CDIIS , EDIIS_CDIIS , ADIIS_CDIIS }
 Strategy for DIIS extrapolation during SCF. More...
 
enum  SpinorbitalKind { Restricted , Unrestricted , General }
 

Functions

AutoAuxResult generate_auto_aux (const AOBasis &basis, double threshold=1e-7, std::optional< int > max_l=std::nullopt)
 Generate automatic auxiliary basis using pivoted Cholesky decomposition Based on Lehtola, J.
 
Vec chelpg_charges (const Wavefunction &wfn)
 
template<SpinorbitalKind kind, typename TA >
TA::Scalar expectation (const TA &left, const TA &right)
 
template<typename TA >
TA::Scalar expectation (SpinorbitalKind sk, const TA &left, const TA &right)
 
void from_json (const nlohmann::json &J, Energy &energy)
 
void to_json (nlohmann::json &J, const Energy &energy)
 
std::pair< Mat, Vec > merge_molecular_orbitals (const Mat &, const Mat &, const Vec &, const Vec &, bool sort_by_energy=false)
 
AOBasis merge_basis_sets (const AOBasis &, const AOBasis &)
 
std::vector< occ::core::Atommerge_atoms (const std::vector< occ::core::Atom > &, const std::vector< occ::core::Atom > &)
 
Vec mulliken_partition (const AOBasis &basis, const MolecularOrbitals &mo, Eigen::Ref< const Mat > op)
 
template<SpinorbitalKind sk, Shell::Kind kind>
Mat shellblock_norm (const AOBasis &basis, const Mat &matrix) noexcept
 
bool get_spinorbital_kind_from_string (const std::string &s, SpinorbitalKind &sk)
 
constexpr const char * spinorbital_kind_to_string (const SpinorbitalKind &sk)
 
template<SpinorbitalKind kind>
constexpr std::pair< size_t, size_t > matrix_dimensions (size_t nbf)
 
constexpr std::pair< size_t, size_t > matrix_dimensions (SpinorbitalKind kind, size_t nbf)
 

Variables

template<typename T >
constexpr bool is_scf_method_v = SCFMethod<T>
 
template<typename T >
constexpr bool supports_density_fitting_v = DensityFittingMethod<T>
 
template<typename T >
constexpr bool supports_point_charges_v = PointChargeMethod<T>
 

Detailed Description

quantum mechanics/quantum chemistry functionality including Hartree-Fock and more

Typedef Documentation

◆ HessianMatrix

using occ::qm::HessianMatrix = typedef Mat

◆ PointChargeList

◆ ShellPairList

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

◆ Tensor4D

using occ::qm::Tensor4D = typedef Eigen::Tensor<double, 4>

Enumeration Type Documentation

◆ CoulombMethod

enum class occ::qm::CoulombMethod
strong

Method for computing Coulomb matrix in density fitting.

Enumerator
Traditional 

libcint 3-center integrals (default)

SplitRIJ 

MMD kernels using Hermite basis (no atomics)

◆ DiisStrategy

enum class occ::qm::DiisStrategy
strong

Strategy for DIIS extrapolation during SCF.

Enumerator
CDIIS 

Standard commutator DIIS only.

EDIIS_CDIIS 

EDIIS early, switch to CDIIS when error is small.

ADIIS_CDIIS 

ADIIS early, switch to CDIIS when error is small (recommended)

◆ DispersionType

enum class occ::qm::DispersionType
strong
Enumerator
None 
D4 
XDM 

◆ SpinorbitalKind

Enumerator
Restricted 
Unrestricted 
General 

Function Documentation

◆ chelpg_charges()

Vec occ::qm::chelpg_charges ( const Wavefunction wfn)

◆ expectation() [1/2]

template<SpinorbitalKind kind, typename TA >
TA::Scalar occ::qm::expectation ( const TA &  left,
const TA &  right 
)

◆ expectation() [2/2]

template<typename TA >
TA::Scalar occ::qm::expectation ( SpinorbitalKind  sk,
const TA &  left,
const TA &  right 
)

◆ from_json()

void occ::qm::from_json ( const nlohmann::json &  J,
Energy energy 
)

◆ generate_auto_aux()

AutoAuxResult occ::qm::generate_auto_aux ( const AOBasis basis,
double  threshold = 1e-7,
std::optional< int >  max_l = std::nullopt 
)

Generate automatic auxiliary basis using pivoted Cholesky decomposition Based on Lehtola, J.

Chem. Theory Comput. 2021, 17, 6886-6900

◆ get_spinorbital_kind_from_string()

bool occ::qm::get_spinorbital_kind_from_string ( const std::string &  s,
SpinorbitalKind sk 
)
inline

◆ matrix_dimensions() [1/2]

template<SpinorbitalKind kind>
constexpr std::pair< size_t, size_t > occ::qm::matrix_dimensions ( size_t  nbf)
constexpr

◆ matrix_dimensions() [2/2]

constexpr std::pair< size_t, size_t > occ::qm::matrix_dimensions ( SpinorbitalKind  kind,
size_t  nbf 
)
inlineconstexpr

◆ merge_atoms()

std::vector< occ::core::Atom > occ::qm::merge_atoms ( const std::vector< occ::core::Atom > &  ,
const std::vector< occ::core::Atom > &   
)

◆ merge_basis_sets()

AOBasis occ::qm::merge_basis_sets ( const AOBasis ,
const AOBasis  
)

◆ merge_molecular_orbitals()

std::pair< Mat, Vec > occ::qm::merge_molecular_orbitals ( const Mat ,
const Mat ,
const Vec &  ,
const Vec &  ,
bool  sort_by_energy = false 
)

◆ mulliken_partition()

Vec occ::qm::mulliken_partition ( const AOBasis basis,
const MolecularOrbitals mo,
Eigen::Ref< const Mat op 
)

◆ shellblock_norm()

template<SpinorbitalKind sk, Shell::Kind kind>
Mat occ::qm::shellblock_norm ( const AOBasis basis,
const Mat matrix 
)
inlinenoexcept

◆ spinorbital_kind_to_string()

constexpr const char * occ::qm::spinorbital_kind_to_string ( const SpinorbitalKind sk)
constexpr

◆ to_json()

void occ::qm::to_json ( nlohmann::json &  J,
const Energy energy 
)

Variable Documentation

◆ is_scf_method_v

template<typename T >
constexpr bool occ::qm::is_scf_method_v = SCFMethod<T>
constexpr

◆ supports_density_fitting_v

template<typename T >
constexpr bool occ::qm::supports_density_fitting_v = DensityFittingMethod<T>
constexpr

◆ supports_point_charges_v

template<typename T >
constexpr bool occ::qm::supports_point_charges_v = PointChargeMethod<T>
constexpr