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 >
virtual void initialize ()=0
 Initialize after setting member data.
 
- 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< TimeDerivative< Scalar > > timeDer_
 
Thyra::ModelEvaluatorBase::InArgs< Scalar > wrapperImplicitInArgs_
 
Thyra::ModelEvaluatorBase::OutArgs< Scalar > wrapperImplicitOutArgs_
 
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.
 
virtual void setInArgs (Thyra::ModelEvaluatorBase::InArgs< Scalar > inArgs)
 Set InArgs the wrapper ModelEvalutor.
 
virtual Thyra::ModelEvaluatorBase::InArgs< Scalar > getInArgs ()
 Get InArgs the wrapper ModelEvalutor.
 
virtual void setOutArgs (Thyra::ModelEvaluatorBase::OutArgs< Scalar > outArgs)
 Set OutArgs the wrapper ModelEvalutor.
 
virtual Thyra::ModelEvaluatorBase::OutArgs< Scalar > getOutArgs ()
 Get OutArgs the wrapper ModelEvalutor.
 
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.
 

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 45 of file Tempus_WrapperModelEvaluatorPairIMEX_Basic_decl.hpp.

◆ ~WrapperModelEvaluatorPairIMEX_Basic()

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

Destructor.

Definition at line 56 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 148 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 20 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 49 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 61 of file Tempus_WrapperModelEvaluatorPairIMEX_Basic_impl.hpp.

◆ setInArgs()

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.

◆ getInArgs()

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.

◆ setOutArgs()

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.

◆ getOutArgs()

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.

◆ setForSolve()

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.

◆ get_x_space()

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

Get the x-solution space.

Implements Tempus::WrapperModelEvaluatorPairIMEX< Scalar >.

Definition at line 73 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
virtual

◆ createInArgs()

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

◆ createOutArgsImpl()

template<typename Scalar >
Thyra::ModelEvaluatorBase::OutArgs< Scalar > Tempus::WrapperModelEvaluatorPairIMEX_Basic< Scalar >::createOutArgsImpl
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 151 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

◆ timeDer_

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

◆ wrapperImplicitInArgs_

template<typename Scalar >
Thyra::ModelEvaluatorBase::InArgs<Scalar> Tempus::WrapperModelEvaluatorPairIMEX_Basic< Scalar >::wrapperImplicitInArgs_
protected

◆ wrapperImplicitOutArgs_

template<typename Scalar >
Thyra::ModelEvaluatorBase::OutArgs<Scalar> Tempus::WrapperModelEvaluatorPairIMEX_Basic< Scalar >::wrapperImplicitOutArgs_
protected

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