implement an "ECL output interval"

i.e., the ECL restart files are not necessarily updated after each
report step, but only each N-th (where N is the number specified by
the EclOutputInterval parameter). if this value is set to something
smaller than zero, the value which is computed by the EclipseState
object is used.
This commit is contained in:
Andreas Lauser
2018-06-15 14:34:50 +02:00
parent 26e6d56930
commit c402ae4854

View File

@@ -63,9 +63,11 @@ NEW_PROP_TAG(EquilGrid);
NEW_PROP_TAG(Scalar);
NEW_PROP_TAG(EclDeckFileName);
NEW_PROP_TAG(EclOutputDir);
NEW_PROP_TAG(EclOutputInterval);
SET_STRING_PROP(EclBaseVanguard, EclDeckFileName, "ECLDECK.DATA");
SET_STRING_PROP(EclBaseVanguard, EclOutputDir, ".");
SET_INT_PROP(EclBaseVanguard, EclOutputInterval, -1); // use the deck-provided value
END_PROPERTIES
@@ -101,6 +103,8 @@ public:
"The name of the file which contains the ECL deck to be simulated");
EWOMS_REGISTER_PARAM(TypeTag, std::string, EclOutputDir,
"The directory to which the ECL result files are written");
EWOMS_REGISTER_PARAM(TypeTag, int, EclOutputInterval,
"The number of report steps that ought to be skipped between two writes of ECL results");
}
/*!
@@ -227,6 +231,12 @@ public:
// the eclState is supposed to be immutable here, IMO.
ioConfig.setOutputDir(outputDir);
// Possibly override IOConfig setting for how often RESTART files should get
// written to disk (every N report step)
int outputInterval = EWOMS_GET_PARAM(TypeTag, int, EclOutputInterval);
if (outputInterval >= 0)
eclState_->getRestartConfig().overrideRestartWriteInterval(outputInterval);
asImp_().createGrids_();
asImp_().filterCompletions_();
asImp_().finalizeInit_();