Function uw12::form_fock
Defined in File uw12.hpp
Function Documentation
-
utils::FockMatrixAndEnergy uw12::form_fock(const integrals::BaseIntegrals &W, const integrals::BaseIntegrals &V, const integrals::BaseIntegrals &WV, const three_el::ri::ABSProjectors &abs_projectors, const utils::Orbitals &orbitals, const utils::Occupations &occupations, const std::vector<size_t> &n_active, bool indirect_term, bool calculate_fock, double scale_opp_spin, double scale_same_spin, size_t print_level = 0)
Find the contribution to the energy and Fock matrix of UW12
This function calculates the UW12 energy and Fock matrix contribution by calculating the two, three and four electron components. The two and four electron components are calculated using density fitting, the integrals for which are given to this function. The three electron term is calculated using density-fitted RI.
- Parameters
W – Density-fitting integrals and eigenvalues for \(w_{12}\)
V – Density-fitting integrals and eigenvalues for \(v_{12}\)
WV – Density-fitting integrals for \(w_{12}v_{12}\) (No RI)
abs_projectors – Projectors for ABS+ (inverse overlaps matrices between ri and ao space)
orbitals – Orbital coefficients in the form of a std::vector of matrices with number of rows specified by the size number of ao basis functions and number of columns specified by number of (occupied) orbitals with one matrix for each spin channel. The first
n_occcolumns are treated as the occupied orbital coefficients, withn_occdetermined byoccupations.occupations – Occupation numbers for the orbitals in the form of a std::vector of Vecs of size
n_occfor each spin channeln_active – Vector of the number of active orbitals in each spin channel
indirect_term – Calculate the indirect (exchange) term
calculate_fock – Calculate the Fock matrix contribution
scale_opp_spin – Scale \(w^0 (r)\) by a factor \(\kappa_0\)
scale_same_spin – Scale \(w^1 (r)\) by a factor \(\kappa_1\)
print_level – Adjust details printed (0-3) default: 0 (silent)
- Returns
Fock matrix and energy for UW12