enables rockcomp in flow

This commit is contained in:
Tor Harald Sandve 2019-10-08 15:49:48 +02:00
parent 4ddb8e8d56
commit 8c7d7e3d2e
3 changed files with 13 additions and 19 deletions

View File

@ -119,7 +119,6 @@ class EclTransExtensiveQuantities
enum { numPhases = FluidSystem::numPhases }; enum { numPhases = FluidSystem::numPhases };
enum { enableSolvent = GET_PROP_VALUE(TypeTag, EnableSolvent) }; enum { enableSolvent = GET_PROP_VALUE(TypeTag, EnableSolvent) };
enum { enableEnergy = GET_PROP_VALUE(TypeTag, EnableEnergy) }; enum { enableEnergy = GET_PROP_VALUE(TypeTag, EnableEnergy) };
enum { enableExperiments = GET_PROP_VALUE(TypeTag, EnableExperiments) };
typedef Opm::MathToolbox<Evaluation> Toolbox; typedef Opm::MathToolbox<Evaluation> Toolbox;
typedef Dune::FieldVector<Scalar, dimWorld> DimVector; typedef Dune::FieldVector<Scalar, dimWorld> DimVector;
@ -437,10 +436,9 @@ protected:
const auto& up = elemCtx.intensiveQuantities(upstreamIdx, timeIdx); const auto& up = elemCtx.intensiveQuantities(upstreamIdx, timeIdx);
Evaluation transModified = trans; Evaluation transModified = trans;
if (enableExperiments) {
// deal with water induced rock compaction // deal with water induced rock compaction
transModified *= problem.template rockCompTransMultiplier<double>(up, stencil.globalSpaceIndex(upstreamIdx)); transModified *= problem.template rockCompTransMultiplier<double>(up, stencil.globalSpaceIndex(upstreamIdx));
}
if (upstreamIdx == interiorDofIdx_) { if (upstreamIdx == interiorDofIdx_) {
volumeFlux_[phaseIdx] = volumeFlux_[phaseIdx] =

View File

@ -872,13 +872,11 @@ public:
for (size_t pvtRegionIdx = 0; pvtRegionIdx < maxDRv_.size(); ++pvtRegionIdx) for (size_t pvtRegionIdx = 0; pvtRegionIdx < maxDRv_.size(); ++pvtRegionIdx)
maxDRv_[pvtRegionIdx] = oilVaporizationControl.getMaxDRVDT(pvtRegionIdx)*this->simulator().timeStepSize(); maxDRv_[pvtRegionIdx] = oilVaporizationControl.getMaxDRVDT(pvtRegionIdx)*this->simulator().timeStepSize();
if (enableExperiments) { // update maximum water saturation and minimum pressure
// update maximum water saturation and minimum pressure // 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;
invalidateIntensiveQuantities = invalidateFromMaxWaterSat || invalidateFromMinPressure;
}
if (invalidateIntensiveQuantities) if (invalidateIntensiveQuantities)
this->model().invalidateIntensiveQuantitiesCache(/*timeIdx=*/0); this->model().invalidateIntensiveQuantitiesCache(/*timeIdx=*/0);
@ -1768,7 +1766,7 @@ public:
template <class LhsEval> template <class LhsEval>
LhsEval rockCompPoroMultiplier(const IntensiveQuantities& intQuants, unsigned elementIdx) const LhsEval rockCompPoroMultiplier(const IntensiveQuantities& intQuants, unsigned elementIdx) const
{ {
if (!enableExperiments || rockCompPoroMult_.size() == 0) if (rockCompPoroMult_.empty())
return 1.0; return 1.0;
unsigned tableIdx = 0; unsigned tableIdx = 0;
@ -1800,7 +1798,7 @@ public:
template <class LhsEval> template <class LhsEval>
LhsEval rockCompTransMultiplier(const IntensiveQuantities& intQuants, unsigned elementIdx) const LhsEval rockCompTransMultiplier(const IntensiveQuantities& intQuants, unsigned elementIdx) const
{ {
if (!enableExperiments || rockCompTransMult_.size() == 0) if (rockCompTransMult_.empty())
return 1.0; return 1.0;
unsigned tableIdx = 0; unsigned tableIdx = 0;
@ -1831,7 +1829,7 @@ public:
*/ */
Scalar overburdenPressure(unsigned elementIdx) const Scalar overburdenPressure(unsigned elementIdx) const
{ {
if (!enableExperiments || overburdenPressure_.size() == 0) if (overburdenPressure_.empty())
return 0.0; return 0.0;
return overburdenPressure_[elementIdx]; return overburdenPressure_[elementIdx];
@ -2074,7 +2072,7 @@ private:
bool updateMinPressure_() bool updateMinPressure_()
{ {
// IRREVERS option is used in ROCKCOMP // IRREVERS option is used in ROCKCOMP
if (minOilPressure_.size() == 0) if (minOilPressure_.empty())
return false; return false;
ElementContext elemCtx(this->simulator()); ElementContext elemCtx(this->simulator());
@ -2120,8 +2118,7 @@ private:
} }
// read the parameters for water-induced rock compaction // read the parameters for water-induced rock compaction
if (enableExperiments) readRockCompactionParameters_();
readRockCompactionParameters_();
// check the kind of region which is supposed to be used by checking the ROCKOPTS // check the kind of region which is supposed to be used by checking the ROCKOPTS
// keyword. note that for some funny reason, the ROCK keyword uses PVTNUM by // keyword. note that for some funny reason, the ROCK keyword uses PVTNUM by

View File

@ -393,7 +393,6 @@ namespace MissingFeatures {
"RADFIN4", "RADFIN4",
"RHO", "RHO",
"RKTRMDIR", "RKTRMDIR",
"ROCKCOMP",
"ROCKOPTS", "ROCKOPTS",
"ROCKTAB", "ROCKTAB",
"RPTGRID", "RPTGRID",