NOX::Epetra::FiniteDifference Class Reference

Concrete implementation for creating an Epetra_RowMatrix Jacobian via finite differencing of the residual. More...

#include <NOX_Epetra_FiniteDifference.H>

Inheritance diagram for NOX::Epetra::FiniteDifference:

Inheritance graph
[legend]
Collaboration diagram for NOX::Epetra::FiniteDifference:

Collaboration graph
[legend]

List of all members.

Public Types

enum  DifferenceType { Forward, Backward, Centered }
 Define types for use of the perturbation parameter $ \delta$. More...

Public Member Functions

 FiniteDifference (Teuchos::ParameterList &printingParams, const Teuchos::RCP< NOX::Epetra::Interface::Required > &i, const NOX::Epetra::Vector &initialGuess, double beta=1.0e-6, double alpha=1.0e-4)
 Constructor with scalar beta.
 FiniteDifference (Teuchos::ParameterList &printingParams, const Teuchos::RCP< NOX::Epetra::Interface::Required > &i, const NOX::Epetra::Vector &initialGuess, const Teuchos::RCP< const Epetra_Vector > &beta, double alpha=1.0e-4)
 Constructor with vector beta.
 FiniteDifference (Teuchos::ParameterList &printingParams, const Teuchos::RCP< NOX::Epetra::Interface::Required > &i, const NOX::Epetra::Vector &initialGuess, const Teuchos::RCP< Epetra_CrsGraph > &g, double beta=1.0e-6, double alpha=1.0e-4)
 Constructor that takes a pre-constructed Epetra_CrsGraph so it does not have to determine the non-zero entries in the matrix.
 FiniteDifference (Teuchos::ParameterList &printingParams, const Teuchos::RCP< NOX::Epetra::Interface::Required > &i, const NOX::Epetra::Vector &initialGuess, const Teuchos::RCP< Epetra_CrsGraph > &g, const Teuchos::RCP< const Epetra_Vector > &beta, double alpha=1.0e-4)
 Constructor with output control that takes a pre-constructed Epetra_CrsGraph so it does not have to determine the non-zero entries in the matrix.
virtual ~FiniteDifference ()
 Pure virtual destructor.
virtual const char * Label () const
 Returns a character string describing the name of the operator.
virtual int SetUseTranspose (bool UseTranspose)
 If set true, the transpose of this operator will be applied.
virtual int Apply (const Epetra_MultiVector &X, Epetra_MultiVector &Y) const
 Return the result on an Epetra_Operator applied to an Epetra_MultiVector X in Y.
virtual int ApplyInverse (const Epetra_MultiVector &X, Epetra_MultiVector &Y) const
 Return the result on an Epetra_Operator inverse applied to an Epetra_MultiVector X in Y.
virtual bool UseTranspose () const
 Returns the current use transpose setting.
virtual bool HasNormInf () const
 Returns true if the this object can provide an approximate Inf-norm, false otherwise.
virtual const Epetra_Map & OperatorDomainMap () const
 Returns the Epetra_BlockMap object associated with the domain of this matrix operator.
virtual const Epetra_Map & OperatorRangeMap () const
 Returns the Epetra_BlockMap object associated with the range of this matrix operator.
virtual bool Filled () const
 See Epetra_RowMatrix documentation.
virtual int NumMyRowEntries (int MyRow, int &NumEntries) const
 See Epetra_RowMatrix documentation.
virtual int MaxNumEntries () const
 See Epetra_RowMatrix documentation.
virtual int ExtractMyRowCopy (int MyRow, int Length, int &NumEntries, double *Values, int *Indices) const
 See Epetra_RowMatrix documentation.
virtual int ExtractDiagonalCopy (Epetra_Vector &Diagonal) const
 See Epetra_RowMatrix documentation.
virtual int Multiply (bool TransA, const Epetra_MultiVector &X, Epetra_MultiVector &Y) const
 See Epetra_RowMatrix documentation.
virtual int Solve (bool Upper, bool Trans, bool UnitDiagonal, const Epetra_MultiVector &X, Epetra_MultiVector &Y) const
 See Epetra_RowMatrix documentation.
virtual int InvRowSums (Epetra_Vector &x) const
 See Epetra_RowMatrix documentation.
virtual int LeftScale (const Epetra_Vector &x)
 See Epetra_RowMatrix documentation.
virtual int InvColSums (Epetra_Vector &x) const
 See Epetra_RowMatrix documentation.
virtual int RightScale (const Epetra_Vector &x)
 See Epetra_RowMatrix documentation.
virtual double NormInf () const
 See Epetra_RowMatrix documentation.
virtual double NormOne () const
 See Epetra_RowMatrix documentation.
virtual int NumGlobalNonzeros () const
 See Epetra_RowMatrix documentation.
virtual int NumGlobalRows () const
 See Epetra_RowMatrix documentation.
virtual int NumGlobalCols () const
 See Epetra_RowMatrix documentation.
virtual int NumGlobalDiagonals () const
 See Epetra_RowMatrix documentation.
virtual int NumMyNonzeros () const
 See Epetra_RowMatrix documentation.
virtual int NumMyRows () const
 See Epetra_RowMatrix documentation.
virtual int NumMyCols () const
 See Epetra_RowMatrix documentation.
virtual int NumMyDiagonals () const
 See Epetra_RowMatrix documentation.
virtual bool LowerTriangular () const
 See Epetra_RowMatrix documentation.
virtual bool UpperTriangular () const
 See Epetra_RowMatrix documentation.
virtual const Epetra_Comm & Comm () const
 See Epetra_RowMatrix documentation.
virtual const Epetra_Map & RowMatrixRowMap () const
 See Epetra_RowMatrix documentation.
virtual const Epetra_Map & RowMatrixColMap () const
 See Epetra_RowMatrix documentation.
virtual const Epetra_Import * RowMatrixImporter () const
 See Epetra_RowMatrix documentation.
virtual const Epetra_BlockMap & Map () const
 See Epetra_SrcDistObj documentation.
virtual bool computeJacobian (const Epetra_Vector &x, Epetra_Operator &Jac)
 Compute Jacobian given the specified input vector, x. Returns true if computation was successful.
virtual bool computeJacobian (const Epetra_Vector &x)
 Compute Jacobian given the specified input vector, x. Returns true if computation was successful.
virtual bool computePreconditioner (const Epetra_Vector &x, Epetra_Operator &Prec, Teuchos::ParameterList *precParams=0)
 Compute an Epetra_RowMatrix to be used by Aztec preconditioners given the specified input vector, x. Returns true if computation was successful.
virtual void setDifferenceMethod (DifferenceType type)
 Set the type of perturbation method used (default is Forward).
virtual Epetra_CrsMatrix & getUnderlyingMatrix () const
 An accessor method for the underlying Epetra_CrsMatrix.
virtual void Print (ostream &) const
 Output the underlying matrix.
void setGroupForComputeF (NOX::Abstract::Group &group)
 Register a NOX::Abstract::Group derived object and use the computeF() method of that group for the perturbation instead of the NOX::Epetra::Interface::Required::computeF() method. This is required for LOCA to get the operators correct during homotopy.

Protected Types

enum  BetaType { Scalar, Vector }
 Define types for the $ \beta $ parameter during the computation of the perturbation parameter $ \delta$. More...

Protected Member Functions

Teuchos::RCP< Epetra_CrsMatrix > createGraphAndJacobian (Interface::Required &i, const Epetra_Vector &x)
 Constructs an Epetra_CrsGraph and Epetra_RowMatrix for the Jacobian. This is only called if the user does not supply an Epetra_CrsGraph.
bool computeF (const Epetra_Vector &input, Epetra_Vector &result, NOX::Epetra::Interface::Required::FillType)

Protected Attributes

const NOX::Utils utils
 Printing Utilities object.
Teuchos::RCP< Epetra_CrsGraph > graph
 Pointer to the Jacobian graph.
Teuchos::RCP< Epetra_CrsMatrix > jacobian
 Pointer to the Jacobian.
Teuchos::RCP
< NOX::Epetra::Interface::Required
interface
 User provided interface function.
Epetra_Vector x_perturb
 Perturbed solution vector - a work array that needs to be mutable.
Epetra_Vector fo
 Function evaluation at currentX - a work array that needs to be mutable.
Epetra_Vector fp
 Function evaluation at perturbX - a work array that needs to be mutable.
Teuchos::RCP< Epetra_Vector > fmPtr
 Optional pointer to function evaluation at -perturbX - needed only for centered finite differencing.
Epetra_Vector Jc
 Column vector of the jacobian - a work array that needs to be mutable.
double alpha
 Constant for the perturbation calculation.
double beta
 Constant for the perturbation calculation.
Teuchos::RCP< const Epetra_Vector > betaVector
 Vector for the perturbation calculation.
BetaType betaType
 Flag that sets whether $ \beta $ is a scalar or a vector.
DifferenceType diffType
 Define types for use of the perturbation parameter $ \delta$.
string label
 label for the Epetra_RowMatrix
bool useGroupForComputeF
 Flag to enables the use of a group instead of the interface for the computeF() calls in the directional difference calculation.
Teuchos::RCP
< NOX::Abstract::Group
groupPtr
 Pointer to the group for possible use in computeF() calls.


Detailed Description

Concrete implementation for creating an Epetra_RowMatrix Jacobian via finite differencing of the residual.

The Jacobian entries are calculated via 1st order finite differencing. This requires $ N + 1 $ calls to computeF() where $ N $ is the number of unknowns in the problem.

\[ J_{ij} = \frac{\partial F_i}{\partial x_j} = \frac{F_i(x+\delta\mathbf{e}_j) - F_i(x)}{\delta} \]

where $J$ is the Jacobian, $F$ is the function evaluation, $x$ is the solution vector, and $\delta$ is a small perturbation to the $x_j$ entry.

The perturbation, $ \delta $, is calculated based on one of the following equations:

\[ \delta = \alpha * | x_j | + \beta \]

\[ \delta = \alpha * | x_j | + \beta_j \]

where $ \alpha $ is a scalar value (defaults to 1.0e-4) and $ \beta $ can be either a scalar or a vector (defaults to a scalar value of 1.0e-6). The choice is defined by the type of constructor used. All parameters are supplied in the constructor. In addition to the forward difference derivative approximation, backward or centered differences can be used via the setDifferenceMethod function. Note that centered difference provides second order spatial accuracy but at the cost of twice as many function evaluations.

Since this inherits from the Epetra_RowMatrix class, it can be used as the preconditioning matrix for AztecOO preconditioners. This method is very inefficient when computing the Jacobian and is not recommended for large-scale systems but only for debugging purposes.

Definition at line 90 of file NOX_Epetra_FiniteDifference.H.


Member Enumeration Documentation

Define types for use of the perturbation parameter $ \delta$.

Definition at line 97 of file NOX_Epetra_FiniteDifference.H.

Define types for the $ \beta $ parameter during the computation of the perturbation parameter $ \delta$.

Definition at line 311 of file NOX_Epetra_FiniteDifference.H.


Constructor & Destructor Documentation

FiniteDifference::FiniteDifference ( Teuchos::ParameterList &  printingParams,
const Teuchos::RCP< NOX::Epetra::Interface::Required > &  i,
const NOX::Epetra::Vector initialGuess,
double  beta = 1.0e-6,
double  alpha = 1.0e-4 
)

Constructor with scalar beta.

Definition at line 56 of file NOX_Epetra_FiniteDifference.C.

References createGraphAndJacobian(), NOX::Epetra::Vector::getEpetraVector(), and jacobian.

FiniteDifference::FiniteDifference ( Teuchos::ParameterList &  printingParams,
const Teuchos::RCP< NOX::Epetra::Interface::Required > &  i,
const NOX::Epetra::Vector initialGuess,
const Teuchos::RCP< const Epetra_Vector > &  beta,
double  alpha = 1.0e-4 
)

Constructor with vector beta.

Definition at line 80 of file NOX_Epetra_FiniteDifference.C.

References createGraphAndJacobian(), NOX::Epetra::Vector::getEpetraVector(), and jacobian.

FiniteDifference::FiniteDifference ( Teuchos::ParameterList &  printingParams,
const Teuchos::RCP< NOX::Epetra::Interface::Required > &  i,
const NOX::Epetra::Vector initialGuess,
const Teuchos::RCP< Epetra_CrsGraph > &  g,
double  beta = 1.0e-6,
double  alpha = 1.0e-4 
)

Constructor that takes a pre-constructed Epetra_CrsGraph so it does not have to determine the non-zero entries in the matrix.

Definition at line 104 of file NOX_Epetra_FiniteDifference.C.

References graph, and jacobian.

FiniteDifference::FiniteDifference ( Teuchos::ParameterList &  printingParams,
const Teuchos::RCP< NOX::Epetra::Interface::Required > &  i,
const NOX::Epetra::Vector initialGuess,
const Teuchos::RCP< Epetra_CrsGraph > &  g,
const Teuchos::RCP< const Epetra_Vector > &  beta,
double  alpha = 1.0e-4 
)

Constructor with output control that takes a pre-constructed Epetra_CrsGraph so it does not have to determine the non-zero entries in the matrix.

Definition at line 131 of file NOX_Epetra_FiniteDifference.C.

References graph, and jacobian.

FiniteDifference::~FiniteDifference (  )  [virtual]

Pure virtual destructor.

Definition at line 159 of file NOX_Epetra_FiniteDifference.C.


Member Function Documentation

const char * FiniteDifference::Label (  )  const [virtual]

Returns a character string describing the name of the operator.

Definition at line 164 of file NOX_Epetra_FiniteDifference.C.

References label.

int FiniteDifference::SetUseTranspose ( bool  UseTranspose  )  [virtual]

If set true, the transpose of this operator will be applied.

Definition at line 169 of file NOX_Epetra_FiniteDifference.C.

References jacobian.

int FiniteDifference::Apply ( const Epetra_MultiVector &  X,
Epetra_MultiVector &  Y 
) const [virtual]

Return the result on an Epetra_Operator applied to an Epetra_MultiVector X in Y.

Definition at line 174 of file NOX_Epetra_FiniteDifference.C.

References jacobian.

int FiniteDifference::ApplyInverse ( const Epetra_MultiVector &  X,
Epetra_MultiVector &  Y 
) const [virtual]

Return the result on an Epetra_Operator inverse applied to an Epetra_MultiVector X in Y.

Definition at line 179 of file NOX_Epetra_FiniteDifference.C.

References jacobian.

bool FiniteDifference::UseTranspose (  )  const [virtual]

Returns the current use transpose setting.

Definition at line 184 of file NOX_Epetra_FiniteDifference.C.

References jacobian.

bool FiniteDifference::HasNormInf (  )  const [virtual]

Returns true if the this object can provide an approximate Inf-norm, false otherwise.

Definition at line 189 of file NOX_Epetra_FiniteDifference.C.

References jacobian.

const Epetra_Map & FiniteDifference::OperatorDomainMap (  )  const [virtual]

Returns the Epetra_BlockMap object associated with the domain of this matrix operator.

Definition at line 194 of file NOX_Epetra_FiniteDifference.C.

References jacobian.

const Epetra_Map & FiniteDifference::OperatorRangeMap (  )  const [virtual]

Returns the Epetra_BlockMap object associated with the range of this matrix operator.

Definition at line 199 of file NOX_Epetra_FiniteDifference.C.

References jacobian.

bool FiniteDifference::Filled (  )  const [virtual]

See Epetra_RowMatrix documentation.

Definition at line 204 of file NOX_Epetra_FiniteDifference.C.

References jacobian.

int FiniteDifference::NumMyRowEntries ( int  MyRow,
int &  NumEntries 
) const [virtual]

See Epetra_RowMatrix documentation.

Definition at line 209 of file NOX_Epetra_FiniteDifference.C.

References jacobian.

int FiniteDifference::MaxNumEntries (  )  const [virtual]

See Epetra_RowMatrix documentation.

Definition at line 214 of file NOX_Epetra_FiniteDifference.C.

References jacobian.

int FiniteDifference::ExtractMyRowCopy ( int  MyRow,
int  Length,
int &  NumEntries,
double *  Values,
int *  Indices 
) const [virtual]

See Epetra_RowMatrix documentation.

Definition at line 219 of file NOX_Epetra_FiniteDifference.C.

References jacobian.

int FiniteDifference::ExtractDiagonalCopy ( Epetra_Vector &  Diagonal  )  const [virtual]

See Epetra_RowMatrix documentation.

Definition at line 224 of file NOX_Epetra_FiniteDifference.C.

References jacobian.

int FiniteDifference::Multiply ( bool  TransA,
const Epetra_MultiVector &  X,
Epetra_MultiVector &  Y 
) const [virtual]

See Epetra_RowMatrix documentation.

Definition at line 229 of file NOX_Epetra_FiniteDifference.C.

References jacobian.

int FiniteDifference::Solve ( bool  Upper,
bool  Trans,
bool  UnitDiagonal,
const Epetra_MultiVector &  X,
Epetra_MultiVector &  Y 
) const [virtual]

See Epetra_RowMatrix documentation.

Definition at line 234 of file NOX_Epetra_FiniteDifference.C.

References jacobian.

int FiniteDifference::InvRowSums ( Epetra_Vector &  x  )  const [virtual]

See Epetra_RowMatrix documentation.

Definition at line 239 of file NOX_Epetra_FiniteDifference.C.

References jacobian.

int FiniteDifference::LeftScale ( const Epetra_Vector &  x  )  [virtual]

See Epetra_RowMatrix documentation.

Definition at line 244 of file NOX_Epetra_FiniteDifference.C.

References jacobian.

int FiniteDifference::InvColSums ( Epetra_Vector &  x  )  const [virtual]

See Epetra_RowMatrix documentation.

Definition at line 249 of file NOX_Epetra_FiniteDifference.C.

References jacobian.

int FiniteDifference::RightScale ( const Epetra_Vector &  x  )  [virtual]

See Epetra_RowMatrix documentation.

Definition at line 254 of file NOX_Epetra_FiniteDifference.C.

References jacobian.

double FiniteDifference::NormInf (  )  const [virtual]

See Epetra_RowMatrix documentation.

Definition at line 259 of file NOX_Epetra_FiniteDifference.C.

References jacobian.

double FiniteDifference::NormOne (  )  const [virtual]

See Epetra_RowMatrix documentation.

Definition at line 264 of file NOX_Epetra_FiniteDifference.C.

References jacobian.

int FiniteDifference::NumGlobalNonzeros (  )  const [virtual]

See Epetra_RowMatrix documentation.

Definition at line 269 of file NOX_Epetra_FiniteDifference.C.

References jacobian.

int FiniteDifference::NumGlobalRows (  )  const [virtual]

See Epetra_RowMatrix documentation.

Definition at line 274 of file NOX_Epetra_FiniteDifference.C.

References jacobian.

int FiniteDifference::NumGlobalCols (  )  const [virtual]

See Epetra_RowMatrix documentation.

Definition at line 279 of file NOX_Epetra_FiniteDifference.C.

References jacobian.

int FiniteDifference::NumGlobalDiagonals (  )  const [virtual]

See Epetra_RowMatrix documentation.

Definition at line 284 of file NOX_Epetra_FiniteDifference.C.

References jacobian.

int FiniteDifference::NumMyNonzeros (  )  const [virtual]

See Epetra_RowMatrix documentation.

Definition at line 289 of file NOX_Epetra_FiniteDifference.C.

References jacobian.

int FiniteDifference::NumMyRows (  )  const [virtual]

See Epetra_RowMatrix documentation.

Definition at line 294 of file NOX_Epetra_FiniteDifference.C.

References jacobian.

int FiniteDifference::NumMyCols (  )  const [virtual]

See Epetra_RowMatrix documentation.

Definition at line 299 of file NOX_Epetra_FiniteDifference.C.

References jacobian.

int FiniteDifference::NumMyDiagonals (  )  const [virtual]

See Epetra_RowMatrix documentation.

Definition at line 304 of file NOX_Epetra_FiniteDifference.C.

References jacobian.

bool FiniteDifference::LowerTriangular (  )  const [virtual]

See Epetra_RowMatrix documentation.

Definition at line 309 of file NOX_Epetra_FiniteDifference.C.

References jacobian.

bool FiniteDifference::UpperTriangular (  )  const [virtual]

See Epetra_RowMatrix documentation.

Definition at line 314 of file NOX_Epetra_FiniteDifference.C.

References jacobian.

const Epetra_Comm & FiniteDifference::Comm (  )  const [virtual]

See Epetra_RowMatrix documentation.

Definition at line 319 of file NOX_Epetra_FiniteDifference.C.

References jacobian.

const Epetra_Map & FiniteDifference::RowMatrixRowMap (  )  const [virtual]

See Epetra_RowMatrix documentation.

Definition at line 324 of file NOX_Epetra_FiniteDifference.C.

References jacobian.

const Epetra_Map & FiniteDifference::RowMatrixColMap (  )  const [virtual]

See Epetra_RowMatrix documentation.

Definition at line 329 of file NOX_Epetra_FiniteDifference.C.

References jacobian.

const Epetra_Import * FiniteDifference::RowMatrixImporter (  )  const [virtual]

See Epetra_RowMatrix documentation.

Definition at line 334 of file NOX_Epetra_FiniteDifference.C.

References jacobian.

const Epetra_BlockMap & FiniteDifference::Map (  )  const [virtual]

See Epetra_SrcDistObj documentation.

Definition at line 339 of file NOX_Epetra_FiniteDifference.C.

References jacobian.

bool FiniteDifference::computeJacobian ( const Epetra_Vector &  x,
Epetra_Operator &  Jac 
) [virtual]

Compute Jacobian given the specified input vector, x. Returns true if computation was successful.

Implements NOX::Epetra::Interface::Jacobian.

Reimplemented in NOX::Epetra::FiniteDifferenceColoring.

Definition at line 349 of file NOX_Epetra_FiniteDifference.C.

References alpha, beta, betaType, diffType, NOX::Epetra::Interface::Required::FD_Res, fmPtr, fo, fp, jacobian, Jc, NOX::Utils::out(), utils, and x_perturb.

Referenced by computeJacobian(), and computePreconditioner().

bool FiniteDifference::computeJacobian ( const Epetra_Vector &  x  )  [virtual]

Compute Jacobian given the specified input vector, x. Returns true if computation was successful.

Reimplemented in NOX::Epetra::FiniteDifferenceColoring.

Definition at line 344 of file NOX_Epetra_FiniteDifference.C.

References computeJacobian().

bool FiniteDifference::computePreconditioner ( const Epetra_Vector &  x,
Epetra_Operator &  Prec,
Teuchos::ParameterList *  precParams = 0 
) [virtual]

Compute an Epetra_RowMatrix to be used by Aztec preconditioners given the specified input vector, x. Returns true if computation was successful.

Implements NOX::Epetra::Interface::Preconditioner.

Definition at line 451 of file NOX_Epetra_FiniteDifference.C.

References computeJacobian().

void FiniteDifference::setDifferenceMethod ( DifferenceType  type  )  [virtual]

Set the type of perturbation method used (default is Forward).

Definition at line 522 of file NOX_Epetra_FiniteDifference.C.

References diffType.

Epetra_CrsMatrix & FiniteDifference::getUnderlyingMatrix (  )  const [virtual]

An accessor method for the underlying Epetra_CrsMatrix.

Definition at line 527 of file NOX_Epetra_FiniteDifference.C.

References jacobian.

Referenced by NOX::Epetra::LinearSystemAztecOO::createIfpackPreconditioner().

void FiniteDifference::Print ( ostream &  strm  )  const [virtual]

Output the underlying matrix.

Definition at line 532 of file NOX_Epetra_FiniteDifference.C.

References jacobian.

void FiniteDifference::setGroupForComputeF ( NOX::Abstract::Group group  ) 

Register a NOX::Abstract::Group derived object and use the computeF() method of that group for the perturbation instead of the NOX::Epetra::Interface::Required::computeF() method. This is required for LOCA to get the operators correct during homotopy.

Definition at line 537 of file NOX_Epetra_FiniteDifference.C.

References NOX::Abstract::Group::clone(), groupPtr, and useGroupForComputeF.

Teuchos::RCP< Epetra_CrsMatrix > FiniteDifference::createGraphAndJacobian ( Interface::Required i,
const Epetra_Vector &  x 
) [protected]

Constructs an Epetra_CrsGraph and Epetra_RowMatrix for the Jacobian. This is only called if the user does not supply an Epetra_CrsGraph.

Definition at line 459 of file NOX_Epetra_FiniteDifference.C.

References alpha, beta, betaType, NOX::Epetra::Interface::Required::FD_Res, fo, fp, graph, jacobian, Jc, and x_perturb.

Referenced by FiniteDifference().


Member Data Documentation

Printing Utilities object.

Definition at line 275 of file NOX_Epetra_FiniteDifference.H.

Referenced by NOX::Epetra::FiniteDifferenceColoring::computeJacobian(), and computeJacobian().

Teuchos::RCP<Epetra_CrsGraph> NOX::Epetra::FiniteDifference::graph [protected]

Pointer to the Jacobian graph.

Definition at line 278 of file NOX_Epetra_FiniteDifference.H.

Referenced by createGraphAndJacobian(), and FiniteDifference().

Teuchos::RCP<Epetra_CrsMatrix> NOX::Epetra::FiniteDifference::jacobian [protected]

User provided interface function.

Definition at line 284 of file NOX_Epetra_FiniteDifference.H.

Epetra_Vector NOX::Epetra::FiniteDifference::x_perturb [mutable, protected]

Perturbed solution vector - a work array that needs to be mutable.

Definition at line 287 of file NOX_Epetra_FiniteDifference.H.

Referenced by NOX::Epetra::FiniteDifferenceColoring::computeJacobian(), computeJacobian(), and createGraphAndJacobian().

Epetra_Vector NOX::Epetra::FiniteDifference::fo [mutable, protected]

Function evaluation at currentX - a work array that needs to be mutable.

Definition at line 290 of file NOX_Epetra_FiniteDifference.H.

Referenced by NOX::Epetra::FiniteDifferenceColoring::computeJacobian(), computeJacobian(), and createGraphAndJacobian().

Epetra_Vector NOX::Epetra::FiniteDifference::fp [mutable, protected]

Function evaluation at perturbX - a work array that needs to be mutable.

Definition at line 293 of file NOX_Epetra_FiniteDifference.H.

Referenced by NOX::Epetra::FiniteDifferenceColoring::computeJacobian(), computeJacobian(), and createGraphAndJacobian().

Teuchos::RCP<Epetra_Vector> NOX::Epetra::FiniteDifference::fmPtr [protected]

Optional pointer to function evaluation at -perturbX - needed only for centered finite differencing.

Definition at line 296 of file NOX_Epetra_FiniteDifference.H.

Referenced by NOX::Epetra::FiniteDifferenceColoring::computeJacobian(), and computeJacobian().

Epetra_Vector NOX::Epetra::FiniteDifference::Jc [mutable, protected]

Column vector of the jacobian - a work array that needs to be mutable.

Definition at line 299 of file NOX_Epetra_FiniteDifference.H.

Referenced by NOX::Epetra::FiniteDifferenceColoring::computeJacobian(), computeJacobian(), and createGraphAndJacobian().

Constant for the perturbation calculation.

Definition at line 302 of file NOX_Epetra_FiniteDifference.H.

Referenced by NOX::Epetra::FiniteDifferenceColoring::computeJacobian(), computeJacobian(), and createGraphAndJacobian().

Constant for the perturbation calculation.

Definition at line 305 of file NOX_Epetra_FiniteDifference.H.

Referenced by NOX::Epetra::FiniteDifferenceColoring::computeJacobian(), computeJacobian(), and createGraphAndJacobian().

Teuchos::RCP<const Epetra_Vector> NOX::Epetra::FiniteDifference::betaVector [protected]

Vector for the perturbation calculation.

Definition at line 308 of file NOX_Epetra_FiniteDifference.H.

Flag that sets whether $ \beta $ is a scalar or a vector.

Definition at line 314 of file NOX_Epetra_FiniteDifference.H.

Referenced by computeJacobian(), and createGraphAndJacobian().

Define types for use of the perturbation parameter $ \delta$.

Definition at line 317 of file NOX_Epetra_FiniteDifference.H.

Referenced by NOX::Epetra::FiniteDifferenceColoring::computeJacobian(), computeJacobian(), and setDifferenceMethod().

label for the Epetra_RowMatrix

Definition at line 320 of file NOX_Epetra_FiniteDifference.H.

Referenced by NOX::Epetra::FiniteDifferenceColoring::FiniteDifferenceColoring(), and Label().

Flag to enables the use of a group instead of the interface for the computeF() calls in the directional difference calculation.

Definition at line 323 of file NOX_Epetra_FiniteDifference.H.

Referenced by setGroupForComputeF().

Pointer to the group for possible use in computeF() calls.

Definition at line 326 of file NOX_Epetra_FiniteDifference.H.

Referenced by setGroupForComputeF().


The documentation for this class was generated from the following files:

Generated on Wed Oct 21 14:28:45 2009 for Nonlinear Solver Project by  doxygen 1.5.9