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