Do not set rs=rsSat and rv=rvSat for the saturated case

This commit is contained in:
Tor Harald Sandve 2017-02-22 15:57:53 +01:00 committed by Andreas Lauser
parent bb4b03d295
commit 30030eaac7

View File

@ -920,35 +920,6 @@ namespace Opm
state.gasoilratio() = isc.rs();
state.rv() = isc.rv();
// set the Rs and Rv factors to the saturated ones if both the gas and the oil
// saturations are zero. in most cases this does not matter, but when doing the
// gravity correction (in particular, when determining the upstream direction) it
// does.
if (pu.phase_used[BlackoilPhases::Liquid] && pu.phase_used[BlackoilPhases::Vapour]) {
const int posOil = pu.phase_pos[BlackoilPhases::Liquid];
const int posGas = pu.phase_pos[BlackoilPhases::Vapour];
for (unsigned cellIdx = 0; cellIdx < state.pressure().size(); ++ cellIdx) {
const double so = isc.saturation()[posOil][cellIdx];
const double sg = isc.saturation()[posGas][cellIdx];
if (so <= 0.0 && sg <= 0.0) {
int pvtRegionIdx = props.cellPvtRegionIndex()[cellIdx];
const double po = state.pressure()[cellIdx];
const double pg = po; // hack: include capillary pressure!
const double T = 273.15 + 25.0; // does not matter for isothermal simulations!
const double rsSat = props.oilPvt().saturatedGasDissolutionFactor(pvtRegionIdx,
T,
pg);
const double rvSat = props.gasPvt().saturatedOilVaporizationFactor(pvtRegionIdx,
T,
po);
state.gasoilratio()[cellIdx] = rsSat;
state.rv()[cellIdx] = rvSat;
}
}
}
initBlackoilSurfvolUsingRSorRV(UgGridHelpers::numCells(grid), props, state);
}