mirror of
https://github.com/OPM/opm-simulators.git
synced 2025-02-25 18:55:30 -06:00
Make gas-oil related outputs conditional.
This includes such things as saturation pressures, rs, rv etc.
This commit is contained in:
parent
c743d0a8c0
commit
a8a8d8a072
@ -201,33 +201,56 @@ public:
|
|||||||
unsigned pvtRegionIdx = elemCtx.primaryVars(dofIdx, /*timeIdx=*/0).pvtRegionIndex();
|
unsigned pvtRegionIdx = elemCtx.primaryVars(dofIdx, /*timeIdx=*/0).pvtRegionIndex();
|
||||||
Scalar SoMax = std::max(Opm::getValue(fs.saturation(oilPhaseIdx)),
|
Scalar SoMax = std::max(Opm::getValue(fs.saturation(oilPhaseIdx)),
|
||||||
elemCtx.problem().maxOilSaturation(globalDofIdx));
|
elemCtx.problem().maxOilSaturation(globalDofIdx));
|
||||||
Scalar x_oG = Opm::getValue(fs.moleFraction(oilPhaseIdx, gasCompIdx));
|
|
||||||
Scalar x_gO = Opm::getValue(fs.moleFraction(gasPhaseIdx, oilCompIdx));
|
|
||||||
Scalar X_oG = Opm::getValue(fs.massFraction(oilPhaseIdx, gasCompIdx));
|
|
||||||
Scalar X_gO = Opm::getValue(fs.massFraction(gasPhaseIdx, oilCompIdx));
|
|
||||||
Scalar Rs = FluidSystem::convertXoGToRs(X_oG, pvtRegionIdx);
|
|
||||||
Scalar Rv = FluidSystem::convertXgOToRv(X_gO, pvtRegionIdx);
|
|
||||||
|
|
||||||
Scalar RsSat =
|
if (FluidSystem::phaseIsActive(gasPhaseIdx) && FluidSystem::phaseIsActive(oilPhaseIdx)) {
|
||||||
FluidSystem::template saturatedDissolutionFactor<FluidState, Scalar>(fs,
|
Scalar x_oG = Opm::getValue(fs.moleFraction(oilPhaseIdx, gasCompIdx));
|
||||||
oilPhaseIdx,
|
Scalar x_gO = Opm::getValue(fs.moleFraction(gasPhaseIdx, oilCompIdx));
|
||||||
pvtRegionIdx,
|
Scalar X_oG = Opm::getValue(fs.massFraction(oilPhaseIdx, gasCompIdx));
|
||||||
SoMax);
|
Scalar X_gO = Opm::getValue(fs.massFraction(gasPhaseIdx, oilCompIdx));
|
||||||
Scalar X_oG_sat = FluidSystem::convertRsToXoG(RsSat, pvtRegionIdx);
|
Scalar Rs = FluidSystem::convertXoGToRs(X_oG, pvtRegionIdx);
|
||||||
Scalar x_oG_sat = FluidSystem::convertXoGToxoG(X_oG_sat, pvtRegionIdx);
|
Scalar Rv = FluidSystem::convertXgOToRv(X_gO, pvtRegionIdx);
|
||||||
|
|
||||||
Scalar RvSat =
|
Scalar RsSat =
|
||||||
FluidSystem::template saturatedDissolutionFactor<FluidState, Scalar>(fs,
|
FluidSystem::template saturatedDissolutionFactor<FluidState, Scalar>(fs,
|
||||||
gasPhaseIdx,
|
oilPhaseIdx,
|
||||||
pvtRegionIdx,
|
pvtRegionIdx,
|
||||||
SoMax);
|
SoMax);
|
||||||
Scalar X_gO_sat = FluidSystem::convertRvToXgO(RvSat, pvtRegionIdx);
|
Scalar X_oG_sat = FluidSystem::convertRsToXoG(RsSat, pvtRegionIdx);
|
||||||
Scalar x_gO_sat = FluidSystem::convertXgOToxgO(X_gO_sat, pvtRegionIdx);
|
Scalar x_oG_sat = FluidSystem::convertXoGToxoG(X_oG_sat, pvtRegionIdx);
|
||||||
|
|
||||||
if (gasDissolutionFactorOutput_())
|
Scalar RvSat =
|
||||||
gasDissolutionFactor_[globalDofIdx] = Rs;
|
FluidSystem::template saturatedDissolutionFactor<FluidState, Scalar>(fs,
|
||||||
if (oilVaporizationFactorOutput_())
|
gasPhaseIdx,
|
||||||
oilVaporizationFactor_[globalDofIdx] = Rv;
|
pvtRegionIdx,
|
||||||
|
SoMax);
|
||||||
|
Scalar X_gO_sat = FluidSystem::convertRvToXgO(RvSat, pvtRegionIdx);
|
||||||
|
Scalar x_gO_sat = FluidSystem::convertXgOToxgO(X_gO_sat, pvtRegionIdx);
|
||||||
|
if (gasDissolutionFactorOutput_())
|
||||||
|
gasDissolutionFactor_[globalDofIdx] = Rs;
|
||||||
|
if (oilVaporizationFactorOutput_())
|
||||||
|
oilVaporizationFactor_[globalDofIdx] = Rv;
|
||||||
|
if (oilSaturationPressureOutput_())
|
||||||
|
oilSaturationPressure_[globalDofIdx] =
|
||||||
|
FluidSystem::template saturationPressure<FluidState, Scalar>(fs, oilPhaseIdx, pvtRegionIdx);
|
||||||
|
if (gasSaturationPressureOutput_())
|
||||||
|
gasSaturationPressure_[globalDofIdx] =
|
||||||
|
FluidSystem::template saturationPressure<FluidState, Scalar>(fs, gasPhaseIdx, pvtRegionIdx);
|
||||||
|
if (saturatedOilGasDissolutionFactorOutput_())
|
||||||
|
saturatedOilGasDissolutionFactor_[globalDofIdx] = RsSat;
|
||||||
|
if (saturatedGasOilVaporizationFactorOutput_())
|
||||||
|
saturatedGasOilVaporizationFactor_[globalDofIdx] = RvSat;
|
||||||
|
if (saturationRatiosOutput_()) {
|
||||||
|
if (x_oG_sat <= 0.0)
|
||||||
|
oilSaturationRatio_[globalDofIdx] = 1.0;
|
||||||
|
else
|
||||||
|
oilSaturationRatio_[globalDofIdx] = x_oG / x_oG_sat;
|
||||||
|
|
||||||
|
if (x_gO_sat <= 0.0)
|
||||||
|
gasSaturationRatio_[globalDofIdx] = 1.0;
|
||||||
|
else
|
||||||
|
gasSaturationRatio_[globalDofIdx] = x_gO / x_gO_sat;
|
||||||
|
}
|
||||||
|
}
|
||||||
if (oilFormationVolumeFactorOutput_())
|
if (oilFormationVolumeFactorOutput_())
|
||||||
oilFormationVolumeFactor_[globalDofIdx] =
|
oilFormationVolumeFactor_[globalDofIdx] =
|
||||||
1.0/FluidSystem::template inverseFormationVolumeFactor<FluidState, Scalar>(fs, oilPhaseIdx, pvtRegionIdx);
|
1.0/FluidSystem::template inverseFormationVolumeFactor<FluidState, Scalar>(fs, oilPhaseIdx, pvtRegionIdx);
|
||||||
@ -237,27 +260,6 @@ public:
|
|||||||
if (waterFormationVolumeFactorOutput_())
|
if (waterFormationVolumeFactorOutput_())
|
||||||
waterFormationVolumeFactor_[globalDofIdx] =
|
waterFormationVolumeFactor_[globalDofIdx] =
|
||||||
1.0/FluidSystem::template inverseFormationVolumeFactor<FluidState, Scalar>(fs, waterPhaseIdx, pvtRegionIdx);
|
1.0/FluidSystem::template inverseFormationVolumeFactor<FluidState, Scalar>(fs, waterPhaseIdx, pvtRegionIdx);
|
||||||
if (oilSaturationPressureOutput_())
|
|
||||||
oilSaturationPressure_[globalDofIdx] =
|
|
||||||
FluidSystem::template saturationPressure<FluidState, Scalar>(fs, oilPhaseIdx, pvtRegionIdx);
|
|
||||||
if (gasSaturationPressureOutput_())
|
|
||||||
gasSaturationPressure_[globalDofIdx] =
|
|
||||||
FluidSystem::template saturationPressure<FluidState, Scalar>(fs, gasPhaseIdx, pvtRegionIdx);
|
|
||||||
if (saturatedOilGasDissolutionFactorOutput_())
|
|
||||||
saturatedOilGasDissolutionFactor_[globalDofIdx] = RsSat;
|
|
||||||
if (saturatedGasOilVaporizationFactorOutput_())
|
|
||||||
saturatedGasOilVaporizationFactor_[globalDofIdx] = RvSat;
|
|
||||||
if (saturationRatiosOutput_()) {
|
|
||||||
if (x_oG_sat <= 0.0)
|
|
||||||
oilSaturationRatio_[globalDofIdx] = 1.0;
|
|
||||||
else
|
|
||||||
oilSaturationRatio_[globalDofIdx] = x_oG / x_oG_sat;
|
|
||||||
|
|
||||||
if (x_gO_sat <= 0.0)
|
|
||||||
gasSaturationRatio_[globalDofIdx] = 1.0;
|
|
||||||
else
|
|
||||||
gasSaturationRatio_[globalDofIdx] = x_gO / x_gO_sat;
|
|
||||||
}
|
|
||||||
|
|
||||||
if (primaryVarsMeaningOutput_())
|
if (primaryVarsMeaningOutput_())
|
||||||
primaryVarsMeaning_[globalDofIdx] =
|
primaryVarsMeaning_[globalDofIdx] =
|
||||||
|
Loading…
Reference in New Issue
Block a user