Tempus
Version of the Day
Time Integration
Toggle main menu visibility
Loading...
Searching...
No Matches
test
TestModels
VanDerPol_IMEX_ExplicitModel_decl.hpp
Go to the documentation of this file.
1
// @HEADER
2
// ****************************************************************************
3
// Tempus: Copyright (2017) Sandia Corporation
4
//
5
// Distributed under BSD 3-clause license (See accompanying file Copyright.txt)
6
// ****************************************************************************
7
// @HEADER
8
9
#ifndef TEMPUS_TEST_VANDERPOL_IMEX_EXPLICITMODEL_DECL_HPP
10
#define TEMPUS_TEST_VANDERPOL_IMEX_EXPLICITMODEL_DECL_HPP
11
12
#include "Thyra_ModelEvaluator.hpp"
// Interface
13
#include "Thyra_StateFuncModelEvaluatorBase.hpp"
// Implementation
14
15
#include "Teuchos_ParameterListAcceptorDefaultBase.hpp"
16
#include "Teuchos_ParameterList.hpp"
17
18
namespace
Tempus_Test
{
19
105
106
template
<
class
Scalar>
107
class
VanDerPol_IMEX_ExplicitModel
108
:
public
Thyra::StateFuncModelEvaluatorBase<Scalar>,
109
public
Teuchos::ParameterListAcceptorDefaultBase
110
{
111
public
:
112
113
// Constructor
114
VanDerPol_IMEX_ExplicitModel
(
115
Teuchos::RCP<Teuchos::ParameterList> pList = Teuchos::null,
116
bool
useProductVector =
false
);
117
120
Teuchos::RCP<const Thyra::VectorSpaceBase<Scalar> >
get_x_space
()
const
;
121
Teuchos::RCP<const Thyra::VectorSpaceBase<Scalar> >
get_f_space
()
const
;
122
Thyra::ModelEvaluatorBase::InArgs<Scalar>
getNominalValues
()
const
;
123
Teuchos::RCP<Thyra::LinearOpBase<Scalar> >
create_W_op
()
const
;
124
Thyra::ModelEvaluatorBase::InArgs<Scalar>
createInArgs
()
const
;
125
126
Teuchos::RCP<const Thyra::VectorSpaceBase<Scalar> >
get_p_space
(
int
l)
const
;
127
Teuchos::RCP<const Teuchos::Array<std::string> >
get_p_names
(
int
l)
const
;
128
Teuchos::RCP<const Thyra::VectorSpaceBase<Scalar> >
get_g_space
(
int
j)
const
;
130
133
void
setParameterList
(Teuchos::RCP<Teuchos::ParameterList>
const
& paramList);
134
Teuchos::RCP<const Teuchos::ParameterList>
getValidParameters
()
const
;
136
137
private
:
138
139
void
setupInOutArgs_
()
const
;
140
143
Thyra::ModelEvaluatorBase::OutArgs<Scalar>
createOutArgsImpl
()
const
;
144
void
evalModelImpl
(
145
const
Thyra::ModelEvaluatorBase::InArgs<Scalar> &inArgs_bar,
146
const
Thyra::ModelEvaluatorBase::OutArgs<Scalar> &outArgs_bar
147
)
const
;
149
150
bool
useProductVector_
;
151
int
dim_
;
152
int
Np_
;
153
int
np_
;
154
int
Ng_
;
155
int
ng_
;
156
bool
haveIC_
;
157
bool
acceptModelParams_
;
158
bool
useDfDpAsTangent_
;
159
mutable
bool
isInitialized_
;
160
mutable
Thyra::ModelEvaluatorBase::InArgs<Scalar>
inArgs_
;
161
mutable
Thyra::ModelEvaluatorBase::OutArgs<Scalar>
outArgs_
;
162
mutable
Thyra::ModelEvaluatorBase::InArgs<Scalar>
nominalValues_
;
163
Teuchos::RCP<const Thyra::VectorSpaceBase<Scalar> >
xSpace_
;
164
Teuchos::RCP<const Thyra::VectorSpaceBase<Scalar> >
x_space_
;
165
Teuchos::RCP<const Thyra::VectorSpaceBase<Scalar> >
f_space_
;
166
Teuchos::RCP<const Thyra::VectorSpaceBase<Scalar> >
p_space_
;
167
Teuchos::RCP<const Thyra::VectorSpaceBase<Scalar> >
dxdp_space_
;
168
Teuchos::RCP<const Thyra::VectorSpaceBase<Scalar> >
g_space_
;
169
170
// Parameters for the model:
171
Scalar
epsilon_
;
172
Scalar
t0_ic_
;
173
Scalar
x0_ic_
;
174
Scalar
x1_ic_
;
175
};
176
177
178
}
// namespace Tempus_Test
179
#endif
// TEMPUS_TEST_VANDERPOL_IMEX_EXPLICITMODEL_DECL_HPP
Tempus_Test::VanDerPol_IMEX_ExplicitModel::epsilon_
Scalar epsilon_
This is a model parameter.
Definition
VanDerPol_IMEX_ExplicitModel_decl.hpp:171
Tempus_Test::VanDerPol_IMEX_ExplicitModel::isInitialized_
bool isInitialized_
Definition
VanDerPol_IMEX_ExplicitModel_decl.hpp:159
Tempus_Test::VanDerPol_IMEX_ExplicitModel::xSpace_
Teuchos::RCP< const Thyra::VectorSpaceBase< Scalar > > xSpace_
Definition
VanDerPol_IMEX_ExplicitModel_decl.hpp:163
Tempus_Test::VanDerPol_IMEX_ExplicitModel::x1_ic_
Scalar x1_ic_
initial condition for x1
Definition
VanDerPol_IMEX_ExplicitModel_decl.hpp:174
Tempus_Test::VanDerPol_IMEX_ExplicitModel::g_space_
Teuchos::RCP< const Thyra::VectorSpaceBase< Scalar > > g_space_
Definition
VanDerPol_IMEX_ExplicitModel_decl.hpp:168
Tempus_Test::VanDerPol_IMEX_ExplicitModel::getValidParameters
Teuchos::RCP< const Teuchos::ParameterList > getValidParameters() const
Definition
VanDerPol_IMEX_ExplicitModel_impl.hpp:250
Tempus_Test::VanDerPol_IMEX_ExplicitModel::create_W_op
Teuchos::RCP< Thyra::LinearOpBase< Scalar > > create_W_op() const
Definition
VanDerPol_IMEX_ExplicitModel_impl.hpp:102
Tempus_Test::VanDerPol_IMEX_ExplicitModel::inArgs_
Thyra::ModelEvaluatorBase::InArgs< Scalar > inArgs_
Definition
VanDerPol_IMEX_ExplicitModel_decl.hpp:160
Tempus_Test::VanDerPol_IMEX_ExplicitModel::Ng_
int Ng_
Number of observation functions (0).
Definition
VanDerPol_IMEX_ExplicitModel_decl.hpp:154
Tempus_Test::VanDerPol_IMEX_ExplicitModel::haveIC_
bool haveIC_
false => no nominal values are provided (default=true)
Definition
VanDerPol_IMEX_ExplicitModel_decl.hpp:156
Tempus_Test::VanDerPol_IMEX_ExplicitModel::f_space_
Teuchos::RCP< const Thyra::VectorSpaceBase< Scalar > > f_space_
Definition
VanDerPol_IMEX_ExplicitModel_decl.hpp:165
Tempus_Test::VanDerPol_IMEX_ExplicitModel::setParameterList
void setParameterList(Teuchos::RCP< Teuchos::ParameterList > const ¶mList)
Definition
VanDerPol_IMEX_ExplicitModel_impl.hpp:220
Tempus_Test::VanDerPol_IMEX_ExplicitModel::evalModelImpl
void evalModelImpl(const Thyra::ModelEvaluatorBase::InArgs< Scalar > &inArgs_bar, const Thyra::ModelEvaluatorBase::OutArgs< Scalar > &outArgs_bar) const
Definition
VanDerPol_IMEX_ExplicitModel_impl.hpp:319
Tempus_Test::VanDerPol_IMEX_ExplicitModel::get_p_names
Teuchos::RCP< const Teuchos::Array< std::string > > get_p_names(int l) const
Definition
VanDerPol_IMEX_ExplicitModel_impl.hpp:290
Tempus_Test::VanDerPol_IMEX_ExplicitModel::get_g_space
Teuchos::RCP< const Thyra::VectorSpaceBase< Scalar > > get_g_space(int j) const
Definition
VanDerPol_IMEX_ExplicitModel_impl.hpp:310
Tempus_Test::VanDerPol_IMEX_ExplicitModel::t0_ic_
Scalar t0_ic_
initial time
Definition
VanDerPol_IMEX_ExplicitModel_decl.hpp:172
Tempus_Test::VanDerPol_IMEX_ExplicitModel::setupInOutArgs_
void setupInOutArgs_() const
Definition
VanDerPol_IMEX_ExplicitModel_impl.hpp:147
Tempus_Test::VanDerPol_IMEX_ExplicitModel::dxdp_space_
Teuchos::RCP< const Thyra::VectorSpaceBase< Scalar > > dxdp_space_
Definition
VanDerPol_IMEX_ExplicitModel_decl.hpp:167
Tempus_Test::VanDerPol_IMEX_ExplicitModel::get_x_space
Teuchos::RCP< const Thyra::VectorSpaceBase< Scalar > > get_x_space() const
Definition
VanDerPol_IMEX_ExplicitModel_impl.hpp:73
Tempus_Test::VanDerPol_IMEX_ExplicitModel::createOutArgsImpl
Thyra::ModelEvaluatorBase::OutArgs< Scalar > createOutArgsImpl() const
Definition
VanDerPol_IMEX_ExplicitModel_impl.hpp:137
Tempus_Test::VanDerPol_IMEX_ExplicitModel::np_
int np_
Number of parameters in this vector (1).
Definition
VanDerPol_IMEX_ExplicitModel_decl.hpp:153
Tempus_Test::VanDerPol_IMEX_ExplicitModel::nominalValues_
Thyra::ModelEvaluatorBase::InArgs< Scalar > nominalValues_
Definition
VanDerPol_IMEX_ExplicitModel_decl.hpp:162
Tempus_Test::VanDerPol_IMEX_ExplicitModel::get_f_space
Teuchos::RCP< const Thyra::VectorSpaceBase< Scalar > > get_f_space() const
Definition
VanDerPol_IMEX_ExplicitModel_impl.hpp:82
Tempus_Test::VanDerPol_IMEX_ExplicitModel::useProductVector_
bool useProductVector_
Definition
VanDerPol_IMEX_ExplicitModel_decl.hpp:150
Tempus_Test::VanDerPol_IMEX_ExplicitModel::Np_
int Np_
Number of parameter vectors (1).
Definition
VanDerPol_IMEX_ExplicitModel_decl.hpp:152
Tempus_Test::VanDerPol_IMEX_ExplicitModel::VanDerPol_IMEX_ExplicitModel
VanDerPol_IMEX_ExplicitModel(Teuchos::RCP< Teuchos::ParameterList > pList=Teuchos::null, bool useProductVector=false)
Definition
VanDerPol_IMEX_ExplicitModel_impl.hpp:32
Tempus_Test::VanDerPol_IMEX_ExplicitModel::createInArgs
Thyra::ModelEvaluatorBase::InArgs< Scalar > createInArgs() const
Definition
VanDerPol_IMEX_ExplicitModel_impl.hpp:127
Tempus_Test::VanDerPol_IMEX_ExplicitModel::acceptModelParams_
bool acceptModelParams_
Changes inArgs to require parameters.
Definition
VanDerPol_IMEX_ExplicitModel_decl.hpp:157
Tempus_Test::VanDerPol_IMEX_ExplicitModel::outArgs_
Thyra::ModelEvaluatorBase::OutArgs< Scalar > outArgs_
Definition
VanDerPol_IMEX_ExplicitModel_decl.hpp:161
Tempus_Test::VanDerPol_IMEX_ExplicitModel::x_space_
Teuchos::RCP< const Thyra::VectorSpaceBase< Scalar > > x_space_
Definition
VanDerPol_IMEX_ExplicitModel_decl.hpp:164
Tempus_Test::VanDerPol_IMEX_ExplicitModel::x0_ic_
Scalar x0_ic_
initial condition for x0
Definition
VanDerPol_IMEX_ExplicitModel_decl.hpp:173
Tempus_Test::VanDerPol_IMEX_ExplicitModel::get_p_space
Teuchos::RCP< const Thyra::VectorSpaceBase< Scalar > > get_p_space(int l) const
Definition
VanDerPol_IMEX_ExplicitModel_impl.hpp:274
Tempus_Test::VanDerPol_IMEX_ExplicitModel::getNominalValues
Thyra::ModelEvaluatorBase::InArgs< Scalar > getNominalValues() const
Definition
VanDerPol_IMEX_ExplicitModel_impl.hpp:91
Tempus_Test::VanDerPol_IMEX_ExplicitModel::ng_
int ng_
Number of elements in this observation function (0).
Definition
VanDerPol_IMEX_ExplicitModel_decl.hpp:155
Tempus_Test::VanDerPol_IMEX_ExplicitModel::dim_
int dim_
Number of state unknowns (2).
Definition
VanDerPol_IMEX_ExplicitModel_decl.hpp:151
Tempus_Test::VanDerPol_IMEX_ExplicitModel::p_space_
Teuchos::RCP< const Thyra::VectorSpaceBase< Scalar > > p_space_
Definition
VanDerPol_IMEX_ExplicitModel_decl.hpp:166
Tempus_Test::VanDerPol_IMEX_ExplicitModel::useDfDpAsTangent_
bool useDfDpAsTangent_
Treat DfDp OutArg as tangent (df/dx*dx/dp+df/dp).
Definition
VanDerPol_IMEX_ExplicitModel_decl.hpp:158
Tempus_Test
Definition
Tempus_BackwardEuler_ASA.cpp:34
Generated by
1.17.0