My Project
PerfData.hpp
1 /*
2  Copyright 2021 Equinor ASA.
3 
4 
5  This file is part of the Open Porous Media project (OPM).
6 
7  OPM is free software: you can redistribute it and/or modify
8  it under the terms of the GNU General Public License as published by
9  the Free Software Foundation, either version 3 of the License, or
10  (at your option) any later version.
11 
12  OPM is distributed in the hope that it will be useful,
13  but WITHOUT ANY WARRANTY; without even the implied warranty of
14  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
15  GNU General Public License for more details.
16 
17  You should have received a copy of the GNU General Public License
18  along with OPM. If not, see <http://www.gnu.org/licenses/>.
19 */
20 
21 #ifndef OPM_PERFDATA_HEADER_INCLUDED
22 #define OPM_PERFDATA_HEADER_INCLUDED
23 
24 #include <vector>
25 
26 namespace Opm
27 {
28 
29 class PerfData
30 {
31 private:
32  bool injector;
33 
34 public:
35  PerfData(std::size_t num_perf, double pressure_first_connection_, bool injector_, std::size_t num_phases);
36  std::size_t size() const;
37  bool empty() const;
38  bool try_assign(const PerfData& other);
39 
40 
41  double pressure_first_connection;
42  std::vector<double> pressure;
43  std::vector<double> rates;
44  std::vector<double> phase_rates;
45  std::vector<double> solvent_rates;
46  std::vector<double> polymer_rates;
47  std::vector<double> brine_rates;
48  std::vector<double> prod_index;
49  std::vector<double> micp_rates;
50 
51  std::vector<std::size_t> cell_index;
52  std::vector<double> connection_transmissibility_factor;
53  std::vector<int> satnum_id;
54  std::vector<std::size_t> ecl_index;
55 
56 
57  // The water_throughput, skin_pressure and water_velocity variables are only
58  // used for injectors to check the injectivity.
59  std::vector<double> water_throughput;
60  std::vector<double> skin_pressure;
61  std::vector<double> water_velocity;
62 };
63 
64 } // namespace Opm
65 
66 #endif // OPM_PERFORATIONDATA_HEADER_INCLUDED
Definition: PerfData.hpp:30
This file contains a set of helper functions used by VFPProd / VFPInj.
Definition: BlackoilPhases.hpp:27