sc::DIIS Class Reference

The DIIS class provides DIIS extrapolation. More...

#include <math/optimize/diis.h>

Inheritance diagram for sc::DIIS:

Inheritance graph
[legend]

List of all members.

Public Member Functions

 DIIS (int strt=1, int ndi=5, double dmp=0, int ngr=1, int ngrdiis=1, double mf=0)
 DIIS (StateIn &)
 DIIS (const Ref< KeyVal > &)
 The DIIS KeyVal constructor recognizes the following keywords:.
void save_data_state (StateOut &)
 Save the base classes (with save_data_state) and the members in the same order that the StateIn CTOR initializes them.
int extrapolate (const Ref< SCExtrapData > &data, const Ref< SCExtrapError > &error)
void start_extrapolation ()
void reinitialize (Ref< SCExtrapData > data=0)
 This must be called if the extrapolation object is to be used again.
void print (std::ostream &=ExEnv::out0()) const
 Override DescribedClass::print.

Protected Member Functions

void init ()

Protected Attributes

int start
int ndiis
int iter
int ngroup
int ngroupdiis
double damping_factor
double mixing_fraction
double * btemp
double ** bold
double ** bmat
Ref< SCExtrapDataLdata
Ref< SCExtrapData > * diism_data
Ref< SCExtrapData > * diism_datain
Ref< SCExtrapError > * diism_error


Detailed Description

The DIIS class provides DIIS extrapolation.


Constructor & Destructor Documentation

sc::DIIS::DIIS ( const Ref< KeyVal > &   ) 

The DIIS KeyVal constructor recognizes the following keywords:.

n
This integer maximum number of data sets to retain. The default is 5.

start
The DIIS extrapolation will begin on the iteration given by this integer. The default is 1.

damping_factor
This nonnegative floating point number is used to dampen the DIIS extrapolation. The default is 0.0.

mixing_fraction
This floating point number in [0,1] is used to dampen the DIIS extrapolation by mixing the input data with the output data for each iteration. The default is 0.0, which performs no mixing. The approach described in Kerker, Phys. Rev. B, 23, p3082, 1981.

ngroup
The number of iterations in a DIIS group. DIIS extrapolation is only used for the first ngroupdiis of these interations. The default is 1. If ngroup is 1 and ngroupdiis is greater than 0, then DIIS will be used on all iterations after and including the start iteration.

ngroupdiis
The number of DIIS extrapolations to do at the beginning of an iteration group. See the documentation for ngroup.


Member Function Documentation

void sc::DIIS::save_data_state ( StateOut  )  [virtual]

Save the base classes (with save_data_state) and the members in the same order that the StateIn CTOR initializes them.

This must be implemented by the derived class if the class has data.

Reimplemented from sc::SelfConsistentExtrapolation.

void sc::DIIS::reinitialize ( Ref< SCExtrapData data = 0  )  [virtual]

This must be called if the extrapolation object is to be used again.

It should also be called before the first use of the object, if initial data needs to be given to the algorithm. The data object will be copied.

Implements sc::SelfConsistentExtrapolation.


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

Generated at Sun Feb 22 10:12:54 2009 for MPQC 3.0.0-alpha using the documentation package Doxygen 1.5.6.
These pages are hosted on SourceForge.net