NOX Development
Loading...
Searching...
No Matches
LOCA::Bifurcation::PitchforkBord::StatusTest::NullVectorNormWRMS Class Reference

A convergence test based on the weighted root-mean-square norm of the update to the null vector component for pitchfork location. More...

#include <LOCA_Bifurcation_PitchforkBord_NullVectorNormWRMS.H>

Inheritance diagram for LOCA::Bifurcation::PitchforkBord::StatusTest::NullVectorNormWRMS:
Collaboration diagram for LOCA::Bifurcation::PitchforkBord::StatusTest::NullVectorNormWRMS:

Public Member Functions

 NullVectorNormWRMS (double rtol, double atol, double tol)
 Constructor.
virtual ~NullVectorNormWRMS ()
 Destructor.
virtual NOX::StatusTest::StatusType checkStatus (const NOX::Solver::Generic &problem)
 Evaluates convergence criteria specified above.
virtual NOX::StatusTest::StatusType getStatus () const
 Returns status as defined above.
virtual std::ostream & print (ostream &stream, int indent=0) const
 Prints current status.
double getNullVectorNormWRMS () const
 Returns the value of weighted parameter update norm.
double getRTOL () const
 Returns the realative tolerance set in the constructor.
double getATOL () const
 Returns the absolute tolerance set in the constructor.
double getTOL () const
 Returns the tolerance set in the constructor.
Public Member Functions inherited from NOX::StatusTest::Generic
 Generic ()
 Constructor.
virtual ~Generic ()
 Destructor.
virtual NOX::StatusTest::StatusType checkStatus (const NOX::Solver::Generic &problem, NOX::StatusTest::CheckType checkType)=0
 Test the stopping criterion
virtual std::ostream & print (std::ostream &stream, int indent=0) const =0
 Output formatted description of stopping test to output stream.

Protected Attributes

double rtol
 Relative tolerance for convergence.
double atol
 Absolute tolerance for convergence.
double tol
 Tolerance for convergence.
double normWRMS
 Current value of the parameter update norm.
NOX::StatusTest::StatusType status
 Status of entire status test

Detailed Description

A convergence test based on the weighted root-mean-square norm of the update to the null vector component for pitchfork location.

Let $n$ be the approximation to the null vector for pitchfork tracking (see LOCA::Bifurcation::PitchforkBord::ExtendedGroup). This convergence test defines convergence for the null vector when the following is true

\‍[\sqrt{\frac{1}{N}\sum_{i=1}^N\left(\frac{|n_i-(n_0)_i|}{\epsilon_r|n_i| + \epsilon_a}\right)} < \tau
\‍]

where $n_0$ is the previous approximation to the null vector, $N$ is the length of $n$, $\epsilon_r$ is the relative tolerance, $\epsilon_a$ is the absolute tolerance, and $\tau$ is an overall scale factor (typically $\tau = 1$).

Note that this status test deals only with the null vector component of the pitchfork equations. This status test should be combined with other status tests for the solution and parameter components (using NOX::StatusTest::Combo and LOCA::StatusTest::Wrapper) to build a composite status test for the entire system.

Also note that if the group returned by the getSolutionGroup() method of the solver supplied in checkStatus() is not a pitchfork group (i.e., not derived from LOCA::Bifurcation::PitchforkBord::ExtendedGroup), checkStatus() returns NOX::StatusTest::Converged. This allows the status test to be used in situations other than pitchfork tracking, e.g., steady-state solves, without raising error conditions.

Constructor & Destructor Documentation

◆ NullVectorNormWRMS()

LOCA::Bifurcation::PitchforkBord::StatusTest::NullVectorNormWRMS::NullVectorNormWRMS ( double rtol,
double atol,
double tol )

Constructor.

rtol is the relative tolerance $\epsilon_r$, atol is the absolute tolerance $\epsilon_a$, and tol is the overall scale factor $\tau$ defined above.

References atol, normWRMS, rtol, status, and tol.

Member Function Documentation

◆ checkStatus()

◆ getATOL()

double LOCA::Bifurcation::PitchforkBord::StatusTest::NullVectorNormWRMS::getATOL ( ) const

Returns the absolute tolerance set in the constructor.

References atol.

Referenced by print().

◆ getNullVectorNormWRMS()

double LOCA::Bifurcation::PitchforkBord::StatusTest::NullVectorNormWRMS::getNullVectorNormWRMS ( ) const

Returns the value of weighted parameter update norm.

References normWRMS.

Referenced by print().

◆ getRTOL()

double LOCA::Bifurcation::PitchforkBord::StatusTest::NullVectorNormWRMS::getRTOL ( ) const

Returns the realative tolerance set in the constructor.

References rtol.

Referenced by print().

◆ getStatus()

NOX::StatusTest::StatusType LOCA::Bifurcation::PitchforkBord::StatusTest::NullVectorNormWRMS::getStatus ( ) const
virtual

Returns status as defined above.

Implements NOX::StatusTest::Generic.

References status.

◆ getTOL()

double LOCA::Bifurcation::PitchforkBord::StatusTest::NullVectorNormWRMS::getTOL ( ) const

Returns the tolerance set in the constructor.

References tol.

Referenced by print().

◆ print()

virtual std::ostream & LOCA::Bifurcation::PitchforkBord::StatusTest::NullVectorNormWRMS::print ( ostream & stream,
int indent = 0 ) const
virtual

Prints current status.

References getATOL(), getNullVectorNormWRMS(), getRTOL(), and getTOL().

Member Data Documentation

◆ atol

double LOCA::Bifurcation::PitchforkBord::StatusTest::NullVectorNormWRMS::atol
protected

Absolute tolerance for convergence.

Referenced by checkStatus(), getATOL(), and NullVectorNormWRMS().

◆ normWRMS

double LOCA::Bifurcation::PitchforkBord::StatusTest::NullVectorNormWRMS::normWRMS
protected

Current value of the parameter update norm.

Referenced by checkStatus(), getNullVectorNormWRMS(), and NullVectorNormWRMS().

◆ rtol

double LOCA::Bifurcation::PitchforkBord::StatusTest::NullVectorNormWRMS::rtol
protected

Relative tolerance for convergence.

Referenced by checkStatus(), getRTOL(), and NullVectorNormWRMS().

◆ status

NOX::StatusTest::StatusType LOCA::Bifurcation::PitchforkBord::StatusTest::NullVectorNormWRMS::status
protected

Status of entire status test

Referenced by checkStatus(), getStatus(), and NullVectorNormWRMS().

◆ tol

double LOCA::Bifurcation::PitchforkBord::StatusTest::NullVectorNormWRMS::tol
protected

Tolerance for convergence.

Referenced by checkStatus(), getTOL(), and NullVectorNormWRMS().


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