From cc3ab456e95be587e7c98603ec302f50303c994c Mon Sep 17 00:00:00 2001 From: "Alf B. Rustad" Date: Tue, 3 Oct 2017 08:04:01 +0200 Subject: [PATCH 1/5] Removing redundant checks from Nexus --- opm/core/props/satfunc/RelpermDiagnostics_impl.hpp | 10 ---------- 1 file changed, 10 deletions(-) diff --git a/opm/core/props/satfunc/RelpermDiagnostics_impl.hpp b/opm/core/props/satfunc/RelpermDiagnostics_impl.hpp index 1387de617..a5bcf0549 100644 --- a/opm/core/props/satfunc/RelpermDiagnostics_impl.hpp +++ b/opm/core/props/satfunc/RelpermDiagnostics_impl.hpp @@ -99,11 +99,6 @@ namespace Opm { OpmLog::warning(tag, msg); } - if (scaledEpsInfo_[c].Swcr > scaledEpsInfo_[c].Sowcr) { - const std::string msg = "For scaled endpoints input, cell" + cellIdx + " SATNUM = " + satnumIdx + ", SWCR > SOWCR"; - OpmLog::warning(tag, msg); - } - if (scaledEpsInfo_[c].Sowcr > scaledEpsInfo_[c].Swu) { const std::string msg = "For scaled endpoints input, cell" + cellIdx + " SATNUM = " + satnumIdx + ", SOWCR > SWU"; OpmLog::warning(tag, msg); @@ -118,11 +113,6 @@ namespace Opm { } if (fluidSystem_ != FluidSystem::BlackOil) { - if (scaledEpsInfo_[c].Sgcr > scaledEpsInfo_[c].Sogcr) { - const std::string msg = "For scaled endpoints input, cell" + cellIdx + " SATNUM = " + satnumIdx + ", SGCR > SOGCR"; - OpmLog::warning(tag, msg); - } - if (scaledEpsInfo_[c].Sogcr > scaledEpsInfo_[c].Sgu) { const std::string msg = "For scaled endpoints input, cell" + cellIdx + " SATNUM = " + satnumIdx + ", SOGCR > SGU"; OpmLog::warning(tag, msg); From 520574513fb217f9728cfebe68c4d8ba4e8d7794 Mon Sep 17 00:00:00 2001 From: "Alf B. Rustad" Date: Tue, 3 Oct 2017 11:13:41 +0200 Subject: [PATCH 2/5] Avoid false positives by introducing a tolerance --- opm/core/props/satfunc/RelpermDiagnostics_impl.hpp | 12 +++++++----- 1 file changed, 7 insertions(+), 5 deletions(-) diff --git a/opm/core/props/satfunc/RelpermDiagnostics_impl.hpp b/opm/core/props/satfunc/RelpermDiagnostics_impl.hpp index a5bcf0549..932586348 100644 --- a/opm/core/props/satfunc/RelpermDiagnostics_impl.hpp +++ b/opm/core/props/satfunc/RelpermDiagnostics_impl.hpp @@ -33,7 +33,7 @@ namespace Opm { const Opm::Deck& deck, const GridT& grid) { - OpmLog::info("\n***************Saturation Functions Diagnostics***************"); + OpmLog::info("\n===============Saturation Functions Diagnostics==============="); phaseCheck_(eclState); satFamilyCheck_(eclState); tableCheck_(eclState); @@ -46,6 +46,8 @@ namespace Opm { const EclipseState& eclState, const GridT& grid) { + // All end points are subject to round-off errors, checks should account for it + const float tolerance = 1e-6; const int nc = Opm::UgGridHelpers::numCells(grid); const auto& global_cell = Opm::UgGridHelpers::globalCell(grid); const auto dims = Opm::UgGridHelpers::cartDims(grid); @@ -69,25 +71,25 @@ namespace Opm { scaledEpsInfo_[c].extractScaled(eclState, epsGridProperties, cartIdx); // SGU <= 1.0 - SWL - if (scaledEpsInfo_[c].Sgu > (1.0 - scaledEpsInfo_[c].Swl)) { + if (scaledEpsInfo_[c].Sgu > (1.0 - scaledEpsInfo_[c].Swl)+tolerance) { const std::string msg = "For scaled endpoints input, cell" + cellIdx + " SATNUM = " + satnumIdx + ", SGU exceed 1.0 - SWL"; OpmLog::warning(tag, msg); } // SGL <= 1.0 - SWU - if (scaledEpsInfo_[c].Sgl > (1.0 - scaledEpsInfo_[c].Swu)) { + if (scaledEpsInfo_[c].Sgl > (1.0 - scaledEpsInfo_[c].Swu)+tolerance) { const std::string msg = "For scaled endpoints input, cell" + cellIdx + " SATNUM = " + satnumIdx + ", SGL exceed 1.0 - SWU"; OpmLog::warning(tag, msg); } if (deck.hasKeyword("SCALECRS") && fluidSystem_ == FluidSystem::BlackOil) { // Mobilility check. - if ((scaledEpsInfo_[c].Sowcr + scaledEpsInfo_[c].Swcr) >= 1.0) { + if ((scaledEpsInfo_[c].Sowcr + scaledEpsInfo_[c].Swcr) >= 1.0+tolerance) { const std::string msg = "For scaled endpoints input, cell" + cellIdx + " SATNUM = " + satnumIdx + ", SOWCR + SWCR exceed 1.0"; OpmLog::warning(tag, msg); } - if ((scaledEpsInfo_[c].Sogcr + scaledEpsInfo_[c].Sgcr + scaledEpsInfo_[c].Swl) >= 1.0) { + if ((scaledEpsInfo_[c].Sogcr + scaledEpsInfo_[c].Sgcr + scaledEpsInfo_[c].Swl) >= 1.0+tolerance) { const std::string msg = "For scaled endpoints input, cell" + cellIdx + " SATNUM = " + satnumIdx + ", SOGCR + SGCR + SWL exceed 1.0"; OpmLog::warning(tag, msg); } From db7c47042ca482a26a1d94de47add22a2e1e473a Mon Sep 17 00:00:00 2001 From: "Alf B. Rustad" Date: Tue, 3 Oct 2017 11:15:53 +0200 Subject: [PATCH 3/5] Remove remaining Nexus checks --- .../props/satfunc/RelpermDiagnostics_impl.hpp | 26 ------------------- 1 file changed, 26 deletions(-) diff --git a/opm/core/props/satfunc/RelpermDiagnostics_impl.hpp b/opm/core/props/satfunc/RelpermDiagnostics_impl.hpp index 932586348..c5430b3ae 100644 --- a/opm/core/props/satfunc/RelpermDiagnostics_impl.hpp +++ b/opm/core/props/satfunc/RelpermDiagnostics_impl.hpp @@ -94,32 +94,6 @@ namespace Opm { OpmLog::warning(tag, msg); } } - ///Following rules come from NEXUS. - if (fluidSystem_ != FluidSystem::WaterGas) { - if (scaledEpsInfo_[c].Swl > scaledEpsInfo_[c].Swcr) { - const std::string msg = "For scaled endpoints input, cell" + cellIdx + " SATNUM = " + satnumIdx + ", SWL > SWCR"; - OpmLog::warning(tag, msg); - } - - if (scaledEpsInfo_[c].Sowcr > scaledEpsInfo_[c].Swu) { - const std::string msg = "For scaled endpoints input, cell" + cellIdx + " SATNUM = " + satnumIdx + ", SOWCR > SWU"; - OpmLog::warning(tag, msg); - } - } - - if (fluidSystem_ != FluidSystem::OilWater) { - if (scaledEpsInfo_[c].Sgl > scaledEpsInfo_[c].Sgcr) { - const std::string msg = "For scaled endpoints input, cell" + cellIdx + " SATNUM = " + satnumIdx + ", SGL > SGCR"; - OpmLog::warning(tag, msg); - } - } - - if (fluidSystem_ != FluidSystem::BlackOil) { - if (scaledEpsInfo_[c].Sogcr > scaledEpsInfo_[c].Sgu) { - const std::string msg = "For scaled endpoints input, cell" + cellIdx + " SATNUM = " + satnumIdx + ", SOGCR > SGU"; - OpmLog::warning(tag, msg); - } - } } } From 7d32729a00dec939740cee750a9a7873dffbe285 Mon Sep 17 00:00:00 2001 From: "Alf B. Rustad" Date: Tue, 3 Oct 2017 11:22:56 +0200 Subject: [PATCH 4/5] Cosmetic change --- opm/core/props/satfunc/RelpermDiagnostics_impl.hpp | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/opm/core/props/satfunc/RelpermDiagnostics_impl.hpp b/opm/core/props/satfunc/RelpermDiagnostics_impl.hpp index c5430b3ae..580ed5576 100644 --- a/opm/core/props/satfunc/RelpermDiagnostics_impl.hpp +++ b/opm/core/props/satfunc/RelpermDiagnostics_impl.hpp @@ -71,25 +71,25 @@ namespace Opm { scaledEpsInfo_[c].extractScaled(eclState, epsGridProperties, cartIdx); // SGU <= 1.0 - SWL - if (scaledEpsInfo_[c].Sgu > (1.0 - scaledEpsInfo_[c].Swl)+tolerance) { + if (scaledEpsInfo_[c].Sgu > (1.0 - scaledEpsInfo_[c].Swl + tolerance)) { const std::string msg = "For scaled endpoints input, cell" + cellIdx + " SATNUM = " + satnumIdx + ", SGU exceed 1.0 - SWL"; OpmLog::warning(tag, msg); } // SGL <= 1.0 - SWU - if (scaledEpsInfo_[c].Sgl > (1.0 - scaledEpsInfo_[c].Swu)+tolerance) { + if (scaledEpsInfo_[c].Sgl > (1.0 - scaledEpsInfo_[c].Swu + tolerance)) { const std::string msg = "For scaled endpoints input, cell" + cellIdx + " SATNUM = " + satnumIdx + ", SGL exceed 1.0 - SWU"; OpmLog::warning(tag, msg); } if (deck.hasKeyword("SCALECRS") && fluidSystem_ == FluidSystem::BlackOil) { // Mobilility check. - if ((scaledEpsInfo_[c].Sowcr + scaledEpsInfo_[c].Swcr) >= 1.0+tolerance) { + if ((scaledEpsInfo_[c].Sowcr + scaledEpsInfo_[c].Swcr) >= (1.0 + tolerance)) { const std::string msg = "For scaled endpoints input, cell" + cellIdx + " SATNUM = " + satnumIdx + ", SOWCR + SWCR exceed 1.0"; OpmLog::warning(tag, msg); } - if ((scaledEpsInfo_[c].Sogcr + scaledEpsInfo_[c].Sgcr + scaledEpsInfo_[c].Swl) >= 1.0+tolerance) { + if ((scaledEpsInfo_[c].Sogcr + scaledEpsInfo_[c].Sgcr + scaledEpsInfo_[c].Swl) >= (1.0 + tolerance)) { const std::string msg = "For scaled endpoints input, cell" + cellIdx + " SATNUM = " + satnumIdx + ", SOGCR + SGCR + SWL exceed 1.0"; OpmLog::warning(tag, msg); } From fa886bc3aa1b776808f0eb4a04d5a8566ca43399 Mon Sep 17 00:00:00 2001 From: "Alf B. Rustad" Date: Tue, 3 Oct 2017 11:31:20 +0200 Subject: [PATCH 5/5] Cosmetic change --- opm/core/props/satfunc/RelpermDiagnostics_impl.hpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/opm/core/props/satfunc/RelpermDiagnostics_impl.hpp b/opm/core/props/satfunc/RelpermDiagnostics_impl.hpp index 580ed5576..7f7bd4720 100644 --- a/opm/core/props/satfunc/RelpermDiagnostics_impl.hpp +++ b/opm/core/props/satfunc/RelpermDiagnostics_impl.hpp @@ -33,7 +33,7 @@ namespace Opm { const Opm::Deck& deck, const GridT& grid) { - OpmLog::info("\n===============Saturation Functions Diagnostics==============="); + OpmLog::info("\n===============Saturation Functions Diagnostics===============\n"); phaseCheck_(eclState); satFamilyCheck_(eclState); tableCheck_(eclState);