PSCF v1.3.2
Pscf::Rpc::AmIteratorBasis< D > Class Template Reference

Anderson Mixing iterator with imposed space-group symmetry. More...

#include <AmIteratorBasis.h>

Inheritance diagram for Pscf::Rpc::AmIteratorBasis< D >:
Pscf::AmIteratorDArray< Iterator< D > > Pscf::AmIteratorTmpl< Iterator, DArray< double > >

Public Types

using AmTmpl = AmIteratorTmpl< Iterator<D>, DArray<double> >
 Alias for indirect base (grandparent) class.
Public Types inherited from Pscf::AmIteratorDArray< Iterator< D > >
using AmTmpl
 Alias for base class template.

Public Member Functions

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

Protected Member Functions

void setup (bool isContinuation) override
 Setup iterator just before entering iteration loop.
int verbose () const
 Verbosity level, allowed values 0, 1, or 2.
DArray< double > const & residual () const
 Get the current residual vector by const reference.
template<typename Type>
ScalarParam< Type > & readOptional (std::istream &in, const char *label, Type &value)
 Add and read a new optional ScalarParam < Type > object.
void readParamCompositeOptional (std::istream &in, ParamComposite &child, bool next=true)
 Add and attempt to read an optional child ParamComposite.
template<typename Type, int N>
FSArrayParam< Type, N > & readOptionalFSArray (std::istream &in, const char *label, FSArray< Type, N > &array, int size)
 Add and read an optional FSArray < Type, N > array parameter.
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 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.

Additional Inherited Members

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<int D>
class Pscf::Rpc::AmIteratorBasis< D >

Anderson Mixing iterator with imposed space-group symmetry.

See also
Manual Page
AM Iteration Algorithm

Definition at line 39 of file rpc/scft/iterator/AmIteratorBasis.h.

Member Typedef Documentation

◆ AmTmpl

template<int D>
using Pscf::Rpc::AmIteratorBasis< D >::AmTmpl = AmIteratorTmpl< Iterator<D>, DArray<double> >

Alias for indirect base (grandparent) class.

Definition at line 71 of file rpc/scft/iterator/AmIteratorBasis.h.

Constructor & Destructor Documentation

◆ AmIteratorBasis()

template<int D>
Pscf::Rpc::AmIteratorBasis< D >::AmIteratorBasis ( System< D > & system)

Constructor.

Parameters
systemSystem object associated with this iterator.

Definition at line 34 of file rpc/scft/iterator/AmIteratorBasis.tpp.

References Util::ParamComposite::setClassName().

◆ ~AmIteratorBasis()

template<int D>
Pscf::Rpc::AmIteratorBasis< D >::~AmIteratorBasis ( )

Destructor.

Definition at line 45 of file rpc/scft/iterator/AmIteratorBasis.tpp.

Member Function Documentation

◆ readParameters()

◆ outputTimers()

template<int D>
void Pscf::Rpc::AmIteratorBasis< D >::outputTimers ( std::ostream & out) const
override

Output timing results to log file.

Parameters
outoutput stream for timer report

Definition at line 102 of file rpc/scft/iterator/AmIteratorBasis.tpp.

References Pscf::AmIteratorTmpl< Iterator< D >, DArray< double > >::outputTimers().

◆ setup()

template<int D>
void Pscf::Rpc::AmIteratorBasis< D >::setup ( bool isContinuation)
overrideprotectedvirtual

Setup iterator just before entering iteration loop.

Parameters
isContinuationIs this a continuation within a sweep?

Reimplemented from Pscf::AmIteratorTmpl< Iterator, DArray< double > >.

Definition at line 113 of file rpc/scft/iterator/AmIteratorBasis.tpp.

References Pscf::AmIteratorTmpl< Iterator< D >, DArray< double > >::setup().

◆ verbose()

template<int D>
int Pscf::AmIteratorTmpl< Iterator, DArray< double > >::verbose ( ) const
protected

Verbosity level, allowed values 0, 1, or 2.

◆ residual()

template<int D>
DArray< double > const & Pscf::AmIteratorTmpl< Iterator, DArray< double > >::residual ( ) const
protected

Get the current residual vector by const reference.

◆ readOptional()

template<int D>
template<typename Type>
ScalarParam< Type > & Util::ParamComposite::readOptional ( std::istream & in,
const char * label,
Type & value )
inlineprotected

Add and read a new optional ScalarParam < Type > object.

This is equivalent to ScalarParam<Type>(in, label, value, false).

Parameters
ininput stream for reading
labelLabel string
valuereference to new ScalarParam< Type >

Definition at line 319 of file ParamComposite.h.

Referenced by readParameters().

◆ readParamCompositeOptional()

template<int D>
void Util::ParamComposite::readParamCompositeOptional ( std::istream & in,
ParamComposite & child,
bool next = true )
protected

Add and attempt to read an optional child ParamComposite.

Parameters
ininput stream for reading
childchild ParamComposite object
nexttrue if the indent level is one higher than parent.

Definition at line 292 of file ParamComposite.cpp.

◆ readOptionalFSArray()

template<int D>
template<typename Type, int N>
FSArrayParam< Type, N > & Util::ParamComposite::readOptionalFSArray ( std::istream & in,
const char * label,
FSArray< Type, N > & array,
int size )
inlineprotected

Add and read an optional FSArray < Type, N > array parameter.

Parameters
ininput stream for reading
labelLabel string for new array
arrayFSArray object
sizelogical size of array
Returns
reference to the new FSArrayParam<Type, N> object

Definition at line 427 of file ParamComposite.h.

Referenced by readParameters().


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