NOX
Development
|
Wrapper for an EpetraExt::ModelEvaluator. More...
#include <LOCA_Epetra_ModelEvaluatorInterface.H>
Public Member Functions | |
ModelEvaluatorInterface (const Teuchos::RCP< LOCA::GlobalData > &global_data, const Teuchos::RCP< EpetraExt::ModelEvaluator > &m, double perturb=1.0e-6) | |
Constructor. | |
virtual | ~ModelEvaluatorInterface () |
Destructor. | |
const ParameterVector & | getLOCAParameterVector () const |
Return LOCA parameter vector. | |
virtual bool | computeF (const Epetra_Vector &x, Epetra_Vector &F, const FillType fillFlag) |
Compute the function, F, given the specified input vector x. Returns true if computation was successful. | |
virtual bool | computeJacobian (const Epetra_Vector &x, Epetra_Operator &Jac) |
virtual bool | computePreconditioner (const Epetra_Vector &x, Epetra_Operator &M, Teuchos::ParameterList *precParams=0) |
virtual void | setParameters (const ParameterVector &p) |
Set parameters in the user's application. More... | |
virtual bool | computeShiftedMatrix (double alpha, double beta, const Epetra_Vector &x, Epetra_Operator &A) |
Call user routine for computing the shifted matrix where is the Jacobian matrix and is the mass matrix. | |
virtual void | setXdot (const Epetra_Vector &xdot, const double time) |
Routine used in XYZT to set x_dot and time in the interface. More... | |
virtual void | printSolution (const Epetra_Vector &x_, double conParam) |
Call user's own print routine for vector-parameter pair. | |
void | setObserver (const Teuchos::RCP< NOX::Epetra::Observer > &observer_) |
ModelEvaluatorInterface (const ModelEvaluatorInterface &) | |
Copy constructor. | |
virtual Teuchos::RCP< DerivUtils > | clone (NOX::CopyType type=NOX::DeepCopy) const |
Clone. | |
virtual NOX::Abstract::Group::ReturnType | computeDfDp (LOCA::MultiContinuation::AbstractGroup &grp, const std::vector< int > ¶m_ids, NOX::Abstract::MultiVector &result, bool isValidF) const |
Compute derivative of f with respect to parameter, identified by param_id. | |
void | postProcessContinuationStep (LOCA::Abstract::Iterator::StepStatus stepStatus, LOCA::Epetra::Group &group) |
Perform any postprocessing after a continuation step finishes. More... | |
Public Member Functions inherited from LOCA::Epetra::Interface::TimeDependent | |
TimeDependent () | |
Constructor. | |
virtual | ~TimeDependent () |
Destructor. | |
Public Member Functions inherited from LOCA::Epetra::Interface::Required | |
Required () | |
Constructor. | |
virtual | ~Required () |
Destructor. | |
virtual void | dataForPrintSolution (const int, const int, const int) |
Provides data to application for output files. More... | |
virtual void | setMultiPointParameter (const int) |
Set multipoint parameter in the user's application. More... | |
virtual void | preProcessContinuationStep (LOCA::Abstract::Iterator::StepStatus, LOCA::Epetra::Group &) |
Perform any preprocessing before a continuation step starts. More... | |
virtual void | projectToDraw (const NOX::Epetra::Vector &x, double *px) const |
Projects solution to a few scalars for multiparameter continuation. More... | |
virtual int | projectToDrawDimension () const |
Returns the dimension of the projection to draw array. | |
Public Member Functions inherited from NOX::Epetra::Interface::Required | |
Required () | |
Constructor. | |
Public Member Functions inherited from 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. | |
DerivUtils (const DerivUtils &) | |
Copy constructor. | |
virtual | ~DerivUtils () |
Destructor. | |
virtual NOX::Abstract::Group::ReturnType | computeDJnDp (LOCA::MultiContinuation::AbstractGroup &, const std::vector< int > ¶mIDs, 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 std::vector< int > ¶mIDs, 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 std::vector< int > ¶mIDs, 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 std::vector< int > ¶mIDs, 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 std::vector< int > ¶mIDs, 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 Attributes | |
Epetra_Vector | param_vec |
Parameter vector as an Epetra_Vector. | |
LOCA::ParameterVector | loca_param_vec |
LOCA parameter vector. | |
Epetra_Vector * | x_dot |
Epetra vector storing x_dot, filled with zeros. | |
double | alpha_prev |
Stored values of alpha and beta parameters from previous call. | |
double | beta_prev |
Teuchos::RCP < NOX::Epetra::Observer > | observer |
Observer for printSolution() . | |
Protected Attributes inherited from LOCA::DerivUtils | |
Teuchos::RCP< LOCA::GlobalData > | globalData |
Global data. | |
double | perturb |
Relative perturbation size using in differencing calculations. | |
Additional Inherited Members | |
Public Types inherited from NOX::Epetra::Interface::Required | |
enum | FillType { Residual, Jac, Prec, FD_Res, MF_Res, MF_Jac, User } |
Type of fill that a computeF() method is used for. More... | |
Protected Member Functions inherited from LOCA::DerivUtils | |
virtual double | perturbParam (LOCA::MultiContinuation::AbstractGroup &grp, double ¶m, 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. | |
Wrapper for an EpetraExt::ModelEvaluator.
If an application interfaces their code to solvers using the EpetraExt::ModelEvaluator, this class provides a wrapper so that the model evaluator can be used instead of having the user write concrete versions of the LOCA::Epetra::Interface objects.
|
virtual |
Perform any postprocessing after a continuation step finishes.
The stepStatus
argument indicates whether the step was successful.
Reimplemented from LOCA::Epetra::Interface::Required.
References NOX::Epetra::Vector::getEpetraVector(), NOX::Epetra::Group::getX(), Teuchos::rcp(), and LOCA::Abstract::Iterator::Successful.
|
virtual |
Set parameters in the user's application.
Should be called prior to calling one of the compute functions.
Implements LOCA::Epetra::Interface::Required.
References LOCA::ParameterVector::length().
|
virtual |
Routine used in XYZT to set x_dot and time in the interface.
The computeF() routine for XYZT problems needs to be a function of x_dot, but th NOX/LOCA computeF() does not take x_dot as an argument. This is used to set x_dot in the application interface so the subsequent call to computeF has the correct x_dot value. The timeStep argument is sent so the use can set the global time, for cases when computeF, computeJacobian, computeMassMatrix fills are functions of time (nonautonomous systems).
Reimplemented from LOCA::Epetra::Interface::TimeDependent.