My Project
AggregateUDQData.hpp
1 /*
2  Copyright (c) 2018 Statoil 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 OPM_AGGREGATE_UDQ_DATA_HPP
21 #define OPM_AGGREGATE_UDQ_DATA_HPP
22 
24 #include <opm/io/eclipse/PaddedOutputString.hpp>
25 
26 #include <cstddef>
27 #include <string>
28 #include <vector>
29 #include <map>
30 
31 namespace Opm {
32  class Schedule;
33  class UDQInput;
34  class UDQActive;
35  class UDQState;
36 } // Opm
37 
38 namespace Opm { namespace RestartIO { namespace Helpers {
39 
40 class igphData {
41 public:
42  const std::vector<int> ig_phase(const Opm::Schedule& sched, const std::size_t simStep, const std::vector<int>& inteHead);
43 };
44 
46 {
47 public:
48  explicit AggregateUDQData(const std::vector<int>& udqDims);
49 
50 void captureDeclaredUDQData(const Opm::Schedule& sched,
51  const std::size_t simStep,
52  const Opm::UDQState& udqState,
53  const std::vector<int>& inteHead);
54 
55  const std::vector<int>& getIUDQ() const
56  {
57  return this->iUDQ_.data();
58  }
59 
60  const std::vector<int>& getIUAD() const
61  {
62  return this->iUAD_.data();
63  }
64 
65  const std::vector<EclIO::PaddedOutputString<8>>& getZUDN() const
66  {
67  return this->zUDN_.data();
68  }
69 
70  const std::vector<EclIO::PaddedOutputString<8>>& getZUDL() const
71  {
72  return this->zUDL_.data();
73  }
74 
75  const std::vector<int>& getIGPH() const
76  {
77  return this->iGPH_.data();
78  }
79 
80  const std::vector<int>& getIUAP() const
81  {
82  return this->iUAP_.data();
83  }
84 
85  const std::vector<double>& getDUDW() const
86  {
87  return this->dUDW_.data();
88  }
89 
90  const std::vector<double>& getDUDG() const
91  {
92  return this->dUDG_.data();
93  }
94 
95  const std::vector<double>& getDUDF() const
96  {
97  return this->dUDF_.data();
98  }
99 
100 private:
102  WindowedArray<int> iUDQ_;
103 
105  WindowedArray<int> iUAD_;
106 
107 
110 
113 
115  WindowedArray<int> iGPH_;
116 
118  WindowedArray<int> iUAP_;
119 
121  WindowedArray<double> dUDW_;
122 
124  WindowedArray<double> dUDG_;
125 
127  WindowedArray<double> dUDF_;
128 
129 
130 };
131 
132 }}} // Opm::RestartIO::Helpers
133 
134 #endif //OPM_AGGREGATE_WELL_DATA_HPP
Provide facilities to simplify constructing restart vectors such as IWEL or RSEG.
Definition: AggregateUDQData.hpp:46
const std::vector< T > & data() const
Get read-only access to full, linearised data items for all windows.
Definition: WindowedArray.hpp:131
Definition: AggregateUDQData.hpp:40
Definition: Schedule.hpp:145
Definition: UDQState.hpp:36
This class implements a small container which holds the transmissibility mulitpliers for all the face...
Definition: Exceptions.hpp:29