Skip to content

flowTorch 1.10.0

Choose a tag to compare

@AndreWeiner AndreWeiner released this 27 Oct 10:31
f2e515c

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 EnSightDataloader and EnSightWriter for 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-psp console command while retaining flowtoch-mask-psp as a compatibility alias.

Compatibility and numerical behavior

  • DFT/PDFT amplitude (also available as bin_energy) now represents total spatially weighted bin energy. For unweighted data, the documented conversion is new = old * n_spatial / n_snapshots. spectral_density divides 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_size or runtime chunk-autotuning options. Supply temporal windows as separate sources and append them through update(); use spatial_batch_size and memory_budget_bytes for 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 psutil as 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