Thyra Package Browser (Single Doxygen Collection) Version of the Day
Protected Member Functions | Private Types | Private Member Functions | Static Private Member Functions | Private Attributes | Related Functions
Thyra::ModelEvaluatorDefaultBase< Scalar > Class Template Reference

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

#include <Thyra_ModelEvaluatorDefaultBase.hpp>

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

List of all members.

Protected Member Functions

 ModelEvaluatorDefaultBase ()
 

Private Types

typedef
ModelEvaluatorDefaultBaseTypes::DefaultDerivLinearOpSupport 
DefaultDerivLinearOpSupport
typedef
ModelEvaluatorDefaultBaseTypes::DefaultDerivMvAdjointSupport 
DefaultDerivMvAdjointSupport
typedef
ModelEvaluatorDefaultBaseTypes::MultiVectorAdjointPair
< Scalar > 
MultiVectorAdjointPair

Private Member Functions

void lazyInitializeDefaultBase () const
void assert_l (const int l) const
void assert_j (const int j) const

Static Private Member Functions

static DefaultDerivLinearOpSupport determineDefaultDerivLinearOpSupport (const ModelEvaluatorBase::DerivativeSupport &derivSupportImpl)
static RCP< LinearOpBase
< Scalar > > 
createDefaultLinearOp (const DefaultDerivLinearOpSupport &defaultLinearOpSupport, const RCP< const VectorSpaceBase< Scalar > > &fnc_space, const RCP< const VectorSpaceBase< Scalar > > &var_space)
static
ModelEvaluatorBase::DerivativeSupport 
updateDefaultLinearOpSupport (const ModelEvaluatorBase::DerivativeSupport &derivSupportImpl, const DefaultDerivLinearOpSupport &defaultLinearOpSupport)
static
ModelEvaluatorBase::Derivative
< Scalar > 
getOutArgImplForDefaultLinearOpSupport (const ModelEvaluatorBase::Derivative< Scalar > &deriv, const DefaultDerivLinearOpSupport &defaultLinearOpSupport)
static DefaultDerivMvAdjointSupport determineDefaultDerivMvAdjointSupport (const ModelEvaluatorBase::DerivativeSupport &derivSupportImpl, const VectorSpaceBase< Scalar > &fnc_space, const VectorSpaceBase< Scalar > &var_space)
static
ModelEvaluatorBase::DerivativeSupport 
updateDefaultDerivMvAdjointSupport (const ModelEvaluatorBase::DerivativeSupport &derivSupportImpl, const DefaultDerivMvAdjointSupport &defaultMvAdjointSupport)

Private Attributes

bool isInitialized_
Array
< DefaultDerivLinearOpSupport
DfDp_default_op_support_
Array
< DefaultDerivLinearOpSupport
DgDx_dot_default_op_support_
Array
< DefaultDerivLinearOpSupport
DgDx_default_op_support_
Array< Array
< DefaultDerivLinearOpSupport > > 
DgDp_default_op_support_
Array< Array
< DefaultDerivMvAdjointSupport > > 
DgDp_default_mv_support_
bool default_W_support_
ModelEvaluatorBase::OutArgs
< Scalar > 
prototypeOutArgs_

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.
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.
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.
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.
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.

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
 

Setup functions called by subclasses

void initializeDefaultBase ()
 Function called by subclasses to fully initialize this object on any important change.

Private functions with default implementaton to be overridden by subclasses

virtual RCP< LinearOpBase
< Scalar > > 
create_DfDp_op_impl (int l) const
 
virtual RCP< LinearOpBase
< Scalar > > 
create_DgDx_dot_op_impl (int j) const
 
virtual RCP< LinearOpBase
< Scalar > > 
create_DgDx_op_impl (int j) const
 
virtual RCP< LinearOpBase
< Scalar > > 
create_DgDp_op_impl (int j, int l) const
 

Private pure virtual functions that must be overridden by subclasses

virtual
ModelEvaluatorBase::OutArgs
< Scalar > 
createOutArgsImpl () const =0
 
virtual void evalModelImpl (const ModelEvaluatorBase::InArgs< Scalar > &inArgs, const ModelEvaluatorBase::OutArgs< Scalar > &outArgs) const =0
 

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 175 of file Thyra_ModelEvaluatorDefaultBase.hpp.


Member Typedef Documentation

Definition at line 267 of file Thyra_ModelEvaluatorDefaultBase.hpp.

Definition at line 270 of file Thyra_ModelEvaluatorDefaultBase.hpp.

Definition at line 273 of file Thyra_ModelEvaluatorDefaultBase.hpp.


Constructor & Destructor Documentation

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

Definition at line 934 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 >
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 707 of file Thyra_ModelEvaluatorDefaultBase.hpp.

template<class Scalar >
RCP< LinearOpBase< Scalar > > Thyra::ModelEvaluatorDefaultBase< Scalar >::create_DfDp_op_impl ( int  l) const [private, virtual]
template<class Scalar >
RCP< LinearOpBase< Scalar > > Thyra::ModelEvaluatorDefaultBase< Scalar >::create_DgDx_dot_op_impl ( int  j) const [private, virtual]
template<class Scalar >
RCP< LinearOpBase< Scalar > > Thyra::ModelEvaluatorDefaultBase< Scalar >::create_DgDx_op_impl ( int  j) const [private, virtual]
template<class Scalar >
RCP< LinearOpBase< Scalar > > Thyra::ModelEvaluatorDefaultBase< Scalar >::create_DgDp_op_impl ( int  j,
int  l 
) const [private, virtual]
template<class Scalar>
virtual ModelEvaluatorBase::OutArgs<Scalar> Thyra::ModelEvaluatorDefaultBase< Scalar >::createOutArgsImpl ( ) const [private, pure virtual]
template<class Scalar>
virtual void Thyra::ModelEvaluatorDefaultBase< Scalar >::evalModelImpl ( const ModelEvaluatorBase::InArgs< Scalar > &  inArgs,
const ModelEvaluatorBase::OutArgs< Scalar > &  outArgs 
) const [private, pure virtual]
template<class Scalar >
void Thyra::ModelEvaluatorDefaultBase< Scalar >::lazyInitializeDefaultBase ( ) const [private]

Definition at line 943 of file Thyra_ModelEvaluatorDefaultBase.hpp.

template<class Scalar >
void Thyra::ModelEvaluatorDefaultBase< Scalar >::assert_l ( const int  l) const [private]

Definition at line 951 of file Thyra_ModelEvaluatorDefaultBase.hpp.

template<class Scalar >
void Thyra::ModelEvaluatorDefaultBase< Scalar >::assert_j ( const int  j) const [private]

Definition at line 958 of file Thyra_ModelEvaluatorDefaultBase.hpp.

template<class Scalar >
ModelEvaluatorDefaultBaseTypes::DefaultDerivLinearOpSupport Thyra::ModelEvaluatorDefaultBase< Scalar >::determineDefaultDerivLinearOpSupport ( const ModelEvaluatorBase::DerivativeSupport derivSupportImpl) [static, private]
template<class Scalar>
RCP< LinearOpBase< Scalar > > Thyra::ModelEvaluatorDefaultBase< Scalar >::createDefaultLinearOp ( const DefaultDerivLinearOpSupport defaultLinearOpSupport,
const RCP< const VectorSpaceBase< Scalar > > &  fnc_space,
const RCP< const VectorSpaceBase< Scalar > > &  var_space 
) [static, private]
template<class Scalar >
ModelEvaluatorBase::DerivativeSupport Thyra::ModelEvaluatorDefaultBase< Scalar >::updateDefaultLinearOpSupport ( const ModelEvaluatorBase::DerivativeSupport derivSupportImpl,
const DefaultDerivLinearOpSupport defaultLinearOpSupport 
) [static, private]
template<class Scalar>
ModelEvaluatorBase::Derivative< Scalar > Thyra::ModelEvaluatorDefaultBase< Scalar >::getOutArgImplForDefaultLinearOpSupport ( const ModelEvaluatorBase::Derivative< Scalar > &  deriv,
const DefaultDerivLinearOpSupport defaultLinearOpSupport 
) [static, private]
template<class Scalar>
ModelEvaluatorDefaultBaseTypes::DefaultDerivMvAdjointSupport Thyra::ModelEvaluatorDefaultBase< Scalar >::determineDefaultDerivMvAdjointSupport ( const ModelEvaluatorBase::DerivativeSupport derivSupportImpl,
const VectorSpaceBase< Scalar > &  fnc_space,
const VectorSpaceBase< Scalar > &  var_space 
) [static, private]
template<class Scalar >
ModelEvaluatorBase::DerivativeSupport Thyra::ModelEvaluatorDefaultBase< Scalar >::updateDefaultDerivMvAdjointSupport ( const ModelEvaluatorBase::DerivativeSupport derivSupportImpl,
const DefaultDerivMvAdjointSupport defaultMvAdjointSupport 
) [static, private]

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.


Member Data Documentation

template<class Scalar>
bool Thyra::ModelEvaluatorDefaultBase< Scalar >::isInitialized_ [private]

Definition at line 280 of file Thyra_ModelEvaluatorDefaultBase.hpp.

Definition at line 282 of file Thyra_ModelEvaluatorDefaultBase.hpp.

Definition at line 284 of file Thyra_ModelEvaluatorDefaultBase.hpp.

template<class Scalar>
Array<Array<DefaultDerivLinearOpSupport> > Thyra::ModelEvaluatorDefaultBase< Scalar >::DgDp_default_op_support_ [private]

Definition at line 286 of file Thyra_ModelEvaluatorDefaultBase.hpp.

template<class Scalar>
Array<Array<DefaultDerivMvAdjointSupport> > Thyra::ModelEvaluatorDefaultBase< Scalar >::DgDp_default_mv_support_ [private]

Definition at line 287 of file Thyra_ModelEvaluatorDefaultBase.hpp.

template<class Scalar>
bool Thyra::ModelEvaluatorDefaultBase< Scalar >::default_W_support_ [private]

Definition at line 289 of file Thyra_ModelEvaluatorDefaultBase.hpp.

template<class Scalar>
ModelEvaluatorBase::OutArgs<Scalar> Thyra::ModelEvaluatorDefaultBase< Scalar >::prototypeOutArgs_ [private]

The documentation for this class was generated from the following files:
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Defines