zoomy_core.numerics.boundary_closure

zoomy_core.numerics.boundary_closure#

Classify, per boundary face and row, whether a boundary condition fixes the value (Dirichlet), the normal derivative (Neumann) or neither (ghost), from the ghost-state kernel. Feeds the constrained LSQ derivative fits of geometry_xp.build_topology; a row misclassified as ghost costs accuracy, never correctness.

References

  • Mavriplis 2003, https://doi.org/10.2514/6.2003-3986

Module Contents#

Functions#

face_kinds

Kinds (GHOST / DIRICHLET / NEUMANN) of the rows of space on the boundary faces.

closure_spaces

Row spaces whose derivative fits a solver template closes: the state of nsm and systems, and the reconstruction variables at order >= 2.

closure_kinds

{key: (n_rows, n_bf) kinds} over closure_spaces, the closure argument of geometry_xp.build_topology; systems without BCs are skipped.

Data#

API#

zoomy_core.numerics.boundary_closure.KIND_NAMES#

None

zoomy_core.numerics.boundary_closure.face_kinds(nsm, space, branch, normals)#

Kinds (GHOST / DIRICHLET / NEUMANN) of the rows of space on the boundary faces.

Args

  • branch: BC branch per face (-1: no BC, e.g. a partition cut, gives ghost).

  • normals: outward unit normals, shape (dim_n, n_faces).

Returns

(n_rows, n_faces) int8 array.

zoomy_core.numerics.boundary_closure.closure_spaces(nsm, systems=())#

Row spaces whose derivative fits a solver template closes: the state of nsm and systems, and the reconstruction variables at order >= 2.

Returns

List of (key, system, space) with key = (owner, space).

zoomy_core.numerics.boundary_closure.closure_kinds(nsm, systems, branch, normals)#

{key: (n_rows, n_bf) kinds} over closure_spaces, the closure argument of geometry_xp.build_topology; systems without BCs are skipped.