Source code for torx.geometry.shrink_rectangle_m
"""
Utilities for shrinking rectangular boundaries inward by a fractional margin.
Useful for computing grid limits that avoid interpolation errors near domain edges.
"""
import numpy as np
[docs]
def shrink_rectangle(
r_min: float,
r_max: float,
z_min: float,
z_max: float,
factor: float = 0.01,
) -> tuple[float, float, float, float]:
"""
Shrink a rectangle inward by a fraction of its extent.
Returns (r_min, r_max, z_min, z_max).
"""
r_extent = r_max - r_min
z_extent = z_max - z_min
return (
r_min + factor * r_extent,
r_max - factor * r_extent,
z_min + factor * z_extent,
z_max - factor * z_extent,
)
[docs]
def shrink_grid(
r_points: np.ndarray,
z_points: np.ndarray,
factor: float = 0.01,
) -> tuple[float, float, float, float]:
"""
Call shrink_rectangle with inferring bounds from grid arrays.
Returns (r_min, r_max, z_min, z_max).
"""
return shrink_rectangle(
r_min=float(np.min(r_points)),
r_max=float(np.max(r_points)),
z_min=float(np.min(z_points)),
z_max=float(np.max(z_points)),
factor=factor,
)