Thyra  Version of the Day
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
Protected Member Functions | Related Functions | List of all members
Thyra::ModelEvaluatorDefaultBase< Scalar > Class Template Referenceabstract

Default base class for concrete model evaluators. More...

#include <Thyra_ModelEvaluatorDefaultBase.hpp>

Inheritance diagram for Thyra::ModelEvaluatorDefaultBase< Scalar >:
Inheritance graph
[legend]

Protected Member Functions

 ModelEvaluatorDefaultBase ()
 

Related Functions

(Note that these are not member functions.)

template<class Scalar >
RCP
< ModelEvaluatorBase::InArgs
< Scalar > > 
clone (const ModelEvaluatorBase::InArgs< Scalar > &inArgs)
 Create a clone of an InArgs object. More...
 
template<class Scalar >
ModelEvaluatorBase::Derivative
< Scalar > 
derivativeGradient (const RCP< MultiVectorBase< Scalar > > &grad)
 
template<class Scalar >
ModelEvaluatorBase::DerivativeMultiVector
< Scalar > 
create_DfDp_mv (const ModelEvaluator< Scalar > &model, int l, ModelEvaluatorBase::EDerivativeMultiVectorOrientation orientation)
 
template<class Scalar >
ModelEvaluatorBase::DerivativeMultiVector
< Scalar > 
create_DgDx_dot_mv (const ModelEvaluator< Scalar > &model, int j, ModelEvaluatorBase::EDerivativeMultiVectorOrientation orientation)
 
template<class Scalar >
ModelEvaluatorBase::DerivativeMultiVector
< Scalar > 
create_DgDx_mv (const ModelEvaluator< Scalar > &model, int j, ModelEvaluatorBase::EDerivativeMultiVectorOrientation orientation)
 
template<class Scalar >
ModelEvaluatorBase::DerivativeMultiVector
< Scalar > 
create_DgDp_mv (const ModelEvaluator< Scalar > &model, int j, int l, ModelEvaluatorBase::EDerivativeMultiVectorOrientation orientation)
 
template<class Scalar >
ModelEvaluatorBase::DerivativeMultiVector
< Scalar > 
get_dmv (const ModelEvaluatorBase::Derivative< Scalar > &deriv, const std::string &derivName)
 
template<class Scalar >
RCP< MultiVectorBase< Scalar > > get_mv (const ModelEvaluatorBase::Derivative< Scalar > &deriv, const std::string &derivName, ModelEvaluatorBase::EDerivativeMultiVectorOrientation orientation)
 
template<class Scalar >
void assertDerivSpaces (const std::string &modelEvalDescription, const ModelEvaluatorBase::Derivative< Scalar > &deriv, const std::string &deriv_name, const VectorSpaceBase< Scalar > &fnc_space, const std::string &fnc_space_name, const VectorSpaceBase< Scalar > &var_space, const std::string &var_space_name)
 Assert that that Thyra objects imbedded in a Derivative object matches its function and variable spaces. More...
 
template<class Scalar >
void assertInArgsOutArgsSetup (const std::string &modelEvalDescription, const ModelEvaluatorBase::InArgs< Scalar > &inArgs, const ModelEvaluatorBase::OutArgs< Scalar > &outArgs)
 Assert that an InArgs and OutArgs object are setup consistently. More...
 
template<class Scalar >
void assertInArgsEvalObjects (const ModelEvaluator< Scalar > &model, const ModelEvaluatorBase::InArgs< Scalar > &inArgs)
 Assert that the objects in an InArgs object match a given model. More...
 
template<class Scalar >
void assertOutArgsEvalObjects (const ModelEvaluator< Scalar > &model, const ModelEvaluatorBase::OutArgs< Scalar > &outArgs, const ModelEvaluatorBase::InArgs< Scalar > *inArgs=0)
 Assert that the objects in an OutArgs object match a given model. More...
 

Overridden from ModelEvaluator

int Np () const
 
int Ng () const
 
RCP< LinearOpBase< Scalar > > create_DfDp_op (int l) const
 
RCP< LinearOpBase< Scalar > > create_DgDx_dot_op (int j) const
 
RCP< LinearOpBase< Scalar > > create_DgDx_op (int j) const
 
RCP< LinearOpBase< Scalar > > create_DgDp_op (int j, int l) const
 
RCP< LinearOpWithSolveBase
< Scalar > > 
create_W () const
 
ModelEvaluatorBase::OutArgs
< Scalar > 
createOutArgs () const
 
void evalModel (const ModelEvaluatorBase::InArgs< Scalar > &inArgs, const ModelEvaluatorBase::OutArgs< Scalar > &outArgs) const
 
virtual RCP< const
VectorSpaceBase< Scalar > > 
get_f_multiplier_space () const
 
virtual RCP< const
VectorSpaceBase< Scalar > > 
get_g_multiplier_space (int j) const
 
virtual RCP< LinearOpBase
< Scalar > > 
create_hess_f_xx () const
 
virtual RCP< LinearOpBase
< Scalar > > 
create_hess_f_xp (int l) const
 
virtual RCP< LinearOpBase
< Scalar > > 
create_hess_f_pp (int l1, int l2) const
 
virtual RCP< LinearOpBase
< Scalar > > 
create_hess_g_xx (int j) const
 
virtual RCP< LinearOpBase
< Scalar > > 
create_hess_g_xp (int j, int l) const
 
virtual RCP< LinearOpBase
< Scalar > > 
create_hess_g_pp (int j, int l1, int l2) const
 

Setup functions called by subclasses

void initializeDefaultBase ()
 Function called by subclasses to fully initialize this object on any important change. More...
 
void resetDefaultBase ()
 Sets the the DefaultBase to an uninitialized state, forcing lazy initialization when needed. More...
 

Additional Inherited Members

- Public Types inherited from Thyra::ModelEvaluator< Scalar >
typedef Teuchos::ScalarTraits
< Scalar >::magnitudeType 
ScalarMag
 
- Public Types inherited from Thyra::ModelEvaluatorBase
enum  EInArgsMembers {
  IN_ARG_x_dot_dot, IN_ARG_x_dot, IN_ARG_x, IN_ARG_x_dot_poly,
  IN_ARG_x_poly, IN_ARG_x_dot_mp, IN_ARG_x_mp, IN_ARG_t,
  IN_ARG_alpha, IN_ARG_beta, IN_ARG_W_x_dot_dot_coeff, IN_ARG_step_size,
  IN_ARG_stage_number
}
 
enum  EInArgs_p_mp { IN_ARG_p_mp }
 
enum  EEvalType { , EVAL_TYPE_APPROX_DERIV, EVAL_TYPE_VERY_APPROX_DERIV }
 The type of an evaluation. More...
 
enum  EDerivativeMultiVectorOrientation { DERIV_MV_JACOBIAN_FORM, DERIV_MV_GRADIENT_FORM, DERIV_MV_BY_COL = DERIV_MV_JACOBIAN_FORM, DERIV_TRANS_MV_BY_ROW = DERIV_MV_GRADIENT_FORM }
 
enum  EDerivativeLinearOp { DERIV_LINEAR_OP }
 
enum  EDerivativeLinearity { DERIV_LINEARITY_UNKNOWN, DERIV_LINEARITY_CONST, DERIV_LINEARITY_NONCONST }
 
enum  ERankStatus { DERIV_RANK_UNKNOWN, DERIV_RANK_FULL, DERIV_RANK_DEFICIENT }
 
enum  EOutArgsMembers {
  OUT_ARG_f, OUT_ARG_W, OUT_ARG_f_mp, OUT_ARG_W_mp,
  OUT_ARG_W_op, OUT_ARG_W_prec, OUT_ARG_f_poly
}
 
enum  EOutArgsDfDp { OUT_ARG_DfDp }
 
enum  EOutArgsDgDx_dot { OUT_ARG_DgDx_dot }
 
enum  EOutArgsDgDx { OUT_ARG_DgDx }
 
enum  EOutArgsDgDp { OUT_ARG_DgDp }
 
enum  EOutArgs_hess_vec_prod_f_xx { OUT_ARG_hess_vec_prod_f_xx }
 
enum  EOutArgs_hess_vec_prod_f_xp { OUT_ARG_hess_vec_prod_f_xp }
 
enum  EOutArgs_hess_vec_prod_f_px { OUT_ARG_hess_vec_prod_f_px }
 
enum  EOutArgs_hess_vec_prod_f_pp { OUT_ARG_hess_vec_prod_f_pp }
 
enum  EOutArgs_hess_vec_prod_g_xx { OUT_ARG_hess_vec_prod_g_xx }
 
enum  EOutArgs_hess_vec_prod_g_xp { OUT_ARG_hess_vec_prod_g_xp }
 
enum  EOutArgs_hess_vec_prod_g_px { OUT_ARG_hess_vec_prod_g_px }
 
enum  EOutArgs_hess_vec_prod_g_pp { OUT_ARG_hess_vec_prod_g_pp }
 
enum  EOutArgs_hess_f_xx { OUT_ARG_hess_f_xx }
 
enum  EOutArgs_hess_f_xp { OUT_ARG_hess_f_xp }
 
enum  EOutArgs_hess_f_pp { OUT_ARG_hess_f_pp }
 
enum  EOutArgs_hess_g_xx { OUT_ARG_hess_g_xx }
 
enum  EOutArgs_hess_g_xp { OUT_ARG_hess_g_xp }
 
enum  EOutArgs_hess_g_pp { OUT_ARG_hess_g_pp }
 
enum  EOutArgs_H_xx { OUT_ARG_H_xx }
 
enum  EOutArgs_H_xp { OUT_ARG_H_xp }
 
enum  EOutArgs_H_pp { OUT_ARG_H_pp }
 
enum  EOutArgsDfDp_mp { OUT_ARG_DfDp_mp }
 
enum  EOutArgs_g_mp { OUT_ARG_g_mp }
 
enum  EOutArgsDgDx_dot_mp { OUT_ARG_DgDx_dot_mp }
 
enum  EOutArgsDgDx_mp { OUT_ARG_DgDx_mp }
 
enum  EOutArgsDgDp_mp { OUT_ARG_DgDp_mp }
 
- Public Member Functions inherited from Thyra::ModelEvaluator< Scalar >
virtual RCP< const
VectorSpaceBase< Scalar > > 
get_x_space () const =0
 Return the vector space for the state variables x <: RE^n_x. More...
 
virtual RCP< const
VectorSpaceBase< Scalar > > 
get_f_space () const =0
 Return the vector space for the state function f(...) <: RE^n_x. More...
 
virtual RCP< const
VectorSpaceBase< Scalar > > 
get_p_space (int l) const =0
 Return the vector space for the auxiliary parameters p(l) <: RE^n_p_l. More...
 
virtual RCP< const
Teuchos::Array< std::string > > 
get_p_names (int l) const =0
 Get the names of the parameters associated with parameter subvector l if available. More...
 
virtual RCP< const
VectorSpaceBase< Scalar > > 
get_g_space (int j) const =0
 Return the vector space for the auxiliary response functions g(j) <: RE^n_g_j. More...
 
virtual Teuchos::ArrayView
< const std::string > 
get_g_names (int j) const =0
 Get the names of the response functions associated with subvector j if available. More...
 
virtual
ModelEvaluatorBase::InArgs
< Scalar > 
getNominalValues () const =0
 Return the set of nominal values or initial guesses for the supported the input arguments. More...
 
virtual
ModelEvaluatorBase::InArgs
< Scalar > 
getLowerBounds () const =0
 Return the set of lower bounds for the input arguments. More...
 
virtual
ModelEvaluatorBase::InArgs
< Scalar > 
getUpperBounds () const =0
 Return the set of upper bounds for the input arguments. More...
 
virtual RCP< LinearOpBase
< Scalar > > 
create_W_op () const =0
 If supported, create a LinearOpBase object for W to be evaluated. More...
 
virtual RCP
< PreconditionerBase< Scalar > > 
create_W_prec () const =0
 If supported, create a PreconditionerBase object for W_prec to be evaluated. More...
 
virtual RCP< const
LinearOpWithSolveFactoryBase
< Scalar > > 
get_W_factory () const =0
 If supported, return a LinearOpWithSolveFactoryBase object that can be used to initialize a LOWSB object for W given a LOB object for W_op. More...
 
virtual
ModelEvaluatorBase::InArgs
< Scalar > 
createInArgs () const =0
 Create an empty input arguments object that can be set up and passed to evalModel(). More...
 
virtual void reportFinalPoint (const ModelEvaluatorBase::InArgs< Scalar > &finalPoint, const bool wasSolved)=0
 Report the final point and whether the problem was considered solved or not. More...
 
- Public Member Functions inherited from Thyra::ModelEvaluatorBase
 ModelEvaluatorBase ()
 constructor More...
 
- Static Public Attributes inherited from Thyra::ModelEvaluatorBase
static const int NUM_E_IN_ARGS_MEMBERS =13
 
static const int NUM_E_OUT_ARGS_MEMBERS =7
 

Detailed Description

template<class Scalar>
class Thyra::ModelEvaluatorDefaultBase< Scalar >

Default base class for concrete model evaluators.

The primary purposes of this base class are to:

ToDo: Finish Documentation!

Definition at line 188 of file Thyra_ModelEvaluatorDefaultBase.hpp.

Constructor & Destructor Documentation

template<class Scalar >
Thyra::ModelEvaluatorDefaultBase< Scalar >::ModelEvaluatorDefaultBase ( )
protected

Definition at line 1029 of file Thyra_ModelEvaluatorDefaultBase.hpp.

Member Function Documentation

template<class Scalar >
int Thyra::ModelEvaluatorDefaultBase< Scalar >::Np ( ) const
virtual
template<class Scalar >
int Thyra::ModelEvaluatorDefaultBase< Scalar >::Ng ( ) const
virtual
template<class Scalar >
RCP< LinearOpBase< Scalar > > Thyra::ModelEvaluatorDefaultBase< Scalar >::create_DfDp_op ( int  l) const
virtual
template<class Scalar >
RCP< LinearOpBase< Scalar > > Thyra::ModelEvaluatorDefaultBase< Scalar >::create_DgDx_dot_op ( int  j) const
virtual
template<class Scalar >
RCP< LinearOpBase< Scalar > > Thyra::ModelEvaluatorDefaultBase< Scalar >::create_DgDx_op ( int  j) const
virtual
template<class Scalar >
RCP< LinearOpBase< Scalar > > Thyra::ModelEvaluatorDefaultBase< Scalar >::create_DgDp_op ( int  j,
int  l 
) const
virtual
template<class Scalar >
RCP< LinearOpWithSolveBase< Scalar > > Thyra::ModelEvaluatorDefaultBase< Scalar >::create_W ( ) const
virtual
template<class Scalar >
ModelEvaluatorBase::OutArgs< Scalar > Thyra::ModelEvaluatorDefaultBase< Scalar >::createOutArgs ( ) const
virtual
template<class Scalar>
void Thyra::ModelEvaluatorDefaultBase< Scalar >::evalModel ( const ModelEvaluatorBase::InArgs< Scalar > &  inArgs,
const ModelEvaluatorBase::OutArgs< Scalar > &  outArgs 
) const
virtual
template<class Scalar >
RCP< const VectorSpaceBase< Scalar > > Thyra::ModelEvaluatorDefaultBase< Scalar >::get_f_multiplier_space ( ) const
virtual
template<class Scalar >
RCP< const VectorSpaceBase< Scalar > > Thyra::ModelEvaluatorDefaultBase< Scalar >::get_g_multiplier_space ( int  j) const
virtual
template<class Scalar >
RCP< LinearOpBase< Scalar > > Thyra::ModelEvaluatorDefaultBase< Scalar >::create_hess_f_xx ( ) const
virtual
template<class Scalar >
RCP< LinearOpBase< Scalar > > Thyra::ModelEvaluatorDefaultBase< Scalar >::create_hess_f_xp ( int  l) const
virtual
template<class Scalar >
RCP< LinearOpBase< Scalar > > Thyra::ModelEvaluatorDefaultBase< Scalar >::create_hess_f_pp ( int  l1,
int  l2 
) const
virtual
template<class Scalar >
RCP< LinearOpBase< Scalar > > Thyra::ModelEvaluatorDefaultBase< Scalar >::create_hess_g_xx ( int  j) const
virtual
template<class Scalar >
RCP< LinearOpBase< Scalar > > Thyra::ModelEvaluatorDefaultBase< Scalar >::create_hess_g_xp ( int  j,
int  l 
) const
virtual
template<class Scalar >
RCP< LinearOpBase< Scalar > > Thyra::ModelEvaluatorDefaultBase< Scalar >::create_hess_g_pp ( int  j,
int  l1,
int  l2 
) const
virtual
template<class Scalar >
void Thyra::ModelEvaluatorDefaultBase< Scalar >::initializeDefaultBase ( )
protected

Function called by subclasses to fully initialize this object on any important change.

Note: This class will automatically call this function the first time to set things up and does not need to be called by the client the first time. However, if the state of the object changes, then this function should be called to reset the state of this object's implemention!

Definition at line 741 of file Thyra_ModelEvaluatorDefaultBase.hpp.

template<class Scalar >
void Thyra::ModelEvaluatorDefaultBase< Scalar >::resetDefaultBase ( )
protected

Sets the the DefaultBase to an uninitialized state, forcing lazy initialization when needed.

This is used when a derived class changes state and requires lazy initialization.

Definition at line 885 of file Thyra_ModelEvaluatorDefaultBase.hpp.

Friends And Related Function Documentation

template<class Scalar >
RCP< ModelEvaluatorBase::InArgs< Scalar > > clone ( const ModelEvaluatorBase::InArgs< Scalar > &  inArgs)
related

Create a clone of an InArgs object.

Warning! This function only creates a shallow copy of the underlying input objects. Therefore, be careful if you try to modify any of these.

template<class Scalar >
ModelEvaluatorBase::Derivative< Scalar > derivativeGradient ( const RCP< MultiVectorBase< Scalar > > &  grad)
related
template<class Scalar >
ModelEvaluatorBase::DerivativeMultiVector< Scalar > create_DfDp_mv ( const ModelEvaluator< Scalar > &  model,
int  l,
ModelEvaluatorBase::EDerivativeMultiVectorOrientation  orientation 
)
related
template<class Scalar >
ModelEvaluatorBase::DerivativeMultiVector< Scalar > create_DgDx_dot_mv ( const ModelEvaluator< Scalar > &  model,
int  j,
ModelEvaluatorBase::EDerivativeMultiVectorOrientation  orientation 
)
related
template<class Scalar >
ModelEvaluatorBase::DerivativeMultiVector< Scalar > create_DgDx_mv ( const ModelEvaluator< Scalar > &  model,
int  j,
ModelEvaluatorBase::EDerivativeMultiVectorOrientation  orientation 
)
related
template<class Scalar >
ModelEvaluatorBase::DerivativeMultiVector< Scalar > create_DgDp_mv ( const ModelEvaluator< Scalar > &  model,
int  j,
int  l,
ModelEvaluatorBase::EDerivativeMultiVectorOrientation  orientation 
)
related
template<class Scalar >
ModelEvaluatorBase::DerivativeMultiVector< Scalar > get_dmv ( const ModelEvaluatorBase::Derivative< Scalar > &  deriv,
const std::string &  derivName 
)
related
template<class Scalar >
RCP< MultiVectorBase< Scalar > > get_mv ( const ModelEvaluatorBase::Derivative< Scalar > &  deriv,
const std::string &  derivName,
ModelEvaluatorBase::EDerivativeMultiVectorOrientation  orientation 
)
related
template<class Scalar >
void assertDerivSpaces ( const std::string &  modelEvalDescription,
const ModelEvaluatorBase::Derivative< Scalar > &  deriv,
const std::string &  deriv_name,
const VectorSpaceBase< Scalar > &  fnc_space,
const std::string &  fnc_space_name,
const VectorSpaceBase< Scalar > &  var_space,
const std::string &  var_space_name 
)
related

Assert that that Thyra objects imbedded in a Derivative object matches its function and variable spaces.

template<class Scalar >
void assertInArgsOutArgsSetup ( const std::string &  modelEvalDescription,
const ModelEvaluatorBase::InArgs< Scalar > &  inArgs,
const ModelEvaluatorBase::OutArgs< Scalar > &  outArgs 
)
related

Assert that an InArgs and OutArgs object are setup consistently.

template<class Scalar >
void assertInArgsEvalObjects ( const ModelEvaluator< Scalar > &  model,
const ModelEvaluatorBase::InArgs< Scalar > &  inArgs 
)
related

Assert that the objects in an InArgs object match a given model.

template<class Scalar >
void assertOutArgsEvalObjects ( const ModelEvaluator< Scalar > &  model,
const ModelEvaluatorBase::OutArgs< Scalar > &  outArgs,
const ModelEvaluatorBase::InArgs< Scalar > *  inArgs = 0 
)
related

Assert that the objects in an OutArgs object match a given model.


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