opm-common
Loading...
Searching...
No Matches
UDT.hpp
1
/*
2
Copyright 2023 SINTEF Digital
3
4
This file is part of the Open Porous Media project (OPM).
5
6
OPM is free software: you can redistribute it and/or modify
7
it under the terms of the GNU General Public License as published by
8
the Free Software Foundation, either version 3 of the License, or
9
(at your option) any later version.
10
11
OPM is distributed in the hope that it will be useful,
12
but WITHOUT ANY WARRANTY; without even the implied warranty of
13
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
14
GNU General Public License for more details.
15
16
You should have received a copy of the GNU General Public License
17
along with OPM. If not, see <http://www.gnu.org/licenses/>.
18
*/
19
20
#ifndef UDT_HPP
21
#define UDT_HPP
22
23
#include <vector>
24
25
namespace
Opm
{
26
27
class
DeckRecord
;
28
29
class
UDT
30
{
31
public
:
32
enum class
InterpolationType
{
33
NearestNeighbour
,
34
LinearClamp
,
35
LinearExtrapolate
36
};
37
38
UDT
() =
default
;
39
40
UDT
(
const
std::vector<double>& x_vals,
41
const
std::vector<double>& y_vals,
42
InterpolationType
interp_type);
43
44
static
UDT
serializationTestObject();
45
46
double
operator()(
const
double
x)
const
;
47
48
bool
operator==(
const
UDT
& data)
const
;
49
50
template
<
class
Serializer>
51
void
serializeOp(
Serializer
& serializer)
52
{
53
serializer(xvals_);
54
serializer(yvals_);
55
serializer(interp_type_);
56
}
57
58
private
:
59
std::vector<double> xvals_;
60
std::vector<double> yvals_;
61
InterpolationType
interp_type_ =
InterpolationType::LinearClamp
;
62
};
63
64
}
// Namespace Opm
65
66
#endif
// UDT_HPP
Opm::DeckRecord
Definition
DeckRecord.hpp:32
Opm::Serializer
Class for (de-)serializing.
Definition
Serializer.hpp:94
Opm::UDT
Definition
UDT.hpp:30
Opm::UDT::InterpolationType
InterpolationType
Definition
UDT.hpp:32
Opm::UDT::InterpolationType::LinearExtrapolate
@ LinearExtrapolate
Corresponds to 'LL'.
Definition
UDT.hpp:35
Opm::UDT::InterpolationType::LinearClamp
@ LinearClamp
Corresponds to 'LC'.
Definition
UDT.hpp:34
Opm::UDT::InterpolationType::NearestNeighbour
@ NearestNeighbour
Corresponds to 'NV'.
Definition
UDT.hpp:33
Opm
This class implements a small container which holds the transmissibility mulitpliers for all the face...
Definition
Exceptions.hpp:30
opm
input
eclipse
Schedule
UDQ
UDT.hpp
Generated by
1.15.0