pyfebiopt.xplt.mesh_parser

Mesh parsing helpers for XPLT reader.

Classes

MeshParseResult

Container for parsed mesh pieces and lookup maps.

DomainInfo

Canonical domain metadata.

Functions

build_domain_registry(→ tuple[list[DomainInfo], ...)

Build canonical domain names and metadata.

parse_mesh(→ MeshParseResult)

Parse mesh blocks and build Mesh plus lookup maps.

Module Contents

class pyfebiopt.xplt.mesh_parser.MeshParseResult

Container for parsed mesh pieces and lookup maps.

mesh: pyfebiopt.mesh.mesh.Mesh
domain_nodes: dict[str, numpy.ndarray]
parts_map: dict[str, list[int]]
surfaces_map: dict[str, list[numpy.ndarray]]
nodesets_map: dict[str, numpy.ndarray]
part_id2name: dict[int, str]
surf_id2name: dict[int, str]
dom_idx2name: dict[int, str]
surf_idx2name: dict[int, str]
domain_registry: dict[str, DomainInfo]
class pyfebiopt.xplt.mesh_parser.DomainInfo

Canonical domain metadata.

canonical_key: str
dom_idx: int
part_id: int
elem_type: str
declared_count: int
raw_dom_name: str | None = None
part_name: str | None = None
pyfebiopt.xplt.mesh_parser.build_domain_registry(drafts: list[_DomainDraft], part_id2name: dict[int, str]) tuple[list[DomainInfo], dict[int, str], dict[str, DomainInfo]]

Build canonical domain names and metadata.

Policy:

  • Keep explicit, non-empty PLT_DOM_NAME when available and unique.

  • Fall back to canonical <type>_d<dom_idx> when name is missing/empty or collides.

Returns:

Tuple of (ordered entries, dom_idx -> key map, key -> entry map).

pyfebiopt.xplt.mesh_parser.parse_mesh(reader: pyfebiopt.xplt.binary_reader.BinaryReader) MeshParseResult

Parse mesh blocks and build Mesh plus lookup maps.

Returns:

Parsed mesh and helper maps.

Return type:

MeshParseResult