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

Broyden convergence accelerator. More...

#include <broyden.h>

Public Member Functions

 Broyden (bool verbose=true, size_t m=10, double beta=0.8, double sigma=0.25)
 Construct accelerator storing m iterations and with mixing parameters beta and sigma.
 
 ~Broyden ()
 Destructor.
 
void push_x (const arma::vec &x)
 Add solutions of SCF equation to stack.
 
void push_f (const arma::vec &f)
 Add difference from SCF solution to stack.
 
void clear ()
 Clean old matrices from memory.
 
arma::vec update_x ()
 Get estimate for solution.
 
arma::vec operate_G (const arma::vec &v, size_t ind) const
 Operate on vector with estimated inverse Jacobian.
 

Private Attributes

std::vector< arma::vec > x
 Stack of approximate solutions.
 
std::vector< arma::vec > f
 Stack of differences from SCF solution.
 
bool difficult
 Difficulties encountered? (Halve mixing parameter for this step)
 
bool verbose
 Verbose operation? (Complain about bad updates?)
 
size_t m
 Number of matrices to keep in memory.
 
double beta
 Damping parameter.
 
double sigma
 Sigma parameter.
 

Detailed Description

Broyden convergence accelerator.

Broyden accelerator.

This class contains a Broyden convergence accelerator, as described in

K. Baarman, T. Eirola and V. Havu, "Robust acceleration of self consistent field calculations for density functional theory", J. Chem. Phys. 134 (2011), 134109.

The dimension of the problem is Nbas^2. The jacobian would thus be Nbas^4, so we need to work with a memory limited algorithm.

Author
Susi Lehtola
Date
2011/05/10 15:39

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