Files
CelerisLab/docs/fig2_collection.md

6.5 KiB

Fig. 2 material collection: modern moving plant

Research-only child of 76873d911c4e2caba1bacc25aaa1495ea768453f. No production/kernel/manuscript or DynamisLab edits. These are fresh common-release paired experiments, separate from the continuous OFF/ON/OFF demonstration videos.

Fixed plant and cases

All cases use D40, Uref=.005, nu=.004, MRT/FP32/unshifted double buffering, the existing mean-parabolic/regularized inlet, NEQ outlet and bounce-back walls. One transverse assembly DOF: m*=4 based on all three disks, fnD/U=.2, zeta=0. No force filter or retuning. Existing +/-D, speed.025, nonfinite and no-donor stops. Structure RHS is previous native-step sum of pinball CME_y+Wen_y. Policy uses SI-mean packed CME and fixed lab probe signals; these are different force paths. SI=3200; EMA alpha=.9**.25 resets every SI as in the acquisition contract. Steady video used SI4000; its descriptive numbers are not the new collection.

case prelude/release clock controller collection
steady new static pinball, 2,048,000 steps constant wall speeds (0,-5.1,5.1)U, no PPO 400 SI,160 D/U
Karman verified saved static release at4,576,000 historical karman_re100 PPO; actual pinball Re_D50, scale8/bias(0,-4,4) 400 SI,160 D/U
Taylor y0 clean512,000 then static pinball512,000; clock1,024,000 vortex_taylor PPO, scale4/samebias 150 SI,60 D/U

Zero/control share exact current/spare populations, flags, clock and zero initial structural state. Target is a separate no-pinball reference at the SAME absolute clocks, not a copy of a solid-containing release. Its different geometry is the definition of the reference, not identical microscopic initial conditions. Karman target must run to4,576,000; old target.npy is from earlier clocks and is not reused for same-clock field errors. Model/norm files are verified by SHA256 in the driver and written with all source hashes into case.json.

Taylor injection

Exactly one event at release in every role, inside the owning synchronized CUDA context: centre(600,510.5), R80, strength .000075. Reuse the existing initializer unchanged. It rewrites ALL interior cells to equilibrium and uploads BOTH buffers; this removes existing nonequilibrium globally. The impulse and first two SI of native force/displacement remain in the record. This is a declared limitation, not an independently qualified physical vortex generator.

Strength has inverse-time units: u_theta=(spi/2)r exp(-r²/R²). D20 R40/U.01/s.0003 maps to D40 R80/U.005/s.000075 under diffusive scaling. Using .03U at D40 would double u/U and quadruple p/U²; actual-function CPU positive/negative controls lock it.

Current Horsea acquisition.py SHA ea674080501407d00ded6d23467423c516cd37e04d166d5adda16465100204d3 defines EIGHT offsets(-20,-15,-10,-5,0,5,10,15). legacy_test/acquire.py SHA 91cd29a368dfc53a0804ec37397d2e5f25f0f8721f01b560a0f4328b8fd1dd9c selects the controlled centre-uy event: median first20, peak over38..87 inclusive. All roles use that common event index; own target/role peak delays are separately reported. The earlier five-offset remote summary is superseded by actual source.

Estimands and storage

Primary: unaligned same-clock/event velocity-vector errors, Eq1 sqrt(mean_ROI((dux²+duy²)/Uref²)). No target-energy denominator. Lab ROI is front-equilibrium-centre-relative x/D=[4,24], y/D=[-5,5], equivalent to sensor-plane x/D=[-6,14]; D40 inclusive columns1360..2160 and rows311..710. All ROI cells must be fluid and finite in every compared field; record support coverage.

Motion uses native last80 D/U for steady/Karman, whole60 D/U for Taylor; mean, centered RMS and half-range remain distinct. Karman complete-cycle means and eight independently phased nearest snapshots reuse actual acquisition helpers, centre-uy column3 and minimum crossing gap. Missing crossings yield unavailable phase diagnostics, never fabricated phase slots. Steady retains its last snapshot and separately labeled fixed-window mean. Field collection for steady/Karman is the last160 SI boundaries (96.4..160 D/U); motion window remains80..160 D/U. Taylor retains its eight common event snapshots. Fixed-window mean error differs from mean instantaneous error; both are labeled. Native six-channel DTW is a supplementary training-space metric, never field recovery or physical delay; its actual legacy lag uses flat sensor column1, unlike the phase helper's column3.

Use one FP32 full-grid RAM cache per role, plus compact ROI RAM histories for same-clock comparisons. Admit only with >=16GiB MemAvailable; no3.35GB disk field cache. Save only selected fields, means, explicit masks, scalars and source receipts. Nonfluid placeholders are zero-filled for helpers but always masked in plots and scores; nonfinite FLUID is a hard failure. Serialize compilation/GPU work. Verify compressed native histories before removing only redundant task scratch copies.

Plot standards: vorticity curl(u)D/U, five-point fluid stencil, common RdBu_r21bins with fixed[-3,3] limits and nearest interpolation; lab-fixed coordinates and ROI. Mean plots exclude cells that were not fluid at every collected boundary. Selected snapshots use actual step geometry. Raw arrays and scalar errors are not clipped.

V5 boundary

Standard V5 kar_re100 seeds41..45 DO exist (actual pinball Re_D50), but use 2000x600 uniform/free-slip and different absolute geometry/normalization/action contracts. These are not silently transferred onto the present Legacy-contract plant. No verified retained trained V5 steady/Taylor bundle was found; a vortex environment prototype is not a trained policy. Existing V5 within-case results may be indexed separately; cross-generation scores cannot imply an identical plant.

Execution

First run focused CPU contracts, independent source review, then each scene with --smoke (three32-step SI per role; no physical scores). Only the reviewed exact SHA may run physical cases, one at a time, new outputs outside the checkout:

CUDA_VISIBLE_DEVICES=3 PYTHONPATH=src python research/fig2_collection/run.py --scene karman --out /tmp/celeris-results-fig2-collection/karman
python research/fig2_collection/analyze.py /tmp/celeris-results-fig2-collection/karman
python research/fig2_collection/plot.py /tmp/celeris-results-fig2-collection/karman

Use the same invocation for steady/taylor with new output directories. No automatic extension or parameter sweep. All results are developmental material, not asserted settled/physically qualified. Preserve partial failures and distinguish missing evidence from passing gates.