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

functionality related to Kohn-Sham density functional theory More...

Namespaces

namespace  kernels
namespace  impl
namespace  cosx

Classes

class  DFT
struct  FuncComponent
struct  MethodDefinition
struct  DFTMethod
class  DensityFunctional
class  HirshfeldPartition
 Class implementing Hirshfeld atomic charge analysis. More...
class  NonLocalCorrelationFunctional
struct  RangeSeparatedParameters
class  VoronoiPartition
 Class implementing Voronoi atomic charge analysis using LogSumExp approximation. More...
struct  MolecularOrbitals

Typedefs

using PointChargeList = std::vector<occ::core::PointCharge>
using dfid = DensityFunctional::Identifier
using IVec
using Mat3N
using MatN4
using Vec
using Array
using IVec
using Vec

Enumerations

enum class  GridQuality
 Standard grid quality levels (similar to Q-Chem's SG system). More...

Functions

DFTMethod get_dft_method (const std::string &method_string)
DFTMethod create_dft_method_from_definition (const MethodDefinition &def)
ankerl::unordered_dense::map< std::string, MethodDefinition > load_method_definitions (const std::string &filename)
void export_method_definitions (const std::string &filename, const ankerl::unordered_dense::map< std::string, MethodDefinition > &definitions)
std::string dfid_to_string (DensityFunctional::Identifier id)
DensityFunctional::Identifier string_to_dfid (const std::string &name)
Vec calculate_hirshfeld_charges (const occ::gto::AOBasis &basis, const occ::qm::MolecularOrbitals &mo, int charge=0)
 Calculate Hirshfeld charges for a molecule.
std::vector< occ::core::Multipole< 4 > > calculate_hirshfeld_multipoles (const occ::gto::AOBasis &basis, const occ::qm::MolecularOrbitals &mo, int max_multipole_order=4, int charge=0)
 Calculate Hirshfeld multipoles for a molecule.
Vec calculate_voronoi_charges (const occ::gto::AOBasis &basis, const occ::qm::MolecularOrbitals &mo, int charge=0, double temperature=0.1, bool use_vdw_radii=false, const occ::numint::GridSettings &grid_settings=occ::numint::GridSettings::from_grid_quality(GridQuality::Coarse))
 Calculate Voronoi charges for a molecule.
template<occ::qm::SpinorbitalKind spinorbital_kind, int derivative_order>
void xc_potential_matrix (const DensityFunctional::Result &res, MatConstRef rho, const occ::gto::GTOValues &gto_vals, MatRef KK, double &energy)=delete
template<>
void xc_potential_matrix< Restricted, 0 > (const DensityFunctional::Result &res, MatConstRef rho, const occ::gto::GTOValues &gto_vals, MatRef KK, double &energy)
template<>
void xc_potential_matrix< Restricted, 1 > (const DensityFunctional::Result &res, MatConstRef rho, const occ::gto::GTOValues &gto_vals, MatRef KK, double &energy)
template<>
void xc_potential_matrix< Restricted, 2 > (const DensityFunctional::Result &res, MatConstRef rho, const occ::gto::GTOValues &gto_vals, MatRef KK, double &energy)
template<>
void xc_potential_matrix< Unrestricted, 0 > (const DensityFunctional::Result &res, MatConstRef rho, const occ::gto::GTOValues &gto_vals, MatRef KK, double &energy)
template<>
void xc_potential_matrix< Unrestricted, 1 > (const DensityFunctional::Result &res, MatConstRef rho, const occ::gto::GTOValues &gto_vals, MatRef KK, double &energy)
template<>
void xc_potential_matrix< Unrestricted, 2 > (const DensityFunctional::Result &res, MatConstRef rho, const occ::gto::GTOValues &gto_vals, MatRef KK, double &energy)
template<SpinorbitalKind kind, typename TA>
TA::Scalar expectation (const TA &left, const TA &right)

Detailed Description

functionality related to Kohn-Sham density functional theory

part of the occ::qm, occ:gto, occ:io module

Typedef Documentation

◆ Array

using occ::Array

◆ dfid

◆ IVec [1/2]

using occ::IVec

◆ IVec [2/2]

using occ::IVec

◆ Mat3N

using occ::Mat3N

◆ MatN4

using occ::MatN4

◆ PointChargeList

◆ Vec [1/2]

using occ::Vec

◆ Vec [2/2]

using occ::Vec

Enumeration Type Documentation

◆ GridQuality

enum class occ::numint::GridQuality
strong

Standard grid quality levels (similar to Q-Chem's SG system).

Function Documentation

◆ calculate_hirshfeld_charges()

Vec occ::dft::calculate_hirshfeld_charges ( const occ::gto::AOBasis & basis,
const occ::qm::MolecularOrbitals & mo,
int charge = 0 )

Calculate Hirshfeld charges for a molecule.

Convenience function to compute Hirshfeld charges in a single call.

Parameters
basisBasis set for the molecule
moMolecular orbitals containing the density matrix
chargeTotal molecular charge
Returns
Vec Vector of Hirshfeld charges for each atom

◆ calculate_hirshfeld_multipoles()

std::vector< occ::core::Multipole< 4 > > occ::dft::calculate_hirshfeld_multipoles ( const occ::gto::AOBasis & basis,
const occ::qm::MolecularOrbitals & mo,
int max_multipole_order = 4,
int charge = 0 )

Calculate Hirshfeld multipoles for a molecule.

Convenience function to compute Hirshfeld multipoles in a single call.

Parameters
basisBasis set for the molecule
moMolecular orbitals containing the density matrix
max_multipole_orderMaximum order of multipoles to compute (0-4)
chargeTotal molecular charge
Returns
std::vector<occ::core::Multipole<4>> Vector of Hirshfeld multipoles for each atom

◆ calculate_voronoi_charges()

Vec occ::dft::calculate_voronoi_charges ( const occ::gto::AOBasis & basis,
const occ::qm::MolecularOrbitals & mo,
int charge = 0,
double temperature = 0.1,
bool use_vdw_radii = false,
const occ::numint::GridSettings & grid_settings = occ::numint::GridSettings::from_grid_quality(GridQuality::Coarse) )

Calculate Voronoi charges for a molecule.

Convenience function to compute Voronoi charges in a single call.

Parameters
basisBasis set for the molecule
moMolecular orbitals containing the density matrix
chargeTotal molecular charge
temperatureTemperature parameter for LogSumExp smoothing
use_vdw_radiiWhether to scale distances by VDW radii
Returns
Vec Vector of Voronoi charges for each atom

◆ create_dft_method_from_definition()

DFTMethod occ::dft::create_dft_method_from_definition ( const MethodDefinition & def)

◆ dfid_to_string()

std::string occ::dft::dfid_to_string ( DensityFunctional::Identifier id)

◆ expectation()

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

◆ export_method_definitions()

void occ::dft::export_method_definitions ( const std::string & filename,
const ankerl::unordered_dense::map< std::string, MethodDefinition > & definitions )

◆ get_dft_method()

DFTMethod occ::dft::get_dft_method ( const std::string & method_string)

◆ load_method_definitions()

ankerl::unordered_dense::map< std::string, MethodDefinition > occ::dft::load_method_definitions ( const std::string & filename)

◆ string_to_dfid()

DensityFunctional::Identifier occ::dft::string_to_dfid ( const std::string & name)

◆ xc_potential_matrix()

template<occ::qm::SpinorbitalKind spinorbital_kind, int derivative_order>
void occ::dft::xc_potential_matrix ( const DensityFunctional::Result & res,
MatConstRef rho,
const occ::gto::GTOValues & gto_vals,
MatRef KK,
double & energy )
delete

◆ xc_potential_matrix< Restricted, 0 >()

template<>
void occ::dft::xc_potential_matrix< Restricted, 0 > ( const DensityFunctional::Result & res,
MatConstRef rho,
const occ::gto::GTOValues & gto_vals,
MatRef KK,
double & energy )

◆ xc_potential_matrix< Restricted, 1 >()

template<>
void occ::dft::xc_potential_matrix< Restricted, 1 > ( const DensityFunctional::Result & res,
MatConstRef rho,
const occ::gto::GTOValues & gto_vals,
MatRef KK,
double & energy )

◆ xc_potential_matrix< Restricted, 2 >()

template<>
void occ::dft::xc_potential_matrix< Restricted, 2 > ( const DensityFunctional::Result & res,
MatConstRef rho,
const occ::gto::GTOValues & gto_vals,
MatRef KK,
double & energy )

◆ xc_potential_matrix< Unrestricted, 0 >()

template<>
void occ::dft::xc_potential_matrix< Unrestricted, 0 > ( const DensityFunctional::Result & res,
MatConstRef rho,
const occ::gto::GTOValues & gto_vals,
MatRef KK,
double & energy )

◆ xc_potential_matrix< Unrestricted, 1 >()

template<>
void occ::dft::xc_potential_matrix< Unrestricted, 1 > ( const DensityFunctional::Result & res,
MatConstRef rho,
const occ::gto::GTOValues & gto_vals,
MatRef KK,
double & energy )

◆ xc_potential_matrix< Unrestricted, 2 >()

template<>
void occ::dft::xc_potential_matrix< Unrestricted, 2 > ( const DensityFunctional::Result & res,
MatConstRef rho,
const occ::gto::GTOValues & gto_vals,
MatRef KK,
double & energy )