Capstone · three to four weeks

Operator transfer under physics shift

Everything in the course was preparation for one experiment: does pretraining on related physics reduce the data needed for new physics, measured against a control that makes the answer falsifiable. The deliverable is a transfer map with seeds, splits, invariants, and whatever negative results it produces.

Source: ../05_physics_foundation_model_study_kit.html, steps 01 to 05 and the evaluation matrix. Labs already run: 01 Burgers, 02 thermal. Everything else on this page is specified and not run.

Where you start

Two of the five steps are already done, which needs saying plainly, because the remaining three are the interesting ones and it would be easy to spend the whole capstone rebuilding what exists.

Step 01 of the kit asks for the smallest honest baseline, and Lab 01 run B is it: an FNO on 1D viscous Burgers at the paper's specification, trained at 64 points and tested at 64, 128, 256 and 1024, with a checked solver, a fixed seed and a results file (Module 2). The kit asked for normalized \(L^2\), rollout error, runtime and seed. Everything but the rollout is recorded, and Module 7's lab specifies the missing piece.

Lab 02 supplies the target that makes this a semiconductor project: a checked steady thermal solver for a 10 mm die with random power maps, plus an FNO baseline on it with peak and hot-spot metrics (Module 6). You also start with a known defect to watch for, which is more useful than it sounds. Both labs degrade at unseen grids, and Modules 2 and 6 traced the degradation to a grid-scale artefact and not to a general loss of accuracy. Any transfer result you get will sit on top of that artefact, so it has to be measured with the banded metrics of Module 8 and not with a bulk error alone.

The plan, in the kit's five steps

  1. Baseline, done. Lab 01 run B. Add the rollout from Module 7's lab, so the "one step against whole trajectory" question has a number on your own data.
  2. A compatible two-source curriculum. Burgers at ν = 0.1 from Lab 01, plus 1D advection-diffusion \(u_t + cu_x = \nu u_{xx}\) with \(c\in[0.5,2]\) and \(\nu\in[0.02,0.2]\), solved exactly in Fourier space using Lab 01's initial-condition law so the two input distributions match. The inputs are the initial field, the coefficients as constant channels, and an equation identifier as a one-hot channel. Keep units and normalization explicit and identical across sources, and do not stack incompatible variables into one channel tensor: a velocity and a temperature in the same channel is a silent bug that looks like poor transfer. 1000 trajectories per source.
  3. Transfer to a held-out target, in two stages. First a parameter shift: Burgers at ν = 0.02, which forms steeper fronts. Check the spectrum before trusting it, because 1024 points may no longer resolve the solution, and the solver's own \(\Delta t\) and grid checks will tell you. Then a physics shift: the thermal die, which is 2D and elliptic. The 1D FNO cannot be reused as-is for the second, so either embed the sources as \(N\times1\) fields in a 2D FNO or state plainly that the architecture change is itself part of the shift and compare against a 2D scratch model. Pretrain on the sources, fine-tune on \(f\in\{0.01,0.05,0.10,0.25,1.0\}\) of the target, and compare against an equal-capacity scratch FNO. This is arm C against arm A of Module 10's matrix, and the order matters: if transfer fails on the parameter shift it will not succeed on the physics shift, and you have saved four hours by finding out first.
  4. Physics only after the data baseline works. Arm D is Module 11's residual sweep on the thermal target. Report whether it lowers out-of-distribution error or only trades field accuracy for residual accuracy, and remember Module 11's prediction that \(\lambda_r=10\) will be unstable at 64² and worse at 128² by roughly a factor of 16 in the condition number.
  5. Make the negative result useful. If arm C does not beat arm A, that is a finding and not a failure, but only if you can say why. Vary one dimension at a time: shared grid, equation identifier present or absent, shared trunk against separate heads, coefficient range, pretraining sample count. Arm B, the joint multi-task run, is what separates interference from an absence of shared structure, which are two different diagnoses with two different fixes. Record every cell, including the ones that fail.

Controls, and how each lab already enforces them

Every row below is a way a transfer experiment can produce a number that means nothing. The third column matters: these controls are not aspirations, they are already implemented in code you can read.

ControlRuleWhere it is already implemented
Solver fidelityevery generator runs a check that halts the script on failureLab 01 halves \(\Delta t\) to \(1.9\times10^{-12}\) and requires the norm to decrease; Lab 02 matches an analytic sine load to \(1.25\times10^{-5}\)
Seedsat least 3 per cell, reporting mean and rangeboth labs fix seed 0 and record it. Run A's two runs differ by 0.0004 from CUDA nondeterminism alone, so a single seed is not a result
Splitsby initial-condition family and coefficient regime, never random frames from one trajectoryboth labs split by sample index before any subsampling, and the generators expose the coefficient ranges
Resolution against timetest 64 to 128 and 256 separately from rollout; they are different questionsLab 01 run B is the resolution test; Module 7's rollout lab is separate by construction
Physics diagnosticsthe conserved mean of \(u\) for periodic Burgers, boundary error, banded spectral error, hot-spot errorModule 8 defines all four on both labs, and spectrum_b_m16.npz already exists
Equal capacitysame parameter count, same step budget, same normalization across every armcount_model_params is recorded in every results file

Deliverable

One page, called the transfer map. A grid whose rows are targets, Burgers at ν = 0.02 and the thermal die, whose columns are data fractions, and whose cells read "C beat A by x percent", "no gain", or "C worse", each with its seed range. Below it, the one-dimension-at-a-time table from step 5 for every cell that failed. Beside it, the error-against-fraction plot with all four arms and seed bands. Attach the results files.

The standard to hold yourself to is the one this course has applied to everybody else. A negative transfer map with these controls in place is a result to keep and to publish. A positive one without them is not a result at all, because you cannot tell it apart from a bigger model, an easier split, or a lucky seed.

What not to submit. A single final-time image, which hides everything Module 8 exists to find. A speed-up without the reference solver's hardware and resolution, and without the break-even count of Module 12. A super-resolution claim without the output spectrum, which is how the Nyquist artefact went unnoticed until Module 2 looked. And any sentence of the form "the model learns physics", which is not a claim with a test attached.

After the capstone

The kit's semiconductor path continues in the direction Module 6 laid out, adding one difficulty at a time. Move from the square die to irregular geometry, first a die with a heat spreader, then a package with vias. Tie the coefficients to real materials, which turns \(k\) into a field and makes the operator nonlinear in the coefficient exactly as Darcy is. Then inverse design: place the blocks to minimize the peak temperature, which is Module 12's seismic pattern of differentiating through the operator, and the point at which the break-even arithmetic starts strongly favouring a surrogate, since an optimization loop makes thousands of forward calls.

The right tools at that point are a mesh model of Module 6's kind and a finite element solver. On Windows, FEniCSx means Docker or WSL2 (research_notes/repos.md:216). The physics after thermal is drift-diffusion, a coupled nonlinear system, and then EUV mask diffraction, which is Maxwell's equations on nanometre features and has two public papers whose arXiv identifiers Module 12 flags as unverified and which must be checked before either is cited (lineage.md:329).

The course started from a podcast making three claims, and it ends with you able to test the third of them on your own hardware, with your own data, using controls that most published work in the field does not use.