# NOX::EpetraNew::LinearSystem Class Reference

Pure virtual class interface for allowing different linear solvers to be used by the NOX::EpetraNew::Group. More...

`#include <NOX_EpetraNew_LinearSystem.H>`

Inheritance diagram for NOX::EpetraNew::LinearSystem:

[legend]
List of all members.

## Public Member Functions

LinearSystem ()
Constructor.
virtual ~LinearSystem ()
Destructor.
virtual bool applyJacobian (const NOX::Epetra::Vector &input, NOX::Epetra::Vector &result) const =0
Applies Jacobian to the given input vector and puts the answer in the result.
virtual bool applyJacobianTranspose (const NOX::Epetra::Vector &input, NOX::Epetra::Vector &result) const =0
Applies Jacobian-Transpose to the given input vector and puts the answer in the result.
virtual bool applyJacobianInverse (NOX::Parameter::List &params, const NOX::Epetra::Vector &input, NOX::Epetra::Vector &result)=0
Applies the inverse of the Jacobian matrix to the given input vector and puts the answer in result.
virtual bool applyRightPreconditioning (bool useTranspose, NOX::Parameter::List &params, const NOX::Epetra::Vector &input, NOX::Epetra::Vector &result) const =0
Apply right preconditiong to the given input vector.
virtual void resetScaling (NOX::EpetraNew::Scaling &scalingObject)=0
Sets the diagonal scaling vector(s) used in scaling the linear system.
virtual bool computeJacobian (Epetra_Vector &x)=0
Evaluates the Jacobian based on the solution vector x.
virtual bool createPreconditioner (Epetra_Vector &x, NOX::Parameter::List &p, bool recomputeGraph) const =0
Explicitly constructs a preconditioner based on the solution vector x and the parameter list p.
virtual bool destroyPreconditioner () const =0
Deletes the preconditioner.
virtual bool checkPreconditionerReuse ()
Allows reuse of a preconditioner.
virtual const Epetra_OperatorgetJacobianOperator () const =0
Return Jacobian operator.
virtual Epetra_OperatorgetJacobianOperator ()=0
Return Jacobian operator.
virtual const Epetra_OperatorgetGeneratedPrecOperator () const =0
Return preconditioner operator.
virtual Epetra_OperatorgetGeneratedPrecOperator ()=0
Return preconditioner operator.
virtual void setJacobianOperatorForSolve (const Epetra_Operator &solveJacOp)=0
Set Jacobian operator for solve.
virtual void setPrecOperatorForSolve (const Epetra_Operator &solvePrecOp)=0
Set preconditioner operator for solve.

## Detailed Description

Pure virtual class interface for allowing different linear solvers to be used by the NOX::EpetraNew::Group.

## Member Function Documentation

 virtual bool NOX::EpetraNew::LinearSystem::applyJacobian ( const NOX::Epetra::Vector & input, NOX::Epetra::Vector & result ) const` [pure virtual]`
 Applies Jacobian to the given input vector and puts the answer in the result. Computes where is the Jacobian, is the input vector, and is the result vector. Returns true if successful. Implemented in NOX::EpetraNew::LinearSystemAztecOO.

 virtual bool NOX::EpetraNew::LinearSystem::applyJacobianInverse ( NOX::Parameter::List & params, const NOX::Epetra::Vector & input, NOX::Epetra::Vector & result ) ` [pure virtual]`
 Applies the inverse of the Jacobian matrix to the given input vector and puts the answer in result. Computes where is the Jacobian, is the input vector, and is the result vector. The parameter list contains the linear solver options. Implemented in NOX::EpetraNew::LinearSystemAztecOO.

 virtual bool NOX::EpetraNew::LinearSystem::applyJacobianTranspose ( const NOX::Epetra::Vector & input, NOX::Epetra::Vector & result ) const` [pure virtual]`
 Applies Jacobian-Transpose to the given input vector and puts the answer in the result. Computes where is the Jacobian, is the input vector, and is the result vector. Returns true if successful. Implemented in NOX::EpetraNew::LinearSystemAztecOO.

 virtual bool NOX::EpetraNew::LinearSystem::applyRightPreconditioning ( bool useTranspose, NOX::Parameter::List & params, const NOX::Epetra::Vector & input, NOX::Epetra::Vector & result ) const` [pure virtual]`
 Apply right preconditiong to the given input vector. Let be a right preconditioner for the Jacobian ; in other words, is a matrix such that Compute where is the input vector and is the result vector. If useTranspose is true, then the transpose of the preconditioner is applied: The transpose preconditioner is currently only required for Tensor methods. The parameter list contains the linear solver options. Implemented in NOX::EpetraNew::LinearSystemAztecOO.

 virtual bool NOX::EpetraNew::LinearSystem::checkPreconditionerReuse ( ) ` [inline, virtual]`
 Allows reuse of a preconditioner. The child object will manage setting of this bool flag. Default implementation is to return false. Reimplemented in NOX::EpetraNew::LinearSystemAztecOO.

 virtual bool NOX::EpetraNew::LinearSystem::createPreconditioner ( Epetra_Vector & x, NOX::Parameter::List & p, bool recomputeGraph ) const` [pure virtual]`
 Explicitly constructs a preconditioner based on the solution vector x and the parameter list p. The user has the option of recomputing the graph when a new preconditioner is created. The NOX::EpetraNew::Group controls the isValid flag for the preconditioner and will control when to call this. Implemented in NOX::EpetraNew::LinearSystemAztecOO.

 virtual bool NOX::EpetraNew::LinearSystem::destroyPreconditioner ( ) const` [pure virtual]`
 Deletes the preconditioner. The NOX::EpetraNew::Group controls the isValid flag for the preconditioner and will control when to call this. Implemented in NOX::EpetraNew::LinearSystemAztecOO.

 virtual void NOX::EpetraNew::LinearSystem::resetScaling ( NOX::EpetraNew::Scaling & scalingObject ) ` [pure virtual]`
 Sets the diagonal scaling vector(s) used in scaling the linear system. See NOX::EpetraNew::Scaling for details on how to specify scaling of the linear system. Implemented in NOX::EpetraNew::LinearSystemAztecOO.

The documentation for this class was generated from the following file:
• NOX_EpetraNew_LinearSystem.H

Generated on Thu Sep 18 12:40:50 2008 for NOX by  1.3.9.1