#include <LOCA_Epetra_TransposeLinearSystem_ExplicitTranspose.H>
Public Member Functions | |
ExplicitTranspose (const Teuchos::RCP< LOCA::GlobalData > &global_data, const Teuchos::RCP< Teuchos::ParameterList > &solverParams, const Teuchos::RCP< NOX::Epetra::LinearSystem > &linsys) | |
Constructor. | |
virtual | ~ExplicitTranspose () |
Destructor. | |
virtual bool | applyJacobianTransposeInverse (Teuchos::ParameterList ¶ms, 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. | |
virtual bool | createJacobianTranspose () |
Evaluates the Jacobian-transpose based on the solution vector x. | |
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. | |
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. | |
Protected Attributes | |
Teuchos::RCP< LOCA::GlobalData > | globalData |
Global data object. | |
Teuchos::RCP < NOX::Epetra::LinearSystem > | linsys |
Linear system solver. | |
Teuchos::RCP< Epetra_Operator > | jac_trans |
Jacobian tranpose operator. | |
Teuchos::RCP< Epetra_Operator > | prec_trans |
Transpose preconditioner. | |
Teuchos::RCP < NOX::Epetra::Scaling > | scaling_trans |
Scaling object for transpose solve. | |
EpetraExt::RowMatrix_Transpose | transposer |
Row-matrix transposer. |
Definition at line 82 of file LOCA_Epetra_TransposeLinearSystem_ExplicitTranspose.H.
LOCA::Epetra::TransposeLinearSystem::ExplicitTranspose::ExplicitTranspose | ( | const Teuchos::RCP< LOCA::GlobalData > & | global_data, | |
const Teuchos::RCP< Teuchos::ParameterList > & | solverParams, | |||
const Teuchos::RCP< NOX::Epetra::LinearSystem > & | linsys | |||
) |
Constructor.
Definition at line 51 of file LOCA_Epetra_TransposeLinearSystem_ExplicitTranspose.C.
References scaling_trans.
LOCA::Epetra::TransposeLinearSystem::ExplicitTranspose::~ExplicitTranspose | ( | ) | [virtual] |
bool LOCA::Epetra::TransposeLinearSystem::ExplicitTranspose::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
where is the Jacobian,
is the input vector, and
is the result vector.
The parameter list contains the linear solver options.
Implements LOCA::Epetra::TransposeLinearSystem::AbstractStrategy.
Definition at line 75 of file LOCA_Epetra_TransposeLinearSystem_ExplicitTranspose.C.
References jac_trans, linsys, prec_trans, and scaling_trans.
bool LOCA::Epetra::TransposeLinearSystem::ExplicitTranspose::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.
Definition at line 103 of file LOCA_Epetra_TransposeLinearSystem_ExplicitTranspose.C.
References globalData, jac_trans, linsys, and transposer.
bool LOCA::Epetra::TransposeLinearSystem::ExplicitTranspose::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.
Definition at line 127 of file LOCA_Epetra_TransposeLinearSystem_ExplicitTranspose.C.
References jac_trans, linsys, prec_trans, and scaling_trans.
Teuchos::RCP< Epetra_Operator > LOCA::Epetra::TransposeLinearSystem::ExplicitTranspose::getJacobianTransposeOperator | ( | ) | [virtual] |
Get Jacobian-transpose operator.
Implements LOCA::Epetra::TransposeLinearSystem::AbstractStrategy.
Definition at line 158 of file LOCA_Epetra_TransposeLinearSystem_ExplicitTranspose.C.
References jac_trans.
Teuchos::RCP< Epetra_Operator > LOCA::Epetra::TransposeLinearSystem::ExplicitTranspose::getTransposePreconditioner | ( | ) | [virtual] |
Get transpose-preconditioner.
Implements LOCA::Epetra::TransposeLinearSystem::AbstractStrategy.
Definition at line 165 of file LOCA_Epetra_TransposeLinearSystem_ExplicitTranspose.C.
References prec_trans.
void LOCA::Epetra::TransposeLinearSystem::ExplicitTranspose::setJacobianTransposeOperator | ( | const Teuchos::RCP< Epetra_Operator > & | new_jac_trans | ) | [virtual] |
Set Jacobian-transpose operator.
Implements LOCA::Epetra::TransposeLinearSystem::AbstractStrategy.
Definition at line 172 of file LOCA_Epetra_TransposeLinearSystem_ExplicitTranspose.C.
References jac_trans.
void LOCA::Epetra::TransposeLinearSystem::ExplicitTranspose::setTransposePreconditioner | ( | const Teuchos::RCP< Epetra_Operator > & | new_prec_trans | ) | [virtual] |
Set transpose-preconditioner.
Implements LOCA::Epetra::TransposeLinearSystem::AbstractStrategy.
Definition at line 180 of file LOCA_Epetra_TransposeLinearSystem_ExplicitTranspose.C.
References prec_trans.
Teuchos::RCP<LOCA::GlobalData> LOCA::Epetra::TransposeLinearSystem::ExplicitTranspose::globalData [protected] |
Global data object.
Definition at line 154 of file LOCA_Epetra_TransposeLinearSystem_ExplicitTranspose.H.
Referenced by createJacobianTranspose().
Teuchos::RCP<NOX::Epetra::LinearSystem> LOCA::Epetra::TransposeLinearSystem::ExplicitTranspose::linsys [protected] |
Linear system solver.
Definition at line 157 of file LOCA_Epetra_TransposeLinearSystem_ExplicitTranspose.H.
Referenced by applyJacobianTransposeInverse(), createJacobianTranspose(), and createTransposePreconditioner().
Teuchos::RCP<Epetra_Operator> LOCA::Epetra::TransposeLinearSystem::ExplicitTranspose::jac_trans [protected] |
Jacobian tranpose operator.
Definition at line 160 of file LOCA_Epetra_TransposeLinearSystem_ExplicitTranspose.H.
Referenced by applyJacobianTransposeInverse(), createJacobianTranspose(), createTransposePreconditioner(), getJacobianTransposeOperator(), and setJacobianTransposeOperator().
Teuchos::RCP<Epetra_Operator> LOCA::Epetra::TransposeLinearSystem::ExplicitTranspose::prec_trans [protected] |
Transpose preconditioner.
Definition at line 163 of file LOCA_Epetra_TransposeLinearSystem_ExplicitTranspose.H.
Referenced by applyJacobianTransposeInverse(), createTransposePreconditioner(), getTransposePreconditioner(), and setTransposePreconditioner().
Teuchos::RCP<NOX::Epetra::Scaling> LOCA::Epetra::TransposeLinearSystem::ExplicitTranspose::scaling_trans [protected] |
Scaling object for transpose solve.
Definition at line 166 of file LOCA_Epetra_TransposeLinearSystem_ExplicitTranspose.H.
Referenced by applyJacobianTransposeInverse(), createTransposePreconditioner(), and ExplicitTranspose().
EpetraExt::RowMatrix_Transpose LOCA::Epetra::TransposeLinearSystem::ExplicitTranspose::transposer [protected] |
Row-matrix transposer.
Definition at line 169 of file LOCA_Epetra_TransposeLinearSystem_ExplicitTranspose.H.
Referenced by createJacobianTranspose().