Thyra
Version of the Day
Toggle main menu visibility
Loading...
Searching...
No Matches
core
test
nonlinear
models
Thyra_DummyTestModelEvaluator_decl.hpp
1
// @HEADER
2
// *****************************************************************************
3
// Thyra: Interfaces and Support for Abstract Numerical Algorithms
4
//
5
// Copyright 2004 NTESS and the Thyra contributors.
6
// SPDX-License-Identifier: BSD-3-Clause
7
// *****************************************************************************
8
// @HEADER
9
10
#ifndef DUMMY_TEST_MODEL_EVALUATOR_DECL_HPP
11
#define DUMMY_TEST_MODEL_EVALUATOR_DECL_HPP
12
13
14
#include "Thyra_ModelEvaluatorDefaultBase.hpp"
15
16
17
namespace
Thyra {
18
19
// Mock Extended InArgs and OutArgs Objects. In practice, these
20
// objects will be defined by a solver that needs to extend the
21
// InArgs/OutArgs for specialized data without cluttering the core
22
// model evaluator interface.
23
template
<
class
Scalar>
24
struct
MockExtendedInArgs
25
{
26
Teuchos::RCP<Thyra::VectorBase<Scalar> > a;
27
};
28
29
template
<
class
Scalar>
30
struct
MockExtendedOutArgs
31
{
32
Teuchos::RCP<Thyra::VectorBase<Scalar> > b;
33
};
34
35
36
template
<
class
Scalar>
class
DummyTestModelEvaluator
;
37
38
43
template
<
class
Scalar>
44
RCP<DummyTestModelEvaluator<Scalar>
>
45
dummyTestModelEvaluator(
46
const
Ordinal x_size = 2,
47
const
ArrayView<const Ordinal>
&p_sizes = Teuchos::null,
48
const
ArrayView<const Ordinal>
&g_sizes = Teuchos::null,
49
const
bool
supports_x_dot =
false
,
50
const
bool
supports_x_dot_dot =
false
,
51
const
bool
supports_extended_inargs =
true
,
52
const
bool
supports_extended_outargs =
true
,
53
const
bool
supports_derivatives =
false
54
);
55
56
62
template
<
class
Scalar>
63
class
DummyTestModelEvaluator
:
public
ModelEvaluatorDefaultBase
<Scalar>
64
{
65
public
:
66
69
71
DummyTestModelEvaluator
(
72
const
Ordinal x_size,
73
const
ArrayView<const Ordinal>
&p_sizes,
74
const
ArrayView<const Ordinal>
&g_sizes,
75
const
bool
supports_x_dot =
false
,
76
const
bool
supports_x_dot_dot =
false
,
77
const
bool
supports_extended_inargs =
true
,
78
const
bool
supports_extended_outargs =
true
,
79
const
bool
supports_derivatives =
false
80
);
81
83
86
88
RCP<const VectorSpaceBase<Scalar>
>
get_x_space
()
const
;
90
RCP<const VectorSpaceBase<Scalar>
>
get_p_space
(
int
l)
const
;
92
RCP<const Teuchos::Array<std::string>
>
get_p_names
(
int
l)
const
;
94
RCP<const VectorSpaceBase<Scalar>
>
get_f_space
()
const
;
96
RCP<const VectorSpaceBase<Scalar>
>
get_g_space
(
int
j)
const
;
98
Teuchos::ArrayView<const std::string>
get_g_names
(
int
j)
const
;
100
ModelEvaluatorBase::InArgs<Scalar>
getNominalValues
()
const
;
102
ModelEvaluatorBase::InArgs<Scalar>
getLowerBounds
()
const
;
104
ModelEvaluatorBase::InArgs<Scalar>
getUpperBounds
()
const
;
106
RCP<LinearOpBase<Scalar>
>
create_W_op
()
const
;
108
RCP<PreconditionerBase<Scalar>
>
create_W_prec
()
const
;
110
RCP<const LinearOpWithSolveFactoryBase<Scalar>
>
get_W_factory
()
const
;
112
ModelEvaluatorBase::InArgs<Scalar>
createInArgs
()
const
;
114
void
reportFinalPoint
(
115
const
ModelEvaluatorBase::InArgs<Scalar>
&finalPoint,
116
const
bool
wasSolved
117
);
118
120
121
// For unit testing
122
void
change_p_size_incorrectly(
const
Ordinal new_size);
123
void
change_p_size_correctly(
const
Ordinal new_size);
124
125
private
:
// functions
126
129
131
ModelEvaluatorBase::OutArgs<Scalar>
createOutArgsImpl()
const
;
133
void
evalModelImpl(
134
const
ModelEvaluatorBase::InArgs<Scalar>
&inArgs,
135
const
ModelEvaluatorBase::OutArgs<Scalar>
&outArgs
136
)
const
;
137
139
140
private
:
// data members
141
142
RCP<const VectorSpaceBase<Scalar>
> x_space_;
143
Array<RCP<const VectorSpaceBase<Scalar>
> > p_space_;
144
RCP<const VectorSpaceBase<Scalar>
> f_space_;
145
Array<RCP<const VectorSpaceBase<Scalar>
> > g_space_;
146
Array<std::string>
g_names_;
147
RCP<const LinearOpWithSolveFactoryBase<Scalar>
> W_factory_;
148
ModelEvaluatorBase::InArgs<Scalar>
nominalValues_;
149
RCP<VectorBase<Scalar>
> x0_;
150
ModelEvaluatorBase::InArgs<Scalar>
prototypeInArgs_;
151
ModelEvaluatorBase::OutArgs<Scalar>
prototypeOutArgs_;
152
153
};
154
155
156
}
// namespace Thyra
157
158
159
#endif
// DUMMY_TEST_MODEL_EVALUATOR_DECL_HPP
Teuchos::Array
Teuchos::ArrayView
Teuchos::RCP
Thyra::DummyTestModelEvaluator
Test helper ModelEvaluator.
Definition
Thyra_DummyTestModelEvaluator_decl.hpp:64
Thyra::DummyTestModelEvaluator::get_x_space
RCP< const VectorSpaceBase< Scalar > > get_x_space() const
Definition
Thyra_DummyTestModelEvaluator_def.hpp:134
Thyra::DummyTestModelEvaluator::get_W_factory
RCP< const LinearOpWithSolveFactoryBase< Scalar > > get_W_factory() const
Definition
Thyra_DummyTestModelEvaluator_def.hpp:228
Thyra::DummyTestModelEvaluator::DummyTestModelEvaluator
DummyTestModelEvaluator(const Ordinal x_size, const ArrayView< const Ordinal > &p_sizes, const ArrayView< const Ordinal > &g_sizes, const bool supports_x_dot=false, const bool supports_x_dot_dot=false, const bool supports_extended_inargs=true, const bool supports_extended_outargs=true, const bool supports_derivatives=false)
Definition
Thyra_DummyTestModelEvaluator_def.hpp:51
Thyra::DummyTestModelEvaluator::getUpperBounds
ModelEvaluatorBase::InArgs< Scalar > getUpperBounds() const
Definition
Thyra_DummyTestModelEvaluator_def.hpp:198
Thyra::DummyTestModelEvaluator::create_W_prec
RCP< PreconditionerBase< Scalar > > create_W_prec() const
Definition
Thyra_DummyTestModelEvaluator_def.hpp:216
Thyra::DummyTestModelEvaluator::get_g_space
RCP< const VectorSpaceBase< Scalar > > get_g_space(int j) const
Definition
Thyra_DummyTestModelEvaluator_def.hpp:166
Thyra::DummyTestModelEvaluator::getLowerBounds
ModelEvaluatorBase::InArgs< Scalar > getLowerBounds() const
Definition
Thyra_DummyTestModelEvaluator_def.hpp:190
Thyra::DummyTestModelEvaluator::get_p_names
RCP< const Teuchos::Array< std::string > > get_p_names(int l) const
Definition
Thyra_DummyTestModelEvaluator_def.hpp:150
Thyra::DummyTestModelEvaluator::get_f_space
RCP< const VectorSpaceBase< Scalar > > get_f_space() const
Definition
Thyra_DummyTestModelEvaluator_def.hpp:158
Thyra::DummyTestModelEvaluator::get_g_names
Teuchos::ArrayView< const std::string > get_g_names(int j) const
Definition
Thyra_DummyTestModelEvaluator_def.hpp:174
Thyra::DummyTestModelEvaluator::reportFinalPoint
void reportFinalPoint(const ModelEvaluatorBase::InArgs< Scalar > &finalPoint, const bool wasSolved)
Definition
Thyra_DummyTestModelEvaluator_def.hpp:243
Thyra::DummyTestModelEvaluator::create_W_op
RCP< LinearOpBase< Scalar > > create_W_op() const
Definition
Thyra_DummyTestModelEvaluator_def.hpp:206
Thyra::DummyTestModelEvaluator::getNominalValues
ModelEvaluatorBase::InArgs< Scalar > getNominalValues() const
Definition
Thyra_DummyTestModelEvaluator_def.hpp:182
Thyra::DummyTestModelEvaluator::createInArgs
ModelEvaluatorBase::InArgs< Scalar > createInArgs() const
Definition
Thyra_DummyTestModelEvaluator_def.hpp:236
Thyra::DummyTestModelEvaluator::get_p_space
RCP< const VectorSpaceBase< Scalar > > get_p_space(int l) const
Definition
Thyra_DummyTestModelEvaluator_def.hpp:142
Thyra::ModelEvaluatorBase::InArgs
Concrete aggregate class for all input arguments computable by a ModelEvaluator subclass object.
Definition
Thyra_ModelEvaluatorBase_decl.hpp:127
Thyra::ModelEvaluatorBase::OutArgs
Concrete aggregate class for all output arguments computable by a ModelEvaluator subclass object.
Definition
Thyra_ModelEvaluatorBase_decl.hpp:870
Thyra::ModelEvaluatorDefaultBase::ModelEvaluatorDefaultBase
ModelEvaluatorDefaultBase()
Definition
Thyra_ModelEvaluatorDefaultBase.hpp:1004
Generated by
1.17.0