Tempus  Version of the Day
Time Integration
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Macros Pages
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. More...
 
 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. More...
 
virtual ~WrapperModelEvaluatorPairPartIMEX_Basic ()
 Destructor. More...
 
virtual void initialize ()
 Initialize after setting member data. More...
 
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 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. More...
 
virtual Teuchos::RCP< const
Thyra::VectorBase< Scalar > > 
getIMEXVector (const Teuchos::RCP< const Thyra::VectorBase< Scalar > > &full) const
 Extract IMEX vector for reading. More...
 
virtual Teuchos::RCP
< Thyra::VectorBase< Scalar > > 
getExplicitOnlyVector (const Teuchos::RCP< Thyra::VectorBase< Scalar > > &full) const
 Extract explicit-only vector from a full solution vector. More...
 
virtual Teuchos::RCP< const
Thyra::VectorBase< Scalar > > 
getExplicitOnlyVector (const Teuchos::RCP< const Thyra::VectorBase< Scalar > > &full) const
 Extract explicit-only vector for reading. More...
 
virtual void setParameterIndex (int parameterIndex=-1)
 Set the parameter index for explicit-only vector. More...
 
virtual int getParameterIndex () const
 Get the parameter index for explicit-only vector. More...
 
virtual void setUseImplicitModel (bool tf)
 Set parameter to switch wrapperME base functions between explicit and implicit functions. More...
 
virtual bool getUseImplicitModel () const
 Get parameter to switch wrapperME base functions between explicit and implicit functions. More...
 
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
 
Vector Methods.
Overridden from Thyra::StateFuncModelEvaluatorBase
Vector Methods.

Protected Member Functions

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. 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_
 
int numExplicitOnlyBlocks_
 
int parameterIndex_
 
bool useImplicitModel_
 

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 37 of file Tempus_WrapperModelEvaluatorPairPartIMEX_Basic_decl.hpp.

Constructor & Destructor Documentation

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

Definition at line 20 of file Tempus_WrapperModelEvaluatorPairPartIMEX_Basic_impl.hpp.

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 27 of file Tempus_WrapperModelEvaluatorPairPartIMEX_Basic_impl.hpp.

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

Destructor.

Definition at line 52 of file Tempus_WrapperModelEvaluatorPairPartIMEX_Basic_decl.hpp.

Member Function Documentation

template<typename Scalar >
virtual Teuchos::RCP<Thyra::LinearOpBase<Scalar> > Tempus::WrapperModelEvaluatorPairPartIMEX_Basic< Scalar >::create_W_op ( ) const
inlinevirtual
template<typename Scalar >
Thyra::ModelEvaluatorBase::OutArgs< Scalar > Tempus::WrapperModelEvaluatorPairPartIMEX_Basic< Scalar >::createOutArgsImpl ( ) const
virtual
template<typename Scalar >
void Tempus::WrapperModelEvaluatorPairPartIMEX_Basic< Scalar >::evalModelImpl ( const Thyra::ModelEvaluatorBase::InArgs< Scalar > &  in,
const Thyra::ModelEvaluatorBase::OutArgs< Scalar > &  out 
) const
virtual
template<typename Scalar >
Teuchos::RCP< const Thyra::VectorSpaceBase< Scalar > > Tempus::WrapperModelEvaluatorPairPartIMEX_Basic< Scalar >::get_f_space ( ) const
virtual
template<typename Scalar >
Teuchos::RCP< const Thyra::VectorSpaceBase< Scalar > > Tempus::WrapperModelEvaluatorPairPartIMEX_Basic< Scalar >::get_g_space ( int  i) const
virtual
template<typename Scalar >
Teuchos::RCP< const Thyra::VectorSpaceBase< Scalar > > Tempus::WrapperModelEvaluatorPairPartIMEX_Basic< Scalar >::get_p_space ( int  i) const
virtual
template<typename Scalar >
Teuchos::RCP<const Thyra::LinearOpWithSolveFactoryBase<Scalar> > Tempus::WrapperModelEvaluatorPairPartIMEX_Basic< Scalar >::get_W_factory ( ) const
inlinevirtual
template<typename Scalar >
Teuchos::RCP< const Thyra::VectorSpaceBase< Scalar > > Tempus::WrapperModelEvaluatorPairPartIMEX_Basic< Scalar >::get_x_space ( ) const
virtual

Get the x-solution space.

Implements Tempus::WrapperModelEvaluatorPairIMEX< Scalar >.

Definition at line 127 of file Tempus_WrapperModelEvaluatorPairPartIMEX_Basic_impl.hpp.

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 115 of file Tempus_WrapperModelEvaluatorPairPartIMEX_Basic_impl.hpp.

template<typename Scalar >
virtual Teuchos::RCP<const Thyra::ModelEvaluator<Scalar> > Tempus::WrapperModelEvaluatorPairPartIMEX_Basic< Scalar >::getExplicitModel ( ) const
inlinevirtual
template<typename Scalar >
Teuchos::RCP< Thyra::VectorBase< Scalar > > Tempus::WrapperModelEvaluatorPairPartIMEX_Basic< Scalar >::getExplicitOnlyVector ( const Teuchos::RCP< Thyra::VectorBase< Scalar > > &  full) const
virtual
template<typename Scalar >
Teuchos::RCP< const Thyra::VectorBase< Scalar > > Tempus::WrapperModelEvaluatorPairPartIMEX_Basic< Scalar >::getExplicitOnlyVector ( const Teuchos::RCP< const Thyra::VectorBase< Scalar > > &  full) const
virtual
template<typename Scalar >
Teuchos::RCP< Thyra::VectorBase< Scalar > > Tempus::WrapperModelEvaluatorPairPartIMEX_Basic< Scalar >::getIMEXVector ( const Teuchos::RCP< Thyra::VectorBase< Scalar > > &  full) const
virtual
template<typename Scalar >
Teuchos::RCP< const Thyra::VectorBase< Scalar > > Tempus::WrapperModelEvaluatorPairPartIMEX_Basic< Scalar >::getIMEXVector ( const Teuchos::RCP< const Thyra::VectorBase< Scalar > > &  full) const
virtual
template<typename Scalar >
virtual Teuchos::RCP<const Thyra::ModelEvaluator<Scalar> > Tempus::WrapperModelEvaluatorPairPartIMEX_Basic< Scalar >::getImplicitModel ( ) const
inlinevirtual
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 69 of file Tempus_WrapperModelEvaluatorPairPartIMEX_Basic_decl.hpp.

template<typename Scalar >
Thyra::ModelEvaluatorBase::InArgs< Scalar > Tempus::WrapperModelEvaluatorPairPartIMEX_Basic< Scalar >::getNominalValues ( ) const
virtual
template<typename Scalar >
virtual int Tempus::WrapperModelEvaluatorPairPartIMEX_Basic< Scalar >::getNumExplicitOnlyBlocks ( ) const
inlinevirtual
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 77 of file Tempus_WrapperModelEvaluatorPairPartIMEX_Basic_decl.hpp.

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

Get the parameter index for explicit-only vector.

Definition at line 143 of file Tempus_WrapperModelEvaluatorPairPartIMEX_Basic_decl.hpp.

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 148 of file Tempus_WrapperModelEvaluatorPairPartIMEX_Basic_decl.hpp.

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 103 of file Tempus_WrapperModelEvaluatorPairPartIMEX_Basic_impl.hpp.

template<typename Scalar >
virtual void Tempus::WrapperModelEvaluatorPairPartIMEX_Basic< Scalar >::setExplicitModel ( const Teuchos::RCP< const Thyra::ModelEvaluator< Scalar > > &  model)
inlinevirtual
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 81 of file Tempus_WrapperModelEvaluatorPairPartIMEX_Basic_decl.hpp.

template<typename Scalar >
void Tempus::WrapperModelEvaluatorPairPartIMEX_Basic< Scalar >::setImplicitModel ( const Teuchos::RCP< const Thyra::ModelEvaluator< Scalar > > &  model)
virtual
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 65 of file Tempus_WrapperModelEvaluatorPairPartIMEX_Basic_decl.hpp.

template<typename Scalar >
virtual void Tempus::WrapperModelEvaluatorPairPartIMEX_Basic< Scalar >::setNumExplicitOnlyBlocks ( int  numExp)
inlinevirtual
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 73 of file Tempus_WrapperModelEvaluatorPairPartIMEX_Basic_decl.hpp.

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

Set the parameter index for explicit-only vector.

Definition at line 315 of file Tempus_WrapperModelEvaluatorPairPartIMEX_Basic_impl.hpp.

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 43 of file Tempus_WrapperModelEvaluatorPairPartIMEX_Basic_impl.hpp.

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 146 of file Tempus_WrapperModelEvaluatorPairPartIMEX_Basic_decl.hpp.

Member Data Documentation

template<typename Scalar >
Teuchos::RCP<const Thyra::ModelEvaluator<Scalar> > Tempus::WrapperModelEvaluatorPairPartIMEX_Basic< Scalar >::explicitModel_
protected
template<typename Scalar >
Teuchos::RCP<const Thyra::ModelEvaluator<Scalar> > Tempus::WrapperModelEvaluatorPairPartIMEX_Basic< Scalar >::implicitModel_
protected
template<typename Scalar >
int Tempus::WrapperModelEvaluatorPairPartIMEX_Basic< Scalar >::numExplicitOnlyBlocks_
protected
template<typename Scalar >
int Tempus::WrapperModelEvaluatorPairPartIMEX_Basic< Scalar >::parameterIndex_
protected
template<typename Scalar >
Teuchos::RCP<TimeDerivative<Scalar> > Tempus::WrapperModelEvaluatorPairPartIMEX_Basic< Scalar >::timeDer_
protected
template<typename Scalar >
bool Tempus::WrapperModelEvaluatorPairPartIMEX_Basic< Scalar >::useImplicitModel_
protected
template<typename Scalar >
Thyra::ModelEvaluatorBase::InArgs<Scalar> Tempus::WrapperModelEvaluatorPairPartIMEX_Basic< Scalar >::wrapperImplicitInArgs_
protected
template<typename Scalar >
Thyra::ModelEvaluatorBase::OutArgs<Scalar> Tempus::WrapperModelEvaluatorPairPartIMEX_Basic< Scalar >::wrapperImplicitOutArgs_
protected

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