OpenMD 3.1
Molecular Dynamics in the Open
|
Criteria to end optimization process: More...
#include <EndCriteria.hpp>
Public Types | |
enum | Type { None , MaxIterations , StationaryPoint , StationaryFunctionValue , StationaryFunctionAccuracy , ZeroGradientNorm , Unknown } |
Public Member Functions | |
EndCriteria (size_t maxIterations, size_t maxStationaryStateIterations, RealType rootEpsilon, RealType functionEpsilon, RealType gradientNormEpsilon) | |
Initialization constructor. | |
size_t | maxIterations () const |
size_t | maxStationaryStateIterations () const |
RealType | rootEpsilon () const |
RealType | functionEpsilon () const |
RealType | gradientNormEpsilon () const |
bool | operator() (const size_t iteration, size_t &statState, const bool positiveOptimization, const RealType fold, const RealType normgold, const RealType fnew, const RealType normgnew, EndCriteria::Type &ecType) const |
Test if the number of iterations is not too big and if a minimum point is not reached. | |
bool | checkMaxIterations (const size_t iteration, EndCriteria::Type &ecType) const |
Test if the number of iteration is below MaxIterations. | |
bool | checkStationaryPoint (const RealType xOld, const RealType xNew, size_t &statStateIterations, EndCriteria::Type &ecType) const |
Test if the root variation is below rootEpsilon. | |
bool | checkStationaryFunctionValue (const RealType fxOld, const RealType fxNew, size_t &statStateIterations, EndCriteria::Type &ecType) const |
Test if the function variation is below functionEpsilon. | |
bool | checkStationaryFunctionAccuracy (const RealType f, const bool positiveOptimization, EndCriteria::Type &ecType) const |
Test if the function value is below functionEpsilon. | |
bool | checkZeroGradientNorm (const RealType gNorm, EndCriteria::Type &ecType) const |
Test if the gradient norm value is below gradientNormEpsilon. | |
Protected Attributes | |
size_t | maxIterations_ |
Maximum number of iterations. | |
size_t | maxStationaryStateIterations_ |
Maximun number of iterations in stationary state. | |
RealType | rootEpsilon_ |
root, function and gradient epsilons | |
RealType | functionEpsilon_ |
RealType | gradientNormEpsilon_ |
Criteria to end optimization process:
Definition at line 42 of file EndCriteria.hpp.
enum QuantLib::EndCriteria::Type |
Definition at line 44 of file EndCriteria.hpp.
QuantLib::EndCriteria::EndCriteria | ( | size_t | maxIterations, |
size_t | maxStationaryStateIterations, | ||
RealType | rootEpsilon, | ||
RealType | functionEpsilon, | ||
RealType | gradientNormEpsilon ) |
Initialization constructor.
Definition at line 31 of file EndCriteria.cpp.
References maxIterations_, and maxStationaryStateIterations_.
bool QuantLib::EndCriteria::checkMaxIterations | ( | const size_t | iteration, |
EndCriteria::Type & | ecType ) const |
Test if the number of iteration is below MaxIterations.
Definition at line 61 of file EndCriteria.cpp.
References maxIterations_.
Referenced by QuantLib::ArmijoLineSearch::operator()(), and operator()().
bool QuantLib::EndCriteria::checkStationaryFunctionAccuracy | ( | const RealType | f, |
const bool | positiveOptimization, | ||
EndCriteria::Type & | ecType ) const |
Test if the function value is below functionEpsilon.
Definition at line 95 of file EndCriteria.cpp.
Referenced by operator()().
bool QuantLib::EndCriteria::checkStationaryFunctionValue | ( | const RealType | fxOld, |
const RealType | fxNew, | ||
size_t & | statStateIterations, | ||
EndCriteria::Type & | ecType ) const |
Test if the function variation is below functionEpsilon.
Definition at line 82 of file EndCriteria.cpp.
References maxStationaryStateIterations_.
Referenced by operator()().
bool QuantLib::EndCriteria::checkStationaryPoint | ( | const RealType | xOld, |
const RealType | xNew, | ||
size_t & | statStateIterations, | ||
EndCriteria::Type & | ecType ) const |
Test if the root variation is below rootEpsilon.
Definition at line 68 of file EndCriteria.cpp.
References maxStationaryStateIterations_, and rootEpsilon_.
bool QuantLib::EndCriteria::checkZeroGradientNorm | ( | const RealType | gNorm, |
EndCriteria::Type & | ecType ) const |
Test if the gradient norm value is below gradientNormEpsilon.
Definition at line 114 of file EndCriteria.cpp.
Referenced by operator()().
RealType QuantLib::EndCriteria::functionEpsilon | ( | ) | const |
Definition at line 145 of file EndCriteria.cpp.
RealType QuantLib::EndCriteria::gradientNormEpsilon | ( | ) | const |
Definition at line 147 of file EndCriteria.cpp.
size_t QuantLib::EndCriteria::maxIterations | ( | ) | const |
Definition at line 137 of file EndCriteria.cpp.
size_t QuantLib::EndCriteria::maxStationaryStateIterations | ( | ) | const |
Definition at line 139 of file EndCriteria.cpp.
bool QuantLib::EndCriteria::operator() | ( | const size_t | iteration, |
size_t & | statState, | ||
const bool | positiveOptimization, | ||
const RealType | fold, | ||
const RealType | normgold, | ||
const RealType | fnew, | ||
const RealType | normgnew, | ||
EndCriteria::Type & | ecType ) const |
Test if the number of iterations is not too big and if a minimum point is not reached.
Definition at line 121 of file EndCriteria.cpp.
References checkMaxIterations(), checkStationaryFunctionAccuracy(), checkStationaryFunctionValue(), and checkZeroGradientNorm().
RealType QuantLib::EndCriteria::rootEpsilon | ( | ) | const |
Definition at line 143 of file EndCriteria.cpp.
|
protected |
Definition at line 99 of file EndCriteria.hpp.
|
protected |
Definition at line 99 of file EndCriteria.hpp.
|
protected |
Maximum number of iterations.
Definition at line 95 of file EndCriteria.hpp.
Referenced by checkMaxIterations(), and EndCriteria().
|
mutableprotected |
Maximun number of iterations in stationary state.
Definition at line 97 of file EndCriteria.hpp.
Referenced by checkStationaryFunctionValue(), checkStationaryPoint(), and EndCriteria().
|
protected |
root, function and gradient epsilons
Definition at line 99 of file EndCriteria.hpp.
Referenced by checkStationaryPoint().