Tempus  Version of the Day
Time Integration
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
Public Member Functions | Protected Member Functions | Protected Attributes | List of all members
Tempus::WrapperModelEvaluatorPairIMEX_Basic< Scalar > Class Template Reference

ModelEvaluator pair for implicit and explicit (IMEX) evaulations. More...

#include <Tempus_WrapperModelEvaluatorPairIMEX_Basic_decl.hpp>

Inheritance diagram for Tempus::WrapperModelEvaluatorPairIMEX_Basic< Scalar >:
Inheritance graph
[legend]

Public Member Functions

 WrapperModelEvaluatorPairIMEX_Basic (const Teuchos::RCP< const Thyra::ModelEvaluator< Scalar > > &explicitModel, const Teuchos::RCP< const Thyra::ModelEvaluator< Scalar > > &implicitModel)
 Constructor. More...
 
virtual ~WrapperModelEvaluatorPairIMEX_Basic ()
 Destructor. More...
 
virtual void initialize ()
 Initialize after setting member data. More...
 
- Public Member Functions inherited from Tempus::WrapperModelEvaluatorPairIMEX< Scalar >
- Public Member Functions inherited from Tempus::WrapperModelEvaluator< Scalar >
- Public Member Functions inherited from Thyra::StateFuncModelEvaluatorBase< Scalar >
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
 
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< LinearOpBase< Scalar > > create_W_op () const
 
RCP< PreconditionerBase< Scalar > > create_W_prec () const
 
RCP< const
LinearOpWithSolveFactoryBase
< Scalar > > 
get_W_factory () const
 
void reportFinalPoint (const ModelEvaluatorBase::InArgs< Scalar > &finalPoint, const bool wasSolved)
 
- Public Member Functions inherited from Thyra::ModelEvaluator< class >
virtual int Np () const =0
 
virtual int Ng () const =0
 
virtual RCP< const
VectorSpaceBase< Scalar > > 
get_f_multiplier_space () const =0
 
virtual RCP< const
VectorSpaceBase< Scalar > > 
get_g_multiplier_space (int j) const =0
 
virtual RCP
< LinearOpWithSolveBase
< Scalar > > 
create_W () const =0
 
virtual RCP< LinearOpBase
< Scalar > > 
create_DfDp_op (int l) const =0
 
virtual RCP< LinearOpBase
< Scalar > > 
create_DgDx_dot_op (int j) const =0
 
virtual RCP< LinearOpBase
< Scalar > > 
create_DgDx_op (int j) const =0
 
virtual RCP< LinearOpBase
< Scalar > > 
create_DgDp_op (int j, int l) const =0
 
virtual RCP< LinearOpBase
< Scalar > > 
create_hess_f_xx () const =0
 
virtual RCP< LinearOpBase
< Scalar > > 
create_hess_f_xp (int l) const =0
 
virtual RCP< LinearOpBase
< Scalar > > 
create_hess_f_pp (int l1, int l2) const =0
 
virtual RCP< LinearOpBase
< Scalar > > 
create_hess_g_xx (int j) const =0
 
virtual RCP< LinearOpBase
< Scalar > > 
create_hess_g_xp (int j, int l) const =0
 
virtual RCP< LinearOpBase
< Scalar > > 
create_hess_g_pp (int j, int l1, int l2) const =0
 
virtual
ModelEvaluatorBase::OutArgs
< Scalar > 
createOutArgs () const =0
 
virtual void evalModel (const ModelEvaluatorBase::InArgs< Scalar > &inArgs, const ModelEvaluatorBase::OutArgs< Scalar > &outArgs) const =0
 
 ModelEvaluatorBase ()
 
std::string toString (ModelEvaluatorBase::EInArgsMembers)
 
std::string toString (ModelEvaluatorBase::EOutArgsMembers)
 
std::string toString (ModelEvaluatorBase::EDerivativeMultiVectorOrientation orientation)
 
ModelEvaluatorBase::EDerivativeMultiVectorOrientation getOtherDerivativeMultiVectorOrientation (ModelEvaluatorBase::EDerivativeMultiVectorOrientation orientation)
 
- Public Member Functions inherited from Teuchos::Describable
virtual std::string description () const
 
virtual void describe (FancyOStream &out, const EVerbosityLevel verbLevel=verbLevel_default) const
 
void describe (std::ostream &out, const EVerbosityLevel verbLevel=verbLevel_default) const
 
virtual ~Describable ()
 
 LabeledObject ()
 
virtual ~LabeledObject ()
 
virtual void setObjectLabel (const std::string &objectLabel)
 
virtual std::string getObjectLabel () const
 
DescribableStreamManipulatorState describe (const Describable &describable, const EVerbosityLevel verbLevel=Describable::verbLevel_default)
 
std::ostream & operator<< (std::ostream &os, const DescribableStreamManipulatorState &d)
 

Protected Member Functions

 WrapperModelEvaluatorPairIMEX_Basic ()
 Default constructor – only allowed for derived classes. More...
 
void setup (const Teuchos::RCP< const Thyra::ModelEvaluator< Scalar > > &explicitModel, const Teuchos::RCP< const Thyra::ModelEvaluator< Scalar > > &implicitModel)
 Setup ME when using default constructor – for derived classes. More...
 

Protected Attributes

Teuchos::RCP< const
Thyra::ModelEvaluator< Scalar > > 
explicitModel_
 
Teuchos::RCP< const
Thyra::ModelEvaluator< Scalar > > 
implicitModel_
 
Teuchos::RCP< TimeDerivative
< Scalar > > 
timeDer_
 
Thyra::ModelEvaluatorBase::InArgs
< Scalar > 
wrapperImplicitInArgs_
 
Thyra::ModelEvaluatorBase::OutArgs
< Scalar > 
wrapperImplicitOutArgs_
 

Overridden from Tempus::WrapperModelEvaluatorPairIMEX

virtual void setAppModel (const Teuchos::RCP< const Thyra::ModelEvaluator< Scalar > > &me)
 Set the underlying application ModelEvaluator. More...
 
virtual Teuchos::RCP< const
Thyra::ModelEvaluator< Scalar > > 
getAppModel () const
 Get the underlying application ModelEvaluator. More...
 
virtual void setInArgs (Thyra::ModelEvaluatorBase::InArgs< Scalar > inArgs)
 Set InArgs the wrapper ModelEvalutor. More...
 
virtual
Thyra::ModelEvaluatorBase::InArgs
< Scalar > 
getInArgs ()
 Get InArgs the wrapper ModelEvalutor. More...
 
virtual void setOutArgs (Thyra::ModelEvaluatorBase::OutArgs< Scalar > outArgs)
 Set OutArgs the wrapper ModelEvalutor. More...
 
virtual
Thyra::ModelEvaluatorBase::OutArgs
< Scalar > 
getOutArgs ()
 Get OutArgs the wrapper ModelEvalutor. More...
 
virtual void setForSolve (Teuchos::RCP< TimeDerivative< Scalar > > timeDer, Thyra::ModelEvaluatorBase::InArgs< Scalar > inArgs, Thyra::ModelEvaluatorBase::OutArgs< Scalar > outArgs, EVALUATION_TYPE=SOLVE_FOR_X)
 Set parameters for application implicit ModelEvaluator solve. More...
 

Methods that apply to both explicit and implicit terms.

virtual Teuchos::RCP< const
Thyra::VectorSpaceBase< Scalar > > 
get_x_space () const
 Get the x-solution space. More...
 
virtual Teuchos::RCP< const
Thyra::VectorSpaceBase< Scalar > > 
get_g_space (int i) const
 Get the g space. More...
 
virtual Teuchos::RCP< const
Thyra::VectorSpaceBase< Scalar > > 
get_p_space (int i) const
 Get the p space. More...
 
virtual void setExplicitModel (const Teuchos::RCP< const Thyra::ModelEvaluator< Scalar > > &model)
 
virtual void setImplicitModel (const Teuchos::RCP< const Thyra::ModelEvaluator< Scalar > > &model)
 
virtual Teuchos::RCP< const
Thyra::ModelEvaluator< Scalar > > 
getExplicitModel () const
 
virtual Teuchos::RCP< const
Thyra::ModelEvaluator< Scalar > > 
getImplicitModel () const
 

Overridden from Thyra::StateFuncModelEvaluatorBase

virtual Teuchos::RCP
< Thyra::LinearOpBase< Scalar > > 
create_W_op () const
 
Teuchos::RCP< const
Thyra::LinearOpWithSolveFactoryBase
< Scalar > > 
get_W_factory () const
 
virtual Teuchos::RCP< const
Thyra::VectorSpaceBase< Scalar > > 
get_f_space () const
 
virtual
Thyra::ModelEvaluatorBase::InArgs
< Scalar > 
getNominalValues () const
 
virtual
Thyra::ModelEvaluatorBase::InArgs
< Scalar > 
createInArgs () const
 
virtual
Thyra::ModelEvaluatorBase::OutArgs
< Scalar > 
createOutArgsImpl () const
 
virtual void evalModelImpl (const Thyra::ModelEvaluatorBase::InArgs< Scalar > &in, const Thyra::ModelEvaluatorBase::OutArgs< Scalar > &out) const
 

Additional Inherited Members

- Public Types inherited from Thyra::ModelEvaluator< class >
enum  EInArgsMembers
 
enum  EInArgs_p_mp
 
enum  EEvalType
 
enum  EDerivativeMultiVectorOrientation
 
enum  EDerivativeLinearOp
 
enum  EDerivativeLinearity
 
enum  ERankStatus
 
enum  EOutArgsMembers
 
enum  EOutArgsDfDp
 
enum  EOutArgsDgDx_dot
 
enum  EOutArgsDgDx
 
enum  EOutArgsDgDp
 
enum  EOutArgs_hess_vec_prod_f_xx
 
enum  EOutArgs_hess_vec_prod_f_xp
 
enum  EOutArgs_hess_vec_prod_f_px
 
enum  EOutArgs_hess_vec_prod_f_pp
 
enum  EOutArgs_hess_vec_prod_g_xx
 
enum  EOutArgs_hess_vec_prod_g_xp
 
enum  EOutArgs_hess_vec_prod_g_px
 
enum  EOutArgs_hess_vec_prod_g_pp
 
enum  EOutArgs_hess_f_xx
 
enum  EOutArgs_hess_f_xp
 
enum  EOutArgs_hess_f_pp
 
enum  EOutArgs_hess_g_xx
 
enum  EOutArgs_hess_g_xp
 
enum  EOutArgs_hess_g_pp
 
enum  EOutArgs_H_xx
 
enum  EOutArgs_H_xp
 
enum  EOutArgs_H_pp
 
enum  EOutArgsDfDp_mp
 
enum  EOutArgs_g_mp
 
enum  EOutArgsDgDx_dot_mp
 
enum  EOutArgsDgDx_mp
 
enum  EOutArgsDgDp_mp
 
typedef Teuchos::ScalarTraits
< Scalar >::magnitudeType 
ScalarMag
 
- Static Public Attributes inherited from Thyra::ModelEvaluator< class >
static const int NUM_E_IN_ARGS_MEMBERS
 
static const int NUM_E_OUT_ARGS_MEMBERS
 
- Static Public Attributes inherited from Teuchos::Describable
static const EVerbosityLevel verbLevel_default
 

Detailed Description

template<typename Scalar>
class Tempus::WrapperModelEvaluatorPairIMEX_Basic< Scalar >

ModelEvaluator pair for implicit and explicit (IMEX) evaulations.

This ModelEvaluator takes a state, x, and determines the explicit and implicit residuals. Additionally, it coordinates the explicit and implicit physics to ensure they are compatible, e.g., how to translate between implicit and explicit model in and out arguments, if needed.

All functions called on WrapperModelEvaluatorPairIMEX_Basic will call the same function on the implicit Model Evaluator. This was selected because the WrapperModelEvaluatorPairIMEX_Basic will be passed to the solvers which in turn make calls to solve the implicit ODE.

If the explicit version of the Model Evaluator functions are needed, one should directly call it through the explicit Model Evaluator, e.g., getExplicitModel()->get_x_space().

This was taken and modified from Drekar's IMEXModelPair class.

Definition at line 39 of file Tempus_WrapperModelEvaluatorPairIMEX_Basic_decl.hpp.

Constructor & Destructor Documentation

template<typename Scalar >
Tempus::WrapperModelEvaluatorPairIMEX_Basic< Scalar >::WrapperModelEvaluatorPairIMEX_Basic ( const Teuchos::RCP< const Thyra::ModelEvaluator< Scalar > > &  explicitModel,
const Teuchos::RCP< const Thyra::ModelEvaluator< Scalar > > &  implicitModel 
)
inline

Constructor.

Definition at line 45 of file Tempus_WrapperModelEvaluatorPairIMEX_Basic_decl.hpp.

template<typename Scalar >
virtual Tempus::WrapperModelEvaluatorPairIMEX_Basic< Scalar >::~WrapperModelEvaluatorPairIMEX_Basic ( )
inlinevirtual

Destructor.

Definition at line 56 of file Tempus_WrapperModelEvaluatorPairIMEX_Basic_decl.hpp.

template<typename Scalar >
Tempus::WrapperModelEvaluatorPairIMEX_Basic< Scalar >::WrapperModelEvaluatorPairIMEX_Basic ( )
inlineprotected

Default constructor – only allowed for derived classes.

Definition at line 148 of file Tempus_WrapperModelEvaluatorPairIMEX_Basic_decl.hpp.

Member Function Documentation

template<typename Scalar >
void Tempus::WrapperModelEvaluatorPairIMEX_Basic< Scalar >::initialize ( )
virtual

Initialize after setting member data.

Implements Tempus::WrapperModelEvaluatorPairIMEX< Scalar >.

Definition at line 21 of file Tempus_WrapperModelEvaluatorPairIMEX_Basic_impl.hpp.

template<typename Scalar >
void Tempus::WrapperModelEvaluatorPairIMEX_Basic< Scalar >::setAppModel ( const Teuchos::RCP< const Thyra::ModelEvaluator< Scalar > > &  me)
virtual

Set the underlying application ModelEvaluator.

Implements Tempus::WrapperModelEvaluator< Scalar >.

Definition at line 50 of file Tempus_WrapperModelEvaluatorPairIMEX_Basic_impl.hpp.

template<typename Scalar >
Teuchos::RCP< const Thyra::ModelEvaluator< Scalar > > Tempus::WrapperModelEvaluatorPairIMEX_Basic< Scalar >::getAppModel ( ) const
virtual

Get the underlying application ModelEvaluator.

Implements Tempus::WrapperModelEvaluator< Scalar >.

Definition at line 62 of file Tempus_WrapperModelEvaluatorPairIMEX_Basic_impl.hpp.

template<typename Scalar >
virtual void Tempus::WrapperModelEvaluatorPairIMEX_Basic< Scalar >::setInArgs ( Thyra::ModelEvaluatorBase::InArgs< Scalar >  inArgs)
inlinevirtual

Set InArgs the wrapper ModelEvalutor.

Implements Tempus::WrapperModelEvaluator< Scalar >.

Definition at line 69 of file Tempus_WrapperModelEvaluatorPairIMEX_Basic_decl.hpp.

template<typename Scalar >
virtual Thyra::ModelEvaluatorBase::InArgs<Scalar> Tempus::WrapperModelEvaluatorPairIMEX_Basic< Scalar >::getInArgs ( )
inlinevirtual

Get InArgs the wrapper ModelEvalutor.

Implements Tempus::WrapperModelEvaluator< Scalar >.

Definition at line 73 of file Tempus_WrapperModelEvaluatorPairIMEX_Basic_decl.hpp.

template<typename Scalar >
virtual void Tempus::WrapperModelEvaluatorPairIMEX_Basic< Scalar >::setOutArgs ( Thyra::ModelEvaluatorBase::OutArgs< Scalar >  outArgs)
inlinevirtual

Set OutArgs the wrapper ModelEvalutor.

Implements Tempus::WrapperModelEvaluator< Scalar >.

Definition at line 77 of file Tempus_WrapperModelEvaluatorPairIMEX_Basic_decl.hpp.

template<typename Scalar >
virtual Thyra::ModelEvaluatorBase::OutArgs<Scalar> Tempus::WrapperModelEvaluatorPairIMEX_Basic< Scalar >::getOutArgs ( )
inlinevirtual

Get OutArgs the wrapper ModelEvalutor.

Implements Tempus::WrapperModelEvaluator< Scalar >.

Definition at line 81 of file Tempus_WrapperModelEvaluatorPairIMEX_Basic_decl.hpp.

template<typename Scalar >
virtual void Tempus::WrapperModelEvaluatorPairIMEX_Basic< Scalar >::setForSolve ( Teuchos::RCP< TimeDerivative< Scalar > >  timeDer,
Thyra::ModelEvaluatorBase::InArgs< Scalar >  inArgs,
Thyra::ModelEvaluatorBase::OutArgs< Scalar >  outArgs,
EVALUATION_TYPE  = SOLVE_FOR_X 
)
inlinevirtual

Set parameters for application implicit ModelEvaluator solve.

Implements Tempus::WrapperModelEvaluatorPairIMEX< Scalar >.

Definition at line 85 of file Tempus_WrapperModelEvaluatorPairIMEX_Basic_decl.hpp.

template<typename Scalar >
Teuchos::RCP< const Thyra::VectorSpaceBase< Scalar > > Tempus::WrapperModelEvaluatorPairIMEX_Basic< Scalar >::get_x_space ( ) const
virtual

Get the x-solution space.

Implements Tempus::WrapperModelEvaluatorPairIMEX< Scalar >.

Definition at line 74 of file Tempus_WrapperModelEvaluatorPairIMEX_Basic_impl.hpp.

template<typename Scalar >
Teuchos::RCP< const Thyra::VectorSpaceBase< Scalar > > Tempus::WrapperModelEvaluatorPairIMEX_Basic< Scalar >::get_g_space ( int  i) const
virtual
template<typename Scalar >
Teuchos::RCP< const Thyra::VectorSpaceBase< Scalar > > Tempus::WrapperModelEvaluatorPairIMEX_Basic< Scalar >::get_p_space ( int  i) const
virtual
template<typename Scalar >
virtual void Tempus::WrapperModelEvaluatorPairIMEX_Basic< Scalar >::setExplicitModel ( const Teuchos::RCP< const Thyra::ModelEvaluator< Scalar > > &  model)
inlinevirtual
template<typename Scalar >
virtual void Tempus::WrapperModelEvaluatorPairIMEX_Basic< Scalar >::setImplicitModel ( const Teuchos::RCP< const Thyra::ModelEvaluator< Scalar > > &  model)
inlinevirtual
template<typename Scalar >
virtual Teuchos::RCP<const Thyra::ModelEvaluator<Scalar> > Tempus::WrapperModelEvaluatorPairIMEX_Basic< Scalar >::getExplicitModel ( ) const
inlinevirtual
template<typename Scalar >
virtual Teuchos::RCP<const Thyra::ModelEvaluator<Scalar> > Tempus::WrapperModelEvaluatorPairIMEX_Basic< Scalar >::getImplicitModel ( ) const
inlinevirtual
template<typename Scalar >
virtual Teuchos::RCP<Thyra::LinearOpBase<Scalar> > Tempus::WrapperModelEvaluatorPairIMEX_Basic< Scalar >::create_W_op ( ) const
inlinevirtual
template<typename Scalar >
Teuchos::RCP<const Thyra::LinearOpWithSolveFactoryBase<Scalar> > Tempus::WrapperModelEvaluatorPairIMEX_Basic< Scalar >::get_W_factory ( ) const
inlinevirtual
template<typename Scalar >
virtual Teuchos::RCP<const Thyra::VectorSpaceBase<Scalar> > Tempus::WrapperModelEvaluatorPairIMEX_Basic< Scalar >::get_f_space ( ) const
inlinevirtual
template<typename Scalar >
Thyra::ModelEvaluatorBase::InArgs< Scalar > Tempus::WrapperModelEvaluatorPairIMEX_Basic< Scalar >::getNominalValues ( ) const
virtual
template<typename Scalar >
Thyra::ModelEvaluatorBase::InArgs< Scalar > Tempus::WrapperModelEvaluatorPairIMEX_Basic< Scalar >::createInArgs ( ) const
virtual
template<typename Scalar >
Thyra::ModelEvaluatorBase::OutArgs< Scalar > Tempus::WrapperModelEvaluatorPairIMEX_Basic< Scalar >::createOutArgsImpl ( ) const
virtual
template<typename Scalar >
void Tempus::WrapperModelEvaluatorPairIMEX_Basic< Scalar >::evalModelImpl ( const Thyra::ModelEvaluatorBase::InArgs< Scalar > &  in,
const Thyra::ModelEvaluatorBase::OutArgs< Scalar > &  out 
) const
virtual
template<typename Scalar >
void Tempus::WrapperModelEvaluatorPairIMEX_Basic< Scalar >::setup ( const Teuchos::RCP< const Thyra::ModelEvaluator< Scalar > > &  explicitModel,
const Teuchos::RCP< const Thyra::ModelEvaluator< Scalar > > &  implicitModel 
)
inlineprotected

Setup ME when using default constructor – for derived classes.

Definition at line 151 of file Tempus_WrapperModelEvaluatorPairIMEX_Basic_decl.hpp.

Member Data Documentation

template<typename Scalar >
Teuchos::RCP<const Thyra::ModelEvaluator<Scalar> > Tempus::WrapperModelEvaluatorPairIMEX_Basic< Scalar >::explicitModel_
protected
template<typename Scalar >
Teuchos::RCP<const Thyra::ModelEvaluator<Scalar> > Tempus::WrapperModelEvaluatorPairIMEX_Basic< Scalar >::implicitModel_
protected
template<typename Scalar >
Teuchos::RCP<TimeDerivative<Scalar> > Tempus::WrapperModelEvaluatorPairIMEX_Basic< Scalar >::timeDer_
protected
template<typename Scalar >
Thyra::ModelEvaluatorBase::InArgs<Scalar> Tempus::WrapperModelEvaluatorPairIMEX_Basic< Scalar >::wrapperImplicitInArgs_
protected
template<typename Scalar >
Thyra::ModelEvaluatorBase::OutArgs<Scalar> Tempus::WrapperModelEvaluatorPairIMEX_Basic< Scalar >::wrapperImplicitOutArgs_
protected

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