WIP Added code to write InteHead and DoubHead data as well as IGPH to restart file,
Further added unit tests to the writing of UDQ data
This commit is contained in:
@@ -39,6 +39,12 @@ namespace Opm { namespace RestartIO {
|
||||
std::chrono::time_point<std::chrono::system_clock> start;
|
||||
std::chrono::duration<double, std::chrono::seconds::period> elapsed;
|
||||
};
|
||||
|
||||
struct udqParam {
|
||||
double udq_param_2;
|
||||
double udq_param_3;
|
||||
double udq_param_4;
|
||||
};
|
||||
|
||||
DoubHEAD();
|
||||
|
||||
@@ -60,7 +66,7 @@ namespace Opm { namespace RestartIO {
|
||||
const std::size_t lookup_step,
|
||||
const double cnvT);
|
||||
|
||||
DoubHEAD& udqParam(const UDQParams& udqPar);
|
||||
DoubHEAD& udq_param(const udqParam& udqPar);
|
||||
|
||||
const std::vector<double>& data() const
|
||||
{
|
||||
|
||||
@@ -92,9 +92,6 @@ namespace Opm { namespace RestartIO {
|
||||
|
||||
struct UdqParam {
|
||||
int udqParam_1;
|
||||
double udqParam_2;
|
||||
double udqParam_3;
|
||||
double udqParam_4;
|
||||
};
|
||||
|
||||
InteHEAD();
|
||||
@@ -124,6 +121,7 @@ namespace Opm { namespace RestartIO {
|
||||
InteHEAD& wellSegDimensions(const WellSegDims& wsdim);
|
||||
InteHEAD& regionDimensions(const RegDims& rdim);
|
||||
InteHEAD& ngroups(const Group& gr);
|
||||
InteHEAD& udqParam_1(const UdqParam& udqpar);
|
||||
|
||||
const std::vector<int>& data() const
|
||||
{
|
||||
|
||||
@@ -85,7 +85,7 @@ namespace Opm { namespace RestartIO { namespace Helpers { namespace VectorItems
|
||||
NRSEGZ = 179, // Number of entries per segment in RSEG array
|
||||
NILBRZ = 180, // Number of entries per segment in ILBR array
|
||||
|
||||
ISEEDVAL= 267, // Integer seed value for the RAND /
|
||||
UDQPAR_1 = 267, // Integer seed value for the RAND /
|
||||
};
|
||||
}}}} // Opm::RestartIO::Helpers::VectorItems
|
||||
|
||||
|
||||
@@ -31,7 +31,7 @@ namespace Opm {
|
||||
public:
|
||||
explicit UDQParams(const Deck& deck);
|
||||
UDQParams();
|
||||
|
||||
int rand_seed() const noexcept;
|
||||
void reseedRNG(int seed);
|
||||
double range() const noexcept;
|
||||
double undefinedValue() const noexcept;
|
||||
|
||||
@@ -75,7 +75,7 @@ namespace {
|
||||
iUdq[1] = -4;
|
||||
} else {
|
||||
iUdq[0] = 0;
|
||||
iUdq[1] = 0;
|
||||
iUdq[1] = -4;
|
||||
}
|
||||
iUdq[2] = udq_input.index.typed_insert_index;
|
||||
}
|
||||
@@ -191,13 +191,10 @@ namespace {
|
||||
}
|
||||
|
||||
template <class IGPHArray>
|
||||
void staticContrib(const Opm::Schedule& sched,
|
||||
const Opm::Group& group,
|
||||
const std::size_t simStep,
|
||||
const int indGph,
|
||||
IGPHArray& iGph)
|
||||
void staticContrib(const int inj_phase,
|
||||
IGPHArray& iGph)
|
||||
{
|
||||
|
||||
iGph[0] = inj_phase;
|
||||
}
|
||||
} // iGph
|
||||
|
||||
@@ -262,7 +259,9 @@ const std::vector<int> Opm::RestartIO::Helpers::igphData::ig_phase(const Opm::Sc
|
||||
auto group_ptr = it->second;
|
||||
if (group_ptr->isInjectionGroup(simStep)) {
|
||||
auto phase = group_ptr->getInjectionPhase(simStep);
|
||||
if ( phase == Opm::Phase::OIL ) inj_phase[ind] = 1;
|
||||
if ( phase == Opm::Phase::WATER ) inj_phase[ind] = 2;
|
||||
if ( phase == Opm::Phase::GAS ) inj_phase[ind] = 3;
|
||||
}
|
||||
it++;
|
||||
}
|
||||
@@ -313,6 +312,12 @@ captureDeclaredUDQData(const Opm::Schedule& sched,
|
||||
iUad::staticContrib(record, i_uad);
|
||||
}
|
||||
}
|
||||
Opm::RestartIO::Helpers::igphData igph_dat;
|
||||
auto igph = igph_dat.ig_phase(sched, simStep, inteHead);
|
||||
for (std::size_t index = 0; index < igph.size(); index++) {
|
||||
auto i_igph = this->iGPH_[index];
|
||||
iGph::staticContrib(igph[index], i_igph);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
|
||||
@@ -43,6 +43,17 @@ namespace {
|
||||
double, std::chrono::seconds::period>{ elapsed },
|
||||
};
|
||||
}
|
||||
|
||||
Opm::RestartIO::DoubHEAD::udqParam
|
||||
getUDQParam(const ::Opm::Runspec rspec)
|
||||
{
|
||||
const auto udqPar = rspec.udqParams();
|
||||
return {
|
||||
udqPar.range(),
|
||||
udqPar.undefinedValue(),
|
||||
udqPar.cmpEpsilon()
|
||||
};
|
||||
}
|
||||
|
||||
double getTimeConv(const ::Opm::UnitSystem& us)
|
||||
{
|
||||
@@ -82,12 +93,14 @@ createDoubHead(const EclipseState& es,
|
||||
const double nextTimeStep)
|
||||
{
|
||||
const auto& usys = es.getDeckUnitSystem();
|
||||
const auto& rspec = es.runspec();
|
||||
const auto tconv = getTimeConv(usys);
|
||||
|
||||
auto dh = DoubHEAD{}
|
||||
.tuningParameters(sched.getTuning(), lookup_step, tconv)
|
||||
.timeStamp (computeTimeStamp(sched, simTime))
|
||||
.drsdt (sched, lookup_step, tconv)
|
||||
.udq_param(getUDQParam(rspec))
|
||||
;
|
||||
|
||||
if (nextTimeStep > 0.0) {
|
||||
|
||||
@@ -183,6 +183,15 @@ namespace {
|
||||
};
|
||||
}
|
||||
|
||||
Opm::RestartIO::InteHEAD::UdqParam
|
||||
getRandSeedPar(const ::Opm::Runspec& rspec)
|
||||
{
|
||||
const auto& udq_par = rspec.udqParams();
|
||||
const auto r_seed = udq_par.rand_seed();
|
||||
|
||||
return { r_seed};
|
||||
}
|
||||
|
||||
Opm::RestartIO::InteHEAD::WellSegDims
|
||||
getWellSegDims(const ::Opm::Runspec& rspec,
|
||||
const ::Opm::Schedule& sched,
|
||||
@@ -280,6 +289,7 @@ createInteHead(const EclipseState& es,
|
||||
.regionDimensions (getRegDims(tdim, rdim))
|
||||
.ngroups ({ ngmax })
|
||||
.variousParam (201702, 100) // Output should be compatible with Eclipse 100, 2017.02 version.
|
||||
.udqParam_1 (getRandSeedPar(rspec))
|
||||
;
|
||||
|
||||
return ih.data();
|
||||
|
||||
@@ -620,11 +620,11 @@ Opm::RestartIO::DoubHEAD::drsdt(const Schedule& sched,
|
||||
}
|
||||
|
||||
Opm::RestartIO::DoubHEAD&
|
||||
Opm::RestartIO::DoubHEAD::udqParam(const UDQParams& udqPar)
|
||||
Opm::RestartIO::DoubHEAD::udq_param(const udqParam& udqPar)
|
||||
{
|
||||
this->data_[UdqPar_2] = udqPar.range();
|
||||
this->data_[UdqPar_3] = udqPar.undefinedValue();
|
||||
this->data_[UdqPar_4] = udqPar.cmpEpsilon();
|
||||
this->data_[UdqPar_2] = udqPar.udq_param_2;
|
||||
this->data_[UdqPar_3] = udqPar.udq_param_3;
|
||||
this->data_[UdqPar_4] = udqPar.udq_param_4;
|
||||
|
||||
return *this;
|
||||
}
|
||||
@@ -19,420 +19,419 @@
|
||||
namespace VI = ::Opm::RestartIO::Helpers::VectorItems;
|
||||
|
||||
enum index : std::vector<int>::size_type {
|
||||
ISNUM = VI::intehead::ISNUM , // 0 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 = VI::intehead::VERSION , // 0 0
|
||||
UNIT = VI::intehead::UNIT , // (1,2,3) 1 units type: 1 - METRIC, 2 - FIELD, 3 - LAB
|
||||
ih_003 = 3 , // 0 0
|
||||
ih_004 = 4 , // 0 0
|
||||
ih_005 = 5 , // 0 0
|
||||
ih_006 = 6 , // 0 0
|
||||
ih_007 = 7 , // 0 0
|
||||
NX = VI::intehead::NX , // NX 137 Grid x-direction dimension, NX
|
||||
NY = VI::intehead::NY , // NY 236 Grid x-direction dimension, NY
|
||||
NZ = VI::intehead::NZ , // NZ 58 Grid x-direction dimension, NZ
|
||||
NACTIV = VI::intehead::NACTIV , // NACTIV? 89022 NACTIV = number of active cells
|
||||
ih_012 = 12 , // 0 0
|
||||
ih_013 = 13 , // 0 0
|
||||
PHASE = VI::intehead::PHASE , // IPHS 7 IPHS = phase indicator: 1 - oil, 2 - water, 3 - oil/water, 4 - gas, 5 – oil/gas, 6 - gas/water, 7 - oil/water/gas (ECLIPSE output only)
|
||||
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
|
||||
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
|
||||
ih_022 = 22 , // 0 0
|
||||
ih_023 = 23 , // 0 0
|
||||
NIWELZ = VI::intehead::NIWELZ , // NIWELZ 155 155 NIWELZ = no of data elements per well in IWEL array (default 97 for ECLIPSE, 94 for ECLIPSE 300)
|
||||
NSWELZ = VI::intehead::NSWELZ , // NSWELZ 122 122 NSWELZ = number of daelements per well in SWEL array
|
||||
NXWELZ = VI::intehead::NXWELZ , // NXWELZ 130 130 NXWELZ = number of delements per well in XWEL array
|
||||
NZWELZ = VI::intehead::NZWELZ , // NZWEL 3 3 NZWEL = no of 8-character words per well in ZWEL array (= 3)
|
||||
ih_028 = 28 , // 0 0
|
||||
ih_029 = 29 , // 0 0
|
||||
ih_030 = 30 , // 0 0
|
||||
ih_031 = 31 , // 0 0
|
||||
NICONZ = VI::intehead::NICONZ , // 25 15 25 NICON = no of data elements per completion in ICON array (default 19)
|
||||
NSCONZ = VI::intehead::NSCONZ , // 40 0 NSCONZ = number of data elements per completion in SCON array
|
||||
NXCONZ = VI::intehead::NXCONZ , // 58 0 58 NXCONZ = number of data elements per completion in XCON array
|
||||
ih_035 = 35 , // 0 0
|
||||
NIGRPZ = VI::intehead::NIGRPZ , // 97+intehead_array[19] 0 97 + intehead[19] NIGRPZ = no of data elements per group in IGRP array
|
||||
NSGRPZ = VI::intehead::NSGRPZ , // 112 0 112 NSGRPZ = number of data elements per group in SGRP array
|
||||
NXGRPZ = VI::intehead::NXGRPZ , // 180 0 180 NXGRPZ = number of data elements per group in XGRP array
|
||||
NZGRPZ = VI::intehead::NZGRPZ , // 5 0 NZGRPZ = number of data elements per group in ZGRP array
|
||||
ih_040 = 40 , // 0 0
|
||||
NCAMAX = VI::intehead::NCAMAX , // 1 0 NCAMAX = maximum number of analytic aquifer connections
|
||||
NIAAQZ = VI::intehead::NIAAQZ , // 18 0 NIAAQZ = number of data elements per aquifer in IAAQ array
|
||||
NSAAQZ = VI::intehead::NSAAQZ , // 24 0 NSAAQZ = number of data elements per aquifer in SAAQ array
|
||||
NXAAQZ = VI::intehead::NXAAQZ , // 10 0 NXAAQZ = number of data elements per aquifer in XAAQ array
|
||||
NICAQZ = VI::intehead::NICAQZ , // 7 0 NSCAQZ= number of data elements per aquifer connection in SCAQ array
|
||||
NSCAQZ = VI::intehead::NSCAQZ , // 2 0
|
||||
NACAQZ = VI::intehead::NACAQZ , // 4 0
|
||||
ih_048 = 48 , // 0 0
|
||||
ih_049 = 49 , // 1 // has been determined by testing
|
||||
ih_050 = 50 , // 1 // has been determined by testing
|
||||
ih_051 = 51 , // 0 0
|
||||
ih_052 = 52 , // 0 0
|
||||
ih_053 = 53 , // 0 0
|
||||
ih_054 = 54 , // 0 0
|
||||
ih_055 = 55 , // 0 0
|
||||
ih_056 = 56 , // 0 0
|
||||
ih_057 = 57 , // 0 0
|
||||
ih_058 = 58 , // 0 0
|
||||
ih_059 = 59 , // 0 0
|
||||
ih_060 = 60 , // 0 0
|
||||
ih_061 = 61 , // 0 0
|
||||
ih_062 = 62 , // 0 0
|
||||
ih_063 = 63 , // 0 0
|
||||
DAY = 64 , // IDAY 2 IDAY = calendar day at this report time
|
||||
MONTH = 65 , // IMON 6 IMON = calendar month at this report time
|
||||
YEAR = 66 , // 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.
|
||||
ih_069 = 69 , // 0 0
|
||||
ih_070 = 70 , // 0 0
|
||||
ih_071 = 71 , // 0 0
|
||||
ih_072 = 72 , // 0 0
|
||||
ih_073 = 73 , // 0 0
|
||||
ih_074 = 74 , // 0 0
|
||||
ih_075 = 75 , // 0 0
|
||||
ih_076 = 76 , // 0 0 2
|
||||
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
|
||||
ih_084 = 84 , // 0 0 Tuning,Record3,Item5
|
||||
ih_085 = 85 , // 0 0 Tuning,Record3,Item6
|
||||
MXWSIT = 86 , // 0 0
|
||||
MXWPIT = 87 , // 0 0
|
||||
ih_088 = 88 , // 0 0
|
||||
NTFIP = 89 , // 0 0 REGDIMS item1, or TABDIMS item 5
|
||||
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
|
||||
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
|
||||
ih_100 = 100 , // 0 0
|
||||
ih_101 = 101 , // 0 0 1
|
||||
ih_102 = 102 , // 0 0
|
||||
ih_103 = 103 , // 0 0 1
|
||||
ih_104 = 104 , // 0 0
|
||||
ih_105 = 105 , // 0 0
|
||||
ih_106 = 106 , // 0 0
|
||||
ih_107 = 107 , // 0 0
|
||||
ih_108 = 108 , // 0 0
|
||||
ih_109 = 109 , // 0 0
|
||||
ih_110 = 110 , // 0 0
|
||||
ih_111 = 111 , // 0 0
|
||||
ih_112 = 112 , // 0 0
|
||||
ih_113 = 113 , // 0 0
|
||||
ih_114 = 114 , // 0 0
|
||||
ih_115 = 115 , // 0 0
|
||||
ih_116 = 116 , // 0 0
|
||||
ih_117 = 117 , // 0 0
|
||||
ih_118 = 118 , // 0 0
|
||||
ih_119 = 119 , // 0 0
|
||||
ih_120 = 120 , // 0 0
|
||||
ih_121 = 121 , // 0 0
|
||||
ih_122 = 122 , // 0 0
|
||||
ih_123 = 123 , // 0 0
|
||||
ih_124 = 124 , // 0 0
|
||||
ih_125 = 125 , // 0 0
|
||||
ih_126 = 126 , // 0 0
|
||||
ih_127 = 127 , // 0 0
|
||||
ih_128 = 128 , // 0 0
|
||||
ih_129 = 129 , // 0 0
|
||||
ih_130 = 130 , // 0 0
|
||||
NODMAX = 131 , // 0 0 NODMAX = maximum number of nodes in extended network option
|
||||
NBRMAX = 132 , // 0 0 NBRMAX = maximum number of branches in extended network option
|
||||
NIBRAN = 133 , // 0 0 NIBRAN = number of entries per branch in the IBRAN array
|
||||
NRBRAN = 134 , // 0 0 NRBRAN = number of tries per branch in the RBRAN array
|
||||
NINODE = 135 , // 0 0 NINODE = number of entries per node in the INODE array
|
||||
NRNODE = 136 , // 0 0 NRNODE = number of entries per node in the RNODE array
|
||||
NZNODE = 137 , // 0 0 NZNODE = number of entries per node in the ZNODE array
|
||||
NINOBR = 138 , // 0 0 NINOBR = size of the INOBR array
|
||||
ih_139 = 139 , // 0 0
|
||||
ih_140 = 140 , // 0 0
|
||||
ih_141 = 141 , // 0 0
|
||||
ih_142 = 142 , // 0 0
|
||||
ih_143 = 143 , // 0 0
|
||||
ih_144 = 144 , // 0 0
|
||||
ih_145 = 145 , // 0 0
|
||||
ih_146 = 146 , // 0 0
|
||||
ih_147 = 147 , // 0 0
|
||||
ih_148 = 148 , // 0 0
|
||||
ih_149 = 149 , // 0 0
|
||||
ih_150 = 150 , // 0 0
|
||||
ih_151 = 151 , // 0 0
|
||||
ih_152 = 152 , // 0 0
|
||||
ih_153 = 153 , // 0 0
|
||||
ih_154 = 154 , // 0 0
|
||||
ih_155 = 155 , // 0 0
|
||||
ih_156 = 156 , // 0 0
|
||||
ih_157 = 157 , // 0 0
|
||||
ih_158 = 158 , // 0 0
|
||||
ih_159 = 159 , // 0 0
|
||||
ih_160 = 160 , // 0 0
|
||||
ih_161 = 161 , // 0 0
|
||||
NGCAUS = 162 , // 0 0 NGCAUS = maximum number of aquifer connections actually used.
|
||||
ih_163 = 163 , // 0 0
|
||||
ih_164 = 164 , // 0 0
|
||||
ih_165 = 165 , // 0 0
|
||||
ih_166 = 166 , // 0 0
|
||||
ih_167 = 167 , // 0 0
|
||||
ih_168 = 168 , // 0 0
|
||||
ih_169 = 169 , // 0 0
|
||||
ih_170 = 170 , // 0 0
|
||||
ih_171 = 171 , // 0 0
|
||||
ih_172 = 172 , // 0 0
|
||||
ih_173 = 173 , // 0 0
|
||||
NSEGWL = VI::intehead::NSEGWL , // 0 0 number of mswm wells defined with WELSEG
|
||||
NSWLMX = VI::intehead::NSWLMX , // NSWLMX 0 Item 1 in WSEGDIMS keyword (runspec section) NSWLMX = maximum number of segmented wells
|
||||
NSEGMX = VI::intehead::NSEGMX , // NSEGMX 0 Item 2 in WSEGDIMS keyword (runspec section) NSEGMX = maximum number of segments per well
|
||||
NLBRMX = VI::intehead::NLBRMX , // NLBRMX 0 Item 3 in WSEGDIMS keyword (runspec section) NLBRMX = maximum number of lateral branches per well
|
||||
NISEGZ = VI::intehead::NISEGZ , // 22 0 22 NISEGZ = number of entries per segment in ISEG array
|
||||
NRSEGZ = VI::intehead::NRSEGZ , // 146 0 140 NRSEGZ = number of entries per segment in RSEG array
|
||||
NILBRZ = VI::intehead::NILBRZ , // 10 10 NILBRZ = number of entries per segment in ILBR array
|
||||
RSTSIZE = 181 , // 0
|
||||
ih_182 = 182 , // 0
|
||||
ih_183 = 183 , // 0
|
||||
ih_184 = 184 , // 0
|
||||
ih_185 = 185 , // 0
|
||||
ih_186 = 186 , // 0
|
||||
ih_187 = 187 , // 0
|
||||
ih_188 = 188 , // 0
|
||||
ih_189 = 189 , // 0
|
||||
ih_190 = 190 , // 0
|
||||
ih_191 = 191 , // 0
|
||||
ih_192 = 192 , // 0
|
||||
ih_193 = 193 , // 0
|
||||
ih_194 = 194 , // 0
|
||||
ih_195 = 195 , // 0
|
||||
ih_196 = 196 , // 0
|
||||
ih_197 = 197 , // 0
|
||||
ih_198 = 198 , // 0
|
||||
ih_199 = 199 , // 0
|
||||
ih_200 = 200 , // 0
|
||||
ih_201 = 201 , // 0
|
||||
ih_202 = 202 , // 0
|
||||
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).
|
||||
ih_208 = 208 , // 0
|
||||
ih_209 = 209 , // 0
|
||||
ih_210 = 210 , // 0
|
||||
ih_211 = 211 , // 0
|
||||
ih_212 = 212 , // 0
|
||||
ih_213 = 213 , // 0
|
||||
ih_214 = 214 , // 0
|
||||
ih_215 = 215 , // 0
|
||||
ih_216 = 216 , // 0
|
||||
ih_217 = 217 , // 0
|
||||
ih_218 = 218 , // 0
|
||||
ih_219 = 219 , // 0
|
||||
ih_220 = 220 , // 0
|
||||
ih_221 = 221 , // 0
|
||||
ih_222 = 222 , // 0
|
||||
NIIAQN = 223 , // 0 NIIAQN = number of lines of integer AQUNUM data.
|
||||
NIRAQN = 224 , // 0 NIRAQN = number of lines of real AQUNUM data.
|
||||
ih_225 = 225 , // 0
|
||||
NUMAQN = 226 , // 0 NUMAQN = number of lines of AQUNUM data entered.
|
||||
ih_227 = 227 , // 0
|
||||
ih_228 = 228 , // 0
|
||||
ih_229 = 229 , // 0
|
||||
ih_230 = 230 , // 0
|
||||
ih_231 = 231 , // 0
|
||||
ih_232 = 232 , // 0
|
||||
ih_233 = 233 , // 0
|
||||
NICOTZ = 234 , // 0 NICOTZ = number of entries in the ICOT array
|
||||
NXCOTZ = 235 , // 0 NXCOTZ = number of entries in the XCOT array
|
||||
NIWETZ = 236 , // 0 NIWETZ = number of entries in the IWET array
|
||||
NXWETZ = 237 , // 0 NXWETZ = number of entries in the XWET array
|
||||
NIGRTZ = 238 , // 0 NIGRTZ = number of entries in the IGRT array
|
||||
NXGRTZ = 239 , // 0 NXGRTZ = number of entries in the XGRT array
|
||||
NSTRA2 = 240 , // 0 NSTRA2 = number of tracers + 2
|
||||
ih_241 = 241 , // 0
|
||||
ih_242 = 242 , // 0
|
||||
ih_243 = 243 , // 0
|
||||
ih_244 = 244 , // 0
|
||||
ih_245 = 245 , // 0
|
||||
ih_246 = 246 , // 0
|
||||
ih_247 = 247 , // 0
|
||||
ih_248 = 248 , // 0
|
||||
ih_249 = 249 , // 0
|
||||
ih_250 = 250 , // 0
|
||||
ih_251 = 251 , // 0
|
||||
MAAQID = 252 , // 0 MAAQID = maximum number of analytic aquifers
|
||||
ih_253 = 253 , // 0
|
||||
ih_254 = 254 , // 0
|
||||
ih_255 = 255 , // 0
|
||||
ih_256 = 256 , // 0
|
||||
ih_257 = 257 , // 0
|
||||
ih_258 = 258 , // 0
|
||||
ih_259 = 259 , // 0
|
||||
ih_260 = 260 , // 0
|
||||
ih_261 = 261 , // 0
|
||||
ih_262 = 262 , // 0
|
||||
ih_263 = 263 , // 0
|
||||
ih_264 = 264 , // 0
|
||||
ih_265 = 265 , // 0
|
||||
ih_266 = 266 , // 0
|
||||
ih_267 = 267 , // 0
|
||||
ih_268 = 268 , // 0
|
||||
ih_269 = 269 , // 0
|
||||
ih_270 = 270 , // 0
|
||||
NCRDMX = 271 , // 0 NCRDMX = maximum number of chord segment links per well
|
||||
ih_272 = 272 , // 0
|
||||
ih_273 = 273 , // 0
|
||||
ih_274 = 274 , // 0
|
||||
ih_275 = 275 , // 0
|
||||
ih_276 = 276 , // 0
|
||||
ih_277 = 277 , // 0
|
||||
ih_278 = 278 , // 0
|
||||
ih_279 = 279 , // 0
|
||||
ih_280 = 280 , // 0
|
||||
ih_281 = 281 , // 0
|
||||
ih_282 = 282 , // 0
|
||||
ih_283 = 283 , // 0
|
||||
ih_284 = 284 , // 0
|
||||
ih_285 = 285 , // 0
|
||||
ih_286 = 286 , // 0
|
||||
ih_287 = 287 , // 0
|
||||
ih_288 = 288 , // 0
|
||||
ih_289 = 289 , // 0
|
||||
ih_290 = 290 , // 0
|
||||
ih_291 = 291 , // 0
|
||||
ih_292 = 292 , // 0
|
||||
ih_293 = 293 , // 0
|
||||
ih_294 = 294 , // 0
|
||||
ih_295 = 295 , // 0
|
||||
ih_296 = 296 , // 0
|
||||
ih_297 = 297 , // 0
|
||||
ih_298 = 298 , // 0
|
||||
ih_299 = 299 , // 0
|
||||
ih_300 = 300 , // 0
|
||||
ih_301 = 301 , // 0
|
||||
ih_302 = 302 , // 0
|
||||
ih_303 = 303 , // 0
|
||||
ih_304 = 304 , // 0
|
||||
ih_305 = 305 , // 0
|
||||
ih_306 = 306 , // 0
|
||||
ih_307 = 307 , // 0
|
||||
ih_308 = 308 , // 0
|
||||
ih_309 = 309 , // 0
|
||||
ih_310 = 310 , // 0
|
||||
ih_311 = 311 , // 0
|
||||
ih_312 = 312 , // 0
|
||||
ih_313 = 313 , // 0
|
||||
ih_314 = 314 , // 0
|
||||
ih_315 = 315 , // 0
|
||||
ih_316 = 316 , // 0
|
||||
ih_317 = 317 , // 0
|
||||
ih_318 = 318 , // 0
|
||||
ih_319 = 319 , // 0
|
||||
ih_320 = 320 , // 0
|
||||
ih_321 = 321 , // 0
|
||||
ih_322 = 322 , // 0
|
||||
ih_323 = 323 , // 0
|
||||
ih_324 = 324 , // 0
|
||||
ih_325 = 325 , // 0
|
||||
ih_326 = 326 , // 0
|
||||
ih_327 = 327 , // 0
|
||||
ih_328 = 328 , // 0
|
||||
ih_329 = 329 , // 0
|
||||
ih_330 = 330 , // 0
|
||||
ih_331 = 331 , // 0
|
||||
ih_332 = 332 , // 0
|
||||
ih_333 = 333 , // 0
|
||||
ih_334 = 334 , // 0
|
||||
ih_335 = 335 , // 0
|
||||
ih_336 = 336 , // 0
|
||||
ih_337 = 337 , // 0
|
||||
ih_338 = 338 , // 0
|
||||
ih_339 = 339 , // 0
|
||||
ih_340 = 340 , // 0
|
||||
ih_341 = 341 , // 0
|
||||
ih_342 = 342 , // 0
|
||||
ih_343 = 343 , // 0
|
||||
ih_344 = 344 , // 0
|
||||
ih_345 = 345 , // 0
|
||||
ih_346 = 346 , // 0
|
||||
ih_347 = 347 , // 0
|
||||
ih_348 = 348 , // 0
|
||||
ih_349 = 349 , // 0
|
||||
ih_350 = 350 , // 0
|
||||
ih_351 = 351 , // 0
|
||||
ih_352 = 352 , // 0
|
||||
ih_353 = 353 , // 0
|
||||
ih_354 = 354 , // 0
|
||||
ih_355 = 355 , // 0
|
||||
ih_356 = 356 , // 0
|
||||
ih_357 = 357 , // 0
|
||||
ih_358 = 358 , // 0
|
||||
ih_359 = 359 , // 0
|
||||
ih_360 = 360 , // 0
|
||||
ih_361 = 361 , // 0
|
||||
ih_362 = 362 , // 0
|
||||
ih_363 = 363 , // 0
|
||||
ih_364 = 364 , // 0
|
||||
ih_365 = 365 , // 0
|
||||
ih_366 = 366 , // 0
|
||||
ih_367 = 367 , // 0
|
||||
ih_368 = 368 , // 0
|
||||
ih_369 = 369 , // 0
|
||||
ih_370 = 370 , // 0
|
||||
ih_371 = 371 , // 0
|
||||
ih_372 = 372 , // 0
|
||||
ih_373 = 373 , // 0
|
||||
ih_374 = 374 , // 0
|
||||
ih_375 = 375 , // 0
|
||||
ih_376 = 376 , // 0
|
||||
ih_377 = 377 , // 0
|
||||
ih_378 = 378 , // 0
|
||||
ih_379 = 379 , // 0
|
||||
ih_380 = 380 , // 0
|
||||
ih_381 = 381 , // 0
|
||||
ih_382 = 382 , // 0
|
||||
ih_383 = 383 , // 0
|
||||
ih_384 = 384 , // 0
|
||||
ih_385 = 385 , // 0
|
||||
ih_386 = 386 , // 0
|
||||
ih_387 = 387 , // 0
|
||||
ih_388 = 388 , // 0
|
||||
ih_389 = 389 , // 0
|
||||
ih_390 = 390 , // 0
|
||||
ih_391 = 391 , // 0
|
||||
ih_392 = 392 , // 0
|
||||
ih_393 = 393 , // 0
|
||||
ih_394 = 394 , // 0
|
||||
ih_395 = 395 , // 0
|
||||
ih_396 = 396 , // 0
|
||||
ih_397 = 397 , // 0
|
||||
ih_398 = 398 , // 0
|
||||
ih_399 = 399 , // 0
|
||||
ih_400 = 400 , // 0
|
||||
ih_401 = 401 , // 0
|
||||
ih_402 = 402 , // 0
|
||||
ih_403 = 403 , // 0
|
||||
ih_404 = 404 , // 0
|
||||
ih_405 = 405 , // 0
|
||||
ih_406 = 406 , // 0
|
||||
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)
|
||||
|
||||
// ---------------------------------------------------------------------
|
||||
// ---------------------------------------------------------------------
|
||||
ISNUM = VI::intehead::ISNUM, // 0 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 = VI::intehead::VERSION, // 0 0
|
||||
UNIT = VI::intehead::UNIT, // (1,2,3) 1 units type: 1 - METRIC, 2 - FIELD, 3 - LAB
|
||||
ih_003 = 3 , // 0 0
|
||||
ih_004 = 4 , // 0 0
|
||||
ih_005 = 5 , // 0 0
|
||||
ih_006 = 6 , // 0 0
|
||||
ih_007 = 7 , // 0 0
|
||||
NX = VI::intehead::NX, // NX 137 Grid x-direction dimension, NX
|
||||
NY = VI::intehead::NY, // NY 236 Grid x-direction dimension, NY
|
||||
NZ = VI::intehead::NZ, // NZ 58 Grid x-direction dimension, NZ
|
||||
NACTIV = VI::intehead::NACTIV, // NACTIV? 89022 NACTIV = number of active cells
|
||||
ih_012 = 12 , // 0 0
|
||||
ih_013 = 13 , // 0 0
|
||||
PHASE = VI::intehead::PHASE, // IPHS 7 IPHS = phase indicator: 1 - oil, 2 - water, 3 - oil/water, 4 - gas, 5 – oil/gas, 6 - gas/water, 7 - oil/water/gas (ECLIPSE output only)
|
||||
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
|
||||
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
|
||||
ih_022 = 22 , // 0 0
|
||||
ih_023 = 23 , // 0 0
|
||||
NIWELZ = VI::intehead::NIWELZ, // NIWELZ 155 155 NIWELZ = no of data elements per well in IWEL array (default 97 for ECLIPSE, 94 for ECLIPSE 300)
|
||||
NSWELZ = VI::intehead::NSWELZ, // NSWELZ 122 122 NSWELZ = number of daelements per well in SWEL array
|
||||
NXWELZ = VI::intehead::NXWELZ, // NXWELZ 130 130 NXWELZ = number of delements per well in XWEL array
|
||||
NZWELZ = VI::intehead::NZWELZ, // NZWEL 3 3 NZWEL = no of 8-character words per well in ZWEL array (= 3)
|
||||
ih_028 = 28 , // 0 0
|
||||
ih_029 = 29 , // 0 0
|
||||
ih_030 = 30 , // 0 0
|
||||
ih_031 = 31 , // 0 0
|
||||
NICONZ = VI::intehead::NICONZ, // 25 15 25 NICON = no of data elements per completion in ICON array (default 19)
|
||||
NSCONZ = VI::intehead::NSCONZ, // 40 0 NSCONZ = number of data elements per completion in SCON array
|
||||
NXCONZ = VI::intehead::NXCONZ, // 58 0 58 NXCONZ = number of data elements per completion in XCON array
|
||||
ih_035 = 35 , // 0 0
|
||||
NIGRPZ = VI::intehead::NIGRPZ, // 97+intehead_array[19] 0 97 + intehead[19] NIGRPZ = no of data elements per group in IGRP array
|
||||
NSGRPZ = VI::intehead::NSGRPZ, // 112 0 112 NSGRPZ = number of data elements per group in SGRP array
|
||||
NXGRPZ = VI::intehead::NXGRPZ, // 180 0 180 NXGRPZ = number of data elements per group in XGRP array
|
||||
NZGRPZ = VI::intehead::NZGRPZ, // 5 0 NZGRPZ = number of data elements per group in ZGRP array
|
||||
ih_040 = 40 , // 0 0
|
||||
NCAMAX = VI::intehead::NCAMAX, // 1 0 NCAMAX = maximum number of analytic aquifer connections
|
||||
NIAAQZ = VI::intehead::NIAAQZ, // 18 0 NIAAQZ = number of data elements per aquifer in IAAQ array
|
||||
NSAAQZ = VI::intehead::NSAAQZ, // 24 0 NSAAQZ = number of data elements per aquifer in SAAQ array
|
||||
NXAAQZ = VI::intehead::NXAAQZ, // 10 0 NXAAQZ = number of data elements per aquifer in XAAQ array
|
||||
NICAQZ = VI::intehead::NICAQZ, // 7 0 NSCAQZ= number of data elements per aquifer connection in SCAQ array
|
||||
NSCAQZ = VI::intehead::NSCAQZ, // 2 0
|
||||
NACAQZ = VI::intehead::NACAQZ, // 4 0
|
||||
ih_048 = 48 , // 0 0
|
||||
ih_049 = 49 , // 1 // has been determined by testing
|
||||
ih_050 = 50 , // 1 // has been determined by testing
|
||||
ih_051 = 51 , // 0 0
|
||||
ih_052 = 52 , // 0 0
|
||||
ih_053 = 53 , // 0 0
|
||||
ih_054 = 54 , // 0 0
|
||||
ih_055 = 55 , // 0 0
|
||||
ih_056 = 56 , // 0 0
|
||||
ih_057 = 57 , // 0 0
|
||||
ih_058 = 58 , // 0 0
|
||||
ih_059 = 59 , // 0 0
|
||||
ih_060 = 60 , // 0 0
|
||||
ih_061 = 61 , // 0 0
|
||||
ih_062 = 62 , // 0 0
|
||||
ih_063 = 63 , // 0 0
|
||||
DAY = 64 , // IDAY 2 IDAY = calendar day at this report time
|
||||
MONTH = 65 , // IMON 6 IMON = calendar month at this report time
|
||||
YEAR = 66 , // 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.
|
||||
ih_069 = 69 , // 0 0
|
||||
ih_070 = 70 , // 0 0
|
||||
ih_071 = 71 , // 0 0
|
||||
ih_072 = 72 , // 0 0
|
||||
ih_073 = 73 , // 0 0
|
||||
ih_074 = 74 , // 0 0
|
||||
ih_075 = 75 , // 0 0
|
||||
ih_076 = 76 , // 0 0 2
|
||||
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
|
||||
ih_084 = 84 , // 0 0 Tuning,Record3,Item5
|
||||
ih_085 = 85 , // 0 0 Tuning,Record3,Item6
|
||||
MXWSIT = 86 , // 0 0
|
||||
MXWPIT = 87 , // 0 0
|
||||
ih_088 = 88 , // 0 0
|
||||
NTFIP = 89 , // 0 0 REGDIMS item1, or TABDIMS item 5
|
||||
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
|
||||
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
|
||||
ih_100 = 100 , // 0 0
|
||||
ih_101 = 101 , // 0 0 1
|
||||
ih_102 = 102 , // 0 0
|
||||
ih_103 = 103 , // 0 0 1
|
||||
ih_104 = 104 , // 0 0
|
||||
ih_105 = 105 , // 0 0
|
||||
ih_106 = 106 , // 0 0
|
||||
ih_107 = 107 , // 0 0
|
||||
ih_108 = 108 , // 0 0
|
||||
ih_109 = 109 , // 0 0
|
||||
ih_110 = 110 , // 0 0
|
||||
ih_111 = 111 , // 0 0
|
||||
ih_112 = 112 , // 0 0
|
||||
ih_113 = 113 , // 0 0
|
||||
ih_114 = 114 , // 0 0
|
||||
ih_115 = 115 , // 0 0
|
||||
ih_116 = 116 , // 0 0
|
||||
ih_117 = 117 , // 0 0
|
||||
ih_118 = 118 , // 0 0
|
||||
ih_119 = 119 , // 0 0
|
||||
ih_120 = 120 , // 0 0
|
||||
ih_121 = 121 , // 0 0
|
||||
ih_122 = 122 , // 0 0
|
||||
ih_123 = 123 , // 0 0
|
||||
ih_124 = 124 , // 0 0
|
||||
ih_125 = 125 , // 0 0
|
||||
ih_126 = 126 , // 0 0
|
||||
ih_127 = 127 , // 0 0
|
||||
ih_128 = 128 , // 0 0
|
||||
ih_129 = 129 , // 0 0
|
||||
ih_130 = 130 , // 0 0
|
||||
NODMAX = 131 , // 0 0 NODMAX = maximum number of nodes in extended network option
|
||||
NBRMAX = 132 , // 0 0 NBRMAX = maximum number of branches in extended network option
|
||||
NIBRAN = 133 , // 0 0 NIBRAN = number of entries per branch in the IBRAN array
|
||||
NRBRAN = 134 , // 0 0 NRBRAN = number of tries per branch in the RBRAN array
|
||||
NINODE = 135 , // 0 0 NINODE = number of entries per node in the INODE array
|
||||
NRNODE = 136 , // 0 0 NRNODE = number of entries per node in the RNODE array
|
||||
NZNODE = 137 , // 0 0 NZNODE = number of entries per node in the ZNODE array
|
||||
NINOBR = 138 , // 0 0 NINOBR = size of the INOBR array
|
||||
ih_139 = 139 , // 0 0
|
||||
ih_140 = 140 , // 0 0
|
||||
ih_141 = 141 , // 0 0
|
||||
ih_142 = 142 , // 0 0
|
||||
ih_143 = 143 , // 0 0
|
||||
ih_144 = 144 , // 0 0
|
||||
ih_145 = 145 , // 0 0
|
||||
ih_146 = 146 , // 0 0
|
||||
ih_147 = 147 , // 0 0
|
||||
ih_148 = 148 , // 0 0
|
||||
ih_149 = 149 , // 0 0
|
||||
ih_150 = 150 , // 0 0
|
||||
ih_151 = 151 , // 0 0
|
||||
ih_152 = 152 , // 0 0
|
||||
ih_153 = 153 , // 0 0
|
||||
ih_154 = 154 , // 0 0
|
||||
ih_155 = 155 , // 0 0
|
||||
ih_156 = 156 , // 0 0
|
||||
ih_157 = 157 , // 0 0
|
||||
ih_158 = 158 , // 0 0
|
||||
ih_159 = 159 , // 0 0
|
||||
ih_160 = 160 , // 0 0
|
||||
ih_161 = 161 , // 0 0
|
||||
NGCAUS = 162 , // 0 0 NGCAUS = maximum number of aquifer connections actually used.
|
||||
ih_163 = 163 , // 0 0
|
||||
ih_164 = 164 , // 0 0
|
||||
ih_165 = 165 , // 0 0
|
||||
ih_166 = 166 , // 0 0
|
||||
ih_167 = 167 , // 0 0
|
||||
ih_168 = 168 , // 0 0
|
||||
ih_169 = 169 , // 0 0
|
||||
ih_170 = 170 , // 0 0
|
||||
ih_171 = 171 , // 0 0
|
||||
ih_172 = 172 , // 0 0
|
||||
ih_173 = 173 , // 0 0
|
||||
NSEGWL = VI::intehead::NSEGWL, // 0 0 number of mswm wells defined with WELSEG
|
||||
NSWLMX = VI::intehead::NSWLMX, // NSWLMX 0 Item 1 in WSEGDIMS keyword (runspec section) NSWLMX = maximum number of segmented wells
|
||||
NSEGMX = VI::intehead::NSEGMX, // NSEGMX 0 Item 2 in WSEGDIMS keyword (runspec section) NSEGMX = maximum number of segments per well
|
||||
NLBRMX = VI::intehead::NLBRMX, // NLBRMX 0 Item 3 in WSEGDIMS keyword (runspec section) NLBRMX = maximum number of lateral branches per well
|
||||
NISEGZ = VI::intehead::NISEGZ, // 22 0 22 NISEGZ = number of entries per segment in ISEG array
|
||||
NRSEGZ = VI::intehead::NRSEGZ, // 146 0 140 NRSEGZ = number of entries per segment in RSEG array
|
||||
NILBRZ = VI::intehead::NILBRZ, // 10 10 NILBRZ = number of entries per segment in ILBR array
|
||||
RSTSIZE = 181 , // 0
|
||||
ih_182 = 182 , // 0
|
||||
ih_183 = 183 , // 0
|
||||
ih_184 = 184 , // 0
|
||||
ih_185 = 185 , // 0
|
||||
ih_186 = 186 , // 0
|
||||
ih_187 = 187 , // 0
|
||||
ih_188 = 188 , // 0
|
||||
ih_189 = 189 , // 0
|
||||
ih_190 = 190 , // 0
|
||||
ih_191 = 191 , // 0
|
||||
ih_192 = 192 , // 0
|
||||
ih_193 = 193 , // 0
|
||||
ih_194 = 194 , // 0
|
||||
ih_195 = 195 , // 0
|
||||
ih_196 = 196 , // 0
|
||||
ih_197 = 197 , // 0
|
||||
ih_198 = 198 , // 0
|
||||
ih_199 = 199 , // 0
|
||||
ih_200 = 200 , // 0
|
||||
ih_201 = 201 , // 0
|
||||
ih_202 = 202 , // 0
|
||||
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).
|
||||
ih_208 = 208 , // 0
|
||||
ih_209 = 209 , // 0
|
||||
ih_210 = 210 , // 0
|
||||
ih_211 = 211 , // 0
|
||||
ih_212 = 212 , // 0
|
||||
ih_213 = 213 , // 0
|
||||
ih_214 = 214 , // 0
|
||||
ih_215 = 215 , // 0
|
||||
ih_216 = 216 , // 0
|
||||
ih_217 = 217 , // 0
|
||||
ih_218 = 218 , // 0
|
||||
ih_219 = 219 , // 0
|
||||
ih_220 = 220 , // 0
|
||||
ih_221 = 221 , // 0
|
||||
ih_222 = 222 , // 0
|
||||
NIIAQN = 223 , // 0 NIIAQN = number of lines of integer AQUNUM data.
|
||||
NIRAQN = 224 , // 0 NIRAQN = number of lines of real AQUNUM data.
|
||||
ih_225 = 225 , // 0
|
||||
NUMAQN = 226 , // 0 NUMAQN = number of lines of AQUNUM data entered.
|
||||
ih_227 = 227 , // 0
|
||||
ih_228 = 228 , // 0
|
||||
ih_229 = 229 , // 0
|
||||
ih_230 = 230 , // 0
|
||||
ih_231 = 231 , // 0
|
||||
ih_232 = 232 , // 0
|
||||
ih_233 = 233 , // 0
|
||||
NICOTZ = 234 , // 0 NICOTZ = number of entries in the ICOT array
|
||||
NXCOTZ = 235 , // 0 NXCOTZ = number of entries in the XCOT array
|
||||
NIWETZ = 236 , // 0 NIWETZ = number of entries in the IWET array
|
||||
NXWETZ = 237 , // 0 NXWETZ = number of entries in the XWET array
|
||||
NIGRTZ = 238 , // 0 NIGRTZ = number of entries in the IGRT array
|
||||
NXGRTZ = 239 , // 0 NXGRTZ = number of entries in the XGRT array
|
||||
NSTRA2 = 240 , // 0 NSTRA2 = number of tracers + 2
|
||||
ih_241 = 241 , // 0
|
||||
ih_242 = 242 , // 0
|
||||
ih_243 = 243 , // 0
|
||||
ih_244 = 244 , // 0
|
||||
ih_245 = 245 , // 0
|
||||
ih_246 = 246 , // 0
|
||||
ih_247 = 247 , // 0
|
||||
ih_248 = 248 , // 0
|
||||
ih_249 = 249 , // 0
|
||||
ih_250 = 250 , // 0
|
||||
ih_251 = 251 , // 0
|
||||
MAAQID = 252 , // 0 MAAQID = maximum number of analytic aquifers
|
||||
ih_253 = 253 , // 0
|
||||
ih_254 = 254 , // 0
|
||||
ih_255 = 255 , // 0
|
||||
ih_256 = 256 , // 0
|
||||
ih_257 = 257 , // 0
|
||||
ih_258 = 258 , // 0
|
||||
ih_259 = 259 , // 0
|
||||
ih_260 = 260 , // 0
|
||||
ih_261 = 261 , // 0
|
||||
ih_262 = 262 , // 0
|
||||
ih_263 = 263 , // 0
|
||||
ih_264 = 264 , // 0
|
||||
ih_265 = 265 , // 0
|
||||
ih_266 = 266 , // 0
|
||||
UDQPAR_1 = VI::intehead::UDQPAR_1, // 0
|
||||
ih_268 = 268 , // 0
|
||||
ih_269 = 269 , // 0
|
||||
ih_270 = 270 , // 0
|
||||
NCRDMX = 271 , // 0 NCRDMX = maximum number of chord segment links per well
|
||||
ih_272 = 272 , // 0
|
||||
ih_273 = 273 , // 0
|
||||
ih_274 = 274 , // 0
|
||||
ih_275 = 275 , // 0
|
||||
ih_276 = 276 , // 0
|
||||
ih_277 = 277 , // 0
|
||||
ih_278 = 278 , // 0
|
||||
ih_279 = 279 , // 0
|
||||
ih_280 = 280 , // 0
|
||||
ih_281 = 281 , // 0
|
||||
ih_282 = 282 , // 0
|
||||
ih_283 = 283 , // 0
|
||||
ih_284 = 284 , // 0
|
||||
ih_285 = 285 , // 0
|
||||
ih_286 = 286 , // 0
|
||||
ih_287 = 287 , // 0
|
||||
ih_288 = 288 , // 0
|
||||
ih_289 = 289 , // 0
|
||||
ih_290 = 290 , // 0
|
||||
ih_291 = 291 , // 0
|
||||
ih_292 = 292 , // 0
|
||||
ih_293 = 293 , // 0
|
||||
ih_294 = 294 , // 0
|
||||
ih_295 = 295 , // 0
|
||||
ih_296 = 296 , // 0
|
||||
ih_297 = 297 , // 0
|
||||
ih_298 = 298 , // 0
|
||||
ih_299 = 299 , // 0
|
||||
ih_300 = 300 , // 0
|
||||
ih_301 = 301 , // 0
|
||||
ih_302 = 302 , // 0
|
||||
ih_303 = 303 , // 0
|
||||
ih_304 = 304 , // 0
|
||||
ih_305 = 305 , // 0
|
||||
ih_306 = 306 , // 0
|
||||
ih_307 = 307 , // 0
|
||||
ih_308 = 308 , // 0
|
||||
ih_309 = 309 , // 0
|
||||
ih_310 = 310 , // 0
|
||||
ih_311 = 311 , // 0
|
||||
ih_312 = 312 , // 0
|
||||
ih_313 = 313 , // 0
|
||||
ih_314 = 314 , // 0
|
||||
ih_315 = 315 , // 0
|
||||
ih_316 = 316 , // 0
|
||||
ih_317 = 317 , // 0
|
||||
ih_318 = 318 , // 0
|
||||
ih_319 = 319 , // 0
|
||||
ih_320 = 320 , // 0
|
||||
ih_321 = 321 , // 0
|
||||
ih_322 = 322 , // 0
|
||||
ih_323 = 323 , // 0
|
||||
ih_324 = 324 , // 0
|
||||
ih_325 = 325 , // 0
|
||||
ih_326 = 326 , // 0
|
||||
ih_327 = 327 , // 0
|
||||
ih_328 = 328 , // 0
|
||||
ih_329 = 329 , // 0
|
||||
ih_330 = 330 , // 0
|
||||
ih_331 = 331 , // 0
|
||||
ih_332 = 332 , // 0
|
||||
ih_333 = 333 , // 0
|
||||
ih_334 = 334 , // 0
|
||||
ih_335 = 335 , // 0
|
||||
ih_336 = 336 , // 0
|
||||
ih_337 = 337 , // 0
|
||||
ih_338 = 338 , // 0
|
||||
ih_339 = 339 , // 0
|
||||
ih_340 = 340 , // 0
|
||||
ih_341 = 341 , // 0
|
||||
ih_342 = 342 , // 0
|
||||
ih_343 = 343 , // 0
|
||||
ih_344 = 344 , // 0
|
||||
ih_345 = 345 , // 0
|
||||
ih_346 = 346 , // 0
|
||||
ih_347 = 347 , // 0
|
||||
ih_348 = 348 , // 0
|
||||
ih_349 = 349 , // 0
|
||||
ih_350 = 350 , // 0
|
||||
ih_351 = 351 , // 0
|
||||
ih_352 = 352 , // 0
|
||||
ih_353 = 353 , // 0
|
||||
ih_354 = 354 , // 0
|
||||
ih_355 = 355 , // 0
|
||||
ih_356 = 356 , // 0
|
||||
ih_357 = 357 , // 0
|
||||
ih_358 = 358 , // 0
|
||||
ih_359 = 359 , // 0
|
||||
ih_360 = 360 , // 0
|
||||
ih_361 = 361 , // 0
|
||||
ih_362 = 362 , // 0
|
||||
ih_363 = 363 , // 0
|
||||
ih_364 = 364 , // 0
|
||||
ih_365 = 365 , // 0
|
||||
ih_366 = 366 , // 0
|
||||
ih_367 = 367 , // 0
|
||||
ih_368 = 368 , // 0
|
||||
ih_369 = 369 , // 0
|
||||
ih_370 = 370 , // 0
|
||||
ih_371 = 371 , // 0
|
||||
ih_372 = 372 , // 0
|
||||
ih_373 = 373 , // 0
|
||||
ih_374 = 374 , // 0
|
||||
ih_375 = 375 , // 0
|
||||
ih_376 = 376 , // 0
|
||||
ih_377 = 377 , // 0
|
||||
ih_378 = 378 , // 0
|
||||
ih_379 = 379 , // 0
|
||||
ih_380 = 380 , // 0
|
||||
ih_381 = 381 , // 0
|
||||
ih_382 = 382 , // 0
|
||||
ih_383 = 383 , // 0
|
||||
ih_384 = 384 , // 0
|
||||
ih_385 = 385 , // 0
|
||||
ih_386 = 386 , // 0
|
||||
ih_387 = 387 , // 0
|
||||
ih_388 = 388 , // 0
|
||||
ih_389 = 389 , // 0
|
||||
ih_390 = 390 , // 0
|
||||
ih_391 = 391 , // 0
|
||||
ih_392 = 392 , // 0
|
||||
ih_393 = 393 , // 0
|
||||
ih_394 = 394 , // 0
|
||||
ih_395 = 395 , // 0
|
||||
ih_396 = 396 , // 0
|
||||
ih_397 = 397 , // 0
|
||||
ih_398 = 398 , // 0
|
||||
ih_399 = 399 , // 0
|
||||
ih_400 = 400 , // 0
|
||||
ih_401 = 401 , // 0
|
||||
ih_402 = 402 , // 0
|
||||
ih_403 = 403 , // 0
|
||||
ih_404 = 404 , // 0
|
||||
ih_405 = 405 , // 0
|
||||
ih_406 = 406 , // 0
|
||||
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)
|
||||
// ---------------------------------------------------------------------
|
||||
// ---------------------------------------------------------------------
|
||||
|
||||
INTEHEAD_NUMBER_OF_ITEMS // MUST be last element of enum.
|
||||
};
|
||||
@@ -677,6 +676,14 @@ ngroups(const Group& gr)
|
||||
return *this;
|
||||
}
|
||||
|
||||
Opm::RestartIO::InteHEAD&
|
||||
Opm::RestartIO::InteHEAD::
|
||||
udqParam_1(const UdqParam& udq_par)
|
||||
{
|
||||
this -> data_[UDQPAR_1] = - udq_par.udqParam_1;
|
||||
|
||||
return *this;
|
||||
}
|
||||
|
||||
// =====================================================================
|
||||
// Free functions (calendar/time utilities)
|
||||
|
||||
@@ -88,6 +88,9 @@ namespace Opm {
|
||||
this->m_true_rng.seed( seed );
|
||||
}
|
||||
|
||||
int UDQParams::rand_seed() const noexcept {
|
||||
return this->random_seed;
|
||||
}
|
||||
|
||||
double UDQParams::range() const noexcept {
|
||||
return this->value_range;
|
||||
|
||||
@@ -336,13 +336,18 @@ UDQ
|
||||
DEFINE WUOPRL (WOPR PROD1 - 150) * 0.90 /
|
||||
DEFINE WULPRL (WLPR PROD1 - 200) * 0.90 /
|
||||
DEFINE WUOPRU (WOPR PROD2 - 250) * 0.80 /
|
||||
DEFINE GUOPRU (GOPR WGRP2 - 449) * 0.77 /
|
||||
DEFINE WULPRU (WLPR PROD2 - 300) * 0.80 /
|
||||
ASSIGN WULPRL 400. /
|
||||
DEFINE FULPR (FLPR - 543) * 0.65 /
|
||||
DEFINE WUOPRL (WOPR PROD1 - 170) * 0.60 /
|
||||
-- units
|
||||
UNITS WUOPRL SM3/DAY /
|
||||
UNITS WULPRL SM3/DAY /
|
||||
UNITS GUOPRU SM3/DAY /
|
||||
UNITS WUOPRU SM3/DAY /
|
||||
UNITS WULPRU SM3/DAY /
|
||||
UNITS FULPR SM3/DAY /
|
||||
--
|
||||
/
|
||||
|
||||
|
||||
@@ -90,8 +90,9 @@ struct SimulationCase
|
||||
BOOST_AUTO_TEST_SUITE(Aggregate_UDQ)
|
||||
|
||||
|
||||
// test dimensions of multisegment data
|
||||
BOOST_AUTO_TEST_CASE (Constructor)
|
||||
|
||||
// test constructed UDQ restart data
|
||||
BOOST_AUTO_TEST_CASE (Declared_UDQ_data)
|
||||
{
|
||||
const auto simCase = SimulationCase{first_sim("UDQ_TEST_WCONPROD_IUAD-2.DATA")};
|
||||
|
||||
@@ -117,17 +118,70 @@ BOOST_AUTO_TEST_CASE (Constructor)
|
||||
double secs_elapsed = 3.1536E07;
|
||||
const auto ih = Opm::RestartIO::Helpers::createInteHead(es, grid, sched,
|
||||
secs_elapsed, rptStep, rptStep);
|
||||
//set dummy value for next_step_size
|
||||
const double next_step_size= 0.1;
|
||||
const auto dh = Opm::RestartIO::Helpers::createDoubHead(es, sched, rptStep,
|
||||
secs_elapsed, next_step_size);
|
||||
|
||||
const auto udqDims = Opm::RestartIO::Helpers::createUdqDims(sched, rptStep, ih);
|
||||
auto udqData = Opm::RestartIO::Helpers::AggregateUDQData(udqDims);
|
||||
udqData.captureDeclaredUDQData(sched, rptStep, ih);
|
||||
|
||||
//rstFile.write("IUDQ", udqData.getIUDQ());
|
||||
//rstFile.write("IUAD", udqData.getIUAD());
|
||||
//rstFile.write("ZUDN", udqData.getZUDN());
|
||||
//rstFile.write("ZUDL", udqData.getZUDL());
|
||||
rstFile.write("IUDQ", udqData.getIUDQ());
|
||||
rstFile.write("IUAD", udqData.getIUAD());
|
||||
rstFile.write("IGPH", udqData.getIGPH());
|
||||
rstFile.write("ZUDN", udqData.getZUDN());
|
||||
rstFile.write("ZUDL", udqData.getZUDL());
|
||||
|
||||
{
|
||||
/*
|
||||
Check of InteHEAD and DoubHEAD data for UDQ variables
|
||||
|
||||
INTEHEAD
|
||||
|
||||
UDQPARAM (1) = - InteHead [267 ]
|
||||
|
||||
---------------------------------------------------------------------------------------------------------------------
|
||||
|
||||
DOUBHEAD
|
||||
|
||||
UDQPARAM (2) = Doubhead [212]
|
||||
UDQPARAM (3) = Doubhead [213]
|
||||
UDQPARAM (4) = Doubhead [214]
|
||||
|
||||
*/
|
||||
|
||||
BOOST_CHECK_EQUAL(ih[267] , -1);
|
||||
BOOST_CHECK_EQUAL(dh[212] , 1.0E+20);
|
||||
BOOST_CHECK_EQUAL(dh[213] , 0.0);
|
||||
BOOST_CHECK_EQUAL(dh[214] , 1.0E-4);
|
||||
|
||||
}
|
||||
|
||||
|
||||
{
|
||||
/*
|
||||
IUDQ
|
||||
3- integers pr UDQ (line/quantity)
|
||||
|
||||
Integer no 1 = type of UDQ ( 0 - ASSIGN, UPDATE-OFF
|
||||
1-update+NEXT,
|
||||
2 - DEFINE, 2- UPDATE-ON
|
||||
3 - units)
|
||||
|
||||
Integer no 2 = -4 : used for ASSIGN - numerical value
|
||||
-4 : used for DEFINE
|
||||
-1 : used for DEFINE MIN() function, SUM() function, AVEA() function
|
||||
-4 : used for DEFINE MAX() - function - also used for SUM() function - must check on (-1 - value)
|
||||
1 : used for UPDATE quantity
|
||||
|
||||
Integer no 3 = sequence number of UDQ pr type (CU, FU, GU, RU, , SU, WU, AU or BU etc.)
|
||||
(1 - based)
|
||||
|
||||
NOTE: UPDATE - does not define a new quantity, only updates an alredy defined quantity!
|
||||
*/
|
||||
|
||||
|
||||
const auto& iUdq = udqData.getIUDQ();
|
||||
|
||||
auto start = 0*udqDims[1];
|
||||
@@ -135,36 +189,165 @@ BOOST_AUTO_TEST_CASE (Constructor)
|
||||
BOOST_CHECK_EQUAL(iUdq[start + 1] , -4); // udq NO. 1 - (-4 - DEFINE / ASSIGN
|
||||
BOOST_CHECK_EQUAL(iUdq[start + 2] , 1); // udq NO. 1 - (sequence number of UDQ pr type (CU, FU, GU, RU, , SU, WU, AU or BU etc.)
|
||||
|
||||
auto start = 1*udqDims[1];
|
||||
start = 1*udqDims[1];
|
||||
BOOST_CHECK_EQUAL(iUdq[start + 0] , 0); // udq NO. 2 - ( 0 - ASSIGN, 2 - DEFINE)
|
||||
BOOST_CHECK_EQUAL(iUdq[start + 1] , -4); // udq NO. 2 - (-4 - DEFINE / ASSIGN
|
||||
BOOST_CHECK_EQUAL(iUdq[start + 2] , 2); // udq NO. 2 - (sequence number of UDQ pr type (CU, FU, GU, RU, , SU, WU, AU or BU etc.)
|
||||
|
||||
auto start = 2*udqDims[1];
|
||||
start = 2*udqDims[1];
|
||||
BOOST_CHECK_EQUAL(iUdq[start + 0] , 2); // udq NO. 2 - ( 0 - ASSIGN, 2 - DEFINE)
|
||||
BOOST_CHECK_EQUAL(iUdq[start + 1] , -4); // udq NO. 2 - (-4 - DEFINE / ASSIGN
|
||||
BOOST_CHECK_EQUAL(iUdq[start + 2] , 3); // udq NO. 2 - (sequence number of UDQ pr type (CU, FU, GU, RU, , SU, WU, AU or BU etc.)
|
||||
|
||||
auto start = 3*udqDims[1];
|
||||
start = 3*udqDims[1];
|
||||
BOOST_CHECK_EQUAL(iUdq[start + 0] , 2); // udq NO. 2 - ( 0 - ASSIGN, 2 - DEFINE)
|
||||
BOOST_CHECK_EQUAL(iUdq[start + 1] , -4); // udq NO. 2 - (-4 - DEFINE / ASSIGN
|
||||
BOOST_CHECK_EQUAL(iUdq[start + 2] , 1); // udq NO. 2 - (sequence number of UDQ pr type (CU, FU, GU, RU, , SU, WU, AU or BU etc.)
|
||||
|
||||
auto start = 4*udqDims[1];
|
||||
start = 4*udqDims[1];
|
||||
BOOST_CHECK_EQUAL(iUdq[start + 0] , 2); // udq NO. 2 - ( 0 - ASSIGN, 2 - DEFINE)
|
||||
BOOST_CHECK_EQUAL(iUdq[start + 1] , -4); // udq NO. 2 - (-4 - DEFINE / ASSIGN
|
||||
BOOST_CHECK_EQUAL(iUdq[start + 2] , 4); // udq NO. 2 - (sequence number of UDQ pr type (CU, FU, GU, RU, , SU, WU, AU or BU etc.)
|
||||
|
||||
auto start = 5*udqDims[1];
|
||||
start = 5*udqDims[1];
|
||||
BOOST_CHECK_EQUAL(iUdq[start + 0] , 2); // udq NO. 2 - ( 0 - ASSIGN, 2 - DEFINE)
|
||||
BOOST_CHECK_EQUAL(iUdq[start + 1] , -4); // udq NO. 2 - (-4 - DEFINE / ASSIGN
|
||||
BOOST_CHECK_EQUAL(iUdq[start + 2] , 1); // udq NO. 2 - (sequence number of UDQ pr type (CU, FU, GU, RU, , SU, WU, AU or BU etc.)
|
||||
|
||||
}
|
||||
|
||||
{
|
||||
/*
|
||||
IUAD:
|
||||
Sequences of 5 items pr UDQ that is used for various well and group controls,
|
||||
i.e. sorted on the various active controls, see list for item (1).This means that
|
||||
one udq can occur several times, one for each control it is used for
|
||||
Only the active controls are output - and the sequence is according to when
|
||||
they are defined
|
||||
|
||||
|
||||
|
||||
dimension 5*no_of_udq-constraint-used in well and group controls
|
||||
|
||||
item (1) : = 200000 + 19 for GCONPROD and ORAT
|
||||
300000 + 19 for GCONPROD and WRAT
|
||||
400000 + 19 for GCONPROD and GRAT
|
||||
500000 + 19 for GCONPROD and LRAT
|
||||
300000 + 4 for WCONPROD + oil rate target or upper limit
|
||||
400000 + 4 for WCONPROD + water rate target or upper limit
|
||||
500000 + 4 for WCONPROD + gas rate target or upper limit
|
||||
600000 + 4 for WCONPROD + liquid rate target or upper limit
|
||||
? 300000 + 3 for WCONINJE + oil rate target or upper limit
|
||||
400000 + 3 for WCONINJE + surface rate target or upper limit
|
||||
500000 + 3 for WCONINJE + reservoir volume rate target or upper limit
|
||||
1000000 + 27 for CECON + minimum oil rate
|
||||
|
||||
item (2) - sequence number of UDQ used (from input sequence) for the actual constraint/target
|
||||
|
||||
item (3) - do not know yet (value: 1)
|
||||
item (4) - number of times the UDQ variable is used (e.g. for several different wells)
|
||||
item (5) - the sequence number for the first use of the actual UDQ (index i+1) = 1+sum over <the first i udq's in use >(no_use_udq(i))
|
||||
*/
|
||||
|
||||
const auto& iUad = udqData.getIUAD();
|
||||
|
||||
auto start = 0*udqDims[3];
|
||||
BOOST_CHECK_EQUAL(iUad[start + 0] , 300004); // iuad NO. 1
|
||||
BOOST_CHECK_EQUAL(iUad[start + 1] , 3); // iuad NO. 1
|
||||
BOOST_CHECK_EQUAL(iUad[start + 2] , 1); // iuad NO. 1
|
||||
BOOST_CHECK_EQUAL(iUad[start + 3] , 2); // iuad NO. 1
|
||||
BOOST_CHECK_EQUAL(iUad[start + 4] , 1); // iuad NO. 1
|
||||
|
||||
start = 1*udqDims[3];
|
||||
BOOST_CHECK_EQUAL(iUad[start + 0] , 600004); // iuad NO. 2
|
||||
BOOST_CHECK_EQUAL(iUad[start + 1] , 5); // iuad NO. 2
|
||||
BOOST_CHECK_EQUAL(iUad[start + 2] , 1); // iuad NO. 2
|
||||
BOOST_CHECK_EQUAL(iUad[start + 3] , 2); // iuad NO. 2
|
||||
BOOST_CHECK_EQUAL(iUad[start + 4] , 3); // iuad NO. 2
|
||||
|
||||
}
|
||||
|
||||
{
|
||||
/*
|
||||
ZUDN:
|
||||
contains UDQ keyword data:
|
||||
Pairs of:
|
||||
quantity name (item2): e.g. 'WUOPRL ' and
|
||||
units: e.g.: 'SM3/DAY '
|
||||
|
||||
Length is dependent on number of UDQ quantities = 2*no of UDQ's
|
||||
*/
|
||||
|
||||
const auto& zUdn = udqData.getZUDN();
|
||||
|
||||
auto start = 0*udqDims[4];
|
||||
BOOST_CHECK_EQUAL(zUdn[start + 0].c_str() , "WUOPRL "); // udq NO. 1
|
||||
BOOST_CHECK_EQUAL(zUdn[start + 1].c_str() , "SM3/DAY "); // udq NO. 1
|
||||
|
||||
start = 1*udqDims[4];
|
||||
BOOST_CHECK_EQUAL(zUdn[start + 0].c_str() , "WULPRL "); // udq NO. 2
|
||||
BOOST_CHECK_EQUAL(zUdn[start + 1].c_str() , "SM3/DAY "); // udq NO. 2
|
||||
|
||||
start = 2*udqDims[4];
|
||||
BOOST_CHECK_EQUAL(zUdn[start + 0].c_str() , "WUOPRU "); // udq NO. 3
|
||||
BOOST_CHECK_EQUAL(zUdn[start + 1].c_str() , "SM3/DAY "); // udq NO. 3
|
||||
|
||||
start = 3*udqDims[4];
|
||||
BOOST_CHECK_EQUAL(zUdn[start + 0].c_str() , "GUOPRU "); // udq NO. 4
|
||||
BOOST_CHECK_EQUAL(zUdn[start + 1].c_str() , "SM3/DAY "); // udq NO. 4
|
||||
|
||||
start = 4*udqDims[4];
|
||||
BOOST_CHECK_EQUAL(zUdn[start + 0].c_str() , "WULPRU "); // udq NO. 5
|
||||
BOOST_CHECK_EQUAL(zUdn[start + 1].c_str() , "SM3/DAY "); // udq NO. 5
|
||||
|
||||
start = 5*udqDims[4];
|
||||
BOOST_CHECK_EQUAL(zUdn[start + 0].c_str() , "FULPR "); // udq NO. 6
|
||||
BOOST_CHECK_EQUAL(zUdn[start + 1].c_str() , "SM3/DAY "); // udq NO. 6
|
||||
|
||||
}
|
||||
|
||||
|
||||
{
|
||||
/*
|
||||
ZUDL:
|
||||
contains string that define the "Data for operation" for the defined quantity
|
||||
|
||||
e.g.
|
||||
'(WOPR OP' 'L01 - 15' '0) * 0.9' '0 ' ' ' ' ' ' '
|
||||
|
||||
The appropriate data are split into strings of 8 characters each.
|
||||
|
||||
Length: No of UDQ's * 16
|
||||
*/
|
||||
|
||||
const auto& zUdl = udqData.getZUDL();
|
||||
|
||||
auto start = 0*udqDims[5];
|
||||
BOOST_CHECK_EQUAL(zUdl[start + 0].c_str() , "(WOPR PR"); // udq NO. 1
|
||||
BOOST_CHECK_EQUAL(zUdl[start + 1].c_str() , "OD1 - 17"); // udq NO. 1
|
||||
BOOST_CHECK_EQUAL(zUdl[start + 2].c_str() , "0) * 0.6"); // udq NO. 1
|
||||
BOOST_CHECK_EQUAL(zUdl[start + 3].c_str() , "0 "); // udq NO. 1
|
||||
|
||||
/*start = 1*udqDims[5];
|
||||
BOOST_CHECK_EQUAL(zUdl[start + 0].c_str() , "(WLPR PR"); // udq NO. 1
|
||||
BOOST_CHECK_EQUAL(zUdl[start + 1].c_str() , "OD1 - 20"); // udq NO. 1
|
||||
BOOST_CHECK_EQUAL(zUdl[start + 2].c_str() , "0) * 0.9"); // udq NO. 1
|
||||
BOOST_CHECK_EQUAL(zUdl[start + 3].c_str() , "0 "); // udq NO. 1
|
||||
*/
|
||||
|
||||
start = 3*udqDims[5];
|
||||
BOOST_CHECK_EQUAL(zUdl[start + 0].c_str() , "(GOPR WG"); // udq NO. 1
|
||||
BOOST_CHECK_EQUAL(zUdl[start + 1].c_str() , "RP2 - 44"); // udq NO. 1
|
||||
BOOST_CHECK_EQUAL(zUdl[start + 2].c_str() , "9) * 0.7"); // udq NO. 1
|
||||
BOOST_CHECK_EQUAL(zUdl[start + 3].c_str() , "7 "); // udq NO. 1
|
||||
|
||||
start = 5*udqDims[5];
|
||||
BOOST_CHECK_EQUAL(zUdl[start + 0].c_str() , "(FLPR - "); // udq NO. 1
|
||||
BOOST_CHECK_EQUAL(zUdl[start + 1].c_str() , "543) * 0"); // udq NO. 1
|
||||
BOOST_CHECK_EQUAL(zUdl[start + 2].c_str() , ".65 "); // udq NO. 1
|
||||
BOOST_CHECK_EQUAL(zUdl[start + 3].c_str() , " "); // udq NO. 1
|
||||
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
|
||||
BOOST_AUTO_TEST_SUITE_END()
|
||||
|
||||
Reference in New Issue
Block a user