Learned turbulence closures, and how AI agents help us find out
Syver Døving Agdestein · CWI Amsterdam · with Benjamin Sanderse
Supported by NWO (VI.Vidi.193.105, OCENW.XS25.1.149) Compute on Snellius: SURF (EINF-15798)
The question
How much turbulence can a coarse grid know about?
A simulation on a coarse grid sees the flow only through that grid. What does that view determine, what can it not determine, and what can we do about the rest?
Taylor–Green vortex at Re = 3000 becoming turbulent (vortex structures)
2
I · Coarse grids
Turbulence has too many scales
Reynolds number Re: how turbulent a flow is
grid points to resolve every eddy: direct numerical simulation (DNS)
Large-eddy simulation (LES): a coarse grid, plus a model for what lies beyond the cut.
The subfilter stress τ needs the small scales, which the coarse grid does not have.
A closure model must supply τ from ū alone.
4
I · Coarse grids
Filter and discretize first, then model
no closure model
classical stress
classical + numerical flux
exact, symmetrized
exact discrete stress
0.26
0.21
0.064
0.029
6·10⁻¹⁵: machine precision
10⁻¹⁶
10⁻¹²
10⁻⁸
10⁻⁴
1
relative error of the coarse solution against filtered DNS (log scale)
The grid is itself a filter. The exact stress of the discrete coarse scheme closes it to machine precision; the classical one does not.
Finite-volume LES, each stress computed from DNS · Agdestein, Verstappen & Sanderse, J. Comput. Phys. 556 (2026) 114810
II · Learned closures
Learn the closure from simulation data
input: the resolved velocity gradient Ā, 9 components
output: the stress τ, symmetric: 6 independent
a small network, applied at every grid point
Training data: filtered DNS of forced isotropic turbulence, 3 viscosities × 3 filter widths
5
II · Learned closures
Symmetry: one flow, many views
the flow in the tub
move it at constant speed: nothing changes
rotate it: the flow rotates along
mirror it: the flow is mirrored
Build it in: share weights over the 48 (G-CNN), or use invariants and a tensor basis (TBNN).
A cube grid keeps 48 rotations and reflections. A closure should respect all of them.
6
II · Learned closures
Two ways to build the symmetry in
G-CNN · share the weights
TBNN · invariants in, a tensor basis out
48 copies of every neuron share one kernel k. Turning the input only moves the copies around, so the output turns with it.
The network sees only five invariants, which no turn changes. Seven fixed tensors built from S and W carry the turn.
Random weights, exact symmetry · G-CNN: Cohen & Welling 2016 · TBNN: Ling et al. 2016, basis of Stallcup et al. 2022
7
II · Learned closures
Every architecture hits the same floor
25×
fewer parameters when the symmetry is built in
…but no network gets below the floor.
The floor: the error of the best possible function of Ā, set by the input, not the architecture.
Median over 5 seeds; floor from a nonparametric estimate · Agdestein & Sanderse, arXiv:2603.05325
8
II · Learned closures
Blind to the Reynolds number
A closure that sees only Ā and Δ must, by dimensional analysis, take the form
so it cannot tell apart flows that differ only in viscosity.
add the one dimensionless number the symmetry allows:
Symmetry hands the closure its missing input.
9
II · Learned closures
Now the dissipation stays calibrated
Reynolds-blind: 1.36 → 0.75
drifts from too much to too little
With Re_Δ: 1.08–1.27
stays calibrated, also beyond the training range
Six unseen test flows, median over 5 seeds · Agdestein & Sanderse, arXiv:2603.05325
10
III · Beyond the mean
One coarse state, many futures
Three simulations of 3D turbulence: identical large scales, tiny differences in the small eddies.
Same resolved initial state. Different futures.
Taylor–Green vortex, Re = 1600, 256³ grid. Top: vorticity. Bottom: filtered to what a coarse model sees.
11
III · Beyond the mean
The best closure is an average
Orange: the law of τ at the dashed line, and draws from it.
One slice of filtered DNS, 900 of 16,384 points · Ideal LES as a conditional average: Adrian (1990)
12
III · Beyond the mean
So measure the whole law
A mean closure keeps the blue term and drops the orange one: all the spread.
The object
the law of the stress, given the resolved gradient
Made small by symmetry
5 → 5
five invariants of Ā in, five stress components out
Measured on new data
13 runs
new simulations up to 1200³, scored on held-out data
Next: how much is left over, what shape it has, and whether it survives in a running LES.
13
III · Beyond the mean
Five numbers in, five out
8 − 3 = 5
A traceless gradient has eight numbers. Three of them only say how it is turned: look along the strain's own axes and five remain.
Write τ in the same axes: its five components are the output.
So the law is a 5 → 5 conditional density.
Each axis is fixed only up to its sign: a vorticity convention picks one, and Ā and τ flip together.
Chart: Meneveau 2011 · used for subgrid-stress models by Prakash, Jansen & Evans 2022
14
III · Beyond the mean
The mean explains most of the stress
That remainder is what a stochastic closure is for.
Best closure given the local gradient · one viscosity, filter widths of 2 to 4 grid spacings
15
III · Beyond the mean
What remains is heavy-tailed
63–130
kurtosis, against 35 for a Gaussian
3.2–6.2
tail index of the Student-t fit; a Gaussian's is infinite
The long tail sits on the forward-transfer side: extreme stresses drain energy to the small scales.
Plots: one operating point · numbers: all eleven operating points
16
III · Beyond the mean
…but two numbers carry most of it
92–93%
of what the law gains over “mean plus constant Gaussian noise” comes from a scale σ(Ā) and one tail index.
What the mean leaves out is low-order.
Share of the likelihood gain, terms added in the order shown, at each of the eleven operating points
17
III · Beyond the mean
Learn the law where it is used
A law learned on DNS data loses its whole advantage over mean + Gaussian noise within three snapshots of a running LES.
Relearned on the LES's own fields, its advantage even grows: LES errors make the residual more heavy-tailed.
Above 100% means a bigger lead over the Gaussian reference, not a better prediction: absolute accuracy still falls.
Quantifies a known effect: Zandonade, Langford & Moser (2004); Parthipan et al. (2023) · LES with a trained CNN closure
18
III · Beyond the mean
A one-point law is not yet a closure
Fresh noise at every step averages away as Δt → 0.
A stochastic closure without memory is deterministic in disguise.
From the one-point pdf f, “a time or length scale of turbulence cannot be deduced from f”: Pope (1983), p. 3448
19
III · Beyond the mean
A one-point law is not yet a closure
Noise with memory keeps its spread, whatever Δt.
The measured residual has memory: it decorrelates in about one strain time. The one-point law does not fix it.
Next: stochastic LES on Snellius. The first stage has run; no verdict yet.
From the one-point pdf f, “a time or length scale of turbulence cannot be deduced from f”: Pope (1983), p. 3448
19
IV · How this was done
How was all this done?
Of the 442 commits in this project since July, 346 list an AI agent as co-author.
20
IV · How this was done
An agent is a language model that acts
The prompt decides what it reads, runs and writes. Claims change only after my review.
21
IV · How this was done
An agent is a language model that acts
The prompt decides what it reads, runs and writes. Claims change only after my review.
21
IV · How this was done
An agent is a language model that acts
The prompt decides what it reads, runs and writes. Claims change only after my review.
21
IV · How this was done
An agent is a language model that acts
The prompt decides what it reads, runs and writes. Claims change only after my review.
21
IV · How this was done
An agent is a language model that acts
The prompt decides what it reads, runs and writes. Claims change only after my review.
21
IV · How this was done
An agent is a language model that acts
The prompt decides what it reads, runs and writes. Claims change only after my review.
21
IV · How this was done
This project was built with agents
442
commits since July; 346 co-written by an agent
327
papers summarized, of 541 collected
185
analysis scripts in Julia
13
DNS runs on Snellius, up to 1200³
9
claim changes, merged after my review
Append-only records · every change of claim reviewed on a branch · five automatic checks before every commit
22
IV · How this was done
A GPU solver, built by agents
Spectral Navier–Stokes on 1 to 4 H100 GPUs · 52 commits, all co-written by an agent · checks from its test records
23
IV · What this means
Our job shifts to orchestrating
Coding → specifying and verifying
Reading → curating and checking claims
Writing → deciding what we claim
More power
×10
agents read, try ideas and draft results in parallel
Nobody reads it all
entry points
short summaries
depth: all the rest
The bottleneck moves from producing results to judging them.
24
Symmetry makes closures 25× smaller and hands them the Reynolds number.
The best closure is an average; what it misses is heavy-tailed but low-order.
With agents, our job becomes orchestrating and judging.
To take home
A coarse grid cannot know the small scales, but it can learn their law.
Thank you · arXiv:2603.05325
agdestein.github.io
25
Further reading
This talk
Agdestein & Sanderse (2026). Approaching the optimal closure: equivariance, inductive bias, and Reynolds-number generalization in data-driven LES. arXiv:2603.05325.
Agdestein, Verstappen & Sanderse (2026). Exact expressions for the unresolved stress in a finite-volume based large-eddy simulation. J. Comput. Phys. 556, 114810.
Agdestein & Sanderse (2025). Discretize first, filter next: learning divergence-consistent closure models for large-eddy simulation. J. Comput. Phys. 522, 113577.
In preparation: the one-point conditional law of the subfilter-scale stress given the resolved velocity gradient.
Background
Adrian (1990). Stochastic estimation of sub-grid scale motions. Appl. Mech. Rev. 43(5S), S214–S218.
Langford & Moser (1999). Optimal LES formulations for isotropic turbulence. J. Fluid Mech. 398, 321–346.