treating permeability reduction via mobility term

This commit is contained in:
Paul Egberts 2022-03-14 15:07:12 +01:00
parent 90a04a351b
commit 658834a261

View File

@ -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