PSCF v1.3.2
|
Anderson mixing compressor. More...
#include <AmCompressor.h>
Public Member Functions | |
AmCompressor (System< D > &system) | |
Constructor. | |
~AmCompressor () | |
Destructor. | |
void | readParameters (std::istream &in) override |
Read all parameters and initialize. | |
void | setup (bool isContinuation) override |
Initialize just before entry to iterative loop. | |
int | compress () override |
Compress to obtain partial saddle point w+. | |
void | outputTimers (std::ostream &out) const override |
Return compressor times contributions. | |
void | clearTimers () override |
Clear all timers (reset accumulated time to zero). | |
Public Member Functions inherited from Pscf::AmIteratorDArray< Compressor< D > > | |
AmIteratorDArray ()=default | |
Constructor. | |
~AmIteratorDArray ()=default | |
Destructor. | |
Public Member Functions inherited from Pscf::AmIteratorTmpl< Compressor< D >, 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. |
Additional Inherited Members | |
Public Types inherited from Pscf::AmIteratorDArray< Compressor< D > > | |
using | AmTmpl |
Alias for base class template. | |
Protected Member Functions inherited from Pscf::AmIteratorTmpl< Compressor< D >, 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. | |
Protected Attributes inherited from Pscf::AmIteratorTmpl< Compressor< D >, 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 compressor.
Definition at line 32 of file rpc/fts/compressor/AmCompressor.h.
Pscf::Rpc::AmCompressor< D >::AmCompressor | ( | System< D > & | system | ) |
Constructor.
system | System object associated with this compressor. |
Definition at line 28 of file rpc/fts/compressor/AmCompressor.tpp.
References Util::ParamComposite::setClassName().
Pscf::Rpc::AmCompressor< D >::~AmCompressor | ( | ) |
Destructor.
Definition at line 37 of file rpc/fts/compressor/AmCompressor.tpp.
|
overridevirtual |
Read all parameters and initialize.
in | input filestream |
Reimplemented from Pscf::AmIteratorTmpl< Compressor< D >, DArray< double > >.
Definition at line 44 of file rpc/fts/compressor/AmCompressor.tpp.
References Pscf::AmIteratorTmpl< Compressor< D >, DArray< double > >::errorType_, Pscf::AmIteratorTmpl< Compressor< D >, DArray< double > >::maxItr_, Pscf::AmIteratorTmpl< Compressor< D >, DArray< double > >::readErrorType(), Pscf::AmIteratorTmpl< Compressor< D >, DArray< double > >::readMixingParameters(), Pscf::AmIteratorTmpl< Compressor< D >, DArray< double > >::readParameters(), and Pscf::AmIteratorTmpl< Compressor< D >, DArray< double > >::verbose_.
|
overridevirtual |
Initialize just before entry to iterative loop.
This function is called by the solve function before entering the loop over iterations. Store the current values of the fields at the beginning of iteration
isContinuation | true iff continuation within a sweep |
Reimplemented from Pscf::AmIteratorTmpl< Compressor< D >, DArray< double > >.
Definition at line 61 of file rpc/fts/compressor/AmCompressor.tpp.
References Pscf::AmIteratorTmpl< Compressor< D >, DArray< double > >::setup().
|
override |
Compress to obtain partial saddle point w+.
Definition at line 93 of file rpc/fts/compressor/AmCompressor.tpp.
References Pscf::AmIteratorTmpl< Compressor< D >, DArray< double > >::solve().
|
override |
Return compressor times contributions.
Definition at line 103 of file rpc/fts/compressor/AmCompressor.tpp.
References Pscf::AmIteratorTmpl< Compressor< D >, DArray< double > >::outputTimers().
|
override |
Clear all timers (reset accumulated time to zero).
Definition at line 114 of file rpc/fts/compressor/AmCompressor.tpp.
References Pscf::AmIteratorTmpl< Compressor< D >, DArray< double > >::clearTimers(), and Pscf::Rpc::Compressor< D >::mdeCounter_.