mirror of
https://github.com/OPM/opm-simulators.git
synced 2025-02-25 18:55:30 -06:00
treating permeability reduction via mobility term
This commit is contained in:
parent
90a04a351b
commit
658834a261
@ -266,12 +266,7 @@ public:
|
||||
if (!enableBrine)
|
||||
return;
|
||||
|
||||
static unsigned contiWaterEqIdx, contiGasEqIdx, contiOilEqIdx;
|
||||
if(gasEnabled) { contiGasEqIdx = Indices::conti0EqIdx + Indices::canonicalToActiveComponentIndex(FluidSystem::gasCompIdx); }
|
||||
if(oilEnabled) { contiOilEqIdx = Indices::conti0EqIdx + Indices::canonicalToActiveComponentIndex(FluidSystem::oilCompIdx); }
|
||||
|
||||
const auto& extQuants = elemCtx.extensiveQuantities(scvfIdx, timeIdx);
|
||||
const auto& intQuants = elemCtx.intensiveQuantities(scvfIdx, timeIdx);
|
||||
|
||||
const unsigned upIdx = extQuants.upstreamIndex(FluidSystem::waterPhaseIdx);
|
||||
const unsigned inIdx = extQuants.interiorIndex();
|
||||
@ -282,28 +277,12 @@ public:
|
||||
extQuants.volumeFlux(waterPhaseIdx)
|
||||
*up.fluidState().invB(waterPhaseIdx)
|
||||
*up.fluidState().saltConcentration();
|
||||
|
||||
if (enableSaltPrecipitation) {
|
||||
// modify fluxes for mobility change
|
||||
flux[contiBrineEqIdx] *= intQuants.permFactor();
|
||||
flux[contiWaterEqIdx] *= intQuants.permFactor();
|
||||
if(gasEnabled) { flux[contiGasEqIdx] *= intQuants.permFactor(); }
|
||||
if(oilEnabled) { flux[contiOilEqIdx] *= intQuants.permFactor(); }
|
||||
}
|
||||
}
|
||||
else {
|
||||
flux[contiBrineEqIdx] =
|
||||
extQuants.volumeFlux(waterPhaseIdx)
|
||||
*decay<Scalar>(up.fluidState().invB(waterPhaseIdx))
|
||||
*decay<Scalar>(up.fluidState().saltConcentration());
|
||||
|
||||
if (enableSaltPrecipitation) {
|
||||
// modify fluxes for mobility change
|
||||
flux[contiBrineEqIdx] *= decay<Scalar>(intQuants.permFactor());
|
||||
flux[contiWaterEqIdx] *= decay<Scalar>(intQuants.permFactor());
|
||||
if(gasEnabled) { flux[contiGasEqIdx] *= decay<Scalar>(intQuants.permFactor()); }
|
||||
if(oilEnabled) { flux[contiOilEqIdx] *= decay<Scalar>(intQuants.permFactor()); }
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@ -493,7 +472,13 @@ public:
|
||||
const auto& permfactTable = BrineModule::permfactTable(elemCtx, dofIdx, timeIdx);
|
||||
|
||||
permFactor_ = permfactTable.eval(scalarValue(porosityFactor));
|
||||
}
|
||||
for (unsigned phaseIdx = 0; phaseIdx < numPhases; ++phaseIdx) {
|
||||
if (!FluidSystem::phaseIsActive(phaseIdx))
|
||||
continue;
|
||||
|
||||
asImp_().mobility_[phaseIdx] *= permFactor_;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
const Evaluation& saltConcentration() const
|
||||
|
Loading…
Reference in New Issue
Block a user