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

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

Namespaces

namespace  cosx
 
namespace  grid
 
namespace  impl
 
namespace  kernels
 

Classes

struct  AtomGrid
 
class  DensityFunctional
 
class  DFT
 
struct  Functionals
 
class  HirshfeldPartition
 Class implementing Hirshfeld atomic charge analysis. More...
 
class  MolecularGrid
 
class  NonLocalCorrelationFunctional
 
struct  RadialGrid
 
struct  RangeSeparatedParameters
 

Typedefs

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

Enumerations

enum class  PartitionFunction { Becke , StratmannScuseria }
 

Functions

Functionals parse_dft_method (const std::string &method_string)
 
Mat calculate_atomic_grid_weights (PartitionFunction func, const Mat &grid_points, const Mat &atomic_positions, const IVec &atomic_numbers, const Mat &interatomic_distances)
 
IVec prune_nwchem_scheme (size_t nuclear_charge, size_t max_angular, size_t num_radial, const occ::Vec &radii)
 
IVec prune_numgrid_scheme (size_t nuclear_charge, size_t max_angular, size_t min_angular, const occ::Vec &radii)
 
RadialGrid generate_becke_radial_grid (size_t num_points, double rm=1.0)
 
RadialGrid generate_mura_knowles_radial_grid (size_t num_points, size_t charge)
 
RadialGrid generate_treutler_alrichs_radial_grid (size_t num_points)
 
RadialGrid generate_gauss_chebyshev_radial_grid (size_t num_points)
 
RadialGrid generate_lmg_radial_grid (double radial_precision, double alpha_max, const occ::Vec &alpha_min)
 
AtomGrid generate_atom_grid (size_t atomic_number, size_t max_angular_points=302, size_t radial_points=50)
 
Vec calculate_hirshfeld_charges (const occ::qm::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::qm::AOBasis &basis, const occ::qm::MolecularOrbitals &mo, int max_multipole_order=4, int charge=0)
 Calculate Hirshfeld multipoles 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

◆ PointChargeList

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

Enumeration Type Documentation

◆ PartitionFunction

enum class occ::dft::PartitionFunction
strong
Enumerator
Becke 
StratmannScuseria 

Function Documentation

◆ calculate_atomic_grid_weights()

Mat occ::dft::calculate_atomic_grid_weights ( PartitionFunction  func,
const Mat grid_points,
const Mat atomic_positions,
const IVec &  atomic_numbers,
const Mat interatomic_distances 
)

◆ calculate_hirshfeld_charges()

Vec occ::dft::calculate_hirshfeld_charges ( const occ::qm::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::qm::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

◆ generate_atom_grid()

AtomGrid occ::dft::generate_atom_grid ( size_t  atomic_number,
size_t  max_angular_points = 302,
size_t  radial_points = 50 
)

◆ generate_becke_radial_grid()

RadialGrid occ::dft::generate_becke_radial_grid ( size_t  num_points,
double  rm = 1.0 
)

◆ generate_gauss_chebyshev_radial_grid()

RadialGrid occ::dft::generate_gauss_chebyshev_radial_grid ( size_t  num_points)

◆ generate_lmg_radial_grid()

RadialGrid occ::dft::generate_lmg_radial_grid ( double  radial_precision,
double  alpha_max,
const occ::Vec alpha_min 
)

◆ generate_mura_knowles_radial_grid()

RadialGrid occ::dft::generate_mura_knowles_radial_grid ( size_t  num_points,
size_t  charge 
)

◆ generate_treutler_alrichs_radial_grid()

RadialGrid occ::dft::generate_treutler_alrichs_radial_grid ( size_t  num_points)

◆ parse_dft_method()

Functionals occ::dft::parse_dft_method ( const std::string &  method_string)

◆ prune_numgrid_scheme()

IVec occ::dft::prune_numgrid_scheme ( size_t  nuclear_charge,
size_t  max_angular,
size_t  min_angular,
const occ::Vec radii 
)

◆ prune_nwchem_scheme()

IVec occ::dft::prune_nwchem_scheme ( size_t  nuclear_charge,
size_t  max_angular,
size_t  num_radial,
const occ::Vec radii 
)

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