20 #ifndef CONNECTIONSET_HPP_ 21 #define CONNECTIONSET_HPP_ 23 #include <opm/input/eclipse/Schedule/Well/Connection.hpp> 32 class ActiveGridCells;
36 class FieldPropsManager;
37 class KeywordLocation;
49 using const_iterator = std::vector<Connection>::const_iterator;
52 WellConnections(
const Connection::Order ordering,
const int headI,
const int headJ);
53 WellConnections(
const Connection::Order ordering,
const int headI,
const int headJ,
54 const std::vector<Connection>& connections);
61 : m_ordering(src.ordering())
65 for (
const auto& c : src) {
66 if (grid.isCellActive(c.getI(), c.getJ(), c.getK())) {
74 this->m_connections.push_back(conn);
77 void addConnection(
const int i,
const int j,
const int k,
78 const std::size_t global_index,
79 const Connection::State state,
83 const Connection::Direction direction = Connection::Direction::Z,
84 const Connection::CTFKind ctf_kind = Connection::CTFKind::DeckValue,
85 const std::size_t seqIndex = 0,
86 int lgr_grid_number = 0,
87 const bool defaultSatTabId =
true);
96 const std::string& wname,
102 std::vector<int>& requested_open_complnums,
103 std::vector<int>& requested_shut_complnums);
106 const std::string& wname,
112 std::vector<int>& requested_open_complnums,
113 std::vector<int>& requested_shut_complnums);
116 const std::string& wname,
122 const std::string& wname,
129 int getHeadI()
const;
130 int getHeadJ()
const;
131 const std::vector<double>& getMD()
const;
132 std::size_t size()
const;
134 std::size_t num_open()
const;
135 const Connection& operator[](std::size_t index)
const;
136 const Connection&
get(std::size_t index)
const;
137 const Connection& getFromIJK(
const int i,
const int j,
const int k)
const;
138 const Connection& getFromGlobalIndex(std::size_t global_index)
const;
140 Connection& getFromIJK(
const int i,
const int j,
const int k);
141 Connection* maybeGetFromGlobalIndex(
const std::size_t global_index);
142 bool hasGlobalIndex(std::size_t global_index)
const;
143 double segment_perf_length(
int segment)
const;
145 const_iterator begin()
const {
return this->m_connections.begin(); }
146 const_iterator end()
const {
return this->m_connections.end(); }
147 auto begin() {
return this->m_connections.begin(); }
148 auto end() {
return this->m_connections.end(); }
149 bool allConnectionsShut()
const;
172 Connection::Order ordering()
const {
return this->m_ordering; }
173 std::vector<const Connection *> output(
const EclipseGrid& grid)
const;
193 std::vector<bool>& scalingApplicable);
195 template <
class Serializer>
198 serializer(this->m_ordering);
199 serializer(this->headI);
200 serializer(this->headJ);
201 serializer(this->m_connections);
202 serializer(this->coord);
203 serializer(this->md);
207 Connection::Order m_ordering { Connection::Order::TRACK };
210 std::vector<Connection> m_connections{};
212 std::array<std::vector<double>, 3> coord{};
213 std::vector<double> md{};
215 void addConnection(
const int i,
const int j,
const int k,
216 const std::size_t global_index,
218 const Connection::State state,
221 const int satTableId,
222 const Connection::Direction direction,
223 const Connection::CTFKind ctf_kind,
224 const std::size_t seqIndex,
226 const bool defaultSatTabId);
233 const std::string& wname,
237 const std::optional<std::string>& lgr_label,
240 std::vector<int>& requested_open_complnums,
241 std::vector<int>& requested_shut_complnums);
245 getCompletionNumberFromGlobalConnectionIndex(
const WellConnections& connections,
246 const std::size_t global_index);
249 #endif // CONNECTIONSET_HPP_ Definition: Connection.hpp:55
Quantities that go into calculating the connection transmissibility factor.
Definition: Connection.hpp:93
Definition: KeywordLocation.hpp:27
About cell information and dimension: The actual grid information is held in a pointer to an ERT ecl_...
Definition: EclipseGrid.hpp:63
This class implements a small container which holds the transmissibility mulitpliers for all the face...
Definition: Exceptions.hpp:30
Collection of intersected cells and associate properties for all simulation grids, i.e., the main grid and all LGRs in the simulation run.
Definition: ScheduleGrid.hpp:49
Definition: WellTrajInfo.hpp:29
void applyWellPIScaling(const double scaleFactor, std::vector< bool > &scalingApplicable)
Scale pertinent connections' CF value by supplied value.
Definition: WellConnections.cpp:367
bool prepareWellPIScaling()
Activate or reactivate WELPI scaling for this connection set.
Definition: WellConnections.cpp:357
Control parser behaviour in failure conditions.
Definition: ParseContext.hpp:114
Definition: WellConnections.hpp:46
void order()
Order connections along well bore.
Definition: WellConnections.cpp:1075
Definition: DeckRecord.hpp:33
Class for (de-)serializing.
Definition: Serializer.hpp:95
Definition: ErrorGuard.hpp:30