mpqc::libintx::DFJEngine Class Reference
Documentation
Uses LibintX to compute Coulomb potential in Gaussian basis via DF.
Public Types | |
using | TileIndex = std::pair< size_t, size_t > |
using | TileIn = std::function< void(TileIndex, TileIndex, double *)> |
using | TileOut = std::function< void(TileIndex, TileIndex, const double *)> |
Public Member Functions | |
DFJEngine (const mpqc::lcao::gaussian::Basis &basis, const mpqc::lcao::gaussian::Basis &df_basis, double screening_threshold) | |
~DFJEngine () noexcept | |
template<typename T , typename P > | |
auto | compute (DistArrayVector< T, P > const &Ds, DistArray< T, P > const &V_linv) |
Member Typedef Documentation
◆ TileIn
using mpqc::libintx::DFJEngine::TileIn = std::function<void(TileIndex, TileIndex, double *)> |
◆ TileIndex
using mpqc::libintx::DFJEngine::TileIndex = std::pair<size_t, size_t> |
◆ TileOut
using mpqc::libintx::DFJEngine::TileOut = std::function<void(TileIndex, TileIndex, const double *)> |
Constructor & Destructor Documentation
◆ DFJEngine()
mpqc::libintx::DFJEngine::DFJEngine | ( | const mpqc::lcao::gaussian::Basis & | basis, |
const mpqc::lcao::gaussian::Basis & | df_basis, | ||
double | screening_threshold | ||
) |
basic constructor
- Parameters
-
[in] basis the orbital basis set [in] df_basis the density-fitting basis set [in] screening_threshold shell-set contributions to the Coulomb matrix and the intermediates are screened out if their l2 norm are smaller than this value
◆ ~DFJEngine()
|
defaultnoexcept |
Member Function Documentation
◆ compute()
template<typename T , typename P >
|
inline |
Evaluates the Coulomb matrix
- Parameters
-
[in] Ds densit{y,ies} [in] V_linv inverse-of-Cholesky-factor
- Note
- computes using integral-direct approach, i.e. eachJ("mu, nu") = eri3("mu, nu, X") * (V_linv("X, Z") * (V_linv("X, Y") *(eri3("rho, sigma, Y") * Ds("rho, sigma"))))
eri3
is evaluated "twice"
The documentation for this class was generated from the following files: