Source code for buffalo_panel.geometry.supports

"""Support descriptors for supported panel element geometries."""

from __future__ import annotations

from dataclasses import dataclass


[docs] @dataclass(frozen=True, slots=True) class SupportDescriptor: """ Describe one supported geometric support topology. Instances of this dataclass identify the shape and dimensionality of the geometric support on which a singularity family is defined. Kernel lookup and formulation assembly use these descriptors to match families with compatible geometric backends. """ name: str """Registry name used to identify this support in kernel lookups.""" topological_dimension: int """Intrinsic dimension of the support manifold.""" embedding_dimension: int """Dimension of the ambient Euclidean space containing the support."""
POINT_2D = SupportDescriptor("point2d", 0, 2) """Descriptor for a point support embedded in two-dimensional space.""" LINE_2D = SupportDescriptor("line2d", 1, 2) """Descriptor for a line support embedded in two-dimensional space.""" TRIANGLE_3D = SupportDescriptor("triangle3d", 2, 3) """Descriptor for a triangular surface support in three-dimensional space.""" QUAD_3D = SupportDescriptor("quad3d", 2, 3) """Descriptor for a quadrilateral surface support in three-dimensional space."""