Skip to content

flowTorch 1.9.0

Choose a tag to compare

@AndreWeiner AndreWeiner released this 15 Sep 11:24
f372976

flowTorch 1.9.0

This release introduces a redesigned, differentiable reduced-order modeling package and adds OpenFOAM cell-zone support to the NumPy data loader.

Highlights

  • Add OpenFOAM cell-zone discovery, metadata, coordinates, and zone-restricted field loading to FOAMCase and FOAMDataloader.
  • Redesign flowtorch.rom around composable encoders, decoders, embeddings, and latent-space regression models.
  • Add continuous-time DMD and DMDc with real-valued operators for real-valued data, analytical initialization, normalized time, and vectorized prediction.
  • Add POD with interpolation (PODI) for steady parametric problems with one or more parameters.
  • Add time-delay and monomial state embeddings, including forcing embeddings for DMDc, while returning predictions in the original state space.
  • Add two-stage fine-tuning with AdamW followed by LBFGS, plateau-based learning-rate scheduling, configurable training/validation loss weighting, frequency-spacing regularization, learnable noise, and trajectory chunking.
  • Extend SVD with reusable encoding and decoding operations and preserve distributed execution for the new ROM workflows.

Training defaults

  • Use all available data for training unless a validation split or separate validation data is provided.
  • Stop on an equal mixture of training and validation loss when validation data is available; otherwise use training loss.
  • Run 100 AdamW epochs with patience 40, followed by 50 LBFGS epochs with patience 10.
  • Use strong-Wolfe line search for LBFGS with PyTorch's standard iteration and history settings.
  • Initialize DMD and DMDc with the stationary solution by default and use a default learnable-noise scaling factor of 0.01.
  • Disable the backward trajectory loss by default.

Breaking changes

  • The previous ROM base classes and SVDEncoder API have been replaced by the new composable ROM interfaces.
  • flowtorch.rom.CNM has been removed.
  • The scikit-learn dependency has been removed.

Validation

  • Code formatting, linting, and static type checking pass.
  • The full test suite passes on Python 3.10, 3.12, and 3.14 across Linux, macOS, and Windows.
  • Distributed Gloo tests pass on Python 3.12.
  • Documentation builds with warnings treated as errors.
  • Source and wheel distributions build successfully and pass Twine validation.