Public Member Functions | |
def | __init__ |
def | checkStatus |
def | getStatus |
def | getNormWRMS |
def | getTolerance |
def | getRTOL |
def | getATOL |
def | getBDFMultiplier |
def | getAlpha |
def | getBeta |
def | __init__ |
def | checkStatus |
def | getStatus |
def | getNormWRMS |
def | getTolerance |
def | getRTOL |
def | getATOL |
def | getBDFMultiplier |
def | getAlpha |
def | getBeta |
Public Attributes | |
this |
Convergence test based on the weighted root mean square norm fo the solution update between iterations. ` If the number of iterations is zero, then the status is set to NOX::StatusTest::Unconverged and returned. (Also, value is set to 1.0e+12.) Otherwise, returns NOX::StatusTest::Converged if the three criteria listed below are satisfied. Note that use of Criteria #2 and #3 depend on the options set in the solver. Weigthed root mean square norm is less than a specified tolerance: \\[ ||\\delta x^k||_{wrms} < \\mbox{tolerance} \\] where \\[ ||\\delta x^k||_{wrms} \\equiv C \\sqrt{ \\frac{1}{N} \\sum_{i=1}^N \\left( \\frac {(x^k_i-x^{k-1}_i)}{RTOL |x^{k-1}_i| + ATOL_i} \\right) ^2 } \\] Here: $x_i^k$ denotes component $i$ of nonlinear iterate $k$. $N$ denotes the number of unknowns $RTOL$ denotes the relative error tolerance, specified via rtol in the constructor $ATOL$ denotes the absolution error tolerance, specified via atol in the constructor. This can be a vector or a scalar. $C$ denotes a weight, specified via the parameter BDFMultiplier in the constructor. If a line search based solver is used, the line search step size, $ \\lambda $, must be greater than a specified step size value, $ \\alpha $: \\[ \\lambda > \\alpha \\] The motivation for this test is to avoid detecting stagnation when in fact the true problem is that the step size is just small. The value of $\\alpha$ is set in the constructor via the argument alpha. Setting $\\alpha$ to zero effectively eliminates this part of the test. The achieved linear solver tolerance, $ \\eta^k $ for nonlinear iteration $ k $, must be less than a specified tolerance value, $ \\beta $; i.e., \\[ \\eta^k < \\beta \\] The motivation for this test is to avoid detecting stagnation when in fact the true problem is that the linear solve tolerance was not accurate enough. The value of $\\beta$ is set in the constructor via the argument beta. Setting $\\beta$ to 1.0 effectively eliminates this part of the test. This criteria will only be used if the "Achieved Tolerance" parameter (the value of $ \\eta^k $) is set by the linear solver in the "Newton"/"Linear Solver"/"Output" sublist. The checkStatus() method will search for this parameter. References: K. E. Brennam, S. L. Cambell, L. R. Petzold, Numerical Solution of Initial-Value Problems in Differential-Algebraic Equations, Classics in Applied Mathematics 14, SIAM 1996. G. D. Byrne and A. C. Hindmarch, PVODE, an ODE Solver for Parallel Computers, Technical Report UCRL-JC-132361, Rev. 1, Center for Applied Scientific Computing (CASC), Lawrence Livermore National Lab, May 1999. C++ includes: NOX_StatusTest_NormWRMS.H
def PyTrilinos::NOX::StatusTest::NormWRMS::__init__ | ( | self, | ||
args | ||||
) |
__init__(self, double rtol, double atol, double BDFMultiplier = 1.0, double tolerance = 1.0, double alpha = 1.0, double beta = 0.5) -> NormWRMS __init__(self, double rtol, Teuchos::RCP<(q(const).NOX::Abstract::Vector)> atol, double BDFMultiplier = 1.0, double tolerance = 1.0, double alpha = 1.0, double beta = 0.5) -> NormWRMS NormWRMS::NormWRMS(double rtol, const Teuchos::RCP< const NOX::Abstract::Vector > &atol, double BDFMultiplier=1.0, double tolerance=1.0, double alpha=1.0, double beta=0.5) Constructor where ATOL is a vector.
def PyTrilinos::NOX::StatusTest::NormWRMS::__init__ | ( | self, | ||
args | ||||
) |
__init__(self, double rtol, double atol, double BDFMultiplier = 1.0, double tolerance = 1.0, double alpha = 1.0, double beta = 0.5) -> NormWRMS __init__(self, double rtol, Teuchos::RCP<(q(const).NOX::Abstract::Vector)> atol, double BDFMultiplier = 1.0, double tolerance = 1.0, double alpha = 1.0, double beta = 0.5) -> NormWRMS NormWRMS::NormWRMS(double rtol, const Teuchos::RCP< const NOX::Abstract::Vector > &atol, double BDFMultiplier=1.0, double tolerance=1.0, double alpha=1.0, double beta=0.5) Constructor where ATOL is a vector.
def PyTrilinos::NOX::StatusTest::NormWRMS::checkStatus | ( | self, | ||
args | ||||
) |
checkStatus(self, Generic problem, CheckType checkType) -> StatusType StatusType NormWRMS::checkStatus(const NOX::Solver::Generic &problem, NOX::StatusTest::CheckType checkType) Test the stopping criterion The test can (and should, if possible) be skipped if checkType is NOX::StatusType::None. If the test is skipped, then the status should be set to NOX::StatusTest::Unevaluated.
Reimplemented from PyTrilinos::NOX::StatusTest::Generic.
def PyTrilinos::NOX::StatusTest::NormWRMS::checkStatus | ( | self, | ||
args | ||||
) |
checkStatus(self, Generic problem, CheckType checkType) -> StatusType StatusType NormWRMS::checkStatus(const NOX::Solver::Generic &problem, NOX::StatusTest::CheckType checkType) Test the stopping criterion The test can (and should, if possible) be skipped if checkType is NOX::StatusType::None. If the test is skipped, then the status should be set to NOX::StatusTest::Unevaluated.
Reimplemented from PyTrilinos::NOX::StatusTest::Generic.
def PyTrilinos::NOX::StatusTest::NormWRMS::getAlpha | ( | self, | ||
args | ||||
) |
getAlpha(self) -> double double NormWRMS::getAlpha() const Returns the value of 'alpha' set in the constructor.
def PyTrilinos::NOX::StatusTest::NormWRMS::getAlpha | ( | self, | ||
args | ||||
) |
getAlpha(self) -> double double NormWRMS::getAlpha() const Returns the value of 'alpha' set in the constructor.
def PyTrilinos::NOX::StatusTest::NormWRMS::getATOL | ( | self, | ||
args | ||||
) |
getATOL(self) -> double double NormWRMS::getATOL() const Returns the absolute tolerance set in the constructor. If ATOL is a vector, this will return a value of -1.0.
def PyTrilinos::NOX::StatusTest::NormWRMS::getATOL | ( | self, | ||
args | ||||
) |
getATOL(self) -> double double NormWRMS::getATOL() const Returns the absolute tolerance set in the constructor. If ATOL is a vector, this will return a value of -1.0.
def PyTrilinos::NOX::StatusTest::NormWRMS::getBDFMultiplier | ( | self, | ||
args | ||||
) |
getBDFMultiplier(self) -> double double NormWRMS::getBDFMultiplier() const Returns the value of the BDFMultiplier set in the constructor.
def PyTrilinos::NOX::StatusTest::NormWRMS::getBDFMultiplier | ( | self, | ||
args | ||||
) |
getBDFMultiplier(self) -> double double NormWRMS::getBDFMultiplier() const Returns the value of the BDFMultiplier set in the constructor.
def PyTrilinos::NOX::StatusTest::NormWRMS::getBeta | ( | self, | ||
args | ||||
) |
getBeta(self) -> double double NormWRMS::getBeta() const Returns the value of 'beta' set in the constructor.
def PyTrilinos::NOX::StatusTest::NormWRMS::getBeta | ( | self, | ||
args | ||||
) |
getBeta(self) -> double double NormWRMS::getBeta() const Returns the value of 'beta' set in the constructor.
def PyTrilinos::NOX::StatusTest::NormWRMS::getNormWRMS | ( | self, | ||
args | ||||
) |
getNormWRMS(self) -> double double NormWRMS::getNormWRMS() const Returns the value of WRMS norm.
def PyTrilinos::NOX::StatusTest::NormWRMS::getNormWRMS | ( | self, | ||
args | ||||
) |
getNormWRMS(self) -> double double NormWRMS::getNormWRMS() const Returns the value of WRMS norm.
def PyTrilinos::NOX::StatusTest::NormWRMS::getRTOL | ( | self, | ||
args | ||||
) |
getRTOL(self) -> double double NormWRMS::getRTOL() const Returns the realative tolerance set in the constructor.
def PyTrilinos::NOX::StatusTest::NormWRMS::getRTOL | ( | self, | ||
args | ||||
) |
getRTOL(self) -> double double NormWRMS::getRTOL() const Returns the realative tolerance set in the constructor.
def PyTrilinos::NOX::StatusTest::NormWRMS::getStatus | ( | self, | ||
args | ||||
) |
getStatus(self) -> StatusType StatusType NormWRMS::getStatus() const Return the result of the most recent checkStatus call.
Reimplemented from PyTrilinos::NOX::StatusTest::Generic.
def PyTrilinos::NOX::StatusTest::NormWRMS::getStatus | ( | self, | ||
args | ||||
) |
getStatus(self) -> StatusType StatusType NormWRMS::getStatus() const Return the result of the most recent checkStatus call.
Reimplemented from PyTrilinos::NOX::StatusTest::Generic.
def PyTrilinos::NOX::StatusTest::NormWRMS::getTolerance | ( | self, | ||
args | ||||
) |
getTolerance(self) -> double double NormWRMS::getTolerance() const Returns the requested tolerance set in the constructor.
def PyTrilinos::NOX::StatusTest::NormWRMS::getTolerance | ( | self, | ||
args | ||||
) |
getTolerance(self) -> double double NormWRMS::getTolerance() const Returns the requested tolerance set in the constructor.