Skip to content

Add MultiMesh postprocessing and FDH5 dataset support#45

Merged
pruliere merged 16 commits into
masterfrom
feature/multimesh
Jul 10, 2026
Merged

Add MultiMesh postprocessing and FDH5 dataset support#45
pruliere merged 16 commits into
masterfrom
feature/multimesh

Conversation

@pruliere

@pruliere pruliere commented Jul 7, 2026

Copy link
Copy Markdown
Collaborator

Summary

This PR adds postprocessing support for MultiMesh objects, including meshes with several element types or several submeshes sharing the same element type.

It introduces MultiMeshData to keep element and Gauss-point fields attached to their source submesh, extends DataSet/MultiFrameDataSet access and plotting logic for MultiMesh, and adds FDH5 read/write support for raw meshes and result datasets.

Main Changes

  • Add ordered MultiMesh submesh access by index, element type, or submesh name.
  • Add MultiMeshData for per-submesh element and Gauss-point data.
  • Extend DataSet.get_data(), plotting, history extraction, and FDH5 save/load for MultiMesh.
  • Support AssemblySum result extraction across assemblies attached to different meshes.
  • Add FDH5 utilities for storing Fedoo meshes, submeshes, node data, element data, Gauss-point data, and scalar metadata.
  • Update the viewer to handle MultiMesh plotting and global element selection.
  • Several code cleaning and bug corrections.

Notes

Element and Gauss-point values are stored per submesh, so duplicate element types remain distinguishable through submesh ids or names.

pruliere and others added 16 commits July 6, 2026 09:36
add h5py and update minimal simcoon version
- add methods to convert local to global id in multi_mesh data
- update dependencies (matlplotlib<3.5 no more supported)
# Conflicts:
#	examples/01-simple/spherical_shell_compression.py
Add documentation, minor API clarifications and behavior fixes across IO and core modules.

Key changes:
- environment: add meshio dependency.
- constraint/distributed_load: cache load magnitude and skip re-assembly when unchanged to avoid unnecessary regeneration.
- core: fix typo in Assembly docstring; Mesh now documents register_name; MultiMesh.find_elements documents unsupported name-saving; DataSet.get_data uses fill_unused_nodes=None when converting to preserve source node data.
- multimeshdata: add concise docstrings for properties and helpers (active, map, keys, items, shape, ndim) to clarify semantics (operate on active submesh blocks).
- util/fdh5: introduce CompressionConfig dataclass; add comprehensive docstrings and parameter validation to FDH5Writer/FDH5Reader methods; preserve submesh ordering and names when reconstructing MultiMesh to avoid silent collisions; remove large example and commented dead code.
- util/xdmf_writer: add parameter docs and minor behavior tweak to only export gauss-point fields with a single GP as cell-centered attributes; various code cleanups and formatting.

These changes improve usability, documentation, and correctness of IO routines and avoid unnecessary recomputation during assembly.
Add a small launch test feature at the end of all tests
@pruliere pruliere merged commit 14051b6 into master Jul 10, 2026
3 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants