move update of hysteresis and vappars from beginEpisode to beginTimestep

This commit is contained in:
Tor Harald Sandve
2020-09-28 09:42:10 +02:00
parent e8460b384e
commit 56fc29beb1

View File

@@ -1037,13 +1037,6 @@ public:
tuningEvent = true; tuningEvent = true;
} }
const bool invalidateFromHyst = updateHysteresis_();
const bool invalidateFromMaxOilSat = updateMaxOilSaturation_();
const bool doInvalidate = invalidateFromHyst || invalidateFromMaxOilSat;
if (getPropValue<TypeTag, Properties::EnablePolymer>())
updateMaxPolymerAdsorption_();
// set up the wells for the next episode. // set up the wells for the next episode.
wellModel_.beginEpisode(); wellModel_.beginEpisode();
@@ -1059,8 +1052,6 @@ public:
// if TUNING is enabled, also limit the time step size after a tuning event to TSINIT // if TUNING is enabled, also limit the time step size after a tuning event to TSINIT
dt = std::min(dt, initialTimeStepSize_); dt = std::min(dt, initialTimeStepSize_);
simulator.setTimeStepSize(dt); simulator.setTimeStepSize(dt);
if (doInvalidate)
this->model().invalidateAndUpdateIntensiveQuantities(/*timeIdx=*/0);
} }
/*! /*!
@@ -1084,7 +1075,7 @@ public:
OpmLog::info(ss.str()); OpmLog::info(ss.str());
} }
bool invalidateIntensiveQuantities = false; // update explicit quantities between timesteps.
const auto& oilVaporizationControl = simulator.vanguard().schedule().getOilVaporizationProperties(episodeIdx); const auto& oilVaporizationControl = simulator.vanguard().schedule().getOilVaporizationProperties(episodeIdx);
if (drsdtActive_()) if (drsdtActive_())
// DRSDT is enabled // DRSDT is enabled
@@ -1100,11 +1091,19 @@ public:
// used when ROCKCOMP is activated // used when ROCKCOMP is activated
const bool invalidateFromMaxWaterSat = updateMaxWaterSaturation_(); const bool invalidateFromMaxWaterSat = updateMaxWaterSaturation_();
const bool invalidateFromMinPressure = updateMinPressure_(); const bool invalidateFromMinPressure = updateMinPressure_();
invalidateIntensiveQuantities = invalidateFromMaxWaterSat || invalidateFromMinPressure;
// update hysteresis and max oil saturation used in vappars
const bool invalidateFromHyst = updateHysteresis_();
const bool invalidateFromMaxOilSat = updateMaxOilSaturation_();
// the derivatives may have change
bool invalidateIntensiveQuantities = invalidateFromMaxWaterSat || invalidateFromMinPressure || invalidateFromHyst || invalidateFromMaxOilSat;
if (invalidateIntensiveQuantities) if (invalidateIntensiveQuantities)
this->model().invalidateAndUpdateIntensiveQuantities(/*timeIdx=*/0); this->model().invalidateAndUpdateIntensiveQuantities(/*timeIdx=*/0);
if (getPropValue<TypeTag, Properties::EnablePolymer>())
updateMaxPolymerAdsorption_();
wellModel_.beginTimeStep(); wellModel_.beginTimeStep();
if (enableAquifers_) if (enableAquifers_)
aquiferModel_.beginTimeStep(); aquiferModel_.beginTimeStep();