mpqc::lcao::pbc::DfJBuilder< Tile, Policy, Factory > Class Template Reference
Documentation
template<typename Tile, typename Policy, typename Factory>
class mpqc::lcao::pbc::DfJBuilder< Tile, Policy, Factory >
Computes Coulomb matrix using multipole-conserved DF-J approach.
- Note
- the multipole-conserved approach is insipred and contains as a special case (for 1-d periodic crystals) the PBC-RI-J approach of Burow, Sierka, and Mohamed (DOI 10.1063/1.3267858)
PBC DF-J precision control notes:
- evaluates 2-c Coulomb CNF (V) matrix to machine precision
- DF multipole moment ints are computed to machine precision / condition number of V(CNF)
- OBC multipole moment ints are computed to machine precision / condition number of OBS (~magnitude of D)
- CNF Coulomb potential matrix in DF basis (gamma) computed to target precision / condition number of V_p
Public Types | |
using | array_type = TA::DistArray< Tile, Policy > |
using | result_type = std::tuple< array_type, std::optional< double > > |
using | PTC_Builder = ThreeCenterContractionBuilder< Tile, Policy > |
Public Member Functions | |
template<typename... DummyArgs> | |
DfJBuilder (Factory &ao_factory, DummyArgs &&...) | |
~DfJBuilder ()=default | |
result_type | operator() (array_type const &D, double target_precision) |
template<typename MA_Builder > | |
result_type | operator() (array_type const &D, double target_precision, MA_Builder *ma_builder) |
const Vector3i & | fock_lattice_range () const |
const array_type & | rho () const |
double | cnf_energy_correction () const |
Member Typedef Documentation
◆ array_type
template<typename Tile , typename Policy , typename Factory >
using mpqc::lcao::pbc::DfJBuilder< Tile, Policy, Factory >::array_type = TA::DistArray<Tile, Policy> |
◆ PTC_Builder
template<typename Tile , typename Policy , typename Factory >
using mpqc::lcao::pbc::DfJBuilder< Tile, Policy, Factory >::PTC_Builder = ThreeCenterContractionBuilder<Tile, Policy> |
◆ result_type
template<typename Tile , typename Policy , typename Factory >
using mpqc::lcao::pbc::DfJBuilder< Tile, Policy, Factory >::result_type = std::tuple<array_type, std::optional<double> > |
Constructor & Destructor Documentation
◆ DfJBuilder()
template<typename Tile , typename Policy , typename Factory >
template<typename... DummyArgs>
|
inline |
◆ ~DfJBuilder()
template<typename Tile , typename Policy , typename Factory >
|
default |
Member Function Documentation
◆ cnf_energy_correction()
template<typename Tile , typename Policy , typename Factory >
|
inline |
- Returns
- the CNF part of the first-order correction to the repulsion energy between exact and fitted densities in Eq. (45) of Eq. 10.1063/1.3267858, i.e.:
◆ fock_lattice_range()
template<typename Tile , typename Policy , typename Factory >
|
inline |
◆ operator()() [1/2]
template<typename Tile , typename Policy , typename Factory >
DfJBuilder< Tile, Policy, Factory >::result_type mpqc::lcao::pbc::DfJBuilder< Tile, Policy, Factory >::operator() | ( | array_type const & | D, |
double | target_precision | ||
) |
◆ operator()() [2/2]
template<typename Tile , typename Policy , typename Factory >
template<typename MA_Builder >
DfJBuilder< Tile, Policy, Factory >::result_type mpqc::lcao::pbc::DfJBuilder< Tile, Policy, Factory >::operator() | ( | array_type const & | D, |
double | target_precision, | ||
MA_Builder * | ma_builder | ||
) |
◆ rho()
template<typename Tile , typename Policy , typename Factory >
|
inline |
- Returns
- the fitted charge density
The documentation for this class was generated from the following files:
- mpqc/chemistry/qc/lcao/scf/fwd.h
- mpqc/chemistry/qc/lcao/scf/pbc/dfj_builder.h
- mpqc/chemistry/qc/lcao/scf/pbc/dfj_builder.ipp