24#include <opm/input/eclipse/Deck/DeckKeyword.hpp>
33std::map<std::string, std::vector<std::pair<int, ICD> > >
34fromWSEG(
const DeckKeyword& wseg) {
35 std::map<std::string, std::vector<std::pair<int, ICD> > > res;
37 for (
const DeckRecord &record : wseg) {
38 const std::string well_name = record.getItem(
"WELL").getTrimmedString(0);
40 const int start_segment = record.getItem(
"SEGMENT1").get<
int>(0);
41 const int end_segment = record.getItem(
"SEGMENT2").get<
int>(0);
43 if (start_segment < 2 || end_segment < 2 || end_segment < start_segment) {
44 const std::string message =
"Segment numbers " + std::to_string(start_segment) +
" and "
45 + std::to_string(end_segment) +
" specified in WSEGSICD for well " +
48 throw std::invalid_argument(message);
51 const ICD spiral_icd(record);
52 for (
int seg = start_segment; seg <= end_segment; seg++) {
53 res[well_name].push_back(std::make_pair(seg, spiral_icd));
This class implements a small container which holds the transmissibility mulitpliers for all the face...
Definition Exceptions.hpp:30