custom-opm-common/opm-common/opm/io/eclipse/rst/well.hpp
Go to the documentation of this file.
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 it under the terms of the GNU General Public License as published by
7 the Free Software Foundation, either version 3 of the License, or
8 (at your option) any later version.
9
10 OPM is distributed in the hope that it will be useful,
11 but WITHOUT ANY WARRANTY; without even the implied warranty of
12 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
13 GNU General Public License for more details.
14
15 You should have received a copy of the GNU General Public License
16 along with OPM. If not, see <http://www.gnu.org/licenses/>.
17*/
18
19#ifndef RST_WELL
20#define RST_WELL
21
22#include <array>
23#include <vector>
24#include <string>
25#include <unordered_map>
26
27
31
32namespace Opm {
33class UnitSystem;
34
35namespace RestartIO {
36
37struct RstHeader;
38
39struct RstWell {
40 RstWell(const ::Opm::UnitSystem& unit_system,
41 const RstHeader& header,
42 const std::string& group_arg,
43 const std::string* zwel,
44 const int * iwel,
45 const float * swel,
46 const double * xwel,
47 const int * icon,
48 const float * scon,
49 const double * xcon);
50
51 RstWell(const ::Opm::UnitSystem& unit_system,
52 const RstHeader& header,
53 const std::string& group_arg,
54 const std::string* zwel,
55 const int * iwel,
56 const float * swel,
57 const double * xwel,
58 const int * icon,
59 const float * scon,
60 const double * xcon,
61 const std::vector<int>& iseg,
62 const std::vector<double>& rseg);
63
66 std::array<int, 2> ij;
67 std::pair<int,int> k1k2;
79
93 float alq_value;
94
95 double oil_rate;
96 double water_rate;
97 double gas_rate;
99 double void_rate;
100 double thp;
101 double flow_bhp;
102 double wct;
103 double gor;
104 double oil_total;
106 double gas_total;
111 double gas_fvf;
120
121 const RstSegment segment(int segment_number) const;
122 std::vector<RstConnection> connections;
123 std::vector<RstSegment> segments;
124};
125
126
127}
128}
129
130
131
132
133#endif
const char *const string
Definition: cJSON.h:170
Definition: ScheduleTypes.hpp:38
Definition: A.hpp:4
Definition: header.hpp:31
Definition: io/eclipse/rst/segment.hpp:32
Definition: custom-opm-common/opm-common/opm/io/eclipse/rst/well.hpp:39
float drainage_radius
Definition: custom-opm-common/opm-common/opm/io/eclipse/rst/well.hpp:91
int pvt_table
Definition: custom-opm-common/opm-common/opm/io/eclipse/rst/well.hpp:77
std::vector< RstConnection > connections
Definition: custom-opm-common/opm-common/opm/io/eclipse/rst/well.hpp:122
double water_inj_total
Definition: custom-opm-common/opm-common/opm/io/eclipse/rst/well.hpp:108
WellType wtype
Definition: custom-opm-common/opm-common/opm/io/eclipse/rst/well.hpp:68
double void_inj_total
Definition: custom-opm-common/opm-common/opm/io/eclipse/rst/well.hpp:110
float grat_target
Definition: custom-opm-common/opm-common/opm/io/eclipse/rst/well.hpp:82
float alq_value
Definition: custom-opm-common/opm-common/opm/io/eclipse/rst/well.hpp:93
double water_total
Definition: custom-opm-common/opm-common/opm/io/eclipse/rst/well.hpp:105
bool allow_xflow
Definition: custom-opm-common/opm-common/opm/io/eclipse/rst/well.hpp:72
double hist_gas_inj_total
Definition: custom-opm-common/opm-common/opm/io/eclipse/rst/well.hpp:117
double liquid_rate
Definition: custom-opm-common/opm-common/opm/io/eclipse/rst/well.hpp:98
double gas_fvf
Definition: custom-opm-common/opm-common/opm/io/eclipse/rst/well.hpp:111
double oil_total
Definition: custom-opm-common/opm-common/opm/io/eclipse/rst/well.hpp:104
double hist_water_inj_total
Definition: custom-opm-common/opm-common/opm/io/eclipse/rst/well.hpp:116
double gas_inj_total
Definition: custom-opm-common/opm-common/opm/io/eclipse/rst/well.hpp:109
int msw_index
Definition: custom-opm-common/opm-common/opm/io/eclipse/rst/well.hpp:75
std::string name
Definition: custom-opm-common/opm-common/opm/io/eclipse/rst/well.hpp:64
int hist_requested_control
Definition: custom-opm-common/opm-common/opm/io/eclipse/rst/well.hpp:74
std::array< int, 2 > ij
Definition: custom-opm-common/opm-common/opm/io/eclipse/rst/well.hpp:66
double flow_bhp
Definition: custom-opm-common/opm-common/opm/io/eclipse/rst/well.hpp:101
const RstSegment segment(int segment_number) const
float hist_lrat_target
Definition: custom-opm-common/opm-common/opm/io/eclipse/rst/well.hpp:87
float lrat_target
Definition: custom-opm-common/opm-common/opm/io/eclipse/rst/well.hpp:83
double gas_void_rate
Definition: custom-opm-common/opm-common/opm/io/eclipse/rst/well.hpp:119
RstWell(const ::Opm::UnitSystem &unit_system, const RstHeader &header, const std::string &group_arg, const std::string *zwel, const int *iwel, const float *swel, const double *xwel, const int *icon, const float *scon, const double *xcon)
float orat_target
Definition: custom-opm-common/opm-common/opm/io/eclipse/rst/well.hpp:80
float hist_grat_target
Definition: custom-opm-common/opm-common/opm/io/eclipse/rst/well.hpp:88
RstWell(const ::Opm::UnitSystem &unit_system, const RstHeader &header, const std::string &group_arg, const std::string *zwel, const int *iwel, const float *swel, const double *xwel, const int *icon, const float *scon, const double *xcon, const std::vector< int > &iseg, const std::vector< double > &rseg)
double hist_gas_total
Definition: custom-opm-common/opm-common/opm/io/eclipse/rst/well.hpp:115
double gas_rate
Definition: custom-opm-common/opm-common/opm/io/eclipse/rst/well.hpp:97
double water_void_rate
Definition: custom-opm-common/opm-common/opm/io/eclipse/rst/well.hpp:118
std::pair< int, int > k1k2
Definition: custom-opm-common/opm-common/opm/io/eclipse/rst/well.hpp:67
double oil_rate
Definition: custom-opm-common/opm-common/opm/io/eclipse/rst/well.hpp:95
int well_status
Definition: custom-opm-common/opm-common/opm/io/eclipse/rst/well.hpp:69
double void_rate
Definition: custom-opm-common/opm-common/opm/io/eclipse/rst/well.hpp:99
double hist_wat_total
Definition: custom-opm-common/opm-common/opm/io/eclipse/rst/well.hpp:114
float datum_depth
Definition: custom-opm-common/opm-common/opm/io/eclipse/rst/well.hpp:90
float efficiency_factor
Definition: custom-opm-common/opm-common/opm/io/eclipse/rst/well.hpp:92
float hist_bhp_target
Definition: custom-opm-common/opm-common/opm/io/eclipse/rst/well.hpp:89
float wrat_target
Definition: custom-opm-common/opm-common/opm/io/eclipse/rst/well.hpp:81
float thp_target
Definition: custom-opm-common/opm-common/opm/io/eclipse/rst/well.hpp:85
int preferred_phase
Definition: custom-opm-common/opm-common/opm/io/eclipse/rst/well.hpp:73
double gor
Definition: custom-opm-common/opm-common/opm/io/eclipse/rst/well.hpp:103
double bhp_target_double
Definition: custom-opm-common/opm-common/opm/io/eclipse/rst/well.hpp:112
float resv_target
Definition: custom-opm-common/opm-common/opm/io/eclipse/rst/well.hpp:84
double void_total
Definition: custom-opm-common/opm-common/opm/io/eclipse/rst/well.hpp:107
double hist_oil_total
Definition: custom-opm-common/opm-common/opm/io/eclipse/rst/well.hpp:113
double water_rate
Definition: custom-opm-common/opm-common/opm/io/eclipse/rst/well.hpp:96
float bhp_target_float
Definition: custom-opm-common/opm-common/opm/io/eclipse/rst/well.hpp:86
int vfp_table
Definition: custom-opm-common/opm-common/opm/io/eclipse/rst/well.hpp:71
double wct
Definition: custom-opm-common/opm-common/opm/io/eclipse/rst/well.hpp:102
std::string group
Definition: custom-opm-common/opm-common/opm/io/eclipse/rst/well.hpp:65
double gas_total
Definition: custom-opm-common/opm-common/opm/io/eclipse/rst/well.hpp:106
double thp
Definition: custom-opm-common/opm-common/opm/io/eclipse/rst/well.hpp:100
int active_control
Definition: custom-opm-common/opm-common/opm/io/eclipse/rst/well.hpp:70
std::vector< RstSegment > segments
Definition: custom-opm-common/opm-common/opm/io/eclipse/rst/well.hpp:123
int msw_pressure_drop_model
Definition: custom-opm-common/opm-common/opm/io/eclipse/rst/well.hpp:78
int completion_ordering
Definition: custom-opm-common/opm-common/opm/io/eclipse/rst/well.hpp:76