NOX  Development
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Groups Pages
Public Member Functions | Protected Attributes | List of all members
LOCA::Epetra::TransposeLinearSystem::TransposePreconditioner Class Reference

Method for solving the transpose of a linear system by using the transpose of the preconditioner. More...

#include <LOCA_Epetra_TransposeLinearSystem_TransposePreconditioner.H>

Inheritance diagram for LOCA::Epetra::TransposeLinearSystem::TransposePreconditioner:
Inheritance graph
[legend]
Collaboration diagram for LOCA::Epetra::TransposeLinearSystem::TransposePreconditioner:
Collaboration graph
[legend]

Public Member Functions

 TransposePreconditioner (const Teuchos::RCP< LOCA::GlobalData > &global_data, const Teuchos::RCP< Teuchos::ParameterList > &solverParams, const Teuchos::RCP< NOX::Epetra::LinearSystem > &linsys)
 Constructor.
 
virtual ~TransposePreconditioner ()
 Destructor.
 
virtual bool applyJacobianTransposeInverse (Teuchos::ParameterList &params, const NOX::Epetra::Vector &input, NOX::Epetra::Vector &result)
 Applies the inverse of the Jacobian matrix transpose to the given input vector and puts the answer in result. More...
 
virtual bool createJacobianTranspose ()
 Evaluates the Jacobian-transpose based on the solution vector x. More...
 
virtual bool createTransposePreconditioner (const NOX::Epetra::Vector &x, Teuchos::ParameterList &p)
 Explicitly constructs a preconditioner based on the solution vector x and the parameter list p. More...
 
virtual Teuchos::RCP
< Epetra_Operator
getJacobianTransposeOperator ()
 Get Jacobian-transpose operator.
 
virtual Teuchos::RCP
< Epetra_Operator
getTransposePreconditioner ()
 Get transpose-preconditioner.
 
virtual void setJacobianTransposeOperator (const Teuchos::RCP< Epetra_Operator > &new_jac_trans)
 Set Jacobian-transpose operator.
 
virtual void setTransposePreconditioner (const Teuchos::RCP< Epetra_Operator > &new_prec_trans)
 Set transpose-preconditioner.
 
- Public Member Functions inherited from LOCA::Epetra::TransposeLinearSystem::AbstractStrategy
 AbstractStrategy ()
 Constructor.
 
virtual ~AbstractStrategy ()
 Destructor.
 

Protected Attributes

Teuchos::RCP< LOCA::GlobalDataglobalData
 Global data object.
 
Teuchos::RCP
< NOX::Epetra::LinearSystem
linsys
 Linear system solver.
 
Teuchos::RCP< Epetra_Operatorjac
 Jacobian operator.
 
Teuchos::RCP< Epetra_Operatorprec
 Preconditioner.
 
Teuchos::RCP
< NOX::Epetra::Scaling
scaling_trans
 Scaling object for transpose solve.
 

Detailed Description

Method for solving the transpose of a linear system by using the transpose of the preconditioner.

Member Function Documentation

bool LOCA::Epetra::TransposeLinearSystem::TransposePreconditioner::applyJacobianTransposeInverse ( Teuchos::ParameterList params,
const NOX::Epetra::Vector input,
NOX::Epetra::Vector result 
)
virtual

Applies the inverse of the Jacobian matrix transpose to the given input vector and puts the answer in result.

Computes

\[ v = J^{-T} u, \]

where $J$ is the Jacobian, $u$ is the input vector, and $v$ is the result vector.

The parameter list contains the linear solver options.

Implements LOCA::Epetra::TransposeLinearSystem::AbstractStrategy.

bool LOCA::Epetra::TransposeLinearSystem::TransposePreconditioner::createJacobianTranspose ( )
virtual

Evaluates the Jacobian-transpose based on the solution vector x.

Note: For flexibility, this method does not compute the original Jacobian matrix. It uses whatever is currently stored in the linear system.

Implements LOCA::Epetra::TransposeLinearSystem::AbstractStrategy.

bool LOCA::Epetra::TransposeLinearSystem::TransposePreconditioner::createTransposePreconditioner ( const NOX::Epetra::Vector x,
Teuchos::ParameterList p 
)
virtual

Explicitly constructs a preconditioner based on the solution vector x and the parameter list p.

Note: x is only needed for user-supplied preconditioners. When using a built-in preconditioner (e.g., Ifpack), x will note be used.

Implements LOCA::Epetra::TransposeLinearSystem::AbstractStrategy.


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