PSCF v1.3.2
|
Anderson-Mixing iterator for 1D SCFT. More...
#include <AmIterator.h>
Public Member Functions | |
AmIterator (System &system) | |
Constructor. | |
~AmIterator () | |
Destructor. | |
void | readParameters (std::istream &in) override |
Read all parameters and initialize. | |
Public Member Functions inherited from Pscf::AmIteratorDArray< Iterator > | |
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. | |
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 | |
Public Types inherited from Pscf::AmIteratorDArray< Iterator > | |
using | AmTmpl = AmIteratorTmpl<Iterator, DArray<double> > |
Alias for base class template. | |
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. |
Anderson-Mixing iterator for 1D SCFT.
Definition at line 31 of file AmIterator.h.
Pscf::R1d::AmIterator::AmIterator | ( | System & | system | ) |
Constructor.
system | parent System |
Definition at line 25 of file AmIterator.cpp.
References Util::ParamComposite::setClassName().
Pscf::R1d::AmIterator::~AmIterator | ( | ) |
Destructor.
Definition at line 33 of file AmIterator.cpp.
|
overridevirtual |
Read all parameters and initialize.
in | input filestream |
Reimplemented from Pscf::AmIteratorTmpl< Iterator, DArray< double > >.
Definition at line 39 of file AmIterator.cpp.
References Pscf::AmIteratorTmpl< Iterator, DArray< double > >::AmIteratorTmpl(), Pscf::AmIteratorTmpl< Iterator, DArray< double > >::readErrorType(), Pscf::AmIteratorTmpl< Iterator, DArray< double > >::readMixingParameters(), and Pscf::AmIteratorTmpl< Iterator, DArray< double > >::readParameters().
|
overrideprotectedvirtual |
Setup iterator just before entering iteration loop.
isContinuation | Is this a continuation within a sweep? |
Reimplemented from Pscf::AmIteratorTmpl< Iterator, DArray< double > >.
Definition at line 55 of file AmIterator.cpp.
References Pscf::AmIteratorTmpl< Iterator, DArray< double > >::AmIteratorTmpl(), and setup().
Referenced by setup().