Skip to content

API Reference

Reference documentation for the FlowPDE modules.

The central separation: flow vs. objective

This is the most important structural fact about the library.

  • NeuralODEFlow is the continuous-time dynamics: it owns the model, sampling by ODE integration, and exact log-likelihood.
  • Objectives are how you train that flow.

Both objectives wrap the same flow. Training logic does not belong on the flow, and dynamics do not belong on an objective.

flow = NeuralODEFlow(model, target_key="target", condition_key="input")
objective = FlowMatchingObjective(flow, path="linear", time_sampler="uniform")
trainer = Trainer(objective, optimizer, ...)

Modules

Module Description
Core Abstract bases: BaseFlow, BaseSolver, BaseConditioner
Flows NeuralODEFlow and its pluggable components
Objectives Flow matching and maximum likelihood
Models Velocity-field backbones: MLP, UNet, ConvNet, ResNet
Solvers ODE integration for inference
Trainers Trainer, EMA, FlowEvaluator, reflow
Datasets Exponax PDE data generation and normalization
Utils Error metrics, uncertainty-quantification metrics, and general utilities