Kolmogorov Flow
2D incompressible Navier–Stokes on a periodic square, driven by a sinusoidal body force — the flow is unsteady and vortical:
Results
The vortical dynamics are tracked over the full horizon to a relative vorticity error of 4.2e-02 (stitched across all four windows), versus 0.59 when trained as a single global fit — the time-window curriculum is the decisive ingredient for this flow. Pseudo-time stepping composes cleanly with it: constant damping weights (step size 1.0) train stably through every window, and an adaptive-weight variant matches it (4.4e-02 even without windows in the single-window configuration). The animation shows the prediction staying phase-locked with the reference as vortices merge and stretch; the error concentrates in the thin filaments between vortices.

Run
cd examples/kolmogorov_flow
python3 main.py --config=configs/pseudo_time.py \
--config.pseudo_time.strategy=constant \
--config.training.num_time_windows=4| Config | Description |
|---|---|
configs/baseline.py | PirateNet + causal weighting |
configs/pseudo_time.py | Adaptive pseudo-time stepping |
configs/fixed_pseudo_time.py | Constant pseudo-time weights |
Notes
- Uses time-window training with transfer learning between windows; the vorticity is computed from the velocity network by automatic differentiation (
). - The higher-Reynolds version of this problem is the Kolmogorov flow at Re 10⁶.