3.3 KiB
Fixed-window inlet history (test-only)
Opt in with --record-inlet-history, together with --without-cylinder for the requested control. Default execution still retains only the original first-health pair. This followup is based on bodyless diagnostic 66a27410504fef477808d6079ce79ca1ae6b903c; the numerical source manifest remains unchanged at 9805383f9c50d867e8555471baf5dbda8333a652. Actual diagnostic/numerical checkout revisions and script SHA256 are recorded separately.
The requested observation window is completed steps 0 through 196 inclusive. Recording stops after196, but evolution continues under the original first-health/320-step/wall-time stop behavior. An earlier failure preserves the recorded prefix, including its failing observation. complete_for_requested_window means all197 requested frames exist; it never means complete history past196. diagnostic_terminal_step records the terminal observed step separately.
inlet_history.npz contains:
raw_shifted[time,q,y,x]: unchanged FP32 bits, all9q, all330 rows, x0..3, copied from already-existing active-buffer raw snapshots.- Static uint16
flags[y,x], global x/y indices, contiguous int64steps. time_s=steps*dtandtstar=steps*mean_speed/diameter, plus requested range and diagnostic terminal step.- Step zero is the initialized state; subsequent states are completed postcollision active-buffer observations. Ghost/solid flags remain distinct from physical-fluid health checks.
Full configuration, physical parameters and source identity remain in preflight.json; diagnostics.json adds the history SHA256, size, window and completeness receipt. No additional full-field copies or solver calls are introduced. The new history copies only x0..3 from the baseline's existing raw snapshot. Baseline two-state evidence and health gates remain intact.
The full requested raw payload is9,361,440 bytes (8.928MiB). Flags, time arrays, coordinates and NPZ overhead keep it below12MiB. Initialization checks the fixed-window allocation against that bound with64KiB overhead reserve, and saving checks actual artifact size. This fits inside the existing128MiB total evidence cap with the original pair. The12MiB limit is an artifact-size bound, not peak RAM: the retained strip list and stacked output briefly coexist. There is no variable compression/overflow policy.
CPU checks:
python tests/validation/uniform_srt_diagnostic/test_diagnostic.py
python tests/validation/uniform_srt_diagnostic/test_history.py
python tests/validation/uniform_srt_diagnostic/diagnose_uniform_srt.py --without-cylinder --record-inlet-history --output /tmp/new-inlet-history-preflight
After independent review and root GPU admission, from this exact test checkout, with a new output directory:
CUDA_VISIBLE_DEVICES=<admitted-device> timeout --signal=TERM --kill-after=30s 240s python tests/validation/uniform_srt_diagnostic/diagnose_uniform_srt.py --without-cylinder --record-inlet-history --execute --gpu-admitted --wall-seconds 180 --output output/new-srt-inlet-history
The homogeneous linear surrogate is a separate analysis artifact. This history will allow comparison with actual startup, including initialization mismatch and wall-junction propagation; neither the recorder nor the surrogate changes a boundary or establishes a corrective scheme. No GPU run is included in this commit.