grids.mixins.chunking.GridChunkingMixin.iter_chunk_slices#

GridChunkingMixin.iter_chunk_slices(axes: AxesInput | None = None, *, include_ghosts: bool = False, halo_offsets: HaloOffsetInput | None = None, oob_behavior: str = 'raise', pbar: bool = True, pbar_kwargs: Dict[str, Any] | None = None) Iterator[Tuple[slice, ...]][source]#

Efficiently iterate over chunk-wise slices in global index space.

This iterator yields a tuple of slices per chunk along selected axes, updating only the slices that change. Supports ghost zones, halo padding, and progress bar display.

Parameters:
  • axes (str or list of str, optional) –

    The names of the axes to include in the slice. If None, all axes are used. This determines the number of slice objects returned in the output tuple — one slice per selected axis.

    Note

    Regardless of the ordering of axes, the axes are reordered to match canonical ordering as defined by the coordinate system.

  • include_ghosts (bool, optional) – If True, then the slice will include the ghost zones around the boundary of the domain. Otherwise (default), the ghost zones are excluded from the resulting slice.

  • halo_offsets (int, sequence[int], or np.ndarray, optional) –

    Extra padding (in ghost-cell units) to apply on top of the active or ghost-augmented domain.

    This allows you to extend the region further outward beyond ghost zones — for example, to reserve additional halo space for multi-pass stencils.

    Supported formats:

    • int: same padding applied to both sides of all axes

    • sequence of length N: symmetric padding per axis (left = right)

    • array of shape (2, N): explicit left/right padding per axis

    Note

    This is applied after ghost zones (if include_ghosts=True). Total padding = ghost zones + halo.

  • oob_behavior ({"raise", "clip"}, default "raise") –

    Determines what to do if the computed slice (after applying ghost zones and halo padding) would extend beyond the allocated grid buffer (__ghost_dd__).

    Options:
    • ”raise” : Raise an IndexError if any part of the slice is out of bounds.

    • ”clip” : Clamp the slice to stay within the valid grid extent.

    Use “clip” if you’re performing relaxed operations (e.g., visualization or padding-aware reads), and “raise” for strict enforcement during stencil computations or buffer validation.

  • pbar (bool, default True) – Whether to display a tqdm progress bar.

  • pbar_kwargs (dict, optional) – Additional keyword arguments passed to tqdm.

Yields:

tuple of slice – A tuple of slices selecting the current chunk in global index space.