Tempus Version of the Day
Time Integration
Loading...
Searching...
No Matches
Public Member Functions | 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 > 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.
 
virtual ~WrapperModelEvaluatorPairIMEX_Basic ()
 Destructor.
 
virtual void initialize ()
 Initialize after setting member data.
 
- Public Member Functions inherited from Tempus::WrapperModelEvaluatorPairIMEX< Scalar >
- Public Member Functions inherited from Tempus::WrapperModelEvaluator< Scalar >

Overridden from Thyra::StateFuncModelEvaluatorBase

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_
 
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
 
 WrapperModelEvaluatorPairIMEX_Basic ()
 Default constructor – only allowed for derived classes.
 
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.
 

Overridden from Tempus::WrapperModelEvaluatorPairIMEX

virtual void setAppModel (const Teuchos::RCP< const Thyra::ModelEvaluator< Scalar > > &me)
 Set the underlying application ModelEvaluator.
 
virtual Teuchos::RCP< const Thyra::ModelEvaluator< Scalar > > getAppModel () const
 Get the underlying application ModelEvaluator.
 
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.
 

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.
 
virtual Teuchos::RCP< const Thyra::VectorSpaceBase< Scalar > > get_g_space (int i) const
 Get the g space.
 
virtual Teuchos::RCP< const Thyra::VectorSpaceBase< Scalar > > get_p_space (int i) const
 Get the p space.
 
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
 

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

◆ WrapperModelEvaluatorPairIMEX_Basic() [1/2]

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.

◆ ~WrapperModelEvaluatorPairIMEX_Basic()

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

Destructor.

Definition at line 54 of file Tempus_WrapperModelEvaluatorPairIMEX_Basic_decl.hpp.

◆ WrapperModelEvaluatorPairIMEX_Basic() [2/2]

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

◆ initialize()

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.

◆ setAppModel()

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.

◆ getAppModel()

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.

◆ setForSolve()

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.

◆ get_x_space()

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.

◆ get_g_space()

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

◆ get_p_space()

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

◆ setExplicitModel()

template<typename Scalar >
virtual void Tempus::WrapperModelEvaluatorPairIMEX_Basic< Scalar >::setExplicitModel ( const Teuchos::RCP< const Thyra::ModelEvaluator< Scalar > > &  model)
inlinevirtual

◆ setImplicitModel()

template<typename Scalar >
virtual void Tempus::WrapperModelEvaluatorPairIMEX_Basic< Scalar >::setImplicitModel ( const Teuchos::RCP< const Thyra::ModelEvaluator< Scalar > > &  model)
inlinevirtual

◆ getExplicitModel()

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

◆ getImplicitModel()

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

◆ create_W_op()

template<typename Scalar >
virtual Teuchos::RCP< Thyra::LinearOpBase< Scalar > > Tempus::WrapperModelEvaluatorPairIMEX_Basic< Scalar >::create_W_op ( ) const
inlinevirtual

◆ get_W_factory()

template<typename Scalar >
Teuchos::RCP< const Thyra::LinearOpWithSolveFactoryBase< Scalar > > Tempus::WrapperModelEvaluatorPairIMEX_Basic< Scalar >::get_W_factory ( ) const
inlinevirtual

◆ get_f_space()

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

◆ getNominalValues()

template<typename Scalar >
Thyra::ModelEvaluatorBase::InArgs< Scalar > Tempus::WrapperModelEvaluatorPairIMEX_Basic< Scalar >::getNominalValues ( ) const
virtual

◆ createInArgs()

template<typename Scalar >
Thyra::ModelEvaluatorBase::InArgs< Scalar > Tempus::WrapperModelEvaluatorPairIMEX_Basic< Scalar >::createInArgs ( ) const
virtual

◆ createOutArgsImpl()

template<typename Scalar >
Thyra::ModelEvaluatorBase::OutArgs< Scalar > Tempus::WrapperModelEvaluatorPairIMEX_Basic< Scalar >::createOutArgsImpl ( ) const
virtual

◆ evalModelImpl()

template<typename Scalar >
void Tempus::WrapperModelEvaluatorPairIMEX_Basic< Scalar >::evalModelImpl ( const Thyra::ModelEvaluatorBase::InArgs< Scalar > &  in,
const Thyra::ModelEvaluatorBase::OutArgs< Scalar > &  out 
) const
virtual

◆ setup()

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

◆ explicitModel_

template<typename Scalar >
Teuchos::RCP<const Thyra::ModelEvaluator<Scalar> > Tempus::WrapperModelEvaluatorPairIMEX_Basic< Scalar >::explicitModel_
protected

◆ implicitModel_

template<typename Scalar >
Teuchos::RCP<const Thyra::ModelEvaluator<Scalar> > Tempus::WrapperModelEvaluatorPairIMEX_Basic< Scalar >::implicitModel_
protected

◆ x_

template<typename Scalar >
Teuchos::RCP<Thyra::VectorBase<Scalar> > Tempus::WrapperModelEvaluatorPairIMEX_Basic< Scalar >::x_
protected

◆ xDot_

template<typename Scalar >
Teuchos::RCP<Thyra::VectorBase<Scalar> > Tempus::WrapperModelEvaluatorPairIMEX_Basic< Scalar >::xDot_
protected

◆ time_

template<typename Scalar >
Scalar Tempus::WrapperModelEvaluatorPairIMEX_Basic< Scalar >::time_
protected

◆ p_

template<typename Scalar >
Teuchos::RCP<ImplicitODEParameters<Scalar> > Tempus::WrapperModelEvaluatorPairIMEX_Basic< Scalar >::p_
protected

◆ y_

template<typename Scalar >
Teuchos::RCP<Thyra::VectorBase<Scalar> > Tempus::WrapperModelEvaluatorPairIMEX_Basic< Scalar >::y_
protected

◆ index_

template<typename Scalar >
int Tempus::WrapperModelEvaluatorPairIMEX_Basic< Scalar >::index_
protected

◆ timeDer_

template<typename Scalar >
Teuchos::RCP<TimeDerivative<Scalar> > Tempus::WrapperModelEvaluatorPairIMEX_Basic< Scalar >::timeDer_
protected

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