Tempus
Version of the Day
Time Integration
Toggle main menu visibility
Loading...
Searching...
No Matches
test
TestModels
VanDerPolModel_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_MODEL_DECL_HPP
10
#define TEMPUS_TEST_VANDERPOL_MODEL_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
109
110
template
<
class
Scalar>
111
class
VanDerPolModel
112
:
public
Thyra::StateFuncModelEvaluatorBase<Scalar>,
113
public
Teuchos::ParameterListAcceptorDefaultBase
114
{
115
public
:
116
117
// Constructor
118
VanDerPolModel
(Teuchos::RCP<Teuchos::ParameterList> pList = Teuchos::null);
119
120
// Exact solution
121
Thyra::ModelEvaluatorBase::InArgs<Scalar>
getExactSolution
(
double
t)
const
;
122
123
// Exact sensitivity solution
124
Thyra::ModelEvaluatorBase::InArgs<Scalar>
getExactSensSolution
(
int
j,
double
t)
const
;
125
128
129
Teuchos::RCP<const Thyra::VectorSpaceBase<Scalar> >
get_x_space
()
const
;
130
Teuchos::RCP<const Thyra::VectorSpaceBase<Scalar> >
get_f_space
()
const
;
131
Thyra::ModelEvaluatorBase::InArgs<Scalar>
getNominalValues
()
const
;
132
Teuchos::RCP<Thyra::LinearOpWithSolveBase<Scalar> >
create_W
()
const
;
133
Teuchos::RCP<Thyra::LinearOpBase<Scalar> >
create_W_op
()
const
;
134
Teuchos::RCP<const Thyra::LinearOpWithSolveFactoryBase<Scalar> >
get_W_factory
()
const
;
135
Thyra::ModelEvaluatorBase::InArgs<Scalar>
createInArgs
()
const
;
136
137
Teuchos::RCP<const Thyra::VectorSpaceBase<Scalar> >
get_p_space
(
int
l)
const
;
138
Teuchos::RCP<const Teuchos::Array<std::string> >
get_p_names
(
int
l)
const
;
139
Teuchos::RCP<const Thyra::VectorSpaceBase<Scalar> >
get_g_space
(
int
j)
const
;
140
142
145
void
setParameterList
(Teuchos::RCP<Teuchos::ParameterList>
const
& paramList);
146
Teuchos::RCP<const Teuchos::ParameterList>
getValidParameters
()
const
;
148
149
private
:
150
151
void
setupInOutArgs_
()
const
;
152
155
Thyra::ModelEvaluatorBase::OutArgs<Scalar>
createOutArgsImpl
()
const
;
156
void
evalModelImpl
(
157
const
Thyra::ModelEvaluatorBase::InArgs<Scalar> &inArgs_bar,
158
const
Thyra::ModelEvaluatorBase::OutArgs<Scalar> &outArgs_bar
159
)
const
;
161
162
int
dim_
;
163
int
Np_
;
164
int
np_
;
165
int
Ng_
;
166
int
ng_
;
167
bool
haveIC_
;
168
bool
acceptModelParams_
;
169
mutable
bool
isInitialized_
;
170
mutable
Thyra::ModelEvaluatorBase::InArgs<Scalar>
inArgs_
;
171
mutable
Thyra::ModelEvaluatorBase::OutArgs<Scalar>
outArgs_
;
172
mutable
Thyra::ModelEvaluatorBase::InArgs<Scalar>
nominalValues_
;
173
Teuchos::RCP<const Thyra::VectorSpaceBase<Scalar> >
x_space_
;
174
Teuchos::RCP<const Thyra::VectorSpaceBase<Scalar> >
f_space_
;
175
Teuchos::RCP<const Thyra::VectorSpaceBase<Scalar> >
p_space_
;
176
Teuchos::RCP<const Thyra::VectorSpaceBase<Scalar> >
g_space_
;
177
178
// Parameters for the model:
179
Scalar
epsilon_
;
180
Scalar
t0_ic_
;
181
Scalar
x0_ic_
;
182
Scalar
x1_ic_
;
183
};
184
185
186
}
// namespace Tempus_Test
187
#endif
// TEMPUS_TEST_VANDERPOL_MODEL_DECL_HPP
Tempus_Test::VanDerPolModel::x_space_
Teuchos::RCP< const Thyra::VectorSpaceBase< Scalar > > x_space_
Definition
VanDerPolModel_decl.hpp:173
Tempus_Test::VanDerPolModel::Ng_
int Ng_
Number of observation functions (0).
Definition
VanDerPolModel_decl.hpp:165
Tempus_Test::VanDerPolModel::get_p_names
Teuchos::RCP< const Teuchos::Array< std::string > > get_p_names(int l) const
Definition
VanDerPolModel_impl.hpp:298
Tempus_Test::VanDerPolModel::createOutArgsImpl
Thyra::ModelEvaluatorBase::OutArgs< Scalar > createOutArgsImpl() const
Definition
VanDerPolModel_impl.hpp:178
Tempus_Test::VanDerPolModel::g_space_
Teuchos::RCP< const Thyra::VectorSpaceBase< Scalar > > g_space_
Definition
VanDerPolModel_decl.hpp:176
Tempus_Test::VanDerPolModel::dim_
int dim_
Number of state unknowns (2).
Definition
VanDerPolModel_decl.hpp:162
Tempus_Test::VanDerPolModel::outArgs_
Thyra::ModelEvaluatorBase::OutArgs< Scalar > outArgs_
Definition
VanDerPolModel_decl.hpp:171
Tempus_Test::VanDerPolModel::getExactSolution
Thyra::ModelEvaluatorBase::InArgs< Scalar > getExactSolution(double t) const
Definition
VanDerPolModel_impl.hpp:57
Tempus_Test::VanDerPolModel::getExactSensSolution
Thyra::ModelEvaluatorBase::InArgs< Scalar > getExactSensSolution(int j, double t) const
Definition
VanDerPolModel_impl.hpp:67
Tempus_Test::VanDerPolModel::getNominalValues
Thyra::ModelEvaluatorBase::InArgs< Scalar > getNominalValues() const
Definition
VanDerPolModel_impl.hpp:95
Tempus_Test::VanDerPolModel::getValidParameters
Teuchos::RCP< const Teuchos::ParameterList > getValidParameters() const
Definition
VanDerPolModel_impl.hpp:424
Tempus_Test::VanDerPolModel::acceptModelParams_
bool acceptModelParams_
Changes inArgs to require parameters.
Definition
VanDerPolModel_decl.hpp:168
Tempus_Test::VanDerPolModel::t0_ic_
Scalar t0_ic_
initial time
Definition
VanDerPolModel_decl.hpp:180
Tempus_Test::VanDerPolModel::createInArgs
Thyra::ModelEvaluatorBase::InArgs< Scalar > createInArgs() const
Definition
VanDerPolModel_impl.hpp:165
Tempus_Test::VanDerPolModel::evalModelImpl
void evalModelImpl(const Thyra::ModelEvaluatorBase::InArgs< Scalar > &inArgs_bar, const Thyra::ModelEvaluatorBase::OutArgs< Scalar > &outArgs_bar) const
Definition
VanDerPolModel_impl.hpp:188
Tempus_Test::VanDerPolModel::haveIC_
bool haveIC_
false => no nominal values are provided (default=true)
Definition
VanDerPolModel_decl.hpp:167
Tempus_Test::VanDerPolModel::inArgs_
Thyra::ModelEvaluatorBase::InArgs< Scalar > inArgs_
Definition
VanDerPolModel_decl.hpp:170
Tempus_Test::VanDerPolModel::VanDerPolModel
VanDerPolModel(Teuchos::RCP< Teuchos::ParameterList > pList=Teuchos::null)
Definition
VanDerPolModel_impl.hpp:29
Tempus_Test::VanDerPolModel::get_f_space
Teuchos::RCP< const Thyra::VectorSpaceBase< Scalar > > get_f_space() const
Definition
VanDerPolModel_impl.hpp:86
Tempus_Test::VanDerPolModel::get_x_space
Teuchos::RCP< const Thyra::VectorSpaceBase< Scalar > > get_x_space() const
Definition
VanDerPolModel_impl.hpp:77
Tempus_Test::VanDerPolModel::x1_ic_
Scalar x1_ic_
initial condition for x1
Definition
VanDerPolModel_decl.hpp:182
Tempus_Test::VanDerPolModel::get_p_space
Teuchos::RCP< const Thyra::VectorSpaceBase< Scalar > > get_p_space(int l) const
Definition
VanDerPolModel_impl.hpp:286
Tempus_Test::VanDerPolModel::get_g_space
Teuchos::RCP< const Thyra::VectorSpaceBase< Scalar > > get_g_space(int j) const
Definition
VanDerPolModel_impl.hpp:313
Tempus_Test::VanDerPolModel::ng_
int ng_
Number of elements in this observation function (0).
Definition
VanDerPolModel_decl.hpp:166
Tempus_Test::VanDerPolModel::setupInOutArgs_
void setupInOutArgs_() const
Definition
VanDerPolModel_impl.hpp:324
Tempus_Test::VanDerPolModel::x0_ic_
Scalar x0_ic_
initial condition for x0
Definition
VanDerPolModel_decl.hpp:181
Tempus_Test::VanDerPolModel::create_W_op
Teuchos::RCP< Thyra::LinearOpBase< Scalar > > create_W_op() const
Definition
VanDerPolModel_impl.hpp:144
Tempus_Test::VanDerPolModel::create_W
Teuchos::RCP< Thyra::LinearOpWithSolveBase< Scalar > > create_W() const
Definition
VanDerPolModel_impl.hpp:106
Tempus_Test::VanDerPolModel::get_W_factory
Teuchos::RCP< const Thyra::LinearOpWithSolveFactoryBase< Scalar > > get_W_factory() const
Definition
VanDerPolModel_impl.hpp:154
Tempus_Test::VanDerPolModel::Np_
int Np_
Number of parameter vectors (1).
Definition
VanDerPolModel_decl.hpp:163
Tempus_Test::VanDerPolModel::p_space_
Teuchos::RCP< const Thyra::VectorSpaceBase< Scalar > > p_space_
Definition
VanDerPolModel_decl.hpp:175
Tempus_Test::VanDerPolModel::np_
int np_
Number of parameters in this vector (1).
Definition
VanDerPolModel_decl.hpp:164
Tempus_Test::VanDerPolModel::setParameterList
void setParameterList(Teuchos::RCP< Teuchos::ParameterList > const ¶mList)
Definition
VanDerPolModel_impl.hpp:396
Tempus_Test::VanDerPolModel::f_space_
Teuchos::RCP< const Thyra::VectorSpaceBase< Scalar > > f_space_
Definition
VanDerPolModel_decl.hpp:174
Tempus_Test::VanDerPolModel::isInitialized_
bool isInitialized_
Definition
VanDerPolModel_decl.hpp:169
Tempus_Test::VanDerPolModel::nominalValues_
Thyra::ModelEvaluatorBase::InArgs< Scalar > nominalValues_
Definition
VanDerPolModel_decl.hpp:172
Tempus_Test::VanDerPolModel::epsilon_
Scalar epsilon_
This is a model parameter.
Definition
VanDerPolModel_decl.hpp:179
Tempus_Test
Definition
Tempus_BackwardEuler_ASA.cpp:34
Generated by
1.17.0