Exact-exchange calculator. More...
#include <ExactExchange.h>
Public Member Functions | |
ExactExchange (const Everything &e) | |
double | operator() (double aXX, double omega, const std::vector< diagMatrix > &F, const std::vector< ColumnBundle > &C, std::vector< ColumnBundle > *HC=0, matrix3<> *EXX_RRT=0) const |
void | setOccupied (const std::vector< diagMatrix > &F, const std::vector< ColumnBundle > &C) |
Set the occupied wavefunctions and occupation factors in preparation for applyHamiltonian. | |
void | applyHamiltonian (double aXX, double omega, int q, const ColumnBundle &Cq, ColumnBundle &HCq) |
Apply Hamiltonian: | |
void | addHamiltonian (double aXX, double omega, int q, matrix &H, const std::vector< int > &iRowsMine, const std::vector< int > &iColsMine) |
Add Hamiltonian in plane-wave basis (used for dense diagonalization for BGW): | |
Exact-exchange calculator.
double ExactExchange::operator() | ( | double | aXX, |
double | omega, | ||
const std::vector< diagMatrix > & | F, | ||
const std::vector< ColumnBundle > & | C, | ||
std::vector< ColumnBundle > * | HC = 0 , |
||
matrix3<> * | EXX_RRT = 0 |
||
) | const |
Compute scaled exact exchange energy with scale aXX and range omega (and optionally accumulate gradients) given fillings and wavefunctions