tud_lbm.operators.obstacle
Interior-obstacle operators — composite builder.
Public API: build_obstacle_mask(), build_obstacle_fn()
Implementation modules (_circle.py) are internal.
Example
from tud_lbm.operators.obstacle import build_obstacle_mask, build_obstacle_fn
mask = build_obstacle_mask({“shape”: “circle”, “center_x”: 80, “center_y”: 50, “radius”: 10}, (400, 100, 1)) obstacle_fn = build_obstacle_fn(mask, lattice) f_stream = obstacle_fn(f_stream, f_collision)
Functions
|
Build a static solid-cell mask from an obstacle config. |
|
Build an obstacle bounce-back closure from a precomputed mask. |
Package Contents
- tud_lbm.operators.obstacle.build_obstacle_mask(obstacle_config: dict[str, Any] | None, grid_shape: tuple[int, int, int]) jax.numpy.ndarray | None[source]
Build a static solid-cell mask from an obstacle config.
- Parameters:
obstacle_config – Mapping with an optional
shapekey (default"circle") plus shape-specific geometry params.Nonemeans no obstacle.grid_shape – Spatial dimensions
(nx, ny, nz).
- Returns:
Boolean jax array, shape
(nx, ny, nz, 1, 1), orNoneif obstacle_config isNone.
- tud_lbm.operators.obstacle.build_obstacle_fn(mask: jax.numpy.ndarray | None, lattice: tud_lbm.lattice.lattice.Lattice) tud_lbm.operators.protocols.ObstacleOperator | None[source]
Build an obstacle bounce-back closure from a precomputed mask.
- Parameters:
mask – Boolean solid-cell mask, shape
(nx, ny, nz, 1, 1), orNoneif there is no obstacle.lattice –
Lattice.
- Returns:
A callable
obstacle_fn(f_stream, f_col) -> f_streamsatisfyingObstacleOperator, orNoneif mask isNone.