•All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Modules Pages
Search Results
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
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 > > | |
![]() | |
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... | |
![]() | |
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 double precision_margin_energy () | |
![]() | |
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