From ed9827bfcfc1e520375594afa8b9c3c962594284 Mon Sep 17 00:00:00 2001 From: Joakim Hove Date: Tue, 29 Jan 2019 20:58:39 +0100 Subject: [PATCH] Ensure units are applied with the MINVALUE and MAXVALUE keywords --- .../EclipseState/Grid/GridProperties.cpp | 4 ++-- tests/parser/GridPropertyTests.cpp | 17 +++++++++++++++++ 2 files changed, 19 insertions(+), 2 deletions(-) diff --git a/src/opm/parser/eclipse/EclipseState/Grid/GridProperties.cpp b/src/opm/parser/eclipse/EclipseState/Grid/GridProperties.cpp index b43ab563a..974ddf1cc 100644 --- a/src/opm/parser/eclipse/EclipseState/Grid/GridProperties.cpp +++ b/src/opm/parser/eclipse/EclipseState/Grid/GridProperties.cpp @@ -278,7 +278,7 @@ namespace Opm { if (hasKeyword( field )) { GridProperty& property = getKeyword( field ); - T value = convertInputValue( record.getItem("value").get< double >(0) ); + T value = convertInputValue( property, record.getItem("value").get< double >(0) ); setKeywordBox(record, boxManager); property.maxvalue( value , boxManager.getActiveBox() ); } else @@ -291,7 +291,7 @@ namespace Opm { if (hasKeyword( field )) { GridProperty& property = getKeyword( field ); - T value = convertInputValue( record.getItem("value").get< double >(0) ); + T value = convertInputValue( property, record.getItem("value").get< double >(0) ); setKeywordBox(record, boxManager); property.minvalue( value , boxManager.getActiveBox() ); } else diff --git a/tests/parser/GridPropertyTests.cpp b/tests/parser/GridPropertyTests.cpp index 4698de429..3e880178d 100644 --- a/tests/parser/GridPropertyTests.cpp +++ b/tests/parser/GridPropertyTests.cpp @@ -30,6 +30,7 @@ #include #include +#include #include #include #include @@ -258,6 +259,14 @@ BOOST_AUTO_TEST_CASE(GridPropertyInitialization) { "\n" "GRID\n" "\n" + "PERMX\n" + " 27*1000 /\n" + "MAXVALUE\n" + " PERMX 100 4* 1 1/\n" + "/\n" + "MINVALUE\n" + " PERMX 10000 4* 3 3/\n" + "/\n" "ACTNUM\n" " 0 8*1 0 8*1 0 8*1 /\n" "DXV\n" @@ -441,6 +450,14 @@ BOOST_AUTO_TEST_CASE(GridPropertyInitialization) { double_props.assertKeyword("NTG"); BOOST_CHECK( double_props.hasKeyword( "NTG" )); } + { + const auto& double_props = props.getDoubleProperties( ); + const auto& units = deck.getActiveUnitSystem(); + const auto& permx = double_props.getKeyword("PERMX"); + BOOST_CHECK_EQUAL(permx.iget(0,0,0), units.to_si(Opm::UnitSystem::measure::permeability, 100)); + BOOST_CHECK_EQUAL(permx.iget(0,0,1), units.to_si(Opm::UnitSystem::measure::permeability, 1000)); + BOOST_CHECK_EQUAL(permx.iget(0,0,2), units.to_si(Opm::UnitSystem::measure::permeability, 10000)); + } }