NOX Development
Public Member Functions
LOCA::SingularJacobianSolve::ItRef Class Reference

This class computes the solution to $J x = b$ using one step of iterative refinement. More...

#include <LOCA_SingularJacobianSolve_ItRef.H>

Inheritance diagram for LOCA::SingularJacobianSolve::ItRef:
Inheritance graph
[legend]
Collaboration diagram for LOCA::SingularJacobianSolve::ItRef:
Collaboration graph
[legend]

List of all members.

Public Member Functions

 ItRef (Teuchos::ParameterList &params)
 Constructor.
 ItRef (const ItRef &source)
 Copy constructor.
virtual ~ItRef ()
 Destructor.
virtual
LOCA::SingularJacobianSolve::Generic
clone () const
 Clone function.
virtual
LOCA::SingularJacobianSolve::Generic
operator= (const LOCA::SingularJacobianSolve::Generic &source)
 Assignment operator.
virtual ItRefoperator= (const ItRef &source)
 Assignment operator.
virtual
NOX::Abstract::Group::ReturnType 
reset (Teuchos::ParameterList &params)
 Reset parameters.
virtual
NOX::Abstract::Group::ReturnType 
compute (Teuchos::ParameterList &params, LOCA::Continuation::AbstractGroup &grp, const NOX::Abstract::Vector &input, const NOX::Abstract::Vector &approxNullVec, const NOX::Abstract::Vector &jacApproxNullVec, NOX::Abstract::Vector &result)
 Computes the solution as described above.
virtual
NOX::Abstract::Group::ReturnType 
computeMulti (Teuchos::ParameterList &params, LOCA::Continuation::AbstractGroup &grp, const NOX::Abstract::Vector *const *inputs, const NOX::Abstract::Vector &approxNullVec, const NOX::Abstract::Vector &jacApproxNullVec, NOX::Abstract::Vector **results, int nVecs)
 Computes solution for multiple RHS.

Detailed Description

This class computes the solution to $J x = b$ using one step of iterative refinement.

This singular solve method uses one step of iterative refinement to improve the accuracy of the solution to the linear system $J x = b$. In particular, the algorithm used here is

\[ \begin{aligned} &\text{Solve}\; Jx_1 = b \\ &r = b - Jx_1 \\ &\text{Solve}\; Jx_2 = r \\ &x = x_1 + x_2 \end{aligned} \]

Both solves use the underlying group's applyJacobianInverse() method and therefore this is a generic technique for computing solutions to nearly singular system since it uses any supplied linear solver.

This algorithm is selected by setting the "Method" parameter of the "Singular Solve" sublist of the NOX linear solver parameter list to "Iterative Refinement".


Member Function Documentation

NOX::Abstract::Group::ReturnType LOCA::SingularJacobianSolve::ItRef::reset ( Teuchos::ParameterList params) [virtual]

Reset parameters.

There are no additional parameters for the Nic calculation.

Implements LOCA::SingularJacobianSolve::Generic.

References NOX::Abstract::Group::Ok.

Referenced by ItRef().


The documentation for this class was generated from the following files:
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends