NOX
Development
|
A pure virtual interface for solving the transpose of a linear system. More...
#include <LOCA_Epetra_TransposeLinearSystem_AbstractStrategy.H>
Public Member Functions | |
AbstractStrategy () | |
Constructor. | |
virtual | ~AbstractStrategy () |
Destructor. | |
virtual bool | applyJacobianTransposeInverse (Teuchos::ParameterList ¶ms, const NOX::Epetra::Vector &input, NOX::Epetra::Vector &result)=0 |
Applies the inverse of the Jacobian matrix transpose to the given input vector and puts the answer in result. More... | |
virtual bool | createJacobianTranspose ()=0 |
Evaluates the Jacobian-transpose based on the solution vector x. More... | |
virtual bool | createTransposePreconditioner (const NOX::Epetra::Vector &x, Teuchos::ParameterList &p)=0 |
Explicitly constructs a preconditioner based on the solution vector x and the parameter list p. More... | |
virtual Teuchos::RCP < Epetra_Operator > | getJacobianTransposeOperator ()=0 |
Get Jacobian-transpose operator. | |
virtual Teuchos::RCP < Epetra_Operator > | getTransposePreconditioner ()=0 |
Get transpose-preconditioner. | |
virtual void | setJacobianTransposeOperator (const Teuchos::RCP< Epetra_Operator > &new_jac_trans)=0 |
Set Jacobian-transpose operator. | |
virtual void | setTransposePreconditioner (const Teuchos::RCP< Epetra_Operator > &new_prec_trans)=0 |
Set transpose-preconditioner. | |
A pure virtual interface for solving the transpose of a linear system.
|
pure 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.
Implemented in LOCA::Epetra::TransposeLinearSystem::ExplicitTranspose, LOCA::Epetra::TransposeLinearSystem::TransposePreconditioner, and LOCA::Epetra::TransposeLinearSystem::LeftPreconditioning.
Referenced by LOCA::BorderedSolver::EpetraHouseholder::solveTranspose().
|
pure 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.
Implemented in LOCA::Epetra::TransposeLinearSystem::ExplicitTranspose, LOCA::Epetra::TransposeLinearSystem::TransposePreconditioner, and LOCA::Epetra::TransposeLinearSystem::LeftPreconditioning.
Referenced by LOCA::Epetra::Group::applyJacobianTransposeInverse(), LOCA::Epetra::Group::applyJacobianTransposeInverseMultiVector(), and LOCA::BorderedSolver::EpetraHouseholder::solveTranspose().
|
pure 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.
Implemented in LOCA::Epetra::TransposeLinearSystem::ExplicitTranspose, LOCA::Epetra::TransposeLinearSystem::TransposePreconditioner, and LOCA::Epetra::TransposeLinearSystem::LeftPreconditioning.
Referenced by LOCA::BorderedSolver::EpetraHouseholder::solveTranspose().