Thyra  Version of the Day
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
List of all members
Thyra::ModelEvaluatorDelegatorBase< Scalar > Class Template Reference

This is a base class that delegetes almost all function to a wrapped model evaluator object. More...

#include <Thyra_ModelEvaluatorDelegatorBase.hpp>

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

Constructors/initializers

 ModelEvaluatorDelegatorBase ()
 Constructs to uninitialized. More...
 
 ModelEvaluatorDelegatorBase (const RCP< ModelEvaluator< Scalar > > &model)
 Calls initialize(). More...
 
 ModelEvaluatorDelegatorBase (const RCP< const ModelEvaluator< Scalar > > &model)
 Calls initialize(). More...
 
void initialize (const RCP< ModelEvaluator< Scalar > > &model)
 Initialize given a non-const model evaluator. More...
 
void initialize (const RCP< const ModelEvaluator< Scalar > > &model)
 Initialize given a const model evaluator. More...
 
void uninitialize ()
 Uninitialize. More...
 

Virtual functions that can overridden

virtual bool isUnderlyingModelConst () const
 
virtual RCP< ModelEvaluator
< Scalar > > 
getNonconstUnderlyingModel ()
 
virtual RCP< const
ModelEvaluator< Scalar > > 
getUnderlyingModel () const
 

Public functions overridden from ModelEvaulator.

RCP< const VectorSpaceBase
< Scalar > > 
get_x_space () const
 
RCP< const VectorSpaceBase
< Scalar > > 
get_f_space () const
 
RCP< const VectorSpaceBase
< Scalar > > 
get_f_multiplier_space () const
 
RCP< const VectorSpaceBase
< Scalar > > 
get_p_space (int l) const
 
RCP< const Teuchos::Array
< std::string > > 
get_p_names (int l) const
 
RCP< const VectorSpaceBase
< Scalar > > 
get_g_space (int j) const
 
RCP< const VectorSpaceBase
< Scalar > > 
get_g_multiplier_space (int j) const
 
Teuchos::ArrayView< const
std::string > 
get_g_names (int j) const
 
ModelEvaluatorBase::InArgs
< Scalar > 
getNominalValues () const
 
ModelEvaluatorBase::InArgs
< Scalar > 
getLowerBounds () const
 
ModelEvaluatorBase::InArgs
< Scalar > 
getUpperBounds () const
 
RCP< LinearOpWithSolveBase
< Scalar > > 
create_W () const
 
RCP< LinearOpBase< Scalar > > create_W_op () const
 
RCP< PreconditionerBase< Scalar > > create_W_prec () const
 
RCP< const
LinearOpWithSolveFactoryBase
< Scalar > > 
get_W_factory () const
 
ModelEvaluatorBase::InArgs
< Scalar > 
createInArgs () const
 
void reportFinalPoint (const ModelEvaluatorBase::InArgs< Scalar > &finalPoint, const bool wasSolved)
 

Producted utility functions to be called by subclasses

void setLocalVerbosityLevelValidatedParameter (ParameterList *paramList) const
 Set a valid parameter for reading the local verbosity level. More...
 
Teuchos::EVerbosityLevel readLocalVerbosityLevelValidatedParameter (ParameterList &paramList) const
 Read the local verbosity level parameter. 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  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::ModelEvaluatorDefaultBase< Scalar >
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
 
ModelEvaluatorBase::OutArgs
< Scalar > 
createOutArgs () const
 
void evalModel (const ModelEvaluatorBase::InArgs< Scalar > &inArgs, const ModelEvaluatorBase::OutArgs< Scalar > &outArgs) const
 
- Public Member Functions inherited from Thyra::ModelEvaluator< Scalar >
- 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
 
- Protected Member Functions inherited from Thyra::ModelEvaluatorDefaultBase< Scalar >
 ModelEvaluatorDefaultBase ()
 
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...
 

Detailed Description

template<class Scalar>
class Thyra::ModelEvaluatorDelegatorBase< Scalar >

This is a base class that delegetes almost all function to a wrapped model evaluator object.

This class makes it easy to write many different types of decorator subclasses by only requiring those subclasses to override just the behavior that they need to overide and leave the rest alone. Note that whenever the definition of ModelEvaluator changes, this class will have to be updated. However, the decorator subclasses that derive from this base class might be able to remain unchanged. Note that changes in only the ModelEvaluatorBase::InArgs and ModelEvaluatorBase::OutArgs classes should not require any changes here.

The only functions that a client must override in order to create a concrete subcalss is the evalModel() function. All other functions have implementations here that simply delegate to the model evaluator object returned from getUnderlyingModel(). However, most decorator classes will need to override at least one other function.

This class provides a default implemntation of the machinary to store and access the wrapped model evaluator object. A subclass can choose to ignore this and override the functions isUnderlyingModelConst(), getConstUnderlyingModel(), and getUnderlyingModel().

Definition at line 50 of file Thyra_ModelEvaluatorDelegatorBase.hpp.

Constructor & Destructor Documentation

template<class Scalar >
Thyra::ModelEvaluatorDelegatorBase< Scalar >::ModelEvaluatorDelegatorBase ( )

Constructs to uninitialized.

Definition at line 297 of file Thyra_ModelEvaluatorDelegatorBase.hpp.

template<class Scalar >
Thyra::ModelEvaluatorDelegatorBase< Scalar >::ModelEvaluatorDelegatorBase ( const RCP< ModelEvaluator< Scalar > > &  model)

Calls initialize().

Definition at line 302 of file Thyra_ModelEvaluatorDelegatorBase.hpp.

template<class Scalar >
Thyra::ModelEvaluatorDelegatorBase< Scalar >::ModelEvaluatorDelegatorBase ( const RCP< const ModelEvaluator< Scalar > > &  model)

Calls initialize().

Definition at line 311 of file Thyra_ModelEvaluatorDelegatorBase.hpp.

Member Function Documentation

template<class Scalar >
void Thyra::ModelEvaluatorDelegatorBase< Scalar >::initialize ( const RCP< ModelEvaluator< Scalar > > &  model)

Initialize given a non-const model evaluator.

Definition at line 320 of file Thyra_ModelEvaluatorDelegatorBase.hpp.

template<class Scalar >
void Thyra::ModelEvaluatorDelegatorBase< Scalar >::initialize ( const RCP< const ModelEvaluator< Scalar > > &  model)

Initialize given a const model evaluator.

Definition at line 329 of file Thyra_ModelEvaluatorDelegatorBase.hpp.

template<class Scalar >
void Thyra::ModelEvaluatorDelegatorBase< Scalar >::uninitialize ( )

Uninitialize.

Definition at line 338 of file Thyra_ModelEvaluatorDelegatorBase.hpp.

template<class Scalar >
bool Thyra::ModelEvaluatorDelegatorBase< Scalar >::isUnderlyingModelConst ( ) const
virtual

Definition at line 348 of file Thyra_ModelEvaluatorDelegatorBase.hpp.

template<class Scalar >
RCP< ModelEvaluator< Scalar > > Thyra::ModelEvaluatorDelegatorBase< Scalar >::getNonconstUnderlyingModel ( )
virtual

Definition at line 356 of file Thyra_ModelEvaluatorDelegatorBase.hpp.

template<class Scalar >
RCP< const ModelEvaluator< Scalar > > Thyra::ModelEvaluatorDelegatorBase< Scalar >::getUnderlyingModel ( ) const
virtual

Definition at line 364 of file Thyra_ModelEvaluatorDelegatorBase.hpp.

template<class Scalar >
RCP< const VectorSpaceBase< Scalar > > Thyra::ModelEvaluatorDelegatorBase< Scalar >::get_x_space ( ) const
virtual
template<class Scalar >
RCP< const VectorSpaceBase< Scalar > > Thyra::ModelEvaluatorDelegatorBase< Scalar >::get_f_space ( ) const
virtual
template<class Scalar >
RCP< const VectorSpaceBase< Scalar > > Thyra::ModelEvaluatorDelegatorBase< Scalar >::get_f_multiplier_space ( ) const
virtual
template<class Scalar >
RCP< const VectorSpaceBase< Scalar > > Thyra::ModelEvaluatorDelegatorBase< Scalar >::get_p_space ( int  l) const
virtual
template<class Scalar >
RCP< const Teuchos::Array< std::string > > Thyra::ModelEvaluatorDelegatorBase< Scalar >::get_p_names ( int  l) const
virtual
template<class Scalar >
RCP< const VectorSpaceBase< Scalar > > Thyra::ModelEvaluatorDelegatorBase< Scalar >::get_g_space ( int  j) const
virtual
template<class Scalar >
RCP< const VectorSpaceBase< Scalar > > Thyra::ModelEvaluatorDelegatorBase< Scalar >::get_g_multiplier_space ( int  j) const
virtual
template<class Scalar >
Teuchos::ArrayView< const std::string > Thyra::ModelEvaluatorDelegatorBase< Scalar >::get_g_names ( int  j) const
virtual
template<class Scalar >
ModelEvaluatorBase::InArgs< Scalar > Thyra::ModelEvaluatorDelegatorBase< Scalar >::getNominalValues ( ) const
virtual
template<class Scalar >
ModelEvaluatorBase::InArgs< Scalar > Thyra::ModelEvaluatorDelegatorBase< Scalar >::getLowerBounds ( ) const
virtual
template<class Scalar >
ModelEvaluatorBase::InArgs< Scalar > Thyra::ModelEvaluatorDelegatorBase< Scalar >::getUpperBounds ( ) const
virtual
template<class Scalar >
RCP< LinearOpWithSolveBase< Scalar > > Thyra::ModelEvaluatorDelegatorBase< Scalar >::create_W ( ) const
virtual
template<class Scalar >
RCP< LinearOpBase< Scalar > > Thyra::ModelEvaluatorDelegatorBase< Scalar >::create_W_op ( ) const
virtual
template<class Scalar >
RCP< PreconditionerBase< Scalar > > Thyra::ModelEvaluatorDelegatorBase< Scalar >::create_W_prec ( ) const
virtual
template<class Scalar >
RCP< const LinearOpWithSolveFactoryBase< Scalar > > Thyra::ModelEvaluatorDelegatorBase< Scalar >::get_W_factory ( ) const
virtual
template<class Scalar >
ModelEvaluatorBase::InArgs< Scalar > Thyra::ModelEvaluatorDelegatorBase< Scalar >::createInArgs ( ) const
virtual
template<class Scalar >
void Thyra::ModelEvaluatorDelegatorBase< Scalar >::reportFinalPoint ( const ModelEvaluatorBase::InArgs< Scalar > &  finalPoint,
const bool  wasSolved 
)
virtual
template<class Scalar >
void Thyra::ModelEvaluatorDelegatorBase< Scalar >::setLocalVerbosityLevelValidatedParameter ( ParameterList paramList) const
protected

Set a valid parameter for reading the local verbosity level.

Definition at line 530 of file Thyra_ModelEvaluatorDelegatorBase.hpp.

template<class Scalar >
Teuchos::EVerbosityLevel Thyra::ModelEvaluatorDelegatorBase< Scalar >::readLocalVerbosityLevelValidatedParameter ( ParameterList paramList) const
protected

Read the local verbosity level parameter.

Definition at line 553 of file Thyra_ModelEvaluatorDelegatorBase.hpp.


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