#include <NOX_Epetra_Interface.H>
Inheritance diagram for NOX::Epetra::Interface:
Public Types | |
| enum | FillType { F, Jacobian, Preconditioner, FiniteDifferenceF, MatrixFreeF } |
| Type of fill that a computeF() method is used for. This flag is used when a computeF() is used to compute a lagged Jacobian by finite difference or matrix-free methods. This allows for removing specific terms of the Jacobian. | |
Public Member Functions | |
| Interface () | |
| Constructor. | |
| virtual | ~Interface () |
| Destructor. | |
| virtual bool | computeF (const Epetra_Vector &x, Epetra_Vector &RHS, FillType flag=F)=0 |
| Compute RHS given the specified input vector x. Returns true if computation was successful. | |
| virtual bool | computeJacobian (const Epetra_Vector &x, Epetra_Operator &Jac)=0 |
| Compute Jacobian given the specified input vector x. Returns true if computation was successful. | |
| virtual bool | computePrecMatrix (const Epetra_Vector &x, Epetra_RowMatrix &M)=0 |
| Compute the Epetra_RowMatrix M, that will be used by the Aztec preconditioner instead of the Jacobian. This is used when there is no explicit Jacobian present (i.e. Matrix-Free Newton-Krylov). This MUST BE an Epetra_RowMatrix since the Aztec preconditioners need to know the sparsity pattern of the matrix. Returns true if computation was successful. | |
| virtual bool | computePreconditioner (const Epetra_Vector &x, Epetra_Operator &M)=0 |
| Computes a user supplied preconditioner based on input vector x. Returns true if computation was successful. | |
At a minimum the user must supply a computeF(). If the user is supplying their own Epetra_RowMatrix for the Jacobian, then they must supply a computeJacobian(). If computeJacobian is not supplied, a Matrix-Free or Finite Differencing Epetra_RowMatrix can be used in NOX. Preconditioning functions are only needed if the user wishes to supply their own preconditioner. Otherwise Aztec has built-in preconditioners to use.
1.3.9.1