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 >:
Tempus::WrapperModelEvaluatorPairIMEX< Scalar > Tempus::WrapperModelEvaluator< Scalar > Thyra::StateFuncModelEvaluatorBase< Scalar > Thyra::ModelEvaluatorDefaultBase< Scalar > Thyra::ModelEvaluator< class > Thyra::ModelEvaluatorBase Teuchos::Describable Teuchos::LabeledObject Tempus::WrapperModelEvaluatorPairIMEX_CombinedFSA< Scalar > Tempus::WrapperModelEvaluatorPairIMEX_StaggeredFSA< Scalar >

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
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
< Thyra::VectorBase< Scalar > > 
x_
 
Teuchos::RCP
< Thyra::VectorBase< Scalar > > 
xDot_
 
Scalar time_
 
Teuchos::RCP
< ImplicitODEParameters
< Scalar > > 
p_
 
Teuchos::RCP
< Thyra::VectorBase< Scalar > > 
y_
 
int index_
 
Teuchos::RCP< TimeDerivative
< Scalar > > 
timeDer_
 

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...
 
void setForSolve (const Teuchos::RCP< Thyra::VectorBase< Scalar > > &x, const Teuchos::RCP< Thyra::VectorBase< Scalar > > &xDot, const Scalar time, const Teuchos::RCP< ImplicitODEParameters< Scalar > > &p, const Teuchos::RCP< Thyra::VectorBase< Scalar > > &y=Teuchos::null, const int index=-1)
 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  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 43 of file Tempus_WrapperModelEvaluatorPairIMEX_Basic_decl.hpp.

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

Destructor.

Definition at line 54 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 153 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 19 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 64 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 76 of file Tempus_WrapperModelEvaluatorPairIMEX_Basic_impl.hpp.

template<typename Scalar >
void Tempus::WrapperModelEvaluatorPairIMEX_Basic< Scalar >::setForSolve ( const Teuchos::RCP< Thyra::VectorBase< Scalar > > &  x,
const Teuchos::RCP< Thyra::VectorBase< Scalar > > &  xDot,
const Scalar  time,
const Teuchos::RCP< ImplicitODEParameters< Scalar > > &  p,
const Teuchos::RCP< Thyra::VectorBase< Scalar > > &  y = Teuchos::null,
const int  index = -1 
)
inlinevirtual

Set parameters for application implicit ModelEvaluator solve.

Implements Tempus::WrapperModelEvaluator< Scalar >.

Definition at line 67 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 88 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 156 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<Thyra::VectorBase<Scalar> > Tempus::WrapperModelEvaluatorPairIMEX_Basic< Scalar >::x_
protected
template<typename Scalar >
Teuchos::RCP<Thyra::VectorBase<Scalar> > Tempus::WrapperModelEvaluatorPairIMEX_Basic< Scalar >::xDot_
protected
template<typename Scalar >
Scalar Tempus::WrapperModelEvaluatorPairIMEX_Basic< Scalar >::time_
protected
template<typename Scalar >
Teuchos::RCP<ImplicitODEParameters<Scalar> > Tempus::WrapperModelEvaluatorPairIMEX_Basic< Scalar >::p_
protected
template<typename Scalar >
Teuchos::RCP<Thyra::VectorBase<Scalar> > Tempus::WrapperModelEvaluatorPairIMEX_Basic< Scalar >::y_
protected
template<typename Scalar >
int Tempus::WrapperModelEvaluatorPairIMEX_Basic< Scalar >::index_
protected
template<typename Scalar >
Teuchos::RCP<TimeDerivative<Scalar> > Tempus::WrapperModelEvaluatorPairIMEX_Basic< Scalar >::timeDer_
protected

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