occ
Loading...
Searching...
No Matches
dft_kernels.h File Reference
Include dependency graph for dft_kernels.h:
This graph shows which files directly or indirectly include this file:

Classes

struct  occ::dft::kernels::BatchDensity
 A batch's density matrix: D_s for spin s is rows [s n, (s + 1) n) of D. More...
class  occ::dft::impl::DensityFunctional

Namespaces

namespace  occ
namespace  occ::dft
 functionality related to Kohn-Sham density functional theory
namespace  occ::dft::impl
namespace  occ::qm
 quantum mechanics/quantum chemistry functionality including Hartree-Fock and more
namespace  occ::dft::kernels

Typedefs

using occ::dft::impl::Mat

Functions

DensityFunctional::Family occ::dft::impl::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 occ::dft::impl::set_params (DensityFunctional::Params &params, const Mat &rho)
Mat occ::dft::kernels::density_factor (const occ::qm::MolecularOrbitals &mo, const Mat &D2, int nspin)
 Factor F of the (doubled) density matrix D2 = 2 mo.D, D2_s = F_s F_s^T for each spin block, from the occupied orbitals; empty unless mo.D really is that product (to 1e-12 relative), e.g.
template<int derivative_order>
void occ::dft::kernels::spin_density (const BatchDensity &dens, int s, const occ::gto::GTOValues &gv, Mat &Dphi, Mat *Dgrad, MatRef rho)
 rho (one spin's rows) from the batch's basis values, keeping the products with D: Dphi = phi D_s, and for meta-GGAs Dgrad[i] = phi_i D_s.
template<int derivative_order, occ::qm::SpinorbitalKind spinorbital_kind>
bool occ::dft::kernels::process_grid_block (const BatchDensity &D, const occ::gto::GTOValues &gto_vals, Eigen::Ref< const Mat3N > points_block, const Vec &weights_block, const std::vector< DensityFunctional > &funcs, Mat &K, double &energy, double &total_density_a, double &total_density_b, double density_threshold)