21 #ifndef CONNECTIONSET_HPP_
22 #define CONNECTIONSET_HPP_
24 #include <opm/parser/eclipse/EclipseState/Schedule/Well/Connection.hpp>
33 class ActiveGridCells;
36 class FieldPropsManager;
37 class KeywordLocation;
45 const std::vector<Connection>& connections);
52 void addConnection(
int i,
int j ,
int k ,
53 std::size_t global_index,
55 Connection::State state ,
61 double connection_length,
64 const Connection::Direction direction = Connection::Direction::Z,
65 const Connection::CTFKind ctf_kind = Connection::CTFKind::DeckValue,
66 const std::size_t seqIndex = 0,
67 const bool defaultSatTabId =
true);
70 using const_iterator = std::vector< Connection >::const_iterator;
73 std::size_t size()
const;
75 std::size_t num_open()
const;
76 const Connection& operator[](
size_t index)
const;
78 const Connection& getFromIJK(
const int i,
const int j,
const int k)
const;
79 const Connection& getFromGlobalIndex(std::size_t global_index)
const;
81 Connection& getFromIJK(
const int i,
const int j,
const int k);
82 bool hasGlobalIndex(std::size_t global_index)
const;
83 double segment_perf_length(
int segment)
const;
85 const_iterator begin()
const {
return this->m_connections.begin(); }
86 const_iterator end()
const {
return this->m_connections.end(); }
88 bool allConnectionsShut()
const;
106 Connection::Order ordering()
const {
return this->m_ordering; }
107 std::vector<const Connection *> output(
const EclipseGrid& grid)
const;
127 std::vector<bool>& scalingApplicable);
129 template<
class Serializer>
132 serializer(m_ordering);
135 serializer.vector(m_connections);
139 void addConnection(
int i,
int j ,
int k ,
140 std::size_t global_index,
143 Connection::State state ,
149 double connection_length,
151 const int satTableId,
152 const Connection::Direction direction = Connection::Direction::Z,
153 const Connection::CTFKind ctf_kind = Connection::CTFKind::DeckValue,
154 const std::size_t seqIndex = 0,
155 const bool defaultSatTabId =
true);
159 const std::vector<int>& satnum_data,
160 const std::vector<double>* permx,
161 const std::vector<double>* permy,
162 const std::vector<double>* permz,
163 const std::vector<double>& ntg,
164 const std::string& wname,
167 size_t findClosestConnection(
int oi,
int oj,
double oz,
size_t start_pos);
172 Connection::Order m_ordering = Connection::Order::TRACK;
174 std::vector< Connection > m_connections;
178 getCompletionNumberFromGlobalConnectionIndex(
const WellConnections& connections,
179 const std::size_t global_index);
Simple class capturing active cells of a grid.
Definition: ActiveGridCells.hpp:35
Definition: Connection.hpp:43
Definition: DeckRecord.hpp:32
About cell information and dimension: The actual grid information is held in a pointer to an ERT ecl_...
Definition: EclipseGrid.hpp:55
Definition: FieldPropsManager.hpp:37
Definition: KeywordLocation.hpp:27
Definition: Serializer.hpp:38
Definition: WellConnections.hpp:38
void order()
Order connections irrespective of input order.
void applyWellPIScaling(const double scaleFactor, std::vector< bool > &scalingApplicable)
Scale pertinent connections' CF value by supplied value.
bool prepareWellPIScaling()
Activate or reactivate WELPI scaling for this connection set.
This class implements a small container which holds the transmissibility mulitpliers for all the face...
Definition: Exceptions.hpp:29