AggregateWellData.hpp
Go to the documentation of this file.
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_WELL_DATA_HPP
21#define OPM_AGGREGATE_WELL_DATA_HPP
22
24
27
28#include <cstddef>
29#include <string>
30#include <vector>
31
32namespace Opm {
33 class Schedule;
34 class SummaryState;
35 class UnitSystem;
36} // Opm
37
38namespace Opm { namespace data {
39 class WellRates;
40}} // Opm::data
41
42namespace Opm { namespace RestartIO { namespace Helpers {
43
45 std::vector<Opm::Action::Result> result;
46 std::vector<std::string> name;
47 };
48
50 {
51 public:
52 explicit AggregateWellData(const std::vector<int>& inteHead);
53
55 const UnitSystem& units,
56 const std::size_t sim_step,
57 const ::Opm::SummaryState& smry,
58 const std::vector<int>& inteHead);
59
61 const std::size_t sim_step,
62 const Opm::data::WellRates& xw,
63 const Opm::SummaryState& smry);
64
66 const std::vector<int>& getIWell() const
67 {
68 return this->iWell_.data();
69 }
70
72 const std::vector<float>& getSWell() const
73 {
74 return this->sWell_.data();
75 }
76
78 const std::vector<double>& getXWell() const
79 {
80 return this->xWell_.data();
81 }
82
84 const std::vector<EclIO::PaddedOutputString<8>>& getZWell() const
85 {
86 return this->zWell_.data();
87 }
88
89
90
91 private:
93 WindowedArray<int> iWell_;
94
97
100
103
105 int nWGMax_;
106 };
107
108}}} // Opm::RestartIO::Helpers
109
110#endif // OPM_AGGREGATE_WELL_DATA_HPP
Definition: AggregateWellData.hpp:50
const std::vector< int > & getIWell() const
Retrieve Integer Well Data Array.
Definition: AggregateWellData.hpp:66
const std::vector< double > & getXWell() const
Retrieve Floating-Point (Double Precision) Well Data Array.
Definition: AggregateWellData.hpp:78
void captureDynamicWellData(const Opm::Schedule &sched, const std::size_t sim_step, const Opm::data::WellRates &xw, const Opm::SummaryState &smry)
void captureDeclaredWellData(const Schedule &sched, const UnitSystem &units, const std::size_t sim_step, const ::Opm::SummaryState &smry, const std::vector< int > &inteHead)
AggregateWellData(const std::vector< int > &inteHead)
const std::vector< float > & getSWell() const
Retrieve Floating-Point (Real) Well Data Array.
Definition: AggregateWellData.hpp:72
const std::vector< EclIO::PaddedOutputString< 8 > > & getZWell() const
Retrieve Character Well Data Array.
Definition: AggregateWellData.hpp:84
const std::vector< T > & data() const
Definition: WindowedArray.hpp:126
Definition: Schedule.hpp:113
Definition: SummaryState.hpp:65
Definition: UnitSystem.hpp:32
Definition: Wells.hpp:299
Definition: A.hpp:4
static std::string data()
Definition: exprtk.hpp:40022
Definition: AggregateWellData.hpp:44
std::vector< std::string > name
Definition: AggregateWellData.hpp:46
std::vector< Opm::Action::Result > result
Definition: AggregateWellData.hpp:45