Expose more indices in the INTEHEAD vector publicly
This commit is contained in:
parent
aa9bab75d9
commit
16f0869bc0
@ -27,90 +27,110 @@ namespace Opm { namespace RestartIO { namespace Helpers { namespace VectorItems
|
||||
// This is a subset of the items in src/opm/output/eclipse/InteHEAD.cpp .
|
||||
// Promote items from that list to this in order to make them public.
|
||||
enum intehead : std::vector<int>::size_type {
|
||||
ISNUM = 0, // An encoded integer corresponding to the
|
||||
// time the file was created. For files not
|
||||
// originating from ECLIPSE, this value may
|
||||
// be set to zero.
|
||||
ISNUM = 0, // An encoded integer corresponding to the
|
||||
// time the file was created. For files not
|
||||
// originating from ECLIPSE, this value may
|
||||
// be set to zero.
|
||||
|
||||
VERSION = 1, // Simulator version
|
||||
UNIT = 2, // Units convention
|
||||
// 1: METRIC, 2: FIELD, 3: LAB, 4: PVT-M
|
||||
VERSION = 1, // Simulator version
|
||||
UNIT = 2, // Units convention
|
||||
// 1: METRIC, 2: FIELD, 3: LAB, 4: PVT-M
|
||||
|
||||
NX = 8, // #cells in X direction (Cartesian)
|
||||
NY = 9, // #cells in Y direction (Cartesian)
|
||||
NZ = 10, // #cells in Z direction (Cartesian)
|
||||
NACTIV = 11, // Number of active cells
|
||||
NX = 8, // #cells in X direction (Cartesian)
|
||||
NY = 9, // #cells in Y direction (Cartesian)
|
||||
NZ = 10, // #cells in Z direction (Cartesian)
|
||||
NACTIV = 11, // Number of active cells
|
||||
|
||||
PHASE = 14, // Phase indicator:
|
||||
// 1: oil, 2: water, 3: O/W, 4: gas,
|
||||
// 5: G/O, 6: G/W, 7: O/G/W
|
||||
PHASE = 14, // Phase indicator:
|
||||
// 1: oil, 2: water, 3: O/W, 4: gas,
|
||||
// 5: G/O, 6: G/W, 7: O/G/W
|
||||
|
||||
NWELLS = 16, // Number of wells
|
||||
NCWMAX = 17, // Maximum number of completions per well
|
||||
NWGMAX = 19, // Maximum number of wells in any well group
|
||||
NGMAXZ = 20, // Maximum number of groups in field
|
||||
NWELLS = 16, // Number of wells
|
||||
NCWMAX = 17, // Maximum number of completions per well
|
||||
NGRP = 18, // Actual number of groups
|
||||
NWGMAX = 19, // Maximum number of wells in any well group
|
||||
NGMAXZ = 20, // Maximum number of groups in field
|
||||
|
||||
NIWELZ = 24, // Number of data elements per well in IWEL array
|
||||
// (default 97 for ECLIPSE, 94 for ECLIPSE 300).
|
||||
NSWELZ = 25, // Number of data elements per well in SWEL array
|
||||
NXWELZ = 26, // Number of delements per well in XWEL array
|
||||
NZWELZ = 27, // Number of 8-character words per well in ZWEL array
|
||||
NIWELZ = 24, // Number of data elements per well in IWEL array
|
||||
// (default 97 for ECLIPSE, 94 for ECLIPSE 300).
|
||||
NSWELZ = 25, // Number of data elements per well in SWEL array
|
||||
NXWELZ = 26, // Number of delements per well in XWEL array
|
||||
NZWELZ = 27, // Number of 8-character words per well in ZWEL array
|
||||
|
||||
NICONZ = 32, // Number of data elements per completion
|
||||
// in ICON array (default 19)
|
||||
NSCONZ = 33, // Number of data elements per completion in SCON array
|
||||
NXCONZ = 34, // Number of data elements per completion in XCON array
|
||||
NICONZ = 32, // Number of data elements per completion
|
||||
// in ICON array (default 19)
|
||||
NSCONZ = 33, // Number of data elements per completion in SCON array
|
||||
NXCONZ = 34, // Number of data elements per completion in XCON array
|
||||
|
||||
NIGRPZ = 36, // Number of data elements per group in IGRP array
|
||||
NSGRPZ = 37, // Number of data elements per group in SGRP array
|
||||
NXGRPZ = 38, // Number of data elements per group in XGRP array
|
||||
NZGRPZ = 39, // Number of data elements per group in ZGRP array
|
||||
NIGRPZ = 36, // Number of data elements per group in IGRP array
|
||||
NSGRPZ = 37, // Number of data elements per group in SGRP array
|
||||
NXGRPZ = 38, // Number of data elements per group in XGRP array
|
||||
NZGRPZ = 39, // Number of data elements per group in ZGRP array
|
||||
|
||||
NCAMAX = 41, // Maximum number of analytic aquifer connections
|
||||
NCAMAX = 41, // Maximum number of analytic aquifer connections
|
||||
|
||||
NIAAQZ = 42, // Number of data elements per aquifer in IAAQ array
|
||||
NSAAQZ = 43, // Number of data elements per aquifer in SAAQ array
|
||||
NXAAQZ = 44, // Number of data elements per aquifer in XAAQ array
|
||||
NIAAQZ = 42, // Number of data elements per aquifer in IAAQ array
|
||||
NSAAQZ = 43, // Number of data elements per aquifer in SAAQ array
|
||||
NXAAQZ = 44, // Number of data elements per aquifer in XAAQ array
|
||||
|
||||
NICAQZ = 45, // Number of data elements per aquifer connection in ICAQ array
|
||||
NSCAQZ = 46, // Number of data elements per aquifer connection in SCAQ array
|
||||
NACAQZ = 47, // Number of data elements per aquifer connection in ACAQ array
|
||||
|
||||
NGCTRL = 51, // Index indicating if group control is used or not (1 - if group control, 0 if not)
|
||||
|
||||
NGRNPH = 58, // Index indicating if group control is used or not (1 - if group control, 0 if not)
|
||||
NICAQZ = 45, // Number of data elements per aquifer connection in ICAQ array
|
||||
NSCAQZ = 46, // Number of data elements per aquifer connection in SCAQ array
|
||||
NACAQZ = 47, // Number of data elements per aquifer connection in ACAQ array
|
||||
|
||||
DAY = 64, // Calendar day of report step (1..31)
|
||||
MONTH = 65, // Calendar month of report step (1..12)
|
||||
YEAR = 66, // Calendar year of report step
|
||||
|
||||
WHISTC = 71, // Calendar year of report step
|
||||
NGCTRL = 51, // Index indicating if group control is used or not (1 - if group control, 0 if not)
|
||||
|
||||
NOOFACTIONS = 156, // The number of actions in the dataset
|
||||
MAXNOLINES = 157, // Maximum number of lines of schedule data for ACTION keyword - including ENDACTIO
|
||||
MAXNOSTRPRLINE = 158, // Maximum number of 8-chars strings pr input line of Action data (rounded up from input)
|
||||
NGRNPH = 58, // Index indicating if group control is used or not (1 - if group control, 0 if not)
|
||||
|
||||
NWMAXZ = 163, // Maximum number of wells in the model
|
||||
DAY = 64, // Calendar day of report step (1..31)
|
||||
MONTH = 65, // Calendar month of report step (1..12)
|
||||
YEAR = 66, // Calendar year of report step
|
||||
NUM_SOLVER_STEPS = 67, //
|
||||
REPORT_STEP = 68, //
|
||||
|
||||
NSEGWL = 174, // Number of multisegment wells defined with WELSEG
|
||||
NSWLMX = 175, // Maximum number of segmented wells (item 1 ofWSEGDIMS)
|
||||
NSEGMX = 176, // Maximum number of segments per well (item 2 of WSEGDIMS)
|
||||
NLBRMX = 177, // Maximum number of lateral branches (item 3 of WSEGDIMS)
|
||||
WHISTC = 71, // Calendar year of report step
|
||||
|
||||
NISEGZ = 178, // Number of entries per segment in ISEG array
|
||||
NRSEGZ = 179, // Number of entries per segment in RSEG array
|
||||
NILBRZ = 180, // Number of entries per segment in ILBR array
|
||||
NEWTMX = 80, // Tuning, Record3, Item1
|
||||
NEWTMN = 81, // Tuning, Record3, Item2
|
||||
LITMAX = 82, // Tuning, Record3, Item3
|
||||
LITMIN = 83, // Tuning, Record3, Item4
|
||||
MXWSIT = 86, // Tuning, Record3, Item5
|
||||
MXWPIT = 87, // Tuning, Record3, Item6
|
||||
|
||||
MAX_ACT_COND = 245, // Maximum number of conditions pr action
|
||||
NTFIP = 89, // REGDIMS item1, or TABDIMS item 5
|
||||
|
||||
IPROG = 94, // IPROG = simulation program identifier: 100 - ECLIPSE 100, 300 - ECLIPSE 300, 500 - ECLIPSE 300
|
||||
// (thermal option), negative - Other simulator,
|
||||
NMFIPR = 99, // REGDIMS item2
|
||||
NOOFACTIONS = 156, // The number of actions in the dataset
|
||||
MAXNOLINES = 157, // Maximum number of lines of schedule data for ACTION keyword - including ENDACTIO
|
||||
MAXNOSTRPRLINE = 158, // Maximum number of 8-chars strings pr input line of Action data (rounded up from input)
|
||||
|
||||
NWMAXZ = 163, // Maximum number of wells in the model
|
||||
|
||||
NSEGWL = 174, // Number of multisegment wells defined with WELSEG
|
||||
NSWLMX = 175, // Maximum number of segmented wells (item 1 ofWSEGDIMS)
|
||||
NSEGMX = 176, // Maximum number of segments per well (item 2 of WSEGDIMS)
|
||||
NLBRMX = 177, // Maximum number of lateral branches (item 3 of WSEGDIMS)
|
||||
|
||||
NISEGZ = 178, // Number of entries per segment in ISEG array
|
||||
NRSEGZ = 179, // Number of entries per segment in RSEG array
|
||||
NILBRZ = 180, // Number of entries per segment in ILBR array
|
||||
|
||||
IHOURZ = 206, // IHOURZ = current simulation time HH:MM:SS – number of hours (HH) (0-23).
|
||||
IMINTS = 207, // IMINTS = current simulation time HH:MM:SS – number of minutes (MM) (0-59).
|
||||
|
||||
MAX_ACT_COND = 245, // Maximum number of conditions pr action
|
||||
MAX_AN_AQUIFERS = 252, // Maximum number of analytic aquifers
|
||||
|
||||
NO_FIELD_UDQS = 262, // No of Field UDQ data (parameters) /
|
||||
NO_GROUP_UDQS = 263, // No of Group UDQ data (parameters) /
|
||||
NO_WELL_UDQS = 266, // No of Well UDQ data (parameters) /
|
||||
UDQPAR_1 = 267, // Integer seed value for the RAND /
|
||||
NO_IUADS = 290, // No IUADs
|
||||
NO_IUAPS = 291, // No IUAPs
|
||||
RSEED = 296,
|
||||
NO_FIELD_UDQS = 262, // No of Field UDQ data (parameters) /
|
||||
NO_GROUP_UDQS = 263, // No of Group UDQ data (parameters) /
|
||||
NO_WELL_UDQS = 266, // No of Well UDQ data (parameters) /
|
||||
UDQPAR_1 = 267, // Integer seed value for the RAND /
|
||||
NO_IUADS = 290, // No IUADs
|
||||
NO_IUAPS = 291, // No IUAPs
|
||||
RSEED = 296,
|
||||
ISECND = 410 // ISECND = current simulation time HH:MM:SS - number of seconds (SS), reported in microseconds
|
||||
// (0-59,999,999)
|
||||
};
|
||||
}}}} // Opm::RestartIO::Helpers::VectorItems
|
||||
|
||||
|
@ -37,7 +37,7 @@ enum index : std::vector<int>::size_type {
|
||||
ih_015 = 15 , // 0 0
|
||||
NWELLS = VI::intehead::NWELLS, // NWELLS 39 NWELL = number of wells
|
||||
NCWMAX = VI::intehead::NCWMAX, // NCWMAX 108 Weldims item2 NCWMAX = maximum number of completions per well
|
||||
NGRP = 18 , // NGRP? 0 Number of actual groups
|
||||
NGRP = VI::intehead::NGRP, // NGRP? 0 Number of actual groups
|
||||
NWGMAX = VI::intehead::NWGMAX, // NWGMAX 0 maximum of weldims item3 or item4 NWGMAX = maximum number of wells in any well group
|
||||
NGMAXZ = VI::intehead::NGMAXZ, // NGMAXZ 0 weldims item3 + 1 NGMAXZ = maximum number of groups in field
|
||||
ih_021 = 21 , // 0 0
|
||||
@ -86,8 +86,8 @@ enum index : std::vector<int>::size_type {
|
||||
DAY = VI::intehead::DAY, // IDAY 2 IDAY = calendar day at this report time
|
||||
MONTH = VI::intehead::MONTH, // IMON 6 IMON = calendar month at this report time
|
||||
YEAR = VI::intehead::YEAR, // IYEAR 2016 IYEAR = calendar year at this report time
|
||||
NUM_SOLVER_STEPS = 67 , // The number of solver steps the simulator has performed so far.
|
||||
REPORT_STEP = 68 , // The sequence/report number for for this restart file.
|
||||
NUM_SOLVER_STEPS = VI::intehead::NUM_SOLVER_STEPS, // The number of solver steps the simulator has performed so far.
|
||||
REPORT_STEP = VI::intehead::REPORT_STEP, // The sequence/report number for for this restart file.
|
||||
ih_069 = 69 , // 0 0
|
||||
ih_070 = 70 , // 0 0
|
||||
NWHISTCTL = VI::intehead::WHISTC, // index for WHISTCTL keyword
|
||||
@ -99,26 +99,26 @@ enum index : std::vector<int>::size_type {
|
||||
ih_077 = 77 , // 0 0
|
||||
ih_078 = 78 , // 0 0
|
||||
ih_079 = 79 , // 0 0
|
||||
NEWTMX = 80 , // 0 0 Tuning,Record3,Item1
|
||||
NEWTMN = 81 , // 0 0 Tuning,Record3,Item2
|
||||
LITMAX = 82 , // 0 0 Tuning,Record3,Item3
|
||||
LITMIN = 83 , // 0 0 Tuning,Record3,Item4
|
||||
NEWTMX = VI::intehead::NEWTMX, // 0 0 Tuning,Record3,Item1
|
||||
NEWTMN = VI::intehead::NEWTMN, // 0 0 Tuning,Record3,Item2
|
||||
LITMAX = VI::intehead::LITMAX, // 0 0 Tuning,Record3,Item3
|
||||
LITMIN = VI::intehead::LITMIN, // 0 0 Tuning,Record3,Item4
|
||||
ih_084 = 84 , // 0 0 Tuning,Record3,Item5
|
||||
ih_085 = 85 , // 0 0 Tuning,Record3,Item6
|
||||
MXWSIT = 86 , // 0 0
|
||||
MXWPIT = 87 , // 0 0
|
||||
MXWSIT = VI::intehead::MXWSIT, // 0 0
|
||||
MXWPIT = VI::intehead::MXWPIT, // 0 0
|
||||
ih_088 = 88 , // 0 0
|
||||
NTFIP = 89 , // 0 0 REGDIMS item1, or TABDIMS item 5
|
||||
NTFIP = VI::intehead::NTFIP, // 0 0
|
||||
ih_090 = 90 , // 0 0
|
||||
ih_091 = 91 , // 0 0
|
||||
ih_092 = 92 , // 0 0
|
||||
ih_093 = 93 , // 0 0
|
||||
IPROG = 94 , // 0 100 IPROG = simulation program identifier: 100 - ECLIPSE 100, 300 - ECLIPSE 300, 500 - ECLIPSE 300 (thermal option), negative - Other simulator
|
||||
IPROG = VI::intehead::IPROG, // 0 100
|
||||
INITSIZE = 95 , // 0 0
|
||||
ih_096 = 96 , // 0 0
|
||||
ih_097 = 97 , // 0 0
|
||||
ih_098 = 98 , // 0 0
|
||||
NMFIPR = 99 , // 0 0 REGDIMS item2
|
||||
NMFIPR = VI::intehead::NMFIPR, // 0 0
|
||||
ih_100 = 100 , // 0 0
|
||||
ih_101 = 101 , // 0 0 1
|
||||
ih_102 = 102 , // 0 0
|
||||
@ -225,8 +225,8 @@ enum index : std::vector<int>::size_type {
|
||||
ih_203 = 203 , // 0
|
||||
ih_204 = 204 , // 0
|
||||
ih_205 = 205 , // 0
|
||||
IHOURZ = 206 , // IHOURZ IHOURZ = current simulation time HH:MM:SS – number of hours (HH) (0-23).
|
||||
IMINTS = 207 , // IMINTS IMINTS = current simulation time HH:MM:SS - number of minutes (MM) (0-59).
|
||||
IHOURZ = VI::intehead::IHOURZ,
|
||||
IMINTS = VI::intehead::IMINTS,
|
||||
ih_208 = 208 , // 0
|
||||
ih_209 = 209 , // 0
|
||||
ih_210 = 210 , // 0
|
||||
@ -429,7 +429,7 @@ enum index : std::vector<int>::size_type {
|
||||
ih_407 = 407 , // 0
|
||||
ih_408 = 408 , // 0
|
||||
ih_409 = 409 , // 0
|
||||
ISECND = 410 , // 0 ISECND = current simulation time HH:MM:SS - number of seconds (SS), reported in microseconds (0-59,999,999)
|
||||
ISECND = VI::intehead::ISECND,
|
||||
// ---------------------------------------------------------------------
|
||||
// ---------------------------------------------------------------------
|
||||
|
||||
|
@ -330,8 +330,8 @@ BOOST_AUTO_TEST_CASE(Time_and_report_step)
|
||||
|
||||
const auto& v = ih.data();
|
||||
|
||||
BOOST_CHECK_EQUAL(v[67], 12); // TSTEP
|
||||
BOOST_CHECK_EQUAL(v[68], 2 + 1); // REP_STEP (= sim_step + 1)
|
||||
BOOST_CHECK_EQUAL(v[VI::intehead::NUM_SOLVER_STEPS], 12); // TSTEP
|
||||
BOOST_CHECK_EQUAL(v[VI::intehead::REPORT_STEP], 2 + 1); // REP_STEP (= sim_step + 1)
|
||||
}
|
||||
|
||||
BOOST_AUTO_TEST_CASE(Tuning_param)
|
||||
@ -350,12 +350,12 @@ BOOST_AUTO_TEST_CASE(Tuning_param)
|
||||
|
||||
const auto& v = ih.data();
|
||||
|
||||
BOOST_CHECK_EQUAL(v[80], newtmx); // NEWTMX
|
||||
BOOST_CHECK_EQUAL(v[81], newtmn); // NEWTMN
|
||||
BOOST_CHECK_EQUAL(v[82], litmax); // LITMAX
|
||||
BOOST_CHECK_EQUAL(v[83], litmin); // LITMIN
|
||||
BOOST_CHECK_EQUAL(v[86], mxwsit); // MXWSIT
|
||||
BOOST_CHECK_EQUAL(v[87], mxwpit); // MXWPIT
|
||||
BOOST_CHECK_EQUAL(v[VI::intehead::NEWTMX], newtmx);
|
||||
BOOST_CHECK_EQUAL(v[VI::intehead::NEWTMN], newtmn);
|
||||
BOOST_CHECK_EQUAL(v[VI::intehead::LITMAX], litmax);
|
||||
BOOST_CHECK_EQUAL(v[VI::intehead::LITMIN], litmin);
|
||||
BOOST_CHECK_EQUAL(v[VI::intehead::MXWSIT], mxwsit);
|
||||
BOOST_CHECK_EQUAL(v[VI::intehead::MXWPIT], mxwpit);
|
||||
}
|
||||
|
||||
BOOST_AUTO_TEST_CASE(Various_Parameters)
|
||||
@ -365,8 +365,8 @@ BOOST_AUTO_TEST_CASE(Various_Parameters)
|
||||
|
||||
const auto& v = ih.data();
|
||||
|
||||
BOOST_CHECK_EQUAL(v[ 1], 2015); // VERSION
|
||||
BOOST_CHECK_EQUAL(v[ 94], 100); // IPROG
|
||||
BOOST_CHECK_EQUAL(v[VI::intehead::VERSION], 2015); // VERSION
|
||||
BOOST_CHECK_EQUAL(v[VI::intehead::IPROG], 100); // IPROG
|
||||
BOOST_CHECK_EQUAL(v[ 76], 5); // IH_076
|
||||
BOOST_CHECK_EQUAL(v[101], 1); // IH_101
|
||||
BOOST_CHECK_EQUAL(v[103], 1); // IH_103
|
||||
@ -413,8 +413,8 @@ BOOST_AUTO_TEST_CASE(regionDimensions)
|
||||
|
||||
const auto& v = ih.data();
|
||||
|
||||
BOOST_CHECK_EQUAL(v[89], ntfip); // NTFIP
|
||||
BOOST_CHECK_EQUAL(v[99], nmfipr); // NMFIPR
|
||||
BOOST_CHECK_EQUAL(v[VI::intehead::NTFIP], ntfip);
|
||||
BOOST_CHECK_EQUAL(v[VI::intehead::NMFIPR], nmfipr);
|
||||
}
|
||||
|
||||
BOOST_AUTO_TEST_CASE(ngroups)
|
||||
@ -426,7 +426,7 @@ BOOST_AUTO_TEST_CASE(ngroups)
|
||||
|
||||
const auto& v = ih.data();
|
||||
|
||||
BOOST_CHECK_EQUAL(v[18], ngroup); // NGRP
|
||||
BOOST_CHECK_EQUAL(v[VI::intehead::NGRP], ngroup);
|
||||
}
|
||||
BOOST_AUTO_TEST_CASE(SimulationDate)
|
||||
{
|
||||
|
Loading…
Reference in New Issue
Block a user