Tempus Version of the Day
Time Integration
Loading...
Searching...
No Matches
Tempus_WrapperModelEvaluatorPairIMEX.hpp
Go to the documentation of this file.
1//@HEADER
2// *****************************************************************************
3// Tempus: Time Integration and Sensitivity Analysis Package
4//
5// Copyright 2017 NTESS and the Tempus contributors.
6// SPDX-License-Identifier: BSD-3-Clause
7// *****************************************************************************
8//@HEADER
9
10#ifndef Tempus_ModelEvaluatorPairIMEX_hpp
11#define Tempus_ModelEvaluatorPairIMEX_hpp
12
13#include "Tempus_config.hpp"
15
16namespace Tempus {
17
25template <typename Scalar>
27 : public Tempus::WrapperModelEvaluator<Scalar> {
28 public:
30 virtual void initialize() = 0;
31
33
34 virtual Teuchos::RCP<const Thyra::VectorSpaceBase<Scalar> > get_x_space()
35 const = 0;
36
37 virtual Teuchos::RCP<const Thyra::VectorSpaceBase<Scalar> > get_f_space()
38 const = 0;
39
40 virtual Teuchos::RCP<const Thyra::VectorSpaceBase<Scalar> > get_g_space(
41 int i) const = 0;
42
43 virtual Teuchos::RCP<const Thyra::VectorSpaceBase<Scalar> > get_p_space(
44 int i) const = 0;
46
48 virtual void setExplicitModel(
49 const Teuchos::RCP<const Thyra::ModelEvaluator<Scalar> >&) = 0;
50 virtual void setImplicitModel(
51 const Teuchos::RCP<const Thyra::ModelEvaluator<Scalar> >&) = 0;
52 virtual Teuchos::RCP<const Thyra::ModelEvaluator<Scalar> > getExplicitModel()
53 const = 0;
54 virtual Teuchos::RCP<const Thyra::ModelEvaluator<Scalar> > getImplicitModel()
55 const = 0;
57
59
60 virtual Teuchos::RCP<Thyra::LinearOpBase<Scalar> > create_W_op() const = 0;
61
62 Teuchos::RCP<const Thyra::LinearOpWithSolveFactoryBase<Scalar> >
63 get_W_factory() const = 0;
64
65 virtual Thyra::ModelEvaluatorBase::InArgs<Scalar> getNominalValues()
66 const = 0;
67
68 virtual Thyra::ModelEvaluatorBase::InArgs<Scalar> createInArgs() const = 0;
69
70 virtual Thyra::ModelEvaluatorBase::OutArgs<Scalar> createOutArgsImpl()
71 const = 0;
72
73 virtual void evalModelImpl(
74 const Thyra::ModelEvaluatorBase::InArgs<Scalar>& in,
75 const Thyra::ModelEvaluatorBase::OutArgs<Scalar>& out) const = 0;
77};
78
79} // namespace Tempus
80
81#endif // Tempus_ModelEvaluatorPairIMEX_hpp
ModelEvaluator pair for implicit and explicit (IMEX) evaluations.
virtual Teuchos::RCP< const Thyra::VectorSpaceBase< Scalar > > get_g_space(int i) const =0
Get the g space.
virtual Teuchos::RCP< Thyra::LinearOpBase< Scalar > > create_W_op() const =0
virtual void setImplicitModel(const Teuchos::RCP< const Thyra::ModelEvaluator< Scalar > > &)=0
virtual Teuchos::RCP< const Thyra::ModelEvaluator< Scalar > > getImplicitModel() const =0
virtual Teuchos::RCP< const Thyra::ModelEvaluator< Scalar > > getExplicitModel() const =0
virtual void initialize()=0
Initialize after setting member data.
virtual Thyra::ModelEvaluatorBase::InArgs< Scalar > createInArgs() const =0
virtual void setExplicitModel(const Teuchos::RCP< const Thyra::ModelEvaluator< Scalar > > &)=0
virtual Teuchos::RCP< const Thyra::VectorSpaceBase< Scalar > > get_p_space(int i) const =0
Get the p space.
virtual Thyra::ModelEvaluatorBase::OutArgs< Scalar > createOutArgsImpl() const =0
virtual void evalModelImpl(const Thyra::ModelEvaluatorBase::InArgs< Scalar > &in, const Thyra::ModelEvaluatorBase::OutArgs< Scalar > &out) const =0
virtual Teuchos::RCP< const Thyra::VectorSpaceBase< Scalar > > get_x_space() const =0
Get the x-solution space.
virtual Teuchos::RCP< const Thyra::VectorSpaceBase< Scalar > > get_f_space() const =0
Teuchos::RCP< const Thyra::LinearOpWithSolveFactoryBase< Scalar > > get_W_factory() const =0
virtual Thyra::ModelEvaluatorBase::InArgs< Scalar > getNominalValues() const =0
A ModelEvaluator which wraps the application ModelEvaluator.