From c420959fc116af9fcc162da7a5b4fe87c3187538 Mon Sep 17 00:00:00 2001 From: Tor Harald Sandve Date: Mon, 24 Apr 2023 15:18:32 +0200 Subject: [PATCH] Modify Appleyard chopping Restrict update of rs/rv, rsw/rvw and zfraction in the extended blackoil model by the saturation scaling factor from the Appleyard-chopping. --- opm/models/blackoil/blackoilnewtonmethod.hh | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/opm/models/blackoil/blackoilnewtonmethod.hh b/opm/models/blackoil/blackoilnewtonmethod.hh index 70cf68146..bde72606c 100644 --- a/opm/models/blackoil/blackoilnewtonmethod.hh +++ b/opm/models/blackoil/blackoilnewtonmethod.hh @@ -307,7 +307,11 @@ protected: else if (pvIdx == Indices::waterSwitchIdx) if (currentValue.primaryVarsMeaningWater() == PrimaryVariables::WaterMeaning::Sw) delta *= satAlpha; + else { + // The damping from the saturation change also applies to the rsw/rvw factors + // for consistency + delta *= satAlpha; //Ensure Rvw and Rsw factor does not become negative if (delta > currentValue[ Indices::waterSwitchIdx]) delta = currentValue[ Indices::waterSwitchIdx]; @@ -321,6 +325,9 @@ protected: if (currentValue.primaryVarsMeaningGas() == PrimaryVariables::GasMeaning::Sg) delta *= satAlpha; else { + // The damping from the saturation change also applies to the rs/rv factors + // for consistency + delta *= satAlpha; //Ensure Rv and Rs factor does not become negative if (delta > currentValue[Indices::compositionSwitchIdx]) delta = currentValue[Indices::compositionSwitchIdx]; @@ -330,6 +337,7 @@ protected: // solvent saturation updates are also subject to the Appleyard chop delta *= satAlpha; else if (enableExtbo && pvIdx == Indices::zFractionIdx) { + delta *= satAlpha; // z fraction updates are also subject to the Appleyard chop if (delta > currentValue[Indices::zFractionIdx]) delta = currentValue[Indices::zFractionIdx];