|
occ
|
Classes | |
| struct | BatchDensity |
| A batch's density matrix: D_s for spin s is rows [s n, (s + 1) n) of D. More... | |
Functions | |
| template<int derivative_order, SpinorbitalKind spinorbital_kind> | |
| void | process_grid_block_gradient (const BatchDensity &D, const occ::gto::GTOValues >o_vals, Eigen::Ref< const Mat3N > points_block, const Vec &weights_block, const std::vector< DensityFunctional > &funcs, Mat3N &gradient, double density_threshold, const std::vector< int > &bf_to_atom, double *energy_density=nullptr, const int *point_parent=nullptr) |
| Mat | 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 | 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 | process_grid_block (const BatchDensity &D, const occ::gto::GTOValues >o_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) |
| 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.
for a guess density.
| 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 ) |
| void occ::dft::kernels::process_grid_block_gradient | ( | const BatchDensity & | D, |
| const occ::gto::GTOValues & | gto_vals, | ||
| Eigen::Ref< const Mat3N > | points_block, | ||
| const Vec & | weights_block, | ||
| const std::vector< DensityFunctional > & | funcs, | ||
| Mat3N & | gradient, | ||
| double | density_threshold, | ||
| const std::vector< int > & | bf_to_atom, | ||
| double * | energy_density = nullptr, | ||
| const int * | point_parent = nullptr ) |
| 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.
The same arithmetic as occ::density::evaluate_density.