From 9798d20889b7a595298ad13699f38acd79ce4778 Mon Sep 17 00:00:00 2001 From: JoerivanEngelen Date: Wed, 15 Apr 2026 16:10:39 +0200 Subject: [PATCH 1/3] Fix default method for regridding k33, as this was incorrectly chosen. --- docs/api/changelog.rst | 3 +++ imod/mf6/regrid/regrid_schemes.py | 4 ++-- 2 files changed, 5 insertions(+), 2 deletions(-) diff --git a/docs/api/changelog.rst b/docs/api/changelog.rst index de7d1156c..ccc309c23 100644 --- a/docs/api/changelog.rst +++ b/docs/api/changelog.rst @@ -58,6 +58,9 @@ Fixed - Fixed :func:`imod.prepare.spatial.polygonize` for polygons with holes. - :func:`imod.formats.prj.open_projectfile_data` now drops empty wells from the dataset, and logs a warning about it. +- :meth:`imod.mf6.NodePropertyFlow.regrid_like` now regrids ``k33`` using the + correct method, namely ``mean`` instead of ``harmonic_mean``. As this is the + appropriate method for horizontal regridding of ``k33``. Changed ~~~~~~~ diff --git a/imod/mf6/regrid/regrid_schemes.py b/imod/mf6/regrid/regrid_schemes.py index 496db71b8..0af7267af 100644 --- a/imod/mf6/regrid/regrid_schemes.py +++ b/imod/mf6/regrid/regrid_schemes.py @@ -289,7 +289,7 @@ class NodePropertyFlowRegridMethod(DataclassType): icelltype: tuple, defaults (RegridderType.OVERLAP, "mean") k: tuple, defaults ( RegridderType.OVERLAP,"geometric_mean") k22: tuple, defaults (RegridderType.OVERLAP,"geometric_mean") - k33: tuple, defaults (RegridderType.OVERLAP,"harmonic_mean") + k33: tuple, defaults (RegridderType.OVERLAP,"mean") angle1: tuple, defaults (RegridderType.OVERLAP, "mean") angle2: tuple, defaults (RegridderType.OVERLAP, "mean") angle3: tuple, defaults (RegridderType.OVERLAP, "mean") @@ -319,7 +319,7 @@ class NodePropertyFlowRegridMethod(DataclassType): ) # horizontal if angle2 = 0 & angle3 = 0 k33: RegridVarType = ( RegridderType.OVERLAP, - "harmonic_mean", + "mean", ) # vertical if angle2 = 0 & angle3 = 0 angle1: RegridVarType = (RegridderType.OVERLAP, "mean") angle2: RegridVarType = (RegridderType.OVERLAP, "mean") From aef5b5156aae6ec5de3b8e5c88d1ce376edeb457 Mon Sep 17 00:00:00 2001 From: JoerivanEngelen Date: Wed, 15 Apr 2026 16:10:57 +0200 Subject: [PATCH 2/3] Clarify fuzzy text on regridding conductivity --- examples/user-guide/08-regridding.py | 35 +++++++++++++++------------- 1 file changed, 19 insertions(+), 16 deletions(-) diff --git a/examples/user-guide/08-regridding.py b/examples/user-guide/08-regridding.py index 9d932c541..15d1e33ef 100644 --- a/examples/user-guide/08-regridding.py +++ b/examples/user-guide/08-regridding.py @@ -372,22 +372,25 @@ def plot_histograms_side_by_side(array_original, array_regridded, title): # A note on regridding conductivity # --------------------------------- # -# In the npf package, it is possible to use for definining the conductivity -# tensor: -# -# - 1 array (K) -# - 2 arrays (K and K22) -# - 3 arrays (K, K22, K33) -# -# If 1 array is given the tensor is called isotropic. Defining only K gives the -# same behavior as specifying K, K22 and K33 with the same value. When -# regridding, K33 has a default method different from that of K and K22, but it -# can only be applied if K33 exists in the source model in the first place. So -# it is recommended to introduce K33 as a separate array in the source model -# even if it is isotropic. Also note that default regridding methods were chosen -# assuming that K and K22 are roughly horizontal and K33 roughly vertical. But -# this may not be the case if the input arrays angle2 and/or angle3 have large -# values. +# By default, K and K22 are regrid with a different method than K33. Namely K +# and K22 are regridded by default with a geometric mean (Bierkens, 1998), +# whereas K33 is regrid with an arithmetic mean. Note that default regridding +# methods were chosen assuming that K and K22 are roughly horizontal and K33 +# roughly vertical. But this may not be the case if the input arrays angle2 +# and/or angle3 have large values. +# +# Furthermore it is possible to only provide one array for the hydraulic +# conductivity, K. In that case, the same k values are used in all directions +# (K, K22, and K33), and the model is called isotropic. It is recommended to +# introduce K33 as a separate array in the source model even if it is isotropic +# when regridding simulations, as K33 is regridded with a different method. +# +# Reference: +# +# Bierkens, M., van der Gaast, J. Upscaling hydraulic conductivity: theory and +# examples from geohydrological studies. *Nutrient Cycling in Agroecosystems* **50**, +# 193–207 (1998). https://doi.org/10.1023/A:1009740328153 +# # # Regridding boundary conditions # ------------------------------ From 7033a040972d81ea57e6fd4cb8a07c948e1ac4d2 Mon Sep 17 00:00:00 2001 From: JoerivanEngelen Date: Wed, 15 Apr 2026 16:11:32 +0200 Subject: [PATCH 3/3] Update pixi lock for branch --- pixi.lock | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pixi.lock b/pixi.lock index 39e7316da..03d4b3985 100644 --- a/pixi.lock +++ b/pixi.lock @@ -14752,7 +14752,7 @@ packages: - pypi: ./ name: imod version: 1.0.1.dev1 - sha256: b242a1acd646ffa5410ebc6470e9fa558e81e42073304819f54be9e77949a462 + sha256: d27105972c53a243e6793668ecb915b0b24268a493441e035e214e01a8a8e389 requires_dist: - affine - cftime>=1