diff --git a/patches/libecl_dualporo_actnum.patch b/patches/libecl_dualporo_actnum.patch new file mode 100644 index 0000000000..2c9a1e56ff --- /dev/null +++ b/patches/libecl_dualporo_actnum.patch @@ -0,0 +1,34 @@ +From 978139b8cd9361fa1a5884079e66999ee39ea1bd Mon Sep 17 00:00:00 2001 +From: Magne Sjaastad +Date: Fri, 31 May 2019 14:37:50 +0200 +Subject: [PATCH] helper function for libecl dual porosity + +--- + ThirdParty/Ert/lib/ecl/ecl_kw_functions.cpp | 9 ++++++++- + 1 file changed, 8 insertions(+), 1 deletion(-) + +diff --git a/ThirdParty/Ert/lib/ecl/ecl_kw_functions.cpp b/ThirdParty/Ert/lib/ecl/ecl_kw_functions.cpp +index d10646fd3..e5d980fb1 100644 +--- a/ThirdParty/Ert/lib/ecl/ecl_kw_functions.cpp ++++ b/ThirdParty/Ert/lib/ecl/ecl_kw_functions.cpp +@@ -143,9 +143,16 @@ ecl_kw_type * ecl_kw_alloc_actnum(const ecl_kw_type * porv_kw, float porv_limit) + const float * porv_values = ecl_kw_get_float_ptr(porv_kw); + int * actnum_values = ecl_kw_get_int_ptr( actnum_kw); + ++ // When PORV is used as criteria, make sure all active cells are assigned both ++ // active matrix and active fracture. This will make sure that both single porosity ++ // models and dual porosity models in initialized with the correct bit mask ++ // See documentation in top of ecl_grid.cpp ++ // ++ const int combinedActnumValueForMatrixAndFracture = CELL_ACTIVE_MATRIX + CELL_ACTIVE_FRACTURE; ++ + for (int i=0; i < size; i++) { + if (porv_values[i] > porv_limit) +- actnum_values[i] = 1; ++ actnum_values[i] = combinedActnumValueForMatrixAndFracture; + else + actnum_values[i] = 0; + } +-- +2.21.0.windows.1 +