diff --git a/ebos/eclproblem.hh b/ebos/eclproblem.hh index faed62b7b..7f708b4b5 100644 --- a/ebos/eclproblem.hh +++ b/ebos/eclproblem.hh @@ -1868,6 +1868,8 @@ private: elemFluidState.setPvtRegionIndex(pvtRegionIndex(elemIdx)); eclWriter_->eclOutputModule().initHysteresisParams(this->simulator(), elemIdx); eclWriter_->eclOutputModule().assignToFluidState(elemFluidState, elemIdx); + lastRs_[elemIdx] = elemFluidState.Rs(); + lastRv_[elemIdx] = elemFluidState.Rv(); if (enableSolvent) solventSaturation_[elemIdx] = eclWriter_->eclOutputModule().getSolventSaturation(elemIdx); if (enablePolymer) @@ -1875,6 +1877,18 @@ private: // if we need to restart for polymer molecular weight simulation, we need to add related here } + const int epsiodeIdx = this->simulator().episodeIndex(); + const auto& oilVaporizationControl = this->simulator().vanguard().schedule().getOilVaporizationProperties(epsiodeIdx); + if (drsdtActive_()) + // DRSDT is enabled + for (size_t pvtRegionIdx = 0; pvtRegionIdx < maxDRs_.size(); ++pvtRegionIdx ) + maxDRs_[pvtRegionIdx] = oilVaporizationControl.getMaxDRSDT(pvtRegionIdx)*this->simulator().timeStepSize(); + + if (drvdtActive_()) + // DRVDT is enabled + for (size_t pvtRegionIdx = 0; pvtRegionIdx < maxDRv_.size(); ++pvtRegionIdx ) + maxDRv_[pvtRegionIdx] = oilVaporizationControl.getMaxDRVDT(pvtRegionIdx)*this->simulator().timeStepSize(); + if (tracerModel().numTracers() > 0) std::cout << "Warning: Restart is not implemented for the tracer model, it will initialize with initial tracer concentration" << std::endl;