From 0d47d3d6362157aadb464ea39dfc41a5e240a920 Mon Sep 17 00:00:00 2001 From: Tobias Wicky-Pfund Date: Thu, 23 Oct 2025 09:36:26 +0200 Subject: [PATCH 1/3] propagate halo-information --- ndsl/grid/generation.py | 16 +++++++++++++++- ndsl/grid/helper.py | 13 +++++++++---- 2 files changed, 24 insertions(+), 5 deletions(-) diff --git a/ndsl/grid/generation.py b/ndsl/grid/generation.py index 2f39d34b..12115740 100644 --- a/ndsl/grid/generation.py +++ b/ndsl/grid/generation.py @@ -299,7 +299,9 @@ def __init__( self._ak, self._bk, ) = self._set_hybrid_pressure_coefficients( - eta_file, ak, bk # type: ignore + eta_file, + ak, + bk, # type: ignore ) else: self._ks = 0 @@ -555,6 +557,7 @@ def lon(self): extent=self.grid.extent[:2], units=self.grid.units, gt4py_backend=self.grid.gt4py_backend, + number_of_halo_points=3, ) @property @@ -566,6 +569,7 @@ def lat(self) -> Quantity: extent=self.grid.extent[:2], units=self.grid.units, gt4py_backend=self.grid.gt4py_backend, + number_of_halo_points=3, ) @property @@ -577,6 +581,7 @@ def lon_agrid(self) -> Quantity: extent=self.agrid.extent[:2], units=self.agrid.units, gt4py_backend=self.agrid.gt4py_backend, + number_of_halo_points=3, ) @property @@ -588,6 +593,7 @@ def lat_agrid(self) -> Quantity: extent=self.agrid.extent[:2], units=self.agrid.units, gt4py_backend=self.agrid.gt4py_backend, + number_of_halo_points=3, ) @property @@ -1551,6 +1557,7 @@ def rarea(self) -> Quantity: extent=self.area.extent, units="m^-2", gt4py_backend=self.area.gt4py_backend, + number_of_halo_points=3, ) @functools.cached_property @@ -1565,6 +1572,7 @@ def rarea_c(self) -> Quantity: extent=self.area_c.extent, units="m^-2", gt4py_backend=self.area_c.gt4py_backend, + number_of_halo_points=3, ) @functools.cached_property @@ -1580,6 +1588,7 @@ def rdx(self) -> Quantity: extent=self.dx.extent, units="m^-1", gt4py_backend=self.dx.gt4py_backend, + number_of_halo_points=3, ) @functools.cached_property @@ -1595,6 +1604,7 @@ def rdy(self) -> Quantity: extent=self.dy.extent, units="m^-1", gt4py_backend=self.dy.gt4py_backend, + number_of_halo_points=3, ) @functools.cached_property @@ -1610,6 +1620,7 @@ def rdxa(self) -> Quantity: extent=self.dxa.extent, units="m^-1", gt4py_backend=self.dxa.gt4py_backend, + number_of_halo_points=3, ) @functools.cached_property @@ -1625,6 +1636,7 @@ def rdya(self) -> Quantity: extent=self.dya.extent, units="m^-1", gt4py_backend=self.dya.gt4py_backend, + number_of_halo_points=3, ) @functools.cached_property @@ -1640,6 +1652,7 @@ def rdxc(self) -> Quantity: extent=self.dxc.extent, units="m^-1", gt4py_backend=self.dxc.gt4py_backend, + number_of_halo_points=3, ) @functools.cached_property @@ -1655,6 +1668,7 @@ def rdyc(self) -> Quantity: extent=self.dyc.extent, units="m^-1", gt4py_backend=self.dyc.gt4py_backend, + number_of_halo_points=3, ) def _init_cartesian(self): diff --git a/ndsl/grid/helper.py b/ndsl/grid/helper.py index fd7619df..090f999b 100644 --- a/ndsl/grid/helper.py +++ b/ndsl/grid/helper.py @@ -187,6 +187,7 @@ def p_interface(self) -> Quantity: dims=[Z_INTERFACE_DIM], units="Pa", gt4py_backend=self.ak.gt4py_backend, + number_of_halo_points=self.ak.metadata.n_halo, ) return self._p_interface @@ -203,6 +204,7 @@ def p(self) -> Quantity: dims=[Z_DIM], units="Pa", gt4py_backend=self.p_interface.gt4py_backend, + number_of_halo_points=self.p_interface.metadata.n_halo, ) return self._p @@ -219,6 +221,7 @@ def dp(self) -> Quantity: dims=[Z_DIM], units="Pa", gt4py_backend=self.ak.gt4py_backend, + number_of_halo_points=self.ak.metadata.n_halo, ) return self._dp_ref @@ -380,6 +383,7 @@ def _fC_from_data(data, lat: Quantity) -> Quantity: origin=lat.origin, extent=lat.extent, gt4py_backend=lat.gt4py_backend, + number_of_halo_points=lat.metadata.n_halo, ) @staticmethod @@ -802,16 +806,16 @@ def new_from_grid_variables( ) -def split_quantity_along_last_dim(quantity): +def split_quantity_along_last_dim(quantity: Quantity) -> list[Quantity]: """Split a quantity along the last dimension into a list of quantities. Args: - quantity: Quantity to split. + quantity (Quantity): Quantity to split. Returns: - List of quantities. + list[Quantity]: List of quantities. """ - return_list = [] + return_list: list[Quantity] = [] for i in range(quantity.data.shape[-1]): return_list.append( Quantity( @@ -821,6 +825,7 @@ def split_quantity_along_last_dim(quantity): origin=quantity.origin[:-1], extent=quantity.extent[:-1], gt4py_backend=quantity.gt4py_backend, + number_of_halo_points=quantity.metadata, ) ) return return_list From f06fae51c2bc9c5efe9a176e40491d402b38452b Mon Sep 17 00:00:00 2001 From: Tobias Wicky-Pfund Date: Thu, 23 Oct 2025 09:47:10 +0200 Subject: [PATCH 2/3] pc --- ndsl/grid/generation.py | 4 ++-- ndsl/grid/helper.py | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/ndsl/grid/generation.py b/ndsl/grid/generation.py index 12115740..60ec6e8d 100644 --- a/ndsl/grid/generation.py +++ b/ndsl/grid/generation.py @@ -299,9 +299,9 @@ def __init__( self._ak, self._bk, ) = self._set_hybrid_pressure_coefficients( - eta_file, + eta_file, # type: ignore ak, - bk, # type: ignore + bk, ) else: self._ks = 0 diff --git a/ndsl/grid/helper.py b/ndsl/grid/helper.py index 090f999b..dd612b22 100644 --- a/ndsl/grid/helper.py +++ b/ndsl/grid/helper.py @@ -825,7 +825,7 @@ def split_quantity_along_last_dim(quantity: Quantity) -> list[Quantity]: origin=quantity.origin[:-1], extent=quantity.extent[:-1], gt4py_backend=quantity.gt4py_backend, - number_of_halo_points=quantity.metadata, + number_of_halo_points=quantity.metadata.n_halo, ) ) return return_list From fe9351b693a03c8cbd22d364d67c8dc09df0809b Mon Sep 17 00:00:00 2001 From: Tobias Wicky-Pfund Date: Thu, 23 Oct 2025 10:04:47 +0200 Subject: [PATCH 3/3] proper halo default usage --- ndsl/grid/generation.py | 24 ++++++++++++------------ 1 file changed, 12 insertions(+), 12 deletions(-) diff --git a/ndsl/grid/generation.py b/ndsl/grid/generation.py index 60ec6e8d..d78920ab 100644 --- a/ndsl/grid/generation.py +++ b/ndsl/grid/generation.py @@ -557,7 +557,7 @@ def lon(self): extent=self.grid.extent[:2], units=self.grid.units, gt4py_backend=self.grid.gt4py_backend, - number_of_halo_points=3, + number_of_halo_points=N_HALO_DEFAULT, ) @property @@ -569,7 +569,7 @@ def lat(self) -> Quantity: extent=self.grid.extent[:2], units=self.grid.units, gt4py_backend=self.grid.gt4py_backend, - number_of_halo_points=3, + number_of_halo_points=N_HALO_DEFAULT, ) @property @@ -581,7 +581,7 @@ def lon_agrid(self) -> Quantity: extent=self.agrid.extent[:2], units=self.agrid.units, gt4py_backend=self.agrid.gt4py_backend, - number_of_halo_points=3, + number_of_halo_points=N_HALO_DEFAULT, ) @property @@ -593,7 +593,7 @@ def lat_agrid(self) -> Quantity: extent=self.agrid.extent[:2], units=self.agrid.units, gt4py_backend=self.agrid.gt4py_backend, - number_of_halo_points=3, + number_of_halo_points=N_HALO_DEFAULT, ) @property @@ -1557,7 +1557,7 @@ def rarea(self) -> Quantity: extent=self.area.extent, units="m^-2", gt4py_backend=self.area.gt4py_backend, - number_of_halo_points=3, + number_of_halo_points=N_HALO_DEFAULT, ) @functools.cached_property @@ -1572,7 +1572,7 @@ def rarea_c(self) -> Quantity: extent=self.area_c.extent, units="m^-2", gt4py_backend=self.area_c.gt4py_backend, - number_of_halo_points=3, + number_of_halo_points=N_HALO_DEFAULT, ) @functools.cached_property @@ -1588,7 +1588,7 @@ def rdx(self) -> Quantity: extent=self.dx.extent, units="m^-1", gt4py_backend=self.dx.gt4py_backend, - number_of_halo_points=3, + number_of_halo_points=N_HALO_DEFAULT, ) @functools.cached_property @@ -1604,7 +1604,7 @@ def rdy(self) -> Quantity: extent=self.dy.extent, units="m^-1", gt4py_backend=self.dy.gt4py_backend, - number_of_halo_points=3, + number_of_halo_points=N_HALO_DEFAULT, ) @functools.cached_property @@ -1620,7 +1620,7 @@ def rdxa(self) -> Quantity: extent=self.dxa.extent, units="m^-1", gt4py_backend=self.dxa.gt4py_backend, - number_of_halo_points=3, + number_of_halo_points=N_HALO_DEFAULT, ) @functools.cached_property @@ -1636,7 +1636,7 @@ def rdya(self) -> Quantity: extent=self.dya.extent, units="m^-1", gt4py_backend=self.dya.gt4py_backend, - number_of_halo_points=3, + number_of_halo_points=N_HALO_DEFAULT, ) @functools.cached_property @@ -1652,7 +1652,7 @@ def rdxc(self) -> Quantity: extent=self.dxc.extent, units="m^-1", gt4py_backend=self.dxc.gt4py_backend, - number_of_halo_points=3, + number_of_halo_points=N_HALO_DEFAULT, ) @functools.cached_property @@ -1668,7 +1668,7 @@ def rdyc(self) -> Quantity: extent=self.dyc.extent, units="m^-1", gt4py_backend=self.dyc.gt4py_backend, - number_of_halo_points=3, + number_of_halo_points=N_HALO_DEFAULT, ) def _init_cartesian(self):