My Project
Loading...
Searching...
No Matches
PAvg.hpp
1/*
2 Copyright 2020 Equinor ASA.
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 PAVE_HPP
21#define PAVE_HPP
22
23namespace Opm {
24 class DeckRecord;
25} // Namespace Opm
26
27namespace Opm {
28
29class PAvg
30{
31public:
32 enum class DepthCorrection
33 {
34 WELL = 1,
35 RES = 2,
36 NONE = 3,
37 };
38
39 PAvg();
40 explicit PAvg(const DeckRecord& record);
41 PAvg(double inner_weight,
42 double conn_weight,
43 DepthCorrection depth_correction,
44 bool use_open_connections);
45
46 static PAvg serializationTestObject();
47
48 double inner_weight() const
49 {
50 return this->m_inner_weight;
51 }
52
53 double conn_weight() const
54 {
55 return this->m_conn_weight;
56 }
57
58 bool open_connections() const
59 {
60 return this->m_open_connections;
61 }
62
63 DepthCorrection depth_correction() const
64 {
65 return this->m_depth_correction;
66 }
67
68 bool use_porv() const;
69
70 template <class Serializer>
71 void serializeOp(Serializer& serializer)
72 {
73 serializer(this->m_inner_weight);
74 serializer(this->m_conn_weight);
75 serializer(this->m_depth_correction);
76 serializer(this->m_open_connections);
77 }
78
79 bool operator==(const PAvg& other) const;
80 bool operator!=(const PAvg& other) const;
81
82private:
83 double m_inner_weight;
84 double m_conn_weight;
85 DepthCorrection m_depth_correction;
86 bool m_open_connections;
87};
88
89} // namespace Opm
90
91#endif // PAVE_HPP
Definition DeckRecord.hpp:32
Definition PAvg.hpp:30
Class for (de-)serializing.
Definition Serializer.hpp:84
This class implements a small container which holds the transmissibility mulitpliers for all the face...
Definition Exceptions.hpp:30