PSCF v1.3.2
Pscf::AmIteratorDArray< Iterator > Class Template Reference

Anderson mixing iterator algorithm using a DArray<double>. More...

#include <AmIteratorDArray.h>

Inheritance diagram for Pscf::AmIteratorDArray< Iterator >:
Pscf::AmIteratorTmpl< Iterator, DArray< double > > Pscf::R1d::AmIterator

Public Types

using AmTmpl = AmIteratorTmpl<Iterator, DArray<double> >
 Alias for base class template.

Public Member Functions

 AmIteratorDArray ()=default
 Constructor.
 ~AmIteratorDArray ()=default
 Destructor.
Public Member Functions inherited from Pscf::AmIteratorTmpl< Iterator, DArray< double > >
 AmIteratorTmpl ()
 Constructor.
 ~AmIteratorTmpl ()
 Destructor.
virtual void readParameters (std::istream &in)
 Read all parameters and initialize.
int solve (bool isContinuation=false)
 Iterate to a solution.
void outputTimers (std::ostream &out) const
 Log output timing results.
void clearTimers ()
 Clear timers.

Additional Inherited Members

Protected Member Functions inherited from Pscf::AmIteratorTmpl< Iterator, DArray< double > >
void readErrorType (std::istream &in)
 Read and validate the optional errorType string parameter.
virtual bool isValidErrorType ()
 Checks if a string is a valid error type.
void readMixingParameters (std::istream &in, bool useLambdaRamp=true)
 Read optional parameters used in default correction algorithm.
void allocateAM ()
 Allocate memory required by AM algorithm, if necessary.
bool isAllocatedAM () const
 Have data structures required by the AM algorithm been allocated?
virtual void setup (bool isContinuation)
 Initialize just before entry to iterative loop.
virtual void clear ()
 Clear information about history.
virtual double computeError (DArray< double > &residTrial, DArray< double > &stateTrial, std::string errorType, int verbose)
 Compute and return error used to test for convergence.
double computeError (int verbose)
 Compute and return error used to test for convergence.
double lambdaRampFactor ()
 Compute ramped prefactor of mixing parameter lambda.
virtual double computeLambda ()
 Compute mixing parameter for correction step of Anderson mixing.
int verbose () const
 Verbosity level, allowed values 0, 1, or 2.
std::string errorType () const
 Get error type string.
DArray< double > const & residual () const
 Get the current residual vector by const reference.
DArray< double > const & state () const
 Return the current state vector by const reference.
int totalItr ()
 Return the total number of iterations needed to converge.
double timerTotal ()
 Get total time.
double timerMDE ()
 Get time spent solving the modified diffusion equation (MDE).
double timerAM ()
 Get total time for AM algorithm, excluding MDE solution.
double timerResid ()
 Get time spent computing residual.
double timerError ()
 Get time evaluating scalar error.
double timerCoeff ()
 Get time spent evaluating Anderson mixing coefficients.
double timerOmega ()
 Get time spent updating w states.
Protected Attributes inherited from Pscf::AmIteratorTmpl< Iterator, DArray< double > >
double epsilon_
 Error tolerance.
int maxItr_
 Maximum number of iterations to attempt.
int maxHist_
 Maximum number of basis vectors in AM algorithm.
int verbose_
 Verbosity level.
std::string errorType_
 Type of error criterion used to test convergence.

Detailed Description

template<typename Iterator>
class Pscf::AmIteratorDArray< Iterator >

Anderson mixing iterator algorithm using a DArray<double>.

Definition at line 23 of file AmIteratorDArray.h.

Member Typedef Documentation

◆ AmTmpl

template<typename Iterator>
using Pscf::AmIteratorDArray< Iterator >::AmTmpl = AmIteratorTmpl<Iterator, DArray<double> >

Alias for base class template.

Definition at line 41 of file AmIteratorDArray.h.

Constructor & Destructor Documentation

◆ AmIteratorDArray()

template<typename Iterator>
Pscf::AmIteratorDArray< Iterator >::AmIteratorDArray ( )
default

Constructor.

◆ ~AmIteratorDArray()

template<typename Iterator>
Pscf::AmIteratorDArray< Iterator >::~AmIteratorDArray ( )
default

Destructor.


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