Repository navigation
flowTorch 1.10.0
flowTorch 1.10.0
This release adds EnSight Gold input/output and computation provenance, improves memory use in SVD and SPOD, and aligns Fourier-analysis preprocessing and spectral scaling.
Highlights
- Add
EnSightDataloaderandEnSightWriterfor static volume meshes and surfaces, point/cell scalar, vector and tensor fields, ASCII and C-binary files, polygons and polyhedra. Export static modes and means alongside transient reconstructions; complex fields are split into real and imaginary arrays. - Read supported dense C-binary EnSight field slices directly without materializing full fields. Geometry and full snapshots continue to use VTK; unsupported native slice formats fail explicitly, with an optional VTK backend.
- Add raw geometric integration weights, consistent point/cell association and locations, legacy cell-type overrides, mesh access and EnSight export to the Tecplot loader.
- Retain source-backed SVD bases in disk or memory storage for incremental updates, mean tracking, rank limits and checkpoint/restart.
- Select automatic spatial chunks using a 256 MiB input target and memory-capacity estimates, with explicit chunk-size and per-rank budget overrides. Add optional one-chunk CPU prefetching, disabled by default.
- Reduce temporary allocations in Gram-based SVD, weighted centering, incremental updates, reconstruction and TSQR mode construction. SPOD constructs only retained spatial modes where possible while preserving the full eigenvalue spectrum.
- Align DFT/PDFT centering, spatial weighting, window correction and spectral energy conventions. Add POD reuse through
PDFT.from_svd, source-backed inputs, lazy physical results, inverse-FFT reconstruction and weighted mode comparisons. - Capture arguments, effective settings, dependencies and software-environment metadata across selected analysis, loader and ROM entry points. Export settings, versions and provenance as JSON; preserve provenance in SVD checkpoints and record ROM fitting/fine-tuning stages. Visualization recording is opt-in.
- Add the correctly spelled
flowtorch-mask-pspconsole command while retainingflowtoch-mask-pspas a compatibility alias.
Compatibility and numerical behavior
- DFT/PDFT
amplitude(also available asbin_energy) now represents total spatially weighted bin energy. For unweighted data, the documented conversion isnew = old * n_spatial / n_snapshots.spectral_densitydivides bin energy by frequency spacing. - PDFT centers snapshots before fitting POD. Truncated bases and spectra can change; reconstruction restores the original mean.
top_modes()defaults to selecting one peak per nonempty logarithmic frequency segment, rather than globally ranking peaks.- Source-backed SVD no longer accepts
snapshot_batch_sizeor runtime chunk-autotuning options. Supply temporal windows as separate sources and append them throughupdate(); usespatial_batch_sizeandmemory_budget_bytesfor explicit control. - Tecplot weights are geometric rather than unit weights. Select point/cell association when constructing the loader; snapshot requests must match it.
- Structured quadrilateral element areas now contribute one quarter to each vertex. Without normalization, total nodal weight equals total element area; boundary weights and resulting weighted analyses can change.
- Chunk memory bounds are estimates. Loaders that materialize full snapshots retain those loading requirements; prefetching does not guarantee a speedup.
- Provenance records describe inputs and settings without hashing array contents and do not guarantee bitwise replay.
Release preparation
- Use
psutilas a runtime dependency for available-memory queries on Windows and macOS; retain Linux cgroup limits. - Derive the documentation version from
flowtorch/version.py. - Verify that the GitHub release tag matches the package version before building and publishing to PyPI.
- Expand regression coverage and documentation for SVD, distributed execution, Fourier analysis, EnSight/Tecplot I/O and provenance, including a self-contained EnSight cavity fixture.
Validation and known limitations
-
Release CI passes the dataset-free suite on Python 3.10, 3.12 and 3.14 across Linux, macOS and Windows, along with code-quality and distributed Gloo checks.
-
Local Python 3.12 dataset-free suite: 809 passed, 5 skipped; 73 integration tests deselected.
-
Local distributed statistics, SVD, DFT and ROM checks: 4 passed.
-
Formatting and lint checks pass. Documentation builds with warnings treated as errors. Source and wheel distributions build and pass Twine validation.
-
Optional static type checking reports 32 findings across 9 files, including dynamic mixin/decorator attributes, missing annotations and unavailable VTK/psutil type stubs. This check is non-blocking under the project's contribution policy.
-
External-dataset integration tests and CUDA-specific paths were not comprehensively validated for this release.
Full comparison: v1.9.0...v1.10.0