ERKALE
ERKALE - DFT from Hel
 All Classes Functions Variables Friends Pages
Public Member Functions | Private Member Functions | Private Attributes | List of all members
rDIIS Class Reference

Spin-restricted DIIS. More...

#include <diis.h>

Inheritance diagram for rDIIS:
DIIS

Public Member Functions

 rDIIS (const arma::mat &S, const arma::mat &Sinvh, bool usediis, bool c1diis, double diiseps, double diisthr, bool useadiis, bool verbose, size_t imax)
 Constructor.
 
 ~rDIIS ()
 Destructor.
 
void update (const arma::mat &F, const arma::mat &P, double E, double &error)
 Add matrices to stack.
 
void solve_F (arma::mat &F)
 Compute new Fock matrix, use C1-DIIS if wanted.
 
void solve_P (arma::mat &P)
 Compute new density matrix, use C1-DIIS if wanted.
 
void clear ()
 Clear Fock matrices and errors.
 

Private Member Functions

arma::vec get_energies () const
 Get energies.
 
arma::mat get_diis_error () const
 Get errors.
 
void erase_last ()
 Reduce size of stack by one.
 
void PiF_update ()
 ADIIS update.
 

Private Attributes

std::vector< diis_unpol_entry_tstack
 Fock matrices in AO basis.
 

Additional Inherited Members

- Protected Member Functions inherited from DIIS
arma::vec get_w ()
 Compute weights.
 
arma::vec get_w_diis () const
 Compute DIIS weights.
 
arma::vec get_w_diis_wrk (const arma::mat &err) const
 Compute DIIS weights, worker routine.
 
arma::vec get_w_adiis () const
 Compute ADIIS weights.
 
arma::vec get_c_adiis (bool verbose=false) const
 Solve coefficients.
 
 DIIS (const arma::mat &S, const arma::mat &Sinvh, bool usediis, bool c1diis, double diiseps, double diisthr, bool useadiis, bool verbose, size_t imax)
 Constructor.
 
virtual ~DIIS ()
 Destructor.
 
double get_E_adiis (const arma::vec &x) const
 Compute energy with contraction coefficients $ c_i = x_i^2 / \left[ \sum_j x_j^2 \right] $.
 
arma::vec get_dEdx_adiis (const arma::vec &x) const
 Compute derivative of energy wrt contraction coefficients.
 
- Protected Attributes inherited from DIIS
arma::mat S
 Overlap matrix.
 
arma::mat Sinvh
 Half-inverse overlap matrix.
 
bool usediis
 Use DIIS?
 
bool c1diis
 C1-DIIS?
 
bool useadiis
 Use ADIIS?
 
bool verbose
 Verbose operation?
 
double diiseps
 When to start using DIIS weights.
 
double diisthr
 When to start using DIIS exclusively.
 
int cooloff
 Counter for not using DIIS.
 
size_t imax
 Maximum amount of matrices to store.
 
arma::vec PiF
 < P_i - P_n | F(D_n) > or < Pa_i - Pa_n | Fa(P_n) > + < Pb_i - Pb_n | Fb(P_n) >
 
arma::mat PiFj
 < P_i - P_n | F(D_j) - F(D_n) > or < Pa_i - Pa_n | Fa(P_j) - Fa(P_n) > + < Pb_i - Pb_n | Fb(P_j) - Fb(P_n) >
 

Detailed Description

Spin-restricted DIIS.


The documentation for this class was generated from the following files: