Course home · built 6 September 2026
Fourteen modules and a capstone, for one reader with graduate mathematics and no exposure to this subfield. PyTorch and neuraloperator only. Every number on every page traces to a research note, a cited page of a primary paper, or a results file in this repository.
Each module is one HTML page and, where a lab exists, one notebook in ../notebooks/. Every page has the same six parts in the same order: why the module exists, the core ideas in prose, the mathematics with the derivations written out, the lab with real numbers, the sources with line citations, and an exit test. Do the exit test with the page closed. If you cannot pass it, reread the section it names rather than the whole page.
The pages are written on one rule, and the rule explains why they are longer than they need to be. A stated fact without its argument is treated as a defect. So every substantive claim carries a precise statement, a definition of every term inside it, a proof in the smallest setting where the mechanism is visible, the rescue or the limit case, and a tie to a line of code, a page of a paper, or a number from a lab in this folder. Module 0's Fact 1 is the worked model of that shape, and everything else is held to it.
Three objectives run through the whole course and must never be mixed, because each is refuted by a different experiment. A surrogate reproduces a known simulator faster. A PINN uses the equation as a loss to fit one solution. A foundation model reuses one representation across several physical systems. Success at one proves nothing about the other two. Module 0 fixes the vocabulary, Module 10 tests the third with an experiment designed so that it can fail, and Module 12 grades a company's claims against all three.
The theory plan of 4 September 2026 (a private study plan, not in this repository) is absorbed into these pages. Its proofs sit in Modules 0 to 5. The mapping is decision 2 of the project notes, also not in this repository.
| # | Page | One sentence | Lab |
|---|---|---|---|
| 0 | Orientation: three objectives, one vocabulary | What an operator is, what a discretization destroys, and three facts from functional analysis proved, not cited. | a 90 minute diagnostic |
| 1 | Functions in, functions out | Three different claims share the name "resolution invariance"; one is a theorem and one is an experiment. | one FNO and one CNN at four grids |
| 2 | The Fourier layer from the convolution theorem | The layer derived from a Green's function, then trained, then its output spectrum read for a defect the error hides. | Lab 01, Burgers at four resolutions |
| 3 | Four answers to one cost problem | GNO, LNO, MGNO and FNO as Nyström, low rank, multipole and the FFT, plus why truncation works on elliptic operators. | refinability reading |
| 4 | DeepONet, PINN, and the hybrids | A hard information limit on fixed sensors, and why PINNs fail in the optimizer and not the network. | the PINN wall, specified |
| 5 | What the theorems say and do not say | Universal approximation is existence, not efficiency; the construction proved, and the counterexample when compactness goes. | none, proofs |
| 6 | Meshes, geometry, spheres, attention | MeshGraphNets, GINO, SFNO and Transolver, plus the arithmetic that says why a flat FFT fails on a globe. | Lab 02, the thermal die |
| 7 | Time: one step, many steps, or the whole trajectory | How rollout error compounds, how to read the regime off a results table, and the two stabilizers that work. | Lab 01 run A, plus the rollout to run |
| 8 | Evaluation that can fail a model | cRMSE, bRMSE, banded fRMSE and hot-spot error, applied to this course's own models until they fail. | the metric suite on Labs 01 and 02 |
| 9 | Scale: memory, modes, sharding, and the trillion context arithmetic | The measured bytes per grid point, and what the company's claims cost in accelerators. | Lab 03, one forward pass against grid size |
| 10 | Physics foundation models and the transfer question | MPP, Poseidon, DPOT and Subramanian et al., read for the claim rather than the architecture. | the transfer matrix, arms A to D |
| 11 | Physics as data engine and as reward | Curricula and residual losses, and why the residual's conditioning worsens as the fourth power of the grid. | residual weight sweep on thermal |
| 12 | Applications and industry | Weather, plasma, CO₂, catheters, seismic and semiconductors, with the break-even arithmetic for a surrogate. | the evidence ledger |
| 13 | Capstone: operator transfer under physics shift | The project kit's experiment, with the thermal die as the semiconductor target. | the full matrix |
| 14 | From the theorem to the company | The whole chain in one walk, from the \(L^2\) fact of Module 0 to a startup's five product claims, naming the two steps that are bets. | one experiment per claim |
Three labs have run and their numbers appear on the pages, each with its script, seed and results file. The rest are specified in full on their module page and in the notebooks, and are marked "not yet run" wherever they appear. No page in this course carries a plausible-looking number in place of a measured one.
../labs/01_burgers/. Run A puts the bundled 16-point space-time data through the library's own loader and Trainer. Run B implements the ICLR and JMLR paper specification, ν = 0.1 on (0, 2π), with a solver written and checked in the same file, trained at 64 points and evaluated at 64, 128, 256 and 1024. Run C is the CNN counterexample.
../labs/02_thermal/. Steady heat conduction in a 10 mm silicon die with random rectangular power blocks. The finite-difference truth is checked against an analytic solution to \(1.25\times10^{-5}\). An FNO is trained at 64² and evaluated at 64² and 128², with hot-spot error reported in kelvin and millimetres.
../labs/03_scale/. One 2D FNO forward pass from 64² to 1024² at n_modes 16 and 64, recording peak memory and time per grid, then extrapolating to 1000³. The numbers are in Module 9 and they are what makes the scale claims costable.
The labs were built to make the course checkable, and three of their results should be known before you start, because several later modules depend on them.
neuraloperator 2.0.0 keeps n_modes // 2 + 1 bins on the real-FFT axis, so n_modes=16 gives \(k_{\max}=8\) and reproducing the paper's \(k_{\max}=16\) needs n_modes=32. Anyone who types the paper's number into the library trains a model with half the spectral width. Module 2.Two corrections made during the rewrite are logged at the end of ../research_notes/pdf-fno-jmlr.md and are flagged here, since both had propagated across several pages. The Burgers FNO row is not identical between the two versions of the paper: ICLR 2021 reports 0.0149 to 0.0139 and JMLR 2023 reports 0.0018 flat, a factor of about eight, while every other row of both tables does match. And the aliased energy fraction of Lab 01's training grid is 0.15 percent, not the 0.5 percent three pages previously said.
Every number in this course carries one of four grades, and the grade is part of the claim, not a footnote to it. A number with no grade is a defect.
A read in the primary paper, with the page cited. B abstract or secondary source only, with the arXiv identifier verified. C company statement, press or podcast, not independently checked; repetition does not promote a C. LAB produced in this repository, with the script, the seed and the results file named.
Seventeen to eighteen weeks at eight hours a week. Modules 0 to 4 take one week each, Module 5 takes two or three because it carries the proofs, Modules 6 to 12 take one week each, the capstone takes three to four, and Module 14 takes one week and is best read after it. That is the estimate from decision 5 of the project notes, not in this repository, and it is an estimate, not a promise. The diagnostic at the end of Module 0 exists to tell you which half of the range you are in.