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

Classes

class  DensityFunctional

Typedefs

using Mat

Functions

DensityFunctional::Family family_for (int derivative_order)
 The functional family whose inputs a density derivative order provides: 0 LDA, 1 GGA, 2 meta-GGA (tau).
template<SpinorbitalKind spinorbital_kind, int derivative_order>
void set_params (DensityFunctional::Params &params, const Mat &rho)
void hirshfeld_kernel_restricted (Eigen::Ref< const Mat > r, Eigen::Ref< const Mat > rho, Eigen::Ref< const Vec > weights, Eigen::Ref< const Mat > rho_pro, Eigen::Ref< Vec > hirshfeld_charges, Eigen::Ref< Vec > atom_volumes, double &num_electrons, double &num_electrons_promol)
 Kernel function for calculating Hirshfeld weights with restricted orbitals.
void hirshfeld_kernel_unrestricted (Eigen::Ref< const Mat > r, Eigen::Ref< const Mat > rho, Eigen::Ref< const Vec > weights, Eigen::Ref< const Mat > rho_pro, Eigen::Ref< Vec > hirshfeld_charges, Eigen::Ref< Vec > atom_volumes, double &num_electrons, double &num_electrons_promol)
 Kernel function for calculating Hirshfeld weights with unrestricted orbitals.
void hirshfeld_multipole_kernel_restricted (Eigen::Ref< const Mat > r, const std::vector< Mat3N > &r_vec, Eigen::Ref< const Mat > rho, Eigen::Ref< const Vec > weights, Eigen::Ref< const Mat > rho_pro, std::vector< occ::core::Multipole< 4 > > &multipoles, Eigen::Ref< Vec > atom_volumes, double &num_electrons, double &num_electrons_promol, int max_multipole_order)
 Kernel function for calculating Hirshfeld multipoles with restricted orbitals.
void hirshfeld_multipole_kernel_unrestricted (Eigen::Ref< const Mat > r, const std::vector< Mat3N > &r_vec, Eigen::Ref< const Mat > rho, Eigen::Ref< const Vec > weights, Eigen::Ref< const Mat > rho_pro, std::vector< occ::core::Multipole< 4 > > &multipoles, Eigen::Ref< Vec > atom_volumes, double &num_electrons, double &num_electrons_promol, int max_multipole_order)
 Kernel function for calculating Hirshfeld multipoles with unrestricted orbitals.

Typedef Documentation

◆ Mat

using occ::Mat

Function Documentation

◆ family_for()

DensityFunctional::Family occ::dft::impl::family_for ( int derivative_order)
inline

The functional family whose inputs a density derivative order provides: 0 LDA, 1 GGA, 2 meta-GGA (tau).

◆ hirshfeld_kernel_restricted()

void occ::dft::impl::hirshfeld_kernel_restricted ( Eigen::Ref< const Mat > r,
Eigen::Ref< const Mat > rho,
Eigen::Ref< const Vec > weights,
Eigen::Ref< const Mat > rho_pro,
Eigen::Ref< Vec > hirshfeld_charges,
Eigen::Ref< Vec > atom_volumes,
double & num_electrons,
double & num_electrons_promol )

Kernel function for calculating Hirshfeld weights with restricted orbitals.

Parameters
rDistance matrix from grid points to atoms
rhoElectron density and derivatives at grid points
weightsGrid weights
rho_proPromolecular density at grid points
hirshfeld_chargesOutput: Hirshfeld charges
atom_volumesOutput: Atomic volumes
num_electronsOutput: Total number of electrons
num_electrons_promolOutput: Total number of electrons in promolecule

◆ hirshfeld_kernel_unrestricted()

void occ::dft::impl::hirshfeld_kernel_unrestricted ( Eigen::Ref< const Mat > r,
Eigen::Ref< const Mat > rho,
Eigen::Ref< const Vec > weights,
Eigen::Ref< const Mat > rho_pro,
Eigen::Ref< Vec > hirshfeld_charges,
Eigen::Ref< Vec > atom_volumes,
double & num_electrons,
double & num_electrons_promol )

Kernel function for calculating Hirshfeld weights with unrestricted orbitals.

Parameters
rDistance matrix from grid points to atoms
rhoElectron density and derivatives at grid points
weightsGrid weights
rho_proPromolecular density at grid points
hirshfeld_chargesOutput: Hirshfeld charges
atom_volumesOutput: Atomic volumes
num_electronsOutput: Total number of electrons
num_electrons_promolOutput: Total number of electrons in promolecule

◆ hirshfeld_multipole_kernel_restricted()

void occ::dft::impl::hirshfeld_multipole_kernel_restricted ( Eigen::Ref< const Mat > r,
const std::vector< Mat3N > & r_vec,
Eigen::Ref< const Mat > rho,
Eigen::Ref< const Vec > weights,
Eigen::Ref< const Mat > rho_pro,
std::vector< occ::core::Multipole< 4 > > & multipoles,
Eigen::Ref< Vec > atom_volumes,
double & num_electrons,
double & num_electrons_promol,
int max_multipole_order )

Kernel function for calculating Hirshfeld multipoles with restricted orbitals.

Parameters
rDistance matrix from grid points to atoms
r_vecVectors from atom centers to grid points (for each atom)
rhoElectron density at grid points
weightsGrid weights
rho_proPromolecular density at grid points
multipolesOutput: Hirshfeld multipoles
atom_volumesOutput: Atomic volumes
num_electronsOutput: Total number of electrons
num_electrons_promolOutput: Total number of electrons in promolecule
max_multipole_orderMaximum order of multipoles to compute

◆ hirshfeld_multipole_kernel_unrestricted()

void occ::dft::impl::hirshfeld_multipole_kernel_unrestricted ( Eigen::Ref< const Mat > r,
const std::vector< Mat3N > & r_vec,
Eigen::Ref< const Mat > rho,
Eigen::Ref< const Vec > weights,
Eigen::Ref< const Mat > rho_pro,
std::vector< occ::core::Multipole< 4 > > & multipoles,
Eigen::Ref< Vec > atom_volumes,
double & num_electrons,
double & num_electrons_promol,
int max_multipole_order )

Kernel function for calculating Hirshfeld multipoles with unrestricted orbitals.

Parameters
rDistance matrix from grid points to atoms
r_vecVectors from atom centers to grid points (for each atom)
rhoElectron density at grid points
weightsGrid weights
rho_proPromolecular density at grid points
multipolesOutput: Hirshfeld multipoles
atom_volumesOutput: Atomic volumes
num_electronsOutput: Total number of electrons
num_electrons_promolOutput: Total number of electrons in promolecule
max_multipole_orderMaximum order of multipoles to compute

◆ set_params()

template<SpinorbitalKind spinorbital_kind, int derivative_order>
void occ::dft::impl::set_params ( DensityFunctional::Params & params,
const Mat & rho )