Sacado Package Browser (Single Doxygen Collection)
Version of the Day
Toggle main menu visibility
Loading...
Searching...
No Matches
src
parameter
Sacado_ScalarParameterLibrary.hpp
Go to the documentation of this file.
1
// @HEADER
2
// ***********************************************************************
3
//
4
// Sacado Package
5
// Copyright (2006) Sandia Corporation
6
//
7
// Under the terms of Contract DE-AC04-94AL85000 with Sandia Corporation,
8
// the U.S. Government retains certain rights in this software.
9
//
10
// This library is free software; you can redistribute it and/or modify
11
// it under the terms of the GNU Lesser General Public License as
12
// published by the Free Software Foundation; either version 2.1 of the
13
// License, or (at your option) any later version.
14
//
15
// This library is distributed in the hope that it will be useful, but
16
// WITHOUT ANY WARRANTY; without even the implied warranty of
17
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
18
// Lesser General Public License for more details.
19
//
20
// You should have received a copy of the GNU Lesser General Public
21
// License along with this library; if not, write to the Free Software
22
// Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301
23
// USA
24
// Questions? Contact David M. Gay (dmgay@sandia.gov) or Eric T. Phipps
25
// (etphipp@sandia.gov).
26
//
27
// ***********************************************************************
28
// @HEADER
29
30
#ifndef SACADO_SCALARPARAMETERLIBRARY_HPP
31
#define SACADO_SCALARPARAMETERLIBRARY_HPP
32
33
#include "
Sacado_ParameterLibraryBase.hpp
"
34
#include "
Sacado_ScalarParameterFamily.hpp
"
35
#include "
Sacado_ScalarParameterVector.hpp
"
36
37
#include "Teuchos_Assert.hpp"
38
39
namespace
Sacado
{
40
45
template
<
typename
EvalTypeTraits = DefaultEvalTypeTraits>
46
class
ScalarParameterLibrary
:
47
public
ParameterLibraryBase
<ScalarParameterFamily<EvalTypeTraits>,
48
ScalarParameterEntry<_,EvalTypeTraits> > {
49
50
public
:
51
53
typedef
ParameterLibraryBase<ScalarParameterFamily<EvalTypeTraits>
,
54
ScalarParameterEntry<_,EvalTypeTraits>
>
55
BaseT
;
56
58
ScalarParameterLibrary
() {}
59
61
virtual
~ScalarParameterLibrary
() {}
62
64
void
setRealValueForAllTypes
(
const
std::string& name,
double
value);
65
67
template
<
class
EvalType>
68
void
69
setRealValue
(
const
std::string& name,
double
value);
70
72
template
<
class
EvalType>
73
void
74
setValue
(
const
std::string& name,
75
const
typename
EvalTypeTraits::template apply<EvalType>::type& value);
76
78
template
<
class
EvalType>
79
double
80
getRealValue
(
const
std::string& name)
const
;
81
83
template
<
class
EvalType>
84
const
typename
EvalTypeTraits::template apply<EvalType>::type&
85
getValue
(
const
std::string& name)
const
;
86
88
static
ScalarParameterLibrary
&
getInstance
() {
89
static
ScalarParameterLibrary
instance;
90
return
instance;
91
}
92
94
98
template
<
class
EvalType>
99
void
100
fillVector
(
const
Teuchos::Array<std::string>& names,
101
ScalarParameterVector<EvalTypeTraits>
& pv);
102
103
private
:
104
106
ScalarParameterLibrary
(
const
ScalarParameterLibrary
&);
107
109
ScalarParameterLibrary
&
operator =
(
const
ScalarParameterLibrary
&);
110
111
};
112
113
}
114
115
116
template
<
typename
EvalTypeTraits>
117
void
118
Sacado::ScalarParameterLibrary<EvalTypeTraits>::
119
setRealValueForAllTypes
(
const
std::string& name,
double
value)
120
{
121
typename
BaseT::FamilyMap::iterator
it = this->
library
.find(name);
122
TEUCHOS_TEST_FOR_EXCEPTION(
123
it == this->
library
.end(),
124
std::logic_error,
125
std::string(
"Sacado::ScalararameterLibrary::setRealValueForAllTypes(): "
)
126
+
"Invalid parameter family "
+ name);
127
(*it).second->setRealValueForAllTypes(value);
128
}
129
130
template
<
typename
EvalTypeTraits>
131
template
<
class
EvalType>
132
void
133
Sacado::ScalarParameterLibrary<EvalTypeTraits>::
134
setRealValue
(
const
std::string& name,
double
value)
135
{
136
typename
BaseT::FamilyMap::iterator
it = this->
library
.find(name);
137
TEUCHOS_TEST_FOR_EXCEPTION(
138
it == this->
library
.end(),
139
std::logic_error,
140
std::string(
"Sacado::ScalarParameterLibrary::setValueAsConstant(): "
)
141
+
"Invalid parameter family "
+ name);
142
(*it).second->
template
setRealValue<EvalType>
(value);
143
}
144
145
template
<
typename
EvalTypeTraits>
146
template
<
class
EvalType>
147
void
148
Sacado::ScalarParameterLibrary<EvalTypeTraits>::
149
setValue
(
150
const
std::string& name,
151
const
typename
EvalTypeTraits::template apply<EvalType>::type& value)
152
{
153
typename
BaseT::FamilyMap::iterator
it = this->
library
.find(name);
154
TEUCHOS_TEST_FOR_EXCEPTION(
155
it == this->
library
.end(),
156
std::logic_error,
157
std::string(
"Sacado::ScalarParameterLibrary::setValueAsIndependent(): "
)
158
+
"Invalid parameter family "
+ name);
159
(*it).second->
template
setValue<EvalType>
(value);
160
}
161
162
template
<
typename
EvalTypeTraits>
163
template
<
class
EvalType>
164
double
165
Sacado::ScalarParameterLibrary<EvalTypeTraits>::
166
getRealValue
(
const
std::string& name)
const
167
{
168
typename
BaseT::FamilyMap::const_iterator
it = this->
library
.find(name);
169
TEUCHOS_TEST_FOR_EXCEPTION(
170
it == this->
library
.end(),
171
std::logic_error,
172
std::string(
"Sacado::ScalarParameterLibrary::getValue(): "
)
173
+
"Invalid parameter family "
+ name);
174
return
(*it).second->
template
getRealValue<EvalType>
();
175
}
176
177
template
<
typename
EvalTypeTraits>
178
template
<
class
EvalType>
179
const
typename
EvalTypeTraits::template apply<EvalType>::type&
180
Sacado::ScalarParameterLibrary<EvalTypeTraits>::
181
getValue
(
const
std::string& name)
const
182
{
183
typename
BaseT::FamilyMap::const_iterator
it = this->
library
.find(name);
184
TEUCHOS_TEST_FOR_EXCEPTION(
185
it == this->
library
.end(),
186
std::logic_error,
187
std::string(
"Sacado::ScalarParameterLibrary::getValue(): "
)
188
+
"Invalid parameter family "
+ name);
189
return
(*it).second->template
getValue<EvalType>
();
190
}
191
192
template
<
typename
EvalTypeTraits>
193
template
<
class
EvalType>
194
void
195
Sacado::ScalarParameterLibrary<EvalTypeTraits>::
196
fillVector
(
const
Teuchos::Array<std::string>& names,
197
Sacado::ScalarParameterVector<EvalTypeTraits>
& pv)
198
{
199
typename
BaseT::FamilyMap::iterator
it;
200
201
// Fill in parameters
202
for
(
unsigned
int
i=0; i<names.size(); i++) {
203
it = this->
library
.find(names[i]);
204
TEUCHOS_TEST_FOR_EXCEPTION(
205
it == this->
library
.end(),
206
std::logic_error,
207
std::string(
"Sacado::ParameterLibraryBase::fillVector(): "
)
208
+
"Invalid parameter family "
+ names[i]);
209
pv.
addParam
((*it).second, 0.0);
210
pv[i].baseValue = (*it).second->template
getRealValue<EvalType>
();
211
}
212
}
213
214
215
#endif
Sacado_ParameterLibraryBase.hpp
Sacado_ScalarParameterFamily.hpp
Sacado_ScalarParameterVector.hpp
Sacado::ParameterLibraryBase< ScalarParameterFamily< DefaultEvalTypeTraits >, ScalarParameterEntry< _, DefaultEvalTypeTraits > >::library
FamilyMap library
Definition
Sacado_ParameterLibraryBase.hpp:151
Sacado::ParameterLibraryBase< ScalarParameterFamily< EvalTypeTraits >, ScalarParameterEntry< _, EvalTypeTraits > >::const_iterator
FamilyMap::const_iterator const_iterator
Definition
Sacado_ParameterLibraryBase.hpp:63
Sacado::ParameterLibraryBase< ScalarParameterFamily< DefaultEvalTypeTraits >, ScalarParameterEntry< _, DefaultEvalTypeTraits > >::ParameterLibraryBase
ParameterLibraryBase()
Definition
Sacado_ParameterLibraryBaseImp.hpp:34
Sacado::ParameterLibraryBase< ScalarParameterFamily< EvalTypeTraits >, ScalarParameterEntry< _, EvalTypeTraits > >::iterator
FamilyMap::iterator iterator
Definition
Sacado_ParameterLibraryBase.hpp:60
Sacado::ParameterVectorBase::addParam
void addParam(const Teuchos::RCP< FamilyType > &family, BaseValueType baseValue)
Add entry.
Definition
Sacado_ParameterVectorBase.hpp:94
Sacado::ScalarParameterEntry
A base class for scalar parameter values.
Definition
Sacado_ScalarParameterEntry.hpp:87
Sacado::ScalarParameterLibrary::getRealValue
double getRealValue(const std::string &name) const
Get parameter value.
Definition
Sacado_ScalarParameterLibrary.hpp:166
Sacado::ScalarParameterLibrary::setRealValue
void setRealValue(const std::string &name, double value)
Set real parameter to value value.
Definition
Sacado_ScalarParameterLibrary.hpp:134
Sacado::ScalarParameterLibrary::ScalarParameterLibrary
ScalarParameterLibrary()
Default constructor.
Definition
Sacado_ScalarParameterLibrary.hpp:58
Sacado::ScalarParameterLibrary< EvalTypeTraits >::BaseT
ParameterLibraryBase< ScalarParameterFamily< EvalTypeTraits >, ScalarParameterEntry< _, EvalTypeTraits > > BaseT
Definition
Sacado_ScalarParameterLibrary.hpp:55
Sacado::ScalarParameterLibrary::fillVector
void fillVector(const Teuchos::Array< std::string > &names, ScalarParameterVector< EvalTypeTraits > &pv)
Fill a vector with the supplied parameter names.
Definition
Sacado_ScalarParameterLibrary.hpp:196
Sacado::ScalarParameterLibrary::getValue
const EvalTypeTraits::template apply< EvalType >::type & getValue(const std::string &name) const
Get parameter value.
Definition
Sacado_ScalarParameterLibrary.hpp:181
Sacado::ScalarParameterLibrary::setValue
void setValue(const std::string &name, const typename EvalTypeTraits::template apply< EvalType >::type &value)
Set parameter to value value.
Definition
Sacado_ScalarParameterLibrary.hpp:149
Sacado::ScalarParameterLibrary::~ScalarParameterLibrary
virtual ~ScalarParameterLibrary()
Destructor.
Definition
Sacado_ScalarParameterLibrary.hpp:61
Sacado::ScalarParameterLibrary::setRealValueForAllTypes
void setRealValueForAllTypes(const std::string &name, double value)
Set paramter value using a real number.
Definition
Sacado_ScalarParameterLibrary.hpp:119
Sacado::ScalarParameterLibrary::getInstance
static ScalarParameterLibrary & getInstance()
Returns a parameter library (singleton object).
Definition
Sacado_ScalarParameterLibrary.hpp:88
Sacado::ScalarParameterLibrary::ScalarParameterLibrary
ScalarParameterLibrary(const ScalarParameterLibrary &)
Private to prohibit copying.
Sacado::ScalarParameterLibrary::operator=
ScalarParameterLibrary & operator=(const ScalarParameterLibrary &)
Private to prohibit copying.
Sacado::ScalarParameterVector
Specialization of Sacado::ParameterVectorBase for scalar parameters.
Definition
Sacado_ScalarParameterVector.hpp:43
Sacado
Definition
Sacado_mpl_apply.hpp:39
Generated by
1.17.0