grids.mixins.core.GridUtilsMixin.compute_domain_slice#
- GridUtilsMixin.compute_domain_slice(axes: AxesInput | None = None, include_ghosts: bool = False, halo_offsets: HaloOffsetInput | None = None, oob_behavior: str = 'raise') Tuple[slice, ...] [source]#
Compute a slice representing the entire grid domain with some set of axes, halo offsets, and ghost zone behavior.
Hint
This method is useful when you need to extract the entire domain but want to exclude ghost zones or want to include some number of additional cells around the boundary.
- Parameters:
axes (
str
orlist
ofstr
, 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) – IfTrue
, 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]
, ornp.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.
- Returns:
One slice per selected axis, expressed in global index space.
- Return type: