mpqc::lcao::cc::PNOSolver< T, DT > Class Template Reference
Collaboration diagram for mpqc::lcao::cc::PNOSolver< T, DT >:
Documentation
template<typename T, typename DT>
class mpqc::lcao::cc::PNOSolver< T, DT >
PNOSolver updates the CC T amplitudes using standard Jacobi+DIIS in PNO space
- Warning
- This class assumes that the 1- and 2-body amplitudes/residuals given to Solver::update() are laid out as "a,i" and "a,b,i,j", respectively
Public Types | |
using | Tile = typename T::value_type |
using | Policy = typename T::policy_type |
using | TVec = TA::DistArrayVector< Tile, Policy > |
using | Matrix = RowMatrix< typename Tile::numeric_type > |
using | Vector = EigenVector< typename Tile::numeric_type > |
using | WorldObject_ = madness::WorldObject< PNOSolver< T, DT > > |
Public Types inherited from mpqc::cc::DIISSolver< T > | |
using | Tile = typename T::value_type |
using | Policy = typename T::policy_type |
using | TVec = TA::DistArrayVector< Tile, Policy > |
Public Member Functions | |
PNOSolver (const KeyVal &kv, LCAOFactory< Tile, Policy > &factory) | |
The KeyVal constructor. More... | |
virtual | ~PNOSolver ()=default |
double | tpno () const |
double | tosv () const |
const auto & | pno (int i, int j) const |
const auto & | osv (int i) const |
const auto & | npnos (int i, int j) const |
virtual double | error (const std::vector< std::reference_wrapper< const T >> &r_pack) override |
Overrides Solver<T,T>::error() More... | |
Public Member Functions inherited from mpqc::cc::DIISSolver< T > | |
DIISSolver (const KeyVal &kv) | |
The KeyVal constructor. More... | |
virtual | ~DIISSolver ()=default |
void | update (std::vector< std::reference_wrapper< T >> &t_pack, const std::vector< std::reference_wrapper< const T >> &r_pack, double dE=0) override |
bool | is_converged (double target_precision, double error, double dE) const override |
void | reset () |
Resets the DIIS solver; used when switching to a new solver subspace. More... | |
Additional Inherited Members | |
Static Public Member Functions inherited from mpqc::cc::DIISSolver< T > | |
static double | precision_margin_energy () |
Protected Member Functions inherited from mpqc::cc::DIISSolver< T > | |
TA::DIIS< TVec > & | diis () |
Member Typedef Documentation
◆ Matrix
template<typename T , typename DT >
using mpqc::lcao::cc::PNOSolver< T, DT >::Matrix = RowMatrix<typename Tile::numeric_type> |
◆ Policy
template<typename T , typename DT >
using mpqc::lcao::cc::PNOSolver< T, DT >::Policy = typename T::policy_type |
◆ Tile
template<typename T , typename DT >
using mpqc::lcao::cc::PNOSolver< T, DT >::Tile = typename T::value_type |
◆ TVec
template<typename T , typename DT >
using mpqc::lcao::cc::PNOSolver< T, DT >::TVec = TA::DistArrayVector<Tile, Policy> |
◆ Vector
template<typename T , typename DT >
using mpqc::lcao::cc::PNOSolver< T, DT >::Vector = EigenVector<typename Tile::numeric_type> |
◆ WorldObject_
template<typename T , typename DT >
using mpqc::lcao::cc::PNOSolver< T, DT >::WorldObject_ = madness::WorldObject<PNOSolver<T, DT> > |
Constructor & Destructor Documentation
◆ PNOSolver()
template<typename T , typename DT >
|
inline |
The KeyVal constructor.
- Parameters
-
kv the KeyVal object; it will be queried for all keywords of mpqc::cc::DIISSolver , as well as the following additional keywords:
Keyword | Type | Default | Description |
---|---|---|---|
tpno | double | 1e-7 | The PNO construction threshold. This non-negative integer specifies the screening threshold for the eigenvalues of the pair density. Setting this to zero will cause the full (untruncated) set of PNOs to be used. |
tosv | double | 1e-9 | The OSV construction threshold. This non-negative integer specifies the screening threshold for the eigenvalues of the pair density of the diagonal pairs. Setting this to zero will cause the full (untruncated) set of OSVs to be used. |
pno_canonical | bool | false | Whether or not to canonicalize the PNOs and OSVs |
pno_guess | string | scmp1 | How to construct the (initial) PNOs; valid values are "scmp1" (semicanonical MP1 amplitudes; exact if using canonical orbitals) and "mp1" (exact MP1 amplitudes) |
update_pno | bool | false | Whether or not to recompute the PNOs |
min_micro | int | 3 | The minimum number of micro iterations to perform per macro iteration |
print_npnos | bool | false | Whether or not to print out nPNOs/pair every time PNOs are updated |
micro_ratio | double | 3.0 | How much more tightly to converge w/in a macro iteration |
◆ ~PNOSolver()
template<typename T , typename DT >
|
virtualdefault |
Member Function Documentation
◆ error()
template<typename T , typename DT >
|
inlineoverridevirtual |
Overrides Solver<T,T>::error()
◆ npnos()
template<typename T , typename DT >
|
inline |
◆ osv()
template<typename T , typename DT >
|
inline |
◆ pno()
template<typename T , typename DT >
|
inline |
◆ tosv()
template<typename T , typename DT >
|
inline |
- Returns
- OSV truncation threshold
◆ tpno()
template<typename T , typename DT >
|
inline |
- Returns
- PNO truncation threshold
The documentation for this class was generated from the following file:
- mpqc/chemistry/qc/lcao/cc/solvers.h