From 350c92375e61b52aaca4b95f9ff8dda84e9be220 Mon Sep 17 00:00:00 2001 From: Andreas Lauser Date: Fri, 29 Aug 2014 12:54:58 +0200 Subject: [PATCH] add the PORV grid property and use NaNs as default values for most double grid property when it comes to PORV, the final pore volumes of logically Cartesian grids are hard to implement at this abstraction level because pore volumes may be either specified using the PORO or by the PORV keywords and both of them are grid properties. This means that to calculate the pore volumes using the porosity, the porosity grid property must be already finished when creating PORV. Because of potential interactions between the PORV and PORO grid properties this is not possible to do canonically at the grid property initializer stage... --- .../eclipse/EclipseState/EclipseState.cpp | 28 +++++++++++-------- 1 file changed, 16 insertions(+), 12 deletions(-) diff --git a/opm/parser/eclipse/EclipseState/EclipseState.cpp b/opm/parser/eclipse/EclipseState/EclipseState.cpp index 3ef6d04c9..9fb1e02c4 100644 --- a/opm/parser/eclipse/EclipseState/EclipseState.cpp +++ b/opm/parser/eclipse/EclipseState/EclipseState.cpp @@ -389,6 +389,7 @@ namespace Opm { // SupportedIntKeywordInfo( "FIP???" , 0 ), SupportedIntKeywordInfo( "FIPNUM" , 1, "1" )}; + double nan = std::numeric_limits::quiet_NaN(); const auto eptLookup = std::make_shared>(*deck, *this); // Note that the variants of grid keywords for radial grids @@ -529,15 +530,21 @@ namespace Opm { SupportedDoubleKeywordInfo( "ISWCRZ-" , eptLookup, "1" ), // porosity - SupportedDoubleKeywordInfo( "PORO" , 0.0, "1" ), + SupportedDoubleKeywordInfo( "PORO" , nan, "1" ), + + // pore volume + SupportedDoubleKeywordInfo( "PORV" , nan, "Volume" ), + + // pore volume multipliers + SupportedDoubleKeywordInfo( "MULTPV", 1.0, "1" ), // the permeability keywords - SupportedDoubleKeywordInfo( "PERMX" , 0.0, "Permeability" ), - SupportedDoubleKeywordInfo( "PERMY" , 0.0, "Permeability" ), - SupportedDoubleKeywordInfo( "PERMZ" , 0.0, "Permeability" ), - SupportedDoubleKeywordInfo( "PERMXY", 0.0, "Permeability" ), // E300 only - SupportedDoubleKeywordInfo( "PERMXZ", 0.0, "Permeability" ), // E300 only - SupportedDoubleKeywordInfo( "PERMYZ", 0.0, "Permeability" ), // E300 only + SupportedDoubleKeywordInfo( "PERMX" , nan, "Permeability" ), + SupportedDoubleKeywordInfo( "PERMY" , nan, "Permeability" ), + SupportedDoubleKeywordInfo( "PERMZ" , nan, "Permeability" ), + SupportedDoubleKeywordInfo( "PERMXY", nan, "Permeability" ), // E300 only + SupportedDoubleKeywordInfo( "PERMXZ", nan, "Permeability" ), // E300 only + SupportedDoubleKeywordInfo( "PERMYZ", nan, "Permeability" ), // E300 only // gross-to-net thickness (acts as a multiplier for PORO // and the permeabilities in the X-Y plane as well as for @@ -551,12 +558,9 @@ namespace Opm { SupportedDoubleKeywordInfo( "MULTX-", 1.0, "1" ), SupportedDoubleKeywordInfo( "MULTY-", 1.0, "1" ), SupportedDoubleKeywordInfo( "MULTZ-", 1.0, "1" ), - - // initialisation - SupportedDoubleKeywordInfo( "SWATINIT" , 0.0, "1"), - // pore volume multipliers - SupportedDoubleKeywordInfo( "MULTPV", 1.0, "1" ) + // initialisation + SupportedDoubleKeywordInfo( "SWATINIT" , 0.0, "1") }; // create the grid properties