#include <NOX_Epetra_FiniteDifference.H>
Public Types | |
enum | DifferenceType { Forward, Backward, Centered } |
Define types for use of the perturbation parameter ![]() | |
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 ![]() ![]() | |
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 ![]() | |
DifferenceType | diffType |
Define types for use of the perturbation parameter ![]() | |
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. |
The Jacobian entries are calculated via 1st order finite differencing. This requires calls to computeF() where
is the number of unknowns in the problem.
where is the Jacobian,
is the function evaluation,
is the solution vector, and
is a small perturbation to the
entry.
The perturbation, , is calculated based on one of the following equations:
where is a scalar value (defaults to 1.0e-4) and
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.
Define types for use of the perturbation parameter .
Definition at line 97 of file NOX_Epetra_FiniteDifference.H.
enum NOX::Epetra::FiniteDifference::BetaType [protected] |
Define types for the parameter during the computation of the perturbation parameter
.
Definition at line 311 of file NOX_Epetra_FiniteDifference.H.
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.
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.
FiniteDifference::~FiniteDifference | ( | ) | [virtual] |
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().
const NOX::Utils NOX::Epetra::FiniteDifference::utils [protected] |
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] |
Pointer to the Jacobian.
Definition at line 281 of file NOX_Epetra_FiniteDifference.H.
Referenced by Apply(), ApplyInverse(), Comm(), NOX::Epetra::FiniteDifferenceColoring::computeJacobian(), computeJacobian(), createGraphAndJacobian(), ExtractDiagonalCopy(), ExtractMyRowCopy(), Filled(), FiniteDifference(), getUnderlyingMatrix(), HasNormInf(), InvColSums(), InvRowSums(), LeftScale(), LowerTriangular(), Map(), MaxNumEntries(), Multiply(), NormInf(), NormOne(), NumGlobalCols(), NumGlobalDiagonals(), NumGlobalNonzeros(), NumGlobalRows(), NumMyCols(), NumMyDiagonals(), NumMyNonzeros(), NumMyRowEntries(), NumMyRows(), OperatorDomainMap(), OperatorRangeMap(), Print(), RightScale(), RowMatrixColMap(), RowMatrixImporter(), RowMatrixRowMap(), SetUseTranspose(), Solve(), UpperTriangular(), and UseTranspose().
Teuchos::RCP<NOX::Epetra::Interface::Required> NOX::Epetra::FiniteDifference::interface [protected] |
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().
double NOX::Epetra::FiniteDifference::alpha [protected] |
Constant for the perturbation calculation.
Definition at line 302 of file NOX_Epetra_FiniteDifference.H.
Referenced by NOX::Epetra::FiniteDifferenceColoring::computeJacobian(), computeJacobian(), and createGraphAndJacobian().
double NOX::Epetra::FiniteDifference::beta [protected] |
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.
BetaType NOX::Epetra::FiniteDifference::betaType [protected] |
Flag that sets whether 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 .
Definition at line 317 of file NOX_Epetra_FiniteDifference.H.
Referenced by NOX::Epetra::FiniteDifferenceColoring::computeJacobian(), computeJacobian(), and setDifferenceMethod().
string NOX::Epetra::FiniteDifference::label [protected] |
label for the Epetra_RowMatrix
Definition at line 320 of file NOX_Epetra_FiniteDifference.H.
Referenced by NOX::Epetra::FiniteDifferenceColoring::FiniteDifferenceColoring(), and Label().
bool NOX::Epetra::FiniteDifference::useGroupForComputeF [protected] |
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().
Teuchos::RCP<NOX::Abstract::Group> NOX::Epetra::FiniteDifference::groupPtr [protected] |
Pointer to the group for possible use in computeF() calls.
Definition at line 326 of file NOX_Epetra_FiniteDifference.H.
Referenced by setGroupForComputeF().