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

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

Namespaces

namespace  cosx
 
namespace  impl
 
namespace  kernels
 

Classes

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

Typedefs

using PointChargeList = std::vector< occ::core::PointCharge >
 
using dfid = DensityFunctional::Identifier
 

Functions

DFTMethod get_dft_method (const std::string &method_string)
 
DFTMethod create_dft_method_from_definition (const MethodDefinition &def, bool polarized=false)
 
ankerl::unordered_dense::map< std::string, MethodDefinitionload_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)
 

Detailed Description

functionality related to Kohn-Sham density functional theory

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

Typedef Documentation

◆ dfid

◆ PointChargeList

using occ::dft::PointChargeList = typedef std::vector<occ::core::PointCharge>

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,
bool  polarized = false 
)

◆ dfid_to_string()

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

◆ 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 
)