LOCA::DerivUtils Class Reference

LOCA's generic derivative computation class to compute various derivatives via finite differencing. More...

#include <LOCA_DerivUtils.H>

Inheritance diagram for LOCA::DerivUtils:

Inheritance graph
[legend]

List of all members.

Public Member Functions

 DerivUtils (const Teuchos::RCP< LOCA::GlobalData > &global_data, double perturb=1.0e-6)
 Default constructor. perturb is the relative perturbation size used in differencing calculations.
 DerivUtils (const DerivUtils &)
 Copy constructor.
virtual ~DerivUtils ()
 Destructor.
virtual Teuchos::RCP< DerivUtilsclone (NOX::CopyType type=NOX::DeepCopy) const
 Cloning function. Creates a copy of the DerivUtils object of the same type.
virtual
NOX::Abstract::Group::ReturnType 
computeDfDp (LOCA::MultiContinuation::AbstractGroup &grp, const vector< int > &param_ids, NOX::Abstract::MultiVector &result, bool isValidF) const
 Compute derivative of f with respect to parameter, identified by param_id.
virtual
NOX::Abstract::Group::ReturnType 
computeDJnDp (LOCA::MultiContinuation::AbstractGroup &, const vector< int > &paramIDs, const NOX::Abstract::Vector &nullVector, NOX::Abstract::MultiVector &result, bool isValid) const
 Compute derivative of Jn with respect to particular parameter param_id.
virtual
NOX::Abstract::Group::ReturnType 
computeDJnDxa (LOCA::MultiContinuation::AbstractGroup &grp, const NOX::Abstract::Vector &nullVector, const NOX::Abstract::MultiVector &aVector, NOX::Abstract::MultiVector &result) const
 Compute vector (Jn)_{x}a given multi-vector a.
virtual
NOX::Abstract::Group::ReturnType 
computeDJnDxa (LOCA::MultiContinuation::AbstractGroup &grp, const NOX::Abstract::Vector &nullVector, const NOX::Abstract::MultiVector &aVector, const NOX::Abstract::Vector &JnVector, NOX::Abstract::MultiVector &result) const
 Compute vector (Jn)_{x}a given multi-vector a, given JnVector.
virtual
NOX::Abstract::Group::ReturnType 
computeDwtJnDp (LOCA::MultiContinuation::AbstractGroup &grp, const vector< int > &paramIDs, const NOX::Abstract::Vector &w, const NOX::Abstract::Vector &nullVector, NOX::Abstract::MultiVector::DenseMatrix &result, bool isValid) const
 Compute derivative of w^TJn with respect to particular parameter param_id.
virtual
NOX::Abstract::Group::ReturnType 
computeDwtJDp (LOCA::MultiContinuation::AbstractGroup &grp, const vector< int > &paramIDs, const NOX::Abstract::Vector &w, NOX::Abstract::MultiVector &result, bool isValid) const
 Compute derivative of w^TJ with respect to particular parameter param_id.
virtual
NOX::Abstract::Group::ReturnType 
computeDwtJnDx (LOCA::MultiContinuation::AbstractGroup &grp, const NOX::Abstract::Vector &w, const NOX::Abstract::Vector &nullVector, NOX::Abstract::Vector &result) const
 Compute vector (w^TJn)_{x}.
virtual
NOX::Abstract::Group::ReturnType 
computeDwtJnDx (LOCA::MultiContinuation::AbstractGroup &grp, const NOX::Abstract::MultiVector &w, const NOX::Abstract::Vector &nullVector, NOX::Abstract::MultiVector &result) const
 Compute vector (w^TJn)_{x}.
virtual
NOX::Abstract::Group::ReturnType 
computeDCeDp (LOCA::Hopf::MooreSpence::AbstractGroup &grp, const vector< int > &paramIDs, const NOX::Abstract::Vector &yVector, const NOX::Abstract::Vector &zVector, double w, NOX::Abstract::MultiVector &result_real, NOX::Abstract::MultiVector &result_imag, bool isValid) const
 Compute derivative of (J+iwM)(y+iz) with respect to parameter,.
virtual
NOX::Abstract::Group::ReturnType 
computeDCeDxa (LOCA::Hopf::MooreSpence::AbstractGroup &grp, const NOX::Abstract::Vector &yVector, const NOX::Abstract::Vector &zVector, double w, const NOX::Abstract::MultiVector &aVector, NOX::Abstract::MultiVector &result_real, NOX::Abstract::MultiVector &result_imag) const
 Compute vector (J+iwM)(y+iz))_{x}a given a.
virtual
NOX::Abstract::Group::ReturnType 
computeDCeDxa (LOCA::Hopf::MooreSpence::AbstractGroup &grp, const NOX::Abstract::Vector &yVector, const NOX::Abstract::Vector &zVector, double w, const NOX::Abstract::MultiVector &aVector, const NOX::Abstract::Vector &Ce_real, const NOX::Abstract::Vector &Ce_imag, NOX::Abstract::MultiVector &result_real, NOX::Abstract::MultiVector &result_imag) const
 Compute vector (J+iwM)(y+iz))_{x}a given a and (J+iwM)(y+iz) vector.
virtual
NOX::Abstract::Group::ReturnType 
computeDwtCeDp (LOCA::Hopf::MinimallyAugmented::AbstractGroup &grp, const vector< int > &paramIDs, const NOX::Abstract::Vector &w1, const NOX::Abstract::Vector &w2, const NOX::Abstract::Vector &yVector, const NOX::Abstract::Vector &zVector, double omega, NOX::Abstract::MultiVector::DenseMatrix &result_real, NOX::Abstract::MultiVector::DenseMatrix &result_imag, bool isValid) const
 Compute derivative of (w1+iw2)^T(J+iwM)(y+iz) w.r.t. parameter p.
virtual
NOX::Abstract::Group::ReturnType 
computeDwtCeDx (LOCA::Hopf::MinimallyAugmented::AbstractGroup &grp, const NOX::Abstract::Vector &w1, const NOX::Abstract::Vector &w2, const NOX::Abstract::Vector &yVector, const NOX::Abstract::Vector &zVector, double omega, NOX::Abstract::Vector &result_real, NOX::Abstract::Vector &result_imag) const
 Compute vector (w1+iw2)^T(J+iwM)(y+iz))_{x}.

Protected Member Functions

virtual double perturbParam (LOCA::MultiContinuation::AbstractGroup &grp, double &param, int param_id) const
 Perturb parameter param_id in the group's parameter vector, and return perturbation size.
virtual double perturbXVec (LOCA::MultiContinuation::AbstractGroup &grp, const NOX::Abstract::Vector &xVector, const NOX::Abstract::Vector &aVector) const
 Perturb group's solution vector in direction of aVector, and return perturbation size.
virtual double epsScalar (double p) const
 Return perturbation for finite differencing around given double variable.
virtual double epsVector (const NOX::Abstract::Vector &xVector, const NOX::Abstract::Vector &aVector) const
 Return perturbation for directional derivatives around first vector in direction of second vector.

Protected Attributes

Teuchos::RCP< LOCA::GlobalDataglobalData
 Global data.
double perturb
 Relative perturbation size using in differencing calculations.


Detailed Description

LOCA's generic derivative computation class to compute various derivatives via finite differencing.

The DerivUtils class provides generic methods to compute the following derivatives:

\[ \frac{\partial F}{\partial p},\quad\frac{\partial Jn}{\partial p},\quad\frac{\partial Jn}{\partial x}a \]

where $J = \partial F/\partial x$ and $n$, $a$ are vectors. These quantities are calculate by finite differencing.

Definition at line 79 of file LOCA_DerivUtils.H.


Constructor & Destructor Documentation

LOCA::DerivUtils::DerivUtils ( const Teuchos::RCP< LOCA::GlobalData > &  global_data,
double  perturb = 1.0e-6 
)

Default constructor. perturb is the relative perturbation size used in differencing calculations.

Definition at line 55 of file LOCA_DerivUtils.C.

Referenced by clone().

LOCA::DerivUtils::DerivUtils ( const DerivUtils source  ) 

Copy constructor.

Definition at line 64 of file LOCA_DerivUtils.C.

LOCA::DerivUtils::~DerivUtils (  )  [virtual]

Destructor.

Definition at line 71 of file LOCA_DerivUtils.C.


Member Function Documentation

Teuchos::RCP< LOCA::DerivUtils > LOCA::DerivUtils::clone ( NOX::CopyType  type = NOX::DeepCopy  )  const [virtual]

Cloning function. Creates a copy of the DerivUtils object of the same type.

Reimplemented in LOCA::Epetra::ModelEvaluatorInterface.

Definition at line 77 of file LOCA_DerivUtils.C.

References DerivUtils().

NOX::Abstract::Group::ReturnType LOCA::DerivUtils::computeDfDp ( LOCA::MultiContinuation::AbstractGroup grp,
const vector< int > &  param_ids,
NOX::Abstract::MultiVector result,
bool  isValidF 
) const [virtual]

NOX::Abstract::Group::ReturnType LOCA::DerivUtils::computeDJnDp ( LOCA::MultiContinuation::AbstractGroup grp,
const vector< int > &  paramIDs,
const NOX::Abstract::Vector nullVector,
NOX::Abstract::MultiVector result,
bool  isValid 
) const [virtual]

NOX::Abstract::Group::ReturnType LOCA::DerivUtils::computeDJnDxa ( LOCA::MultiContinuation::AbstractGroup grp,
const NOX::Abstract::Vector nullVector,
const NOX::Abstract::MultiVector aVector,
NOX::Abstract::MultiVector result 
) const [virtual]

NOX::Abstract::Group::ReturnType LOCA::DerivUtils::computeDJnDxa ( LOCA::MultiContinuation::AbstractGroup grp,
const NOX::Abstract::Vector nullVector,
const NOX::Abstract::MultiVector aVector,
const NOX::Abstract::Vector JnVector,
NOX::Abstract::MultiVector result 
) const [virtual]

NOX::Abstract::Group::ReturnType LOCA::DerivUtils::computeDwtJnDp ( LOCA::MultiContinuation::AbstractGroup grp,
const vector< int > &  paramIDs,
const NOX::Abstract::Vector w,
const NOX::Abstract::Vector nullVector,
NOX::Abstract::MultiVector::DenseMatrix result,
bool  isValid 
) const [virtual]

NOX::Abstract::Group::ReturnType LOCA::DerivUtils::computeDwtJDp ( LOCA::MultiContinuation::AbstractGroup grp,
const vector< int > &  paramIDs,
const NOX::Abstract::Vector w,
NOX::Abstract::MultiVector result,
bool  isValid 
) const [virtual]

NOX::Abstract::Group::ReturnType LOCA::DerivUtils::computeDwtJnDx ( LOCA::MultiContinuation::AbstractGroup grp,
const NOX::Abstract::Vector w,
const NOX::Abstract::Vector nullVector,
NOX::Abstract::Vector result 
) const [virtual]

NOX::Abstract::Group::ReturnType LOCA::DerivUtils::computeDwtJnDx ( LOCA::MultiContinuation::AbstractGroup grp,
const NOX::Abstract::MultiVector w,
const NOX::Abstract::Vector nullVector,
NOX::Abstract::MultiVector result 
) const [virtual]

NOX::Abstract::Group::ReturnType LOCA::DerivUtils::computeDCeDp ( LOCA::Hopf::MooreSpence::AbstractGroup grp,
const vector< int > &  paramIDs,
const NOX::Abstract::Vector yVector,
const NOX::Abstract::Vector zVector,
double  w,
NOX::Abstract::MultiVector result_real,
NOX::Abstract::MultiVector result_imag,
bool  isValid 
) const [virtual]

NOX::Abstract::Group::ReturnType LOCA::DerivUtils::computeDCeDxa ( LOCA::Hopf::MooreSpence::AbstractGroup grp,
const NOX::Abstract::Vector yVector,
const NOX::Abstract::Vector zVector,
double  w,
const NOX::Abstract::MultiVector aVector,
NOX::Abstract::MultiVector result_real,
NOX::Abstract::MultiVector result_imag 
) const [virtual]

NOX::Abstract::Group::ReturnType LOCA::DerivUtils::computeDCeDxa ( LOCA::Hopf::MooreSpence::AbstractGroup grp,
const NOX::Abstract::Vector yVector,
const NOX::Abstract::Vector zVector,
double  w,
const NOX::Abstract::MultiVector aVector,
const NOX::Abstract::Vector Ce_real,
const NOX::Abstract::Vector Ce_imag,
NOX::Abstract::MultiVector result_real,
NOX::Abstract::MultiVector result_imag 
) const [virtual]

NOX::Abstract::Group::ReturnType LOCA::DerivUtils::computeDwtCeDp ( LOCA::Hopf::MinimallyAugmented::AbstractGroup grp,
const vector< int > &  paramIDs,
const NOX::Abstract::Vector w1,
const NOX::Abstract::Vector w2,
const NOX::Abstract::Vector yVector,
const NOX::Abstract::Vector zVector,
double  omega,
NOX::Abstract::MultiVector::DenseMatrix result_real,
NOX::Abstract::MultiVector::DenseMatrix result_imag,
bool  isValid 
) const [virtual]

NOX::Abstract::Group::ReturnType LOCA::DerivUtils::computeDwtCeDx ( LOCA::Hopf::MinimallyAugmented::AbstractGroup grp,
const NOX::Abstract::Vector w1,
const NOX::Abstract::Vector w2,
const NOX::Abstract::Vector yVector,
const NOX::Abstract::Vector zVector,
double  omega,
NOX::Abstract::Vector result_real,
NOX::Abstract::Vector result_imag 
) const [virtual]

double LOCA::DerivUtils::perturbParam ( LOCA::MultiContinuation::AbstractGroup grp,
double &  param,
int  param_id 
) const [protected, virtual]

Perturb parameter param_id in the group's parameter vector, and return perturbation size.

Definition at line 861 of file LOCA_DerivUtils.C.

References epsScalar(), LOCA::MultiContinuation::AbstractGroup::getParam(), and LOCA::MultiContinuation::AbstractGroup::setParam().

Referenced by computeDCeDp(), computeDfDp(), computeDJnDp(), computeDwtCeDp(), computeDwtJDp(), and computeDwtJnDp().

double LOCA::DerivUtils::perturbXVec ( LOCA::MultiContinuation::AbstractGroup grp,
const NOX::Abstract::Vector xVector,
const NOX::Abstract::Vector aVector 
) const [protected, virtual]

Perturb group's solution vector in direction of aVector, and return perturbation size.

Definition at line 879 of file LOCA_DerivUtils.C.

References NOX::Abstract::Vector::clone(), NOX::DeepCopy, epsVector(), and NOX::Abstract::Group::setX().

Referenced by computeDCeDxa(), computeDJnDxa(), computeDwtCeDx(), and computeDwtJnDx().

double LOCA::DerivUtils::epsScalar ( double  p  )  const [protected, virtual]

Return perturbation for finite differencing around given double variable.

Definition at line 898 of file LOCA_DerivUtils.C.

References perturb.

Referenced by perturbParam().

double LOCA::DerivUtils::epsVector ( const NOX::Abstract::Vector xVector,
const NOX::Abstract::Vector aVector 
) const [protected, virtual]

Return perturbation for directional derivatives around first vector in direction of second vector.

Definition at line 904 of file LOCA_DerivUtils.C.

References NOX::Abstract::Vector::norm(), perturb, and NOX::Abstract::Vector::TwoNorm.

Referenced by perturbXVec().


Member Data Documentation

double LOCA::DerivUtils::perturb [protected]

Relative perturbation size using in differencing calculations.

Definition at line 267 of file LOCA_DerivUtils.H.

Referenced by epsScalar(), and epsVector().


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

Generated on Thu Dec 17 11:02:44 2009 for Nonlinear Solver Project by  doxygen 1.5.9