47 using const_iterator = std::vector<Connection>::const_iterator;
50 WellConnections(
const Connection::Order ordering,
const int headI,
const int headJ);
51 WellConnections(
const Connection::Order ordering,
const int headI,
const int headJ,
52 const std::vector<Connection>& connections);
59 : m_ordering(src.ordering())
63 for (
const auto& c : src) {
64 if (grid.isCellActive(c.getI(), c.getJ(), c.getK())) {
70 void addConnection(
const int i,
const int j,
const int k,
71 const std::size_t global_index,
73 const Connection::State state,
79 const double connection_length,
80 const double skin_factor,
82 const Connection::Direction direction = Connection::Direction::Z,
83 const Connection::CTFKind ctf_kind = Connection::CTFKind::DeckValue,
84 const std::size_t seqIndex = 0,
85 const bool defaultSatTabId =
true);
89 const std::string& wname,
92 void loadCOMPTRAJ(
const DeckRecord& record,
const ScheduleGrid& grid,
const std::string& wname,
const KeywordLocation& location, external::cvf::ref<external::cvf::BoundingBoxTree>& cellSearchTree);
98 const std::vector<double>& getMD()
const;
100 std::size_t size()
const;
102 std::size_t num_open()
const;
103 const Connection& operator[](
size_t index)
const;
105 const Connection& getFromIJK(
const int i,
const int j,
const int k)
const;
106 const Connection& getFromGlobalIndex(std::size_t global_index)
const;
108 Connection& getFromIJK(
const int i,
const int j,
const int k);
109 bool hasGlobalIndex(std::size_t global_index)
const;
110 double segment_perf_length(
int segment)
const;
112 const_iterator begin()
const {
return this->m_connections.begin(); }
113 const_iterator end()
const {
return this->m_connections.end(); }
115 bool allConnectionsShut()
const;
133 Connection::Order ordering()
const {
return this->m_ordering; }
134 std::vector<const Connection *> output(
const EclipseGrid& grid)
const;
154 std::vector<bool>& scalingApplicable);
156 template <
class Serializer>
159 serializer(this->m_ordering);
160 serializer(this->headI);
161 serializer(this->headJ);
162 serializer(this->m_connections);
163 serializer(this->coord);
164 serializer(this->md);
167 Connection::Order m_ordering { Connection::Order::TRACK };
170 std::vector<Connection> m_connections{};
171 std::vector<std::vector<double>> coord{3, std::vector<double>(0, 0.0) };
172 std::vector<double> md{};
174 void addConnection(
const int i,
const int j,
const int k,
175 const std::size_t global_index,
178 const Connection::State state,
184 const double connection_length,
185 const double skin_factor,
186 const int satTableId,
187 const Connection::Direction direction = Connection::Direction::Z,
188 const Connection::CTFKind ctf_kind = Connection::CTFKind::DeckValue,
189 const std::size_t seqIndex = 0,
190 const bool defaultSatTabId =
true);
192 size_t findClosestConnection(
int oi,
int oj,
double oz,
size_t start_pos);
200 getCompletionNumberFromGlobalConnectionIndex(
const WellConnections& connections,
This class implements a small container which holds the transmissibility mulitpliers for all the face...
Definition Exceptions.hpp:30