PyTrilinos::NOX::StatusTest::NormWRMS Class Reference

Inheritance diagram for PyTrilinos::NOX::StatusTest::NormWRMS:

Inheritance graph
[legend]
Collaboration diagram for PyTrilinos::NOX::StatusTest::NormWRMS:

Collaboration graph
[legend]

List of all members.

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


Detailed Description

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 

Member Function Documentation

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. 


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

Generated on Thu Dec 17 11:00:22 2009 for PyTrilinos by  doxygen 1.5.9