#include <NOX_Epetra_LinearSystem_Amesos.H>
Inheritance diagram for NOX::Epetra::LinearSystemAmesos:


Public Member Functions | |
| LinearSystemAmesos (Teuchos::ParameterList &printingParams, Teuchos::ParameterList &linearSolverParams, const Teuchos::RCP< NOX::Epetra::Interface::Required > &iReq, const Teuchos::RCP< NOX::Epetra::Interface::Jacobian > &iJac, const Teuchos::RCP< Epetra_Operator > &J, const NOX::Epetra::Vector &cloneVector, const Teuchos::RCP< NOX::Epetra::Scaling > scalingObject=Teuchos::null) | |
| Constructor with a user supplied Jacobian Operator. | |
| virtual | ~LinearSystemAmesos () |
| Destructor. | |
| virtual bool | applyJacobian (const NOX::Epetra::Vector &input, NOX::Epetra::Vector &result) const |
| 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 |
| Applies Jacobian-Transpose to the given input vector and puts the answer in the result. | |
| virtual bool | applyJacobianInverse (Teuchos::ParameterList ¶ms, const NOX::Epetra::Vector &input, NOX::Epetra::Vector &result) |
| Applies the inverse of the Jacobian matrix to the given input vector and puts the answer in result. | |
| virtual bool | applyRightPreconditioning (bool useTranspose, Teuchos::ParameterList ¶ms, const NOX::Epetra::Vector &input, NOX::Epetra::Vector &result) const |
| Returns false. | |
| virtual Teuchos::RCP< NOX::Epetra::Scaling > | getScaling () |
| Returns supplied scaling object. | |
| virtual void | resetScaling (const Teuchos::RCP< NOX::Epetra::Scaling > &s) |
| Reset supplied scaling object. | |
| virtual bool | computeJacobian (const NOX::Epetra::Vector &x) |
| Evaluates the Jacobian based on the solution vector x. | |
| virtual bool | createPreconditioner (const NOX::Epetra::Vector &x, Teuchos::ParameterList &p, bool recomputeGraph) const |
| Returns false. | |
| virtual bool | destroyPreconditioner () const |
| Returns false. | |
| virtual bool | recomputePreconditioner (const NOX::Epetra::Vector &x, Teuchos::ParameterList &linearSolverParams) const |
| Returns false. | |
| virtual PreconditionerReusePolicyType | getPreconditionerPolicy (bool advanceReuseCounter=true) |
| Returns PRPT_REUSE;. | |
| virtual bool | isPreconditionerConstructed () const |
| Returns false. | |
| virtual bool | hasPreconditioner () const |
| Returns false. | |
|
virtual Teuchos::RCP< const Epetra_Operator > | getJacobianOperator () const |
| Returns jacobian operator. | |
| virtual Teuchos::RCP< Epetra_Operator > | getJacobianOperator () |
| Returns jacobian operator. | |
|
virtual Teuchos::RCP< const Epetra_Operator > | getGeneratedPrecOperator () const |
| Returns Teuchos::null. | |
| virtual Teuchos::RCP< Epetra_Operator > | getGeneratedPrecOperator () |
| Returns Teuchos::null. | |
| virtual void | setJacobianOperatorForSolve (const Teuchos::RCP< const Epetra_Operator > &solveJacOp) |
| Resets the jacobian operator. | |
| virtual void | setPrecOperatorForSolve (const Teuchos::RCP< const Epetra_Operator > &solvePrecOp) |
| Does nothing. | |
Protected Attributes | |
| Teuchos::RCP< Epetra_LinearProblem > | amesosProblem |
| Pointer to the Amesos problem. | |
| Teuchos::RCP< Amesos_BaseSolver > | amesosSolver |
| Pointer to the Amesos Solver. | |
| Amesos | factory |
| Amesos factory. | |
| bool | isValidFactorization |
| True if the factorization doesn't need to be re-computed. | |
| Teuchos::RCP< NOX::Epetra::Interface::Jacobian > | jacInterfacePtr |
| Reference to the user supplied Jacobian interface functions. | |
| Teuchos::RCP< Epetra_Operator > | jacPtr |
| Pointer to the Jacobian operator. | |
| Teuchos::RCP< Epetra_Vector > | leftHandSide |
| Pointer to the left-hand side of the Amesos problem. | |
| Teuchos::RCP< Epetra_Vector > | rightHandSide |
| Pointer to the right-hand side of the Amesos problem. | |
| Teuchos::RCP< NOX::Epetra::Scaling > | scaling |
| Scaling object supplied by the user. | |
| Epetra_Time | timer |
| Epetra_Time object. | |
| NOX::Utils | utils |
| Printing Utilities object. | |
The NOX::Epetra::LinearSystemAmesos object provides a way to interface an Epetra based application code to the Amesos linear solver. This class handles construction the Amesos solver. All options are determined through parameter lists and the basic constructor.
This class contains exclusively NOX::Epetra::LinearSolver virtual methods. Scaling of the linear system is currently not implemented.
Constructing a Linear System
At the time being there is only one constructor that can be used: among other things, parameter, the user must provide a NOX printing parameter sublist, a NOX linear solver sublist, and a Jacobian. This constructor is analogous to one of the NOX:Epetra:LinearSystemAmesos ones.
The user can select an Amesos solver type via the parameter Amesos Solver in the NOX linear solver sublist. The default solver is "Amesos_Klu".
| bool NOX::Epetra::LinearSystemAmesos::applyJacobian | ( | const NOX::Epetra::Vector & | input, | |
| NOX::Epetra::Vector & | result | |||
| ) | const [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.
Implements NOX::Epetra::LinearSystem.
| bool NOX::Epetra::LinearSystemAmesos::applyJacobianInverse | ( | Teuchos::ParameterList & | params, | |
| const NOX::Epetra::Vector & | input, | |||
| NOX::Epetra::Vector & | result | |||
| ) | [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.
Implements NOX::Epetra::LinearSystem.
| bool NOX::Epetra::LinearSystemAmesos::applyJacobianTranspose | ( | const NOX::Epetra::Vector & | input, | |
| NOX::Epetra::Vector & | result | |||
| ) | const [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.
Implements NOX::Epetra::LinearSystem.
1.4.7