NOX::Epetra::Interface Class Reference

Used by NOX::Epetra::Group to provide a link to the external code for RHS and Jacobian fills ()if needed. More...

#include <NOX_Epetra_Interface.H>

Inheritance diagram for NOX::Epetra::Interface:

[legend]
List of all members.

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.

Detailed Description

Used by NOX::Epetra::Group to provide a link to the external code for RHS and Jacobian fills ()if needed.

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.


The documentation for this class was generated from the following file:
Generated on Thu Sep 18 12:42:27 2008 for NOX by doxygen 1.3.9.1