Tempus Version of the Day
Time Integration
Loading...
Searching...
No Matches
Public Member Functions | List of all members
Tempus::WrapperModelEvaluatorPairPartIMEX_Basic< Scalar > Class Template Reference

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

#include <Tempus_WrapperModelEvaluatorPairPartIMEX_Basic_decl.hpp>

Inheritance diagram for Tempus::WrapperModelEvaluatorPairPartIMEX_Basic< Scalar >:
Tempus::WrapperModelEvaluatorPairIMEX< Scalar > Tempus::WrapperModelEvaluator< Scalar > Tempus::WrapperModelEvaluatorPairPartIMEX_CombinedFSA< Scalar > Tempus::WrapperModelEvaluatorPairPartIMEX_StaggeredFSA< Scalar >

Public Member Functions

 WrapperModelEvaluatorPairPartIMEX_Basic ()
 Default constructor – Still requires setting the models and running initialize.
 
 WrapperModelEvaluatorPairPartIMEX_Basic (const Teuchos::RCP< const Thyra::ModelEvaluator< Scalar > > &explicitModel, const Teuchos::RCP< const Thyra::ModelEvaluator< Scalar > > &implicitModel, int numExplicitOnlyBlocks=0, int parameterIndex=-1)
 Constructor.
 
virtual ~WrapperModelEvaluatorPairPartIMEX_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_
 
int numExplicitOnlyBlocks_
 
int parameterIndex_
 implicit parameter index for explicit-only vector
 
bool useImplicitModel_
 if true, use implicitModel_ else explicitModel_
 
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
 
void setup (const Teuchos::RCP< const Thyra::ModelEvaluator< Scalar > > &explicitModel, const Teuchos::RCP< const Thyra::ModelEvaluator< Scalar > > &implicitModel, int numExplicitOnlyBlocks=0, int parameterIndex=-1)
 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 setNumExplicitOnlyBlocks (int numExp)
 
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
 
virtual int getNumExplicitOnlyBlocks () const
 
virtual Teuchos::RCP< Thyra::VectorBase< Scalar > > getIMEXVector (const Teuchos::RCP< Thyra::VectorBase< Scalar > > &full) const
 Extract IMEX vector from a full solution vector.
 
virtual Teuchos::RCP< const Thyra::VectorBase< Scalar > > getIMEXVector (const Teuchos::RCP< const Thyra::VectorBase< Scalar > > &full) const
 Extract IMEX vector for reading.
 
virtual Teuchos::RCP< Thyra::VectorBase< Scalar > > getExplicitOnlyVector (const Teuchos::RCP< Thyra::VectorBase< Scalar > > &full) const
 Extract explicit-only vector from a full solution vector.
 
virtual Teuchos::RCP< const Thyra::VectorBase< Scalar > > getExplicitOnlyVector (const Teuchos::RCP< const Thyra::VectorBase< Scalar > > &full) const
 Extract explicit-only vector for reading.
 
virtual void setParameterIndex (int parameterIndex=-1)
 Set the parameter index for explicit-only vector.
 
virtual int getParameterIndex () const
 Get the parameter index for explicit-only vector.
 
virtual void setUseImplicitModel (bool tf)
 Set parameter to switch wrapperME base functions between explicit and implicit functions.
 
virtual bool getUseImplicitModel () const
 Get parameter to switch wrapperME base functions between explicit and implicit functions.
 

Detailed Description

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

ModelEvaluator pair for implicit and explicit (IMEX) evaulations.

All functions called on WrapperModelEvaluatorPairPartIMEX_Basic will call the same function on the implicit Model Evaluator. This was selected because the WrapperModelEvaluatorPairPartIMEX_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().

The one exception to this rule is for getNominalValues(), which is controlled by implicitNominalValues. During the Integrator initialization this->getNominalValues needs to return explicitModel_->getNominalValues() [implicitNominalValues=false is the default], but during the nonlinear solves this->getNominalValues needs to return implicitModel_->getNominalValues() [implicitNominalValues=true].

Definition at line 38 of file Tempus_WrapperModelEvaluatorPairPartIMEX_Basic_decl.hpp.

Constructor & Destructor Documentation

◆ WrapperModelEvaluatorPairPartIMEX_Basic() [1/2]

template<typename Scalar >
Tempus::WrapperModelEvaluatorPairPartIMEX_Basic< Scalar >::WrapperModelEvaluatorPairPartIMEX_Basic

Default constructor – Still requires setting the models and running initialize.

Definition at line 19 of file Tempus_WrapperModelEvaluatorPairPartIMEX_Basic_impl.hpp.

◆ WrapperModelEvaluatorPairPartIMEX_Basic() [2/2]

template<typename Scalar >
Tempus::WrapperModelEvaluatorPairPartIMEX_Basic< Scalar >::WrapperModelEvaluatorPairPartIMEX_Basic ( const Teuchos::RCP< const Thyra::ModelEvaluator< Scalar > > &  explicitModel,
const Teuchos::RCP< const Thyra::ModelEvaluator< Scalar > > &  implicitModel,
int  numExplicitOnlyBlocks = 0,
int  parameterIndex = -1 
)

Constructor.

Definition at line 26 of file Tempus_WrapperModelEvaluatorPairPartIMEX_Basic_impl.hpp.

◆ ~WrapperModelEvaluatorPairPartIMEX_Basic()

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

Destructor.

Definition at line 53 of file Tempus_WrapperModelEvaluatorPairPartIMEX_Basic_decl.hpp.

Member Function Documentation

◆ initialize()

template<typename Scalar >
void Tempus::WrapperModelEvaluatorPairPartIMEX_Basic< Scalar >::initialize
virtual

◆ setAppModel()

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

Set the underlying application ModelEvaluator.

Implements Tempus::WrapperModelEvaluator< Scalar >.

Definition at line 102 of file Tempus_WrapperModelEvaluatorPairPartIMEX_Basic_impl.hpp.

◆ getAppModel()

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

Get the underlying application ModelEvaluator.

Implements Tempus::WrapperModelEvaluator< Scalar >.

Definition at line 114 of file Tempus_WrapperModelEvaluatorPairPartIMEX_Basic_impl.hpp.

◆ setInArgs()

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

Set InArgs the wrapper ModelEvalutor.

Implements Tempus::WrapperModelEvaluator< Scalar >.

Definition at line 66 of file Tempus_WrapperModelEvaluatorPairPartIMEX_Basic_decl.hpp.

◆ getInArgs()

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

Get InArgs the wrapper ModelEvalutor.

Implements Tempus::WrapperModelEvaluator< Scalar >.

Definition at line 70 of file Tempus_WrapperModelEvaluatorPairPartIMEX_Basic_decl.hpp.

◆ setOutArgs()

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

Set OutArgs the wrapper ModelEvalutor.

Implements Tempus::WrapperModelEvaluator< Scalar >.

Definition at line 74 of file Tempus_WrapperModelEvaluatorPairPartIMEX_Basic_decl.hpp.

◆ getOutArgs()

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

Get OutArgs the wrapper ModelEvalutor.

Implements Tempus::WrapperModelEvaluator< Scalar >.

Definition at line 78 of file Tempus_WrapperModelEvaluatorPairPartIMEX_Basic_decl.hpp.

◆ setForSolve()

template<typename Scalar >
virtual void Tempus::WrapperModelEvaluatorPairPartIMEX_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 82 of file Tempus_WrapperModelEvaluatorPairPartIMEX_Basic_decl.hpp.

◆ get_x_space()

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

Get the x-solution space.

Implements Tempus::WrapperModelEvaluatorPairIMEX< Scalar >.

Definition at line 126 of file Tempus_WrapperModelEvaluatorPairPartIMEX_Basic_impl.hpp.

◆ get_g_space()

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

◆ get_p_space()

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

◆ setNumExplicitOnlyBlocks()

template<typename Scalar >
virtual void Tempus::WrapperModelEvaluatorPairPartIMEX_Basic< Scalar >::setNumExplicitOnlyBlocks ( int  numExp)
inlinevirtual

◆ setExplicitModel()

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

◆ setImplicitModel()

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

◆ getExplicitModel()

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

◆ getImplicitModel()

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

◆ getNumExplicitOnlyBlocks()

template<typename Scalar >
virtual int Tempus::WrapperModelEvaluatorPairPartIMEX_Basic< Scalar >::getNumExplicitOnlyBlocks ( ) const
inlinevirtual

◆ getIMEXVector() [1/2]

template<typename Scalar >
Teuchos::RCP< Thyra::VectorBase< Scalar > > Tempus::WrapperModelEvaluatorPairPartIMEX_Basic< Scalar >::getIMEXVector ( const Teuchos::RCP< Thyra::VectorBase< Scalar > > &  full) const
virtual

◆ getIMEXVector() [2/2]

template<typename Scalar >
Teuchos::RCP< const Thyra::VectorBase< Scalar > > Tempus::WrapperModelEvaluatorPairPartIMEX_Basic< Scalar >::getIMEXVector ( const Teuchos::RCP< const Thyra::VectorBase< Scalar > > &  full) const
virtual

◆ getExplicitOnlyVector() [1/2]

template<typename Scalar >
Teuchos::RCP< Thyra::VectorBase< Scalar > > Tempus::WrapperModelEvaluatorPairPartIMEX_Basic< Scalar >::getExplicitOnlyVector ( const Teuchos::RCP< Thyra::VectorBase< Scalar > > &  full) const
virtual

◆ getExplicitOnlyVector() [2/2]

template<typename Scalar >
Teuchos::RCP< const Thyra::VectorBase< Scalar > > Tempus::WrapperModelEvaluatorPairPartIMEX_Basic< Scalar >::getExplicitOnlyVector ( const Teuchos::RCP< const Thyra::VectorBase< Scalar > > &  full) const
virtual

◆ setParameterIndex()

template<typename Scalar >
void Tempus::WrapperModelEvaluatorPairPartIMEX_Basic< Scalar >::setParameterIndex ( int  parameterIndex = -1)
virtual

Set the parameter index for explicit-only vector.

Definition at line 314 of file Tempus_WrapperModelEvaluatorPairPartIMEX_Basic_impl.hpp.

◆ getParameterIndex()

template<typename Scalar >
virtual int Tempus::WrapperModelEvaluatorPairPartIMEX_Basic< Scalar >::getParameterIndex ( ) const
inlinevirtual

Get the parameter index for explicit-only vector.

Definition at line 144 of file Tempus_WrapperModelEvaluatorPairPartIMEX_Basic_decl.hpp.

◆ setUseImplicitModel()

template<typename Scalar >
virtual void Tempus::WrapperModelEvaluatorPairPartIMEX_Basic< Scalar >::setUseImplicitModel ( bool  tf)
inlinevirtual

Set parameter to switch wrapperME base functions between explicit and implicit functions.

Definition at line 147 of file Tempus_WrapperModelEvaluatorPairPartIMEX_Basic_decl.hpp.

◆ getUseImplicitModel()

template<typename Scalar >
virtual bool Tempus::WrapperModelEvaluatorPairPartIMEX_Basic< Scalar >::getUseImplicitModel ( ) const
inlinevirtual

Get parameter to switch wrapperME base functions between explicit and implicit functions.

Definition at line 149 of file Tempus_WrapperModelEvaluatorPairPartIMEX_Basic_decl.hpp.

◆ create_W_op()

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

◆ get_W_factory()

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

◆ get_f_space()

template<typename Scalar >
Teuchos::RCP< const Thyra::VectorSpaceBase< Scalar > > Tempus::WrapperModelEvaluatorPairPartIMEX_Basic< Scalar >::get_f_space
virtual

◆ getNominalValues()

template<typename Scalar >
Thyra::ModelEvaluatorBase::InArgs< Scalar > Tempus::WrapperModelEvaluatorPairPartIMEX_Basic< Scalar >::getNominalValues
virtual

◆ createInArgs()

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

◆ createOutArgsImpl()

template<typename Scalar >
Thyra::ModelEvaluatorBase::OutArgs< Scalar > Tempus::WrapperModelEvaluatorPairPartIMEX_Basic< Scalar >::createOutArgsImpl
virtual

◆ evalModelImpl()

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

◆ setup()

template<typename Scalar >
void Tempus::WrapperModelEvaluatorPairPartIMEX_Basic< Scalar >::setup ( const Teuchos::RCP< const Thyra::ModelEvaluator< Scalar > > &  explicitModel,
const Teuchos::RCP< const Thyra::ModelEvaluator< Scalar > > &  implicitModel,
int  numExplicitOnlyBlocks = 0,
int  parameterIndex = -1 
)
protected

Setup ME when using default constructor – for derived classes.

Definition at line 42 of file Tempus_WrapperModelEvaluatorPairPartIMEX_Basic_impl.hpp.

Member Data Documentation

◆ explicitModel_

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

◆ implicitModel_

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

◆ timeDer_

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

◆ wrapperImplicitInArgs_

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

◆ wrapperImplicitOutArgs_

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

◆ numExplicitOnlyBlocks_

template<typename Scalar >
int Tempus::WrapperModelEvaluatorPairPartIMEX_Basic< Scalar >::numExplicitOnlyBlocks_
protected

◆ parameterIndex_

template<typename Scalar >
int Tempus::WrapperModelEvaluatorPairPartIMEX_Basic< Scalar >::parameterIndex_
protected

implicit parameter index for explicit-only vector

Definition at line 188 of file Tempus_WrapperModelEvaluatorPairPartIMEX_Basic_decl.hpp.

◆ useImplicitModel_

template<typename Scalar >
bool Tempus::WrapperModelEvaluatorPairPartIMEX_Basic< Scalar >::useImplicitModel_
protected

if true, use implicitModel_ else explicitModel_

Definition at line 189 of file Tempus_WrapperModelEvaluatorPairPartIMEX_Basic_decl.hpp.


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