Preserve bounded validation evidence and historical failures

This commit is contained in:
Frank14f committed 2026-10-15 10:13:51 +08:00
1 parent cdbb9c42f6
commit 263f3b0c7a
239 files changed
+74191

No files matched your search

@@ -0,0 +1,64 @@
CPUREF-0.3 local integration and review — 2026-10-13
Result: PASS. First local execution only; no retry or tolerance change.
15 core tests + 5 supplemental tests passed, plus 1 open-corner negative-control
method (identity/SRT, seeds 1/2, 1/8 coarse steps). The supplemental suite includes
the v0.2-to-v0.3 diagnostic-field delta check; this is not physical-field equality.
Scope: fixed doubly periodic 16x16 coarse grid, one static 2:1 patch covering
[4,12)^2, 16x16 active fine cells with halo 4. Evidence concerns transport,
corner handling, validity, ownership, conservation and bookkeeping only.
It does not validate interface accuracy, viscosity/stress transfer, long-time
stability, production GPU equivalence, dynamic AMR or Jet integration.
Static review completed before execution; no substantive objection within this
scope. Checked arrival_f phase, even integer tick and +2 advancement, collision
order, both fine hops, ghost validity/poisoning, eight uniquely keyed corner-pass
links, coalescence ownership and budget semantics. bookkeeping_check subtracts
interface_residual and is not independent conservation evidence. Core tests
provide a separate scalar transport/SRT oracle and active-leaf totals. Negative
control sums leaves outside the reference helpers, but uses reference masks and
collision budgets; do not describe every aspect as independent.
Delivery: five Python files were moved from review staging into the parent
multigrid directory without changing bytes. cpu_reference_v0.2.py is retained
only as the supplemental diagnostic comparison fixture, loaded explicitly.
Seven delivered artifact SHA256 values match the supplied originals both before
and after execution. No reference algorithm, test assertion or tolerance edits.
Grok's original README and stdout remain unchanged alongside the local evidence.
Local environment: /home/frank14f/anaconda3/envs/pycuda_3_10/bin/python
Python 3.10.13; NumPy 1.26.4; Linux 6.8.0-138-generic x86_64, glibc 2.35.
Grok reported Python 3.13.5 / NumPy 2.5.3; both original and local outputs are kept.
Process-only environment:
OPENBLAS_NUM_THREADS=1
PYTHONDONTWRITEBYTECODE=1
PYTHONNOUSERSITE=1
PYTHONPATH=/home/frank14f/CelerisLab/tests/validation/multigrid
CPU_REFERENCE_PATH=/home/frank14f/CelerisLab/tests/validation/multigrid/cpu_reference.py
Working directory: /home/frank14f/CelerisLab/tests/validation/multigrid
Each script was executed sequentially by the following command, replacing SCRIPT
with test_cpu_reference.py, test_tron_additions.py, then
test_open_corner_negative_control.py (absolute paths in results_horsea.json):
/usr/bin/prlimit --as=268435456 --fsize=2097152 --core=0 -- /home/frank14f/anaconda3/envs/pycuda_3_10/bin/python -B SCRIPT
The stdlib-only parent runner had the same hard limits. stdout and stderr of all
three scripts went to one shared stdout_horsea.txt; any nonzero exit would have
stopped subsequent execution. Per-case step ceiling of 8 was verified statically;
no grid, seed or step expansion. Peak child RSS across the run: 37.5 MiB.
Combined local stdout/stderr plus command metadata: 9013 bytes (<2 MiB).
Observed evidence: identity versus scalar oracle max difference 0; SRT max
2.776e-16. Eight-step SRT mass drift -1.535e-12 passes the unchanged delivered
mass-scaled 1e-14 tolerance (approximately 2.56e-12 absolute). Open-corner SRT
maximum drift reaches 2.078e-3; closed negative-control drift stays <=5.684e-14.
The eight-step mass tolerance is not an absolute 1e-14 bound.
Increment: only new files under tests/validation/multigrid. No src, old test,
MULTIGRID_VERIFICATION_STRATEGY.md, DynamisLab, dependency, environment or Git
commit/push changes. No CelerisLab/Simulation/pycuda imports or GPU/solver runs.
The original 269-file hash baseline and Git status are in baseline.json; final
verification and new-file sizes/line counts/SHA256 are in manifest.json. Ordinary
git diff omits these untracked additions; the manifest describes this increment.
No generated bytecode or duplicate candidate copies were retained.
Stopped after this authorized test-only integration for joint review.
@@ -0,0 +1,18 @@
# Grok independent tests for CPUREF-0.3 (2026-10-13)
Runner: Grok's isolated sandbox (not aws-la, not Horsea). Python 3.13.5, NumPy 2.5.3, Linux x86_64. No installs, no Horsea/remote writes.
Command: `OPENBLAS_NUM_THREADS=1 prlimit --as=268435456 python test_cpu_reference.py` then `test_tron_additions.py` and `test_open_corner_negative_control.py` (reference copied unchanged to `cpu_reference.py`; `CPU_REFERENCE_PATH` accepted).
Budget: <=8 coarse steps per case, address space capped at 256 MiB, peak RSS ~43 MiB, stdout <2 MiB.
SHA256
- cpu_reference_v0.3.py (Drive 1G_a5i4ywwAgz20Binl9jI_d_SyXvfCJK): bba2a06a9f6517b32079ffff15e4060d8c3b7ed35f16ca134e1877226c9e4e1e
- test_cpu_reference.py: ade5d4827f971aed7174b59d83769e7aa542338e625a9fc8db1e8b1805cb74ca
- test_tron_additions.py: 8e7a6a90b85e64c7326719e7b8bca2f6d34fb4c80690f0685f7e291ab93bd2a4
- test_open_corner_negative_control.py: 59a6f8ca80cdd63cb7827fbebf9b4b555c3793f19dd6bca801544ec10b5cbe1b
- stdout_final.txt (20 unittest OK): 73e4ef01138842981daaa534390f1463839e63833c11f4e8872f94f8eaadc717
- stdout_open_corner.txt: 927f8233957fe08f671cf3716e810431c40331caa4cf406da2b09793337c7ee8
- contract still ee8010e763d38937b95c34dadaf97415cdb8b6c23e3c79a9f1f32bd5d4e112f6
Result: 20/20 pass (15 core adapted from v0.2 suite + 5 additions: NaN masks, 8 unique corner keys/packets, coalesce_paths reconstructed test-side, hop2_valid, v0.2↔v0.3 field delta) plus open-corner negative control OK. Reference unchanged.
Adaptations vs v0.2 tests: drop explosion_count; fine_valid_after→hop2_valid; closure_error→bookkeeping_check; corner_packets keyed lower_left_q8 etc. (8 unique); coalesce_paths rebuilt in tests; invalid tick (odd/float/bool/str) rejected; even tick advances by 2.
@@ -0,0 +1,278 @@
{
"head": "6e3756c587ec08ab6a55c4a1a5f4671822d3f0a0",
"git_status": " M pyproject.toml\n M setup.py\n M src/CelerisLab/__init__.py\n M src/CelerisLab/body/__init__.py\n M src/CelerisLab/body/ddf_patch.py\n M src/CelerisLab/body/manager.py\n M src/CelerisLab/body/preprocess/flag_overlay.py\n M src/CelerisLab/common/__init__.py\n M src/CelerisLab/common/checkpoint.py\n M src/CelerisLab/config.py\n M src/CelerisLab/configs/CONFIG.md\n M src/CelerisLab/cuda/__init__.py\n M src/CelerisLab/cuda/compiler_v2.py\n M src/CelerisLab/cuda/context.py\n M src/CelerisLab/lbm/__init__.py\n M src/CelerisLab/lbm/curved_links.py\n M src/CelerisLab/lbm/field.py\n M src/CelerisLab/lbm/initializers.py\n M src/CelerisLab/lbm/kernels/boundary/bounce_back.cuh\n M src/CelerisLab/lbm/kernels/boundary/curved_boundary.cuh\n M src/CelerisLab/lbm/kernels/boundary/inlet/common.cuh\n M src/CelerisLab/lbm/kernels/boundary/inlet/zou_he_local.cuh\n M src/CelerisLab/lbm/kernels/boundary/inlet_outlet.cuh\n M src/CelerisLab/lbm/kernels/config/config_grid.h\n M src/CelerisLab/lbm/kernels/config/config_method.h\n M src/CelerisLab/lbm/kernels/config/config_objects.h\n M src/CelerisLab/lbm/kernels/config/config_physics.h\n M src/CelerisLab/lbm/kernels/kernel_v2.cu\n M src/CelerisLab/lbm/kernels/operators/collision_mrt.cuh\n M src/CelerisLab/lbm/kernels/operators/collision_trt.cuh\n M src/CelerisLab/lbm/kernels/operators/forcing_guo.cuh\n M src/CelerisLab/lbm/kernels/step/aux_kernels.cu\n M src/CelerisLab/lbm/kernels/step/esopull_sync.cu\n M src/CelerisLab/lbm/kernels/step/init_flow.cu\n M src/CelerisLab/lbm/kernels/step/one_step_double.cu\n M src/CelerisLab/lbm/kernels/step/one_step_esopull.cu\n M src/CelerisLab/lbm/kernels/streaming/esopull_semantic_helpers.cuh\n M src/CelerisLab/lbm/stepper.py\n M src/CelerisLab/simulation.py\n M tests/integration/test_body_sync_e2e.py\n M tests/integration/test_ddf_patch.py\n M tests/integration/test_sync_bodies_skeleton.py\n M tests/integration/test_unified_obs.py\n M tests/postproc/experiment.ipynb\n M tests/validation/run_kan99b_rotating_cylinder.py\n M tests/validation/run_sah04_st_matrix.py\n M tests/validation/test_sensor_accuracy.py\n?? docs/design/README.md\n?? docs/design/integrated_architecture.md\n?? docs/design/multi_level_grid_architecture.md\n?? docs/design/multi_level_summary.md\n?? docs/design/multi_level_visual_reference.md\n?? docs/design/spatial_coupling_refinement.md\n?? docs/multilevel_grid_architecture_analysis.md\n?? research/audit-2026-10-09/REVIEW.zh-CN.md\n?? research/audit-2026-10-09/architecture-cpu-results.json\n?? research/audit-2026-10-09/architecture-report.md\n?? research/audit-2026-10-09/numerical-report.md\n?? research/audit-2026-10-09/numerical_collision_results.json\n?? research/audit-2026-10-09/numerical_compile_results.json\n?? research/audit-2026-10-09/numerical_semantics_results.json\n?? research/audit-2026-10-09/root-initializers-report.md\n?? research/audit-2026-10-09/state-report.md\n?? research/audit-2026-10-09/state_results.json\n?? research/design-2026-10-09/Contracts.lean\n?? research/design-2026-10-09/PLAN.zh-CN.md\n?? research/design-2026-10-09/api-architecture-study.md\n?? research/design-2026-10-09/grid-study.md\n?? research/design-2026-10-09/jet-study.md\n?? research/design-2026-10-09/jet_closure_check.py\n?? research/design-2026-10-09/jet_closure_results.json\n?? research/design-2026-10-09/math-and-history.md\n?? research/design-2026-10-09/math-checks.json\n?? research/design-2026-10-09/math_checks.py\n?? research/j1-2026-10-12/REVIEW.md\n?? research/j1-2026-10-12/baseline-status.txt\n?? research/j1-2026-10-12/baseline.json\n?? research/j1-2026-10-12/incremental.diff\n?? research/j1-2026-10-12/results.json\n?? research/j2-slot-2026-10-12/REVIEW.md\n?? research/j2-slot-2026-10-12/baseline-status.txt\n?? research/j2-slot-2026-10-12/baseline.json\n?? research/j2-slot-2026-10-12/incremental.diff\n?? research/j2-slot-2026-10-12/results.json\n?? research/j3-coverage-2026-10-12/REVIEW.md\n?? research/j3-coverage-2026-10-12/baseline-status.txt\n?? research/j3-coverage-2026-10-12/baseline.json\n?? research/j3-coverage-2026-10-12/incremental.diff\n?? research/j3-coverage-2026-10-12/negative-budget-20744.h5\n?? research/j3-coverage-2026-10-12/negative-end-20760.h5\n?? research/j3-coverage-2026-10-12/restart-21280.h5\n?? research/j3-coverage-2026-10-12/restart-reference-21296.h5\n?? research/j3-coverage-2026-10-12/results.json\n?? research/j3-coverage-2026-10-12/verification.json\n?? research/j3-lag-2026-10-12/REVIEW.md\n?? research/j3-lag-2026-10-12/baseline-status.txt\n?? research/j3-lag-2026-10-12/baseline.json\n?? research/j3-lag-2026-10-12/end-21280.h5\n?? research/j3-lag-2026-10-12/incremental.diff\n?? research/j3-lag-2026-10-12/results.json\n?? research/j3-lag-2026-10-12/start-20760.h5\n?? research/j3-lag-2026-10-12/trajectory.h5\n?? research/j3-offline-2026-10-12/REVIEW.md\n?? research/j3-offline-2026-10-12/lags.csv\n?? research/j3-offline-2026-10-12/localization.png\n?? research/j3-offline-2026-10-12/regions.csv\Line truncated
"hashes": {
".cursor/rules/cuda-style.mdc": "5810cf8cff793a11ba5dedafaa8a4e7d7d3debb728d837ca1903ff6dc8d6fdb9",
".cursor/rules/project-layout.mdc": "aeed1cd9d48447bcfcfb6a77250af7c5a3d500de4c6b2591c5684696fa04c3ec",
".cursor/rules/python-style.mdc": "ece75cb724d7dc46cb8dab7ecf8d710a90b503001da0d506ea4bf772ce395e21",
".cursorignore": "9f072faa815a6c6d4dc791a424201404f0f623338681ae3d2fcbdf86db1bd035",
".gitignore": "de25151f4cfdf29ca64032e509398e1829c7ded2449ccff803b2fd87d859ae6c",
"LICENSE": "e98392425e9a0007d0d69f0f7c912c2dc1b59061a6197223962aac45599c76ea",
"README.md": "982d0df8b766b1d5017ba702b75e8b3cec8d22f57af8f434be27ea251652596c",
"docs/audit/audit_round2.md": "0f14ad073a0725134e6391f961c324fd0013c7791fd410713e94ed1ad40b7385",
"docs/audit/body_refactor_notes.md": "8f978d7b01c9f49dca9eeaff0d163cec6da085e2f99ee5a5e803d72306e7a72f",
"docs/audit/config_diagnosis.md": "b601652df0cac36a8faf2b317b11853221353716a25184cd9b2dc41373a7f183",
"docs/audit/kernel_layer_audit.md": "89893c98ed7c2699157bf728ec0e79b0dd6aff4008ee5c7b77eb052de24033f1",
"docs/design/README.md": "98242c6960866d9b75aaf363f703edf02c4210bc38da1a340e9f6add49c6a3ce",
"docs/design/integrated_architecture.md": "c26b0d301321fe4b86d83d11c7e0b8d0c0545ee2995afa563966f004e9788132",
"docs/design/multi_level_grid_architecture.md": "e56a67d9129f2e3c311342e21a3fb2ed14bd492dd881949b251d5d9ac577bdee",
"docs/design/multi_level_summary.md": "eebf23e0bec9b154e5ce2128e2806e7558a7d4824b2c700cfd16afd1158b2354",
"docs/design/multi_level_visual_reference.md": "cad4bfbd561e5650ec297334529334b662a1ed35f7373c61f34ee22ecf1f66bd",
"docs/design/spatial_coupling_refinement.md": "36c878c7afad524999d89fa842297a98a0433e0283e78b36ca734ddbf8723ed8",
"docs/multilevel_grid_architecture_analysis.md": "90309730b1759d63531cb258c30db990ab71ca1b56ae47d0bbe2f4e2ae52012c",
"docs/performance_analysis.md": "ba01aaa4d3c02b61a8dc55fd00518ac291ebbed79b6574190d6b7234a1158fcb",
"docs/tests_overview.md": "ffc9591fd7baa4261b2c1ce9cfa7aa13a3554a8d5df712035806266a5eaade3f",
"docs/validation_specs/Force_region.md": "3092080afe4a30665fe1b721803621ba9d0dd5d20ad17826984d94efc160fdac",
"docs/validation_specs/Force_region_validation.md": "279a4484d1bfca0fd67aed4de3282d547aa048f89389420d8e5f2fd86db54fc2",
"docs/validation_specs/Kan99b_validation.md": "0d8bf74f2361f863809af1979bf8807adaa423f98321e1104a3d86d8c7a863cf",
"docs/validation_specs/Sah04_validation.md": "1d122d29e281b7f50801b148f3314a0e35fdc27ee7d757c0a661243aa6185fb0",
"docs/validation_specs/exp_ctrl_matrix.md": "b7250576c23292988b6ef4bcfd080f611d41edc413c3cebd0eadcc8596049470",
"docs/validation_specs/streakline_notes.md": "cd342d214c07eb608ac2e5b8697322c44c31dbf4d27dfdb5409de46ef474df4b",
"output/round3_compatibility_summary.md": "319f2e6abde4b34cc4ec90ef461d8ebb85dd5a3ac1736cfa7a3fb110f2a69df9",
"pyproject.toml": "f24ab9ad3a6a728a9382b1bce2e721612fc76635f35c6f96dfddaa853b6e5a9c",
"research/audit-2026-10-09/REVIEW.zh-CN.md": "2841fd3aa7a6baedbe1079d90915c8b05212b133824ed6abccaa1f09656eaefe",
"research/audit-2026-10-09/architecture-cpu-results.json": "e1b809210005c8765b13fddbb5ed710d15f6fcbb4c5788a4064f3e88808433ef",
"research/audit-2026-10-09/architecture-report.md": "861079dc3f4ced9fdc41bfb22002d32e190c0d630d3ba2f138f9dc7a949b8371",
"research/audit-2026-10-09/numerical-report.md": "970330b3a593f79f09866ce6ae82bc0ddd81226230d0a6ff06ae8ae756ee80da",
"research/audit-2026-10-09/numerical_collision_results.json": "51e5c263bb8cde82cedef2ccfdbf5ef657742a80218d7896b1ff877516e59693",
"research/audit-2026-10-09/numerical_compile_results.json": "c3b0ae02072a2ec408ada7513b542ec255f6855cb743a3ed7f91bd8f31504f44",
"research/audit-2026-10-09/numerical_semantics_results.json": "b95b065b594aa2911740dab216f87936c9bf7f7fa25acfda93b5738443564035",
"research/audit-2026-10-09/root-initializers-report.md": "ca448457c444949d5d0e1e10fa7121064510b77fc4c3512580900f0299219867",
"research/audit-2026-10-09/state-report.md": "f8708807efc2e109810c5955f7c1884a932668c0b3cb2963c2df3b09f2a3d5c4",
"research/audit-2026-10-09/state_results.json": "da9170df3e11231c73f20e5e79ed68e08966673d1dd52004ea6b6a279afc0dcd",
"research/design-2026-10-09/Contracts.lean": "2442d9a778ef20e8af3fecf23be6fea6d73c6299ff744c9664b652bc5ee3f034",
"research/design-2026-10-09/PLAN.zh-CN.md": "0341dd7ee306a040340c8e5dedb07a109e931c27dbf3c994d072aa78e3b6bc67",
"research/design-2026-10-09/api-architecture-study.md": "d6fb45ec784f0e1db55fb9f34e137b9f551db0b9b39fd4f0ef247a78fc34eedf",
"research/design-2026-10-09/grid-study.md": "4435dc1275ec5e15b118becc6ac391f306195d1e5beaa58037b1aff3bb2465c7",
"research/design-2026-10-09/jet-study.md": "a362142ef04a5ad5dbb4c9db9d221b1199dccec53780c8f2da49a15201cfe529",
"research/design-2026-10-09/jet_closure_check.py": "fde45d0f8518740ef5c0bf0fe7635d6adaf9a2e789927dd4e68e991c138ddc30",
"research/design-2026-10-09/jet_closure_results.json": "12cf7d400a206f9f9ec9ea6ad251fe6bb0232e27bcbed22fbc1ead2c0fc7d249",
"research/design-2026-10-09/math-and-history.md": "64f8c82e4949d6f58b46faa09800958714859c36cad20bbeeae8b449ae7a6099",
"research/design-2026-10-09/math-checks.json": "94750381954317cde8d649db26beaed8ea945666572a05030ca2b4d97d384011",
"research/design-2026-10-09/math_checks.py": "4254983a783fe4bad8888b3d7c243c87d991c7bbf242edb0f56f25cbaefee890",
"research/j1-2026-10-12/REVIEW.md": "13004a4f140acdcf59acb57e9e2dda1bb95763d30060f822a7c206c94b813a9f",
"research/j1-2026-10-12/baseline-status.txt": "ac398360e05b746b89ae0c3acfe202b5122e650a3bb1ff234ab26f874a303e64",
"research/j1-2026-10-12/baseline.json": "ad7afdf7b3913d11c07343e971fe2f43c2d1a2b99e3d5904a6ba89e3bb0b24fb",
"research/j1-2026-10-12/checkpoint-gpu.log": "adfe3d77d2e6c6f6184dccc0267b4404b20a7709505d5ff5affed0ed4a618083",
"research/j1-2026-10-12/cpu.log": "60cac097f7c4f11401df2aacb43a248640555e7628d2829c4680c71db34e9640",
"research/j1-2026-10-12/gpu-validation.log": "d1e9f2aea17a85eddcd94b81c700738ce073214857b55c28abd1219ff1edbed7",
"research/j1-2026-10-12/gpu.log": "8659a78ea52bbf8eb923d46ea71636ce63cd322352d5c98a74f631e666dd8cfb",
"research/j1-2026-10-12/incremental.diff": "a454c23da7b0011645949c0fbf64d0c41ecfdab5642b1b7c5119868005d3c721",
"research/j1-2026-10-12/results.json": "449f8a17dacac0fc6d2489c4b10bac330dbbbdb38fad3ce54f739ac8c6d48e85",
"research/j2-slot-2026-10-12/REVIEW.md": "10c4a94ffc32e0a2c4e0f6593b7cfc28479b5869f279f0b9d0b708fa3a47d1e6",
"research/j2-slot-2026-10-12/baseline-status.txt": "812616e2d941efcf854e1b37d6e662dda1aaf2b69074fcc04017133e13b72166",
"research/j2-slot-2026-10-12/baseline.json": "e82a1844145fd0cbc585c581b29f80b56193f122cfe1dfa7578f26904a720285",
"research/j2-slot-2026-10-12/cli.log": "9482ad7101d501f27f92e204b2f3ae5c6d91bd887b525aa31cb4a2a188f3cb92",
"research/j2-slot-2026-10-12/cpu.log": "91aba5961006909fbbb860429a9d3cfc930112a0d74c7788bc51c0a5897b47e5",
"research/j2-slot-2026-10-12/gpu-serialization-failure.log": "df804e53b35e7ddaad79a17842b4b5fd9d834e29ca2d56edb00e835848d09200",
"research/j2-slot-2026-10-12/gpu-validation.log": "223351b52c70fa4523289f3a1b3db435a11286379253280470900ffe397580a6",
"research/j2-slot-2026-10-12/incremental.diff": "c9e391bc91438cd912c1ed5a419705d4388522f672c67a066cfc055e814e699f",
"research/j2-slot-2026-10-12/results.json": "7d35ca7989aed5380e0a45de7f583972566fc516a051da63c53b35514e267494",
"research/j3-coverage-2026-10-12/REVIEW.md": "7293f3f3442855c8521698605aab504e026915a7bf1e77f5a24710d89a812443",
"research/j3-coverage-2026-10-12/baseline-status.txt": "31c949b11b20d7cd4202dba16882b5712aa1653da0cb2da2f0ebd69bf488040e",
"research/j3-coverage-2026-10-12/baseline.json": "d8844104f2665a25bfc417ee29becf89ab3955fac9105b5ddb12cfb1fe2a55b0",
"research/j3-coverage-2026-10-12/gpu-validation.log": "505cd5a5db46d7984aefb2a614151c25c4ace0e7d2a52e02c3e4f9792fd8eb95",
"research/j3-coverage-2026-10-12/incremental.diff": "98aa7855d5d6b91b4509a924c8a5aabab4339ba29c7e7dc2d91262c48e3848ca",
"research/j3-coverage-2026-10-12/negative-budget-20744.h5": "c09d75fc4a2cff68039a0956bd9d32b79b9cd3a6b386c72b4db54c214b110cd8",
"research/j3-coverage-2026-10-12/negative-end-20760.h5": "bd0bd063579d625e358762b1fdde5ac11bfcf739646a847fb77a4a2031011b9b",
"research/j3-coverage-2026-10-12/restart-21280.h5": "3e89c12c16f91f76ca9acd909e0fa7d42df6fbb5e870b299aa08ca42bc3e3dc9",
"research/j3-coverage-2026-10-12/restart-reference-21296.h5": "7192f510dd7820675aa1de130f55514136fba782cf77f92545189918a7e0c328",
"research/j3-coverage-2026-10-12/results.json": "02460981ad49c9cc13b4246abad1d8afd2599c61bfb545a6e32da9bbcd5c0db1",
"research/j3-coverage-2026-10-12/verification.json": "205986efd2b41635721b7fd20288be982348c765180102c7102750ba088f3a28",
"research/j3-lag-2026-10-12/REVIEW.md": "f388b64b0cc0413dc9865afda90ed24de666dda0d6cdb821b4363ce1b73631b3",
"research/j3-lag-2026-10-12/baseline-status.txt": "e0b69879084f54afac1a3bc3701f1de9819068190c815ae84421f02f83cad9f7",
"research/j3-lag-2026-10-12/baseline.json": "5e9a920813fe3d775110af85af92970d5245a7040ace804445e432353b77e489",
"research/j3-lag-2026-10-12/end-21280.h5": "19a94e9e8db6dd9ac981effe06032c351992250b58768d9c090409193893d588",
"research/j3-lag-2026-10-12/gpu-availability.log": "b227a519b8286849cfdf842573bd451803da048c6b27af9517f6b8964cd3aa39",
"research/j3-lag-2026-10-12/gpu-diagnostic.log": "97956b517072b7c34e2e29e2a23f87eafb19b9eda786a4b8149e4a2eaed76ee9",
"research/j3-lag-2026-10-12/host-check.log": "b2b6d262934b3abf9e0f0bdbde14b339cb977f7bffe391c17b51b5d067862dda",
"research/j3-lag-2026-10-12/incremental.diff": "ebdf66c72daf17b926482f79a1a30bf0eb2d27fc930a7bb62e5449ebcf72fcc7",
"research/j3-lag-2026-10-12/results.json": "00435ac7e402943e55e702fac1beb5af8cafe71967999658bcde2b29077b1fa8",
"research/j3-lag-2026-10-12/start-20760.h5": "6c4cba5928c77566c2afc32231311a3986831c18fea766faadebb101243399e2",
"research/j3-lag-2026-10-12/trajectory.h5": "2b51f8ec5e0cc8ca72c73ac1b51dd611158368e6d6de791d85150fa111ea1986",
"research/j3-offline-2026-10-12/REVIEW.md": "d9902c58498e73c29e054b23adb968f7e1e14421cba5c58d03bbc5a50159ae79",
"research/j3-offline-2026-10-12/cpu-analysis.log": "bc02a9b197fc15ae1b503ca54655a7622d4361f9b45b7848ff9c387ea3665f11",
"research/j3-offline-2026-10-12/lags.csv": "fbd9addd413f24c47f4411317e872265bb774e8e1724fe169412befa860ae94d",
"research/j3-offline-2026-10-12/localization.png": "a72907638e32b0ecfc2205bea438e7b408f40aad86217ce6ad9b4877840c9cfc",
"research/j3-offline-2026-10-12/regions.csv": "3a8fc640b61d70e3b7f73d2bf8ac2bd3f720adf39a90dfda6180430e0489efae",
"research/j3-offline-2026-10-12/results.json": "cdb857bea6f4e06ed15acf773505ce6d5147f8cb8ce0a53cc368ee267cde6361",
"research/j3-reservoir-2026-10-12/REVIEW.md": "1ea5f860728584ea6cbe40ba3994e40471102d8e2cf6d93e28fe47222cba0cab",
"research/j3-reservoir-2026-10-12/baseline-status.txt": "0ef1a8c9878c4053ebc1a7d4bace6d4ec38bf27ace167b4239ddbb1c6c897e20",
"research/j3-reservoir-2026-10-12/baseline.json": "847fefd1eae971985d34d04d89ee6d6f1c91f6940c54fe351d112faba7bc6838",
"research/j3-reservoir-2026-10-12/cpu.log": "b33f6c1a1b0ee67968c4cff85d491e46e30e0d6c796b552629714ab8b5dcead0",
"research/j3-reservoir-2026-10-12/gpu-availability-sandbox.log": "1d58470512e583a0acfabf6896ee5f31e5b493b8231aed54b864f64eb275b02c",
"research/j3-reservoir-2026-10-12/gpu-validation.log": "ff04024db197e332f37c912a96413e3251fd0186947348ffbc33af6f4a899f2c",
"research/j3-reservoir-2026-10-12/incremental.diff": "fae312831d71e46dd477a640b06ed927853a9e735d26bf9f5868927fa31cfa56",
"research/j3-reservoir-2026-10-12/results.json": "49685de7679a14860258abf1753aaa6d116ad709b868d907ddb40e74c9b845ea",
"research/repair-2026-10-10/TRON_HANDOFF.md": "f8aaa3d99cd133c2055d4adf396a0a57d14f6006aea19e87611bd1c2c1b53a88",
"research/repair-2026-10-10/baseline-hashes.json": "d6a7d5f9ec5bceb0e7927d55603d9c5e70105982cd945723454659b19ab476e6",
"research/repair-2026-10-10/baseline-status.txt": "074088d793014e3b8154c58718058c7d300fb45595f5129fa957ef1e4cec38e2",
"research/repair-2026-10-10/checkpoint-domain-2026-10-12.diff": "292b4bafe7a62d4fbbf7c165eb99929336edfcaa16b15f34f72ab71fcd928391",
"research/repair-2026-10-10/classic-results.json": "a5d15305f516fd378b54cf9029102be58a83a55a7bad4b8e058fcfe0cc9898f4",
"research/repair-2026-10-10/classic-signals.npz": "820c9a0b0713d7455f0a5839ac2cd5ee706086d1a26461225dcdb095673421e2",
"research/repair-2026-10-10/final-gpu.log": "988bb97256d17b88c14f3793b15880d727ecb285abe62e7d2ae27a16729651c3",
"research/repair-2026-10-10/final-unit.log": "a892a39ecf88125558538cadce2cb5dc46d106b993b164e03da4ebb0eee68cef",
"research/repair-2026-10-10/original-user-files/src/CelerisLab/lbm/kernels/config/config_grid.h": "8be3a7cf74ba30d7fd3074fed79e63dbda7311c4d03b454ea641bf298ffeaa8d",
"research/repair-2026-10-10/original-user-files/src/CelerisLab/lbm/kernels/config/config_method.h": "3db4e16ef2c6b22349d04e6aa8ab04bdfe0eb784f9f3a98277e15dbed1835d81",
"research/repair-2026-10-10/original-user-files/src/CelerisLab/lbm/kernels/config/config_objects.h": "dbb93c063586da278c15d95e23f84c12e728f4f5f1bbc3980fe9cedaa6fff90e",
"research/repair-2026-10-10/original-user-files/src/CelerisLab/lbm/kernels/config/config_physics.h": "26df33c2960ba36f3283e19b55b4ea92e50e4efda705f9ebfbf3f875a4092c59",
"research/repair-2026-10-10/original-user-files/tests/postproc/experiment.ipynb": "c6b45db1c57200f0777213ef8d44cb4996c1aa7a5fb42b968b77e56f51b4fca4",
"research/repair-2026-10-10/provenance.json": "a81b7e32ecf7182c9617df1b39bbb063a05ef89290ad501bac4573cd5e8a6832",
"research/repair-2026-10-10/repair-architecture.md": "49be42ff5c994017f3175e17efda14d84f0b68f8ecd239f66ccee38415b60c5a",
"research/repair-2026-10-10/repair-numerical.md": "0272ebfa8c519aad161c520542cf53156574661609b91fd5ccad7955fdf2bd7b",
"research/repair-2026-10-10/repair-state.md": "4d4aa1ec0c11a87d2c8380912e7ed74cf5c910ae42e5cc529effde36c9020969",
"research/repair-2026-10-10/simplification-checks.log": "c9f15e870d02003480adf1a7f2fe4a9aca66c1934c4477619f05c8a4798ba85b",
"setup.py": "bf07df7ec19de56710d2bb5f61873e09710cd059d46837dc3aa54f3e09ff9e06",
"src/CelerisLab/__init__.py": "21cc469bd6e970a1f9ff5970c8eea4602065e41fc881854759ee565ee55c10c6",
"src/CelerisLab/body/__init__.py": "d6ec221d51eaf7b1da11ef320b399599cf5b9422e5bc271a7264a273033e6928",
"src/CelerisLab/body/action_smoother.py": "b1a23ee6bbd4850b172cb8738c5c3546ee465a54189e6af9d8044f023d4687dc",
"src/CelerisLab/body/coupling/__init__.py": "c931f7eb318d48408c3e2febcc6917c88c8dcc1697cbf4329b1f340d94c35763",
"src/CelerisLab/body/coupling/soa_packer.py": "8ec26fd55ef74801bbd5ab6bd3d0a7dabc750cbd498aaac2ca4c61a0108ad3c9",
"src/CelerisLab/body/ddf_patch.py": "60fcfb7441e73bf290bcff41ca3a83da3e7ddad765d7247464e8f02e3043b4e2",
"src/CelerisLab/body/geometry/__init__.py": "ada88980ab672959aca9aa3a4c4aade3219524b2ab68110cd2a2f41e3e0ca90a",
"src/CelerisLab/body/geometry/base.py": "cceca14361ca2f34d34a3e43730e1a79b8ca81be00f0dd62e884db32b479419f",
"src/CelerisLab/body/geometry/circle.py": "7605ca7c21103f1d801ac73ab8dd18dffbdac425b2dee7b8858b283628a9e436",
"src/CelerisLab/body/manager.py": "eac22c9ac92c26e89c10bb089fb3c4156e4eb7bd0c1b1f6fe6dd32e2940a020e",
"src/CelerisLab/body/objects.py": "71692d098ebb5ab2d0e614cb9b7854f048b8b33fbe6707e61fd0e8ac35745017",
"src/CelerisLab/body/preprocess/__init__.py": "dfd9d58bc07f626ab23a70053e31b88a6d9165d2e4c76a4e9f48abe674d3d2ec",
"src/CelerisLab/body/preprocess/flag_overlay.py": "831fc9e9736b758847759a085ff133eb49ec91318ace4fda76f85960138ee300",
"src/CelerisLab/body/registry.py": "fbb7327780adbdc6da15ebdb799980daf32df22ee974af0893d7409f177bbb68",
"src/CelerisLab/body/sync_plan.py": "a73ac9ee361b2120d0b7bbebeaa2ccbf924ba27bd95d4dd4b383c10a39b2a409",
"src/CelerisLab/common/__init__.py": "d4dbde78bc97fccc9eabac9abae8f0f15c112c10ff8e9b45bd9401d4723df1ef",
"src/CelerisLab/common/_types.py": "aad2ff1a9033d4fd68783ad7123afb47201ddc58785cb6dc0246947037072a5f",
"src/CelerisLab/common/checkpoint.py": "5b7caf3896167a3f37c539b58837de6eb3f8085fa7bf5f821a09666cc16d43a4",
"src/CelerisLab/common/pathline.py": "a1b6efcc0a076d0f1dc8d49a595779426d7d5626b00072a59bac710ff02ad046",
"src/CelerisLab/common/preprocess.py": "7fc78a08857cf8e98519500b094a1d896af189b6b15658ff9b388ed51bed4515",
"src/CelerisLab/common/render.py": "0e055476257eb2bcd11e733766e52195de02f8fad228f570a3511a7c831bdc29",
"src/CelerisLab/common/streakline/__init__.py": "13ff1cfa416fdd721a08a659e76b5a5a99b8d3201add10a83b7b0bc654bc1eec",
"src/CelerisLab/common/streakline/_config.py": "a9185ef68e9c7b5d5a1dc0b04a28341e2ad91d13c145a7c106636a878cf0a605",
"src/CelerisLab/common/streakline/_integrate.py": "3fbd4368b2c8d0e7fda40dc65aac5df02b085008b4c68acd83cb7ae45d33a13b",
"src/CelerisLab/common/streakline/_render.py": "236cd637414ee318c4d66f9aed32110d8dc42a100d65fde06172f7cd0ba62c65",
"src/CelerisLab/common/streakline/_streakline.py": "1a3e08daa706b5f83cdeb337e9a945a36ddf7583c40af1d0bb9d825ac954df37",
"src/CelerisLab/config.py": "2f1bba7515f5bc08cb3a8d140bcafe7fa0689e01b3b06494697bb2956a71530e",
"src/CelerisLab/configs/CONFIG.md": "41cafdbe525366c08aa9d0416ea026ccf0026ba7123b8a9b65f968a80d928e3a",
"src/CelerisLab/configs/config_body.json": "055f261f0828ca1d4f2bb694bd15b72bbcabe31d552326208f28e37f761adab1",
"src/CelerisLab/configs/config_lbm.json": "17e4311f1f250c6ece59177a8b6ff856b69a016c7c10267e774b030a0a390865",
"src/CelerisLab/configs/config_lbm_flume_mrt_zouhe.json": "8f593321db05a563a42931603a228d61cbcba06dfbe113262d5cd0ad93c0fe79",
"src/CelerisLab/configs/config_lbm_flume_trt_regularized.json": "f4bba8e6a4339fc3c4eb14f6e2f57c4b22993c73703c773d853edfbe34736e56",
"src/CelerisLab/configs/config_lbm_three_cylinder_triangle.json": "eeb8e7149dbe4aa6b3a9562802735aa950750dfbe2d972a0727e788573afa817",
"src/CelerisLab/cuda/__init__.py": "0d01dff9f0399c8baba822aab5ca0122a135f011008ed8a499ebd9f7e5b06aea",
"src/CelerisLab/cuda/compiler_v2.py": "c4cc3ec4445c8d75e6a253dd87963877117a722bc73b9d4811806fc6045d08c1",
"src/CelerisLab/cuda/context.py": "013dd4ec6d01d2fbd11afdfb103eac6a273bd9f798d663d761b851eeb27885e9",
"src/CelerisLab/cuda/obs_layout.py": "5ffb2c3aeeaaaaeb64f2cd8febfbcf4ad9919e5414020ad753cfade0683b21c2",
"src/CelerisLab/lbm/__init__.py": "7f60fb3aaae81501b510d08c2fedff44fcb05657260eb10b6f5cc91e7204306b",
"src/CelerisLab/lbm/curved_links.py": "587f3f4638688c09c0850bef2f314780d03f06c9211abc5fd773fbeecabc3326",
"src/CelerisLab/lbm/descriptors.py": "c9f025dfc14da43b989047b84cc22bd05d5cc92c9ec695c1da68fdfb788e3f2b",
"src/CelerisLab/lbm/equilibrium.py": "2fb2f2bb7ff326d23abce80fc2a4c0907b17740ea3e29fe6ae079c5044783826",
"src/CelerisLab/lbm/field.py": "0e727eacc3706add4d8d15c418e9b631050871f831698d3ac689dd5f2c701b9b",
"src/CelerisLab/lbm/initializers.py": "dacf9586963e862d6d0a98ef1a066036be6f91e9d423720661d8ef2c1fb2df6a",
"src/CelerisLab/lbm/kernels/boundary/bounce_back.cuh": "aba3748c564ed91b161d268ef8b737b7c7be96a823063d201f3da684dd845233",
"src/CelerisLab/lbm/kernels/boundary/curved_boundary.cuh": "4bd761e81b32f4bb3238fbb1f6ea890cde0cc987cd8bbeb54e9df8b0e1b57914",
"src/CelerisLab/lbm/kernels/boundary/esopull_curved_helpers.cuh": "b9b474bc4edaff05681c5443235472d04072d0d775fc0eb9c5967faef52b0258",
"src/CelerisLab/lbm/kernels/boundary/ibm_kernels.cuh": "e6909b547dc8d64cdd8a76a90660243a8f5fee535caa161b52b4dd8b7c29934b",
"src/CelerisLab/lbm/kernels/boundary/inlet/channel_stabilized.cuh": "efe077afcbb6b731256a987c2fd79a1dbc470c902f87070d60421ea6cb13d4e2",
"src/CelerisLab/lbm/kernels/boundary/inlet/common.cuh": "f3cec54c8873c65b3dca4375605d2c89a8727765884d3954c235242fdff9c6ba",
"src/CelerisLab/lbm/kernels/boundary/inlet/equilibrium.cuh": "f0964c811b2c41a5aaa1c6d99c490b06e850c634eb8749f1f05ef61f93c2de1d",
"src/CelerisLab/lbm/kernels/boundary/inlet/regularized.cuh": "943d4a571818bacb89c70bccfaac202691121e3e385803ce6309123a0a03ddaf",
"src/CelerisLab/lbm/kernels/boundary/inlet/zou_he_local.cuh": "e73e66b853b1e4e0e30d8f4185d832aa414ce670a1813ce2b5459f2887f71f89",
"src/CelerisLab/lbm/kernels/boundary/inlet_outlet.cuh": "de8b213a6da42c2e5e9f8966199fc66ea4541b85144a90f3f5dbad3c6ab63b97",
"src/CelerisLab/lbm/kernels/boundary/outlet/pressure_neq.cuh": "c8b2adc66d12fe602076ddc9693c5c208711fcaddb58aa9a31401a269f51c4c4",
"src/CelerisLab/lbm/kernels/boundary/planar_velocity.cuh": "0b2f9e0bd483c199637e5672dc0ffc460bc383dd1804805befbeb4c5d8c708d1",
"src/CelerisLab/lbm/kernels/config.h": "7d1124125e0b354558297934460e64c760fb68cdd7bf6d01a1238bb2eaab8c37",
"src/CelerisLab/lbm/kernels/config/config_grid.h": "8be3a7cf74ba30d7fd3074fed79e63dbda7311c4d03b454ea641bf298ffeaa8d",
"src/CelerisLab/lbm/kernels/config/config_method.h": "3db4e16ef2c6b22349d04e6aa8ab04bdfe0eb784f9f3a98277e15dbed1835d81",
"src/CelerisLab/lbm/kernels/config/config_objects.h": "dbb93c063586da278c15d95e23f84c12e728f4f5f1bbc3980fe9cedaa6fff90e",
"src/CelerisLab/lbm/kernels/config/config_obs.h": "c11e2249359145b5c4cbaaf0487506fa77c1f4b82c7c169ddc574aa0babcd727",
"src/CelerisLab/lbm/kernels/config/config_physics.h": "26df33c2960ba36f3283e19b55b4ea92e50e4efda705f9ebfbf3f875a4092c59",
"src/CelerisLab/lbm/kernels/core/descriptors.cuh": "8440bc14857da9007982650f828a23608eec9f7cc4bf772e8c8dc1239cb45356",
"src/CelerisLab/lbm/kernels/core/flags.cuh": "0025705f24710330d9d9195f713879bfb650a85a3449baef0e196b831af104ab",
"src/CelerisLab/lbm/kernels/core/layout.cuh": "1fbd820021c89ac3efcde24145996cb0147769e607e498e61f308ed3e0b13706",
"src/CelerisLab/lbm/kernels/core/obs.cuh": "b742b77c9f61e1f020fe9922c3838ae9d855e17b381154958b58f10a22938922",
"src/CelerisLab/lbm/kernels/core/params.cuh": "6e18bf730d936d940e3d85452f0714a2eaae31bf41002f9fd520ec5b372878dd",
"src/CelerisLab/lbm/kernels/core/precision.cuh": "849df14b4cce50af52399e4b8f3e997196f3ae5f1163f68e28df3e6b2507a8c4",
"src/CelerisLab/lbm/kernels/kernel_v2.cu": "c7bd3fb705b77261ba2441c52a24a7e6a7865c165cba088a1b75201c4d29c408",
"src/CelerisLab/lbm/kernels/operators/collision_mrt.cuh": "aee444eb60c47a3fd518dca975d1af05425a0818a0ec6c3fb3f6150f60c2cb44",
"src/CelerisLab/lbm/kernels/operators/collision_srt.cuh": "6b7ff842f392c8f853d2d1a97cc69bfe50f21283f73e659404da07cf6c95f5e1",
"src/CelerisLab/lbm/kernels/operators/collision_trt.cuh": "9725b9840b9ad8b4ec7be61ff5d06d3151e86d1a87585c13f2fbf934d0d2c5f6",
"src/CelerisLab/lbm/kernels/operators/forcing_guo.cuh": "969a430c1af03f32e3bd0df95d805e64f56334717c44dd4ba208ba503062a24b",
"src/CelerisLab/lbm/kernels/operators/helpers.cuh": "0b3a4d95d7d19f5fec09e5423b8f4cc99f8a226b541967425967330da5a051ec",
"src/CelerisLab/lbm/kernels/operators/macro.cuh": "e27c1c410dc857be98da4596568e405eeaf88701d291ac0e398aa9cd23dee740",
"src/CelerisLab/lbm/kernels/operators/turbulence_smag.cuh": "ff7f000297ee0817e255ad9fcb6a13b647e3ddd5b206518d35f38d2895a9f501",
"src/CelerisLab/lbm/kernels/step/aux_kernels.cu": "bb7f07d898f0d5151e5bd0f45e6bd819c5e83a345a265b73204906ac3cc29db4",
"src/CelerisLab/lbm/kernels/step/esopull_macro.cu": "c73116020ca217ede1e4de27c8269c31f9d91e33433ac8252a21e9b14187c50f",
"src/CelerisLab/lbm/kernels/step/esopull_sync.cu": "c0ff3e72900c3ab89a05dd03684e96d3b740cf1672d565727fc2af165933d087",
"src/CelerisLab/lbm/kernels/step/init_flow.cu": "305be3bb12fc0d039acec1701baabcf0e8a35e683c49c34f2af8ca9867d2b29c",
"src/CelerisLab/lbm/kernels/step/one_step_double.cu": "f9f8242b38e8e0cf8425b75e2b0215bc15363c62eaa0fb43c761b8e0931bfdc9",
"src/CelerisLab/lbm/kernels/step/one_step_esopull.cu": "aa223b2744ae6c9125673df311a96ce588032c1ba58bebb11fd33ecb990f8ed4",
"src/CelerisLab/lbm/kernels/streaming/esopull_semantic_helpers.cuh": "dd5a9091628b079efd97e53fd49e52d09dcee88529235db77a5648e02937af6e",
"src/CelerisLab/lbm/kernels/streaming/esopull_single_buffer.cuh": "77ed4ab9a0ebc5ff62a91a7c39066ef395391ae36e9040a69fb2bd8b1626dc79",
"src/CelerisLab/lbm/kernels/streaming/pull_double_buffer.cuh": "b65d741ed78b7b62f99531ba0c0ce1936663d8dc9640e7d7d16c707f1baf6549",
"src/CelerisLab/lbm/stepper.py": "e9e51e3a902fbda086d4707c0487e7b1dea6246fab290a24d82bd52d4296410e",
"src/CelerisLab/simulation.py": "34d69e71844f553790c5a2bed0f8fbfb912a9498e95b500d1ef2ad41cae3b424",
"tests/audit/Force_region.md": "3092080afe4a30665fe1b721803621ba9d0dd5d20ad17826984d94efc160fdac",
"tests/audit/Force_region_validation.md": "279a4484d1bfca0fd67aed4de3282d547aa048f89389420d8e5f2fd86db54fc2",
"tests/audit/body\u5220\u51cf\u529f\u80fd.md": "e9f308a8cd0f0e7df5441c32a15f84c0bae50bc0e56b8728f6c6f2cf78596673",
"tests/audit/body\u91cd\u6784\u7b14\u8bb0.md": "8f978d7b01c9f49dca9eeaff0d163cec6da085e2f99ee5a5e803d72306e7a72f",
"tests/audit/\u517c\u5bb9\u6027\u6d4b\u8bd5.md": "9c1721a33b381b9c3810545772b022913da06617711b5ba13a3c2c991b81a7f7",
"tests/audit/\u5ba1\u8ba1.md": "0f14ad073a0725134e6391f961c324fd0013c7791fd410713e94ed1ad40b7385",
"tests/audit/\u5ba1\u8ba1\u62a5\u544a_kernel_layer.md": "89893c98ed7c2699157bf728ec0e79b0dd6aff4008ee5c7b77eb052de24033f1",
"tests/conftest.py": "fa0ec26667872c9c1011d608310d2551fd24719b5d216f06d923ff4c74c73237",
"tests/integration/__init__.py": "c354e43ba09b55a8013a2df2069438740b5f48b5917d855e52e33ab5d7da5a6c",
"tests/integration/_cases.py": "ab76ca1096d2d10fb05b3539aa8ed3c7e549619bae6900ac98723f6c3c908f2d",
"tests/integration/test_body_sync_e2e.py": "d29f01771f3512a4b3ad06fae4ee952327d7fd9f0476942402fe92e9e327fcec",
"tests/integration/test_ddf_patch.py": "dda2abba32ca13e17098232f2831a0b1b66439c35f8931d9997a0257250c1281",
"tests/integration/test_numerical_gpu.py": "002a6745929bd5ee86a9491ea9bc3f97602fb825ea17262ea190c9311881100e",
"tests/integration/test_runtime_contracts_gpu.py": "775e578e2e8072af32fc740b2698abbb79454235a0f3ee929ac4c75d747f8db5",
"tests/integration/test_state_gpu.py": "dde0948941e8abbc5ea10a3acb3a35abbaea576f36ecee0f1120fbcf7454d60b",
"tests/integration/test_sync_bodies_skeleton.py": "65f55a0980659b49ae0027f0642a27e2ebaead226ef083f233e878150884b07c",
"tests/integration/test_unified_obs.py": "4a681536099741d92bdc258525fe3374cbdbeba0d49996e53808381a1b6a13fa",
"tests/postproc/experiment.ipynb": "c6b45db1c57200f0777213ef8d44cb4996c1aa7a5fb42b968b77e56f51b4fca4",
"tests/postproc/run_exp_ctrl_matrix_streakline.py": "529d5f31a3862080f890c65177502b589710b2d960ddf131abaf7dc2f9e2a96f",
"tests/postproc/run_exp_ctrl_matrix_vorticity.py": "b7e0c4113111b9b677f321750c0055656ccfa4f45c25fe7846f3ed22f30d1467",
"tests/postproc/run_kan99b_streakline.py": "a2bbf3fc629ea170d2d4879317dbf2b81c43378a328100ac1f2ee8d9895666cb",
"tests/postproc/run_stealth_steady_sweep.py": "3c32c4dede7da77fd6cfbd3f7b1ff43bb11390aaba621883ec96c6c7fdad5af7",
"tests/postproc/streakline_triangle_clean.png": "aa6669de7af6f82e98af25698a15f494e9cea20cb911ad9a30fe52597d33bb79",
"tests/postproc/vorticity_triangle_clean.png": "f831b8143b50f038d5920a0658469622655f34176d30cf7216feff108aa2ecaf",
"tests/screening/run_config_sweep.py": "5030c99923815ed6ad39110cb56f748c579ff4c66c7c1a368ad1a6008017e2ff",
"tests/specs/Kan99b_validation.md": "0d8bf74f2361f863809af1979bf8807adaa423f98321e1104a3d86d8c7a863cf",
"tests/specs/Sah04_validation.md": "1d122d29e281b7f50801b148f3314a0e35fdc27ee7d757c0a661243aa6185fb0",
"tests/specs/exp_ctrl_matrix.md": "5d9dd2e703582572eb68afe3a7096ea43ec82aa03418d20ed283c5365031e433",
"tests/specs/kan99b.md": "b7e0669f0a6b677d902204f3427d1b3ac254bfe70c37d9cf995fb3e8f1fedfb1",
"tests/specs/sah04.md": "33dbe5e0fd63738abd055c4aa403c191b6de04e6efdbc568f1942c6d23c7459f",
"tests/specs/streakline_notes.md": "cd342d214c07eb608ac2e5b8697322c44c31dbf4d27dfdb5409de46ef474df4b",
"tests/unit/__init__.py": "17f57920d9c1ff46096ceb2af008eb38c4b98dc81ffa3c3d310e758e80ca1cd4",
"tests/unit/cpp/collision_regression.cpp": "f17acdff74ab82a62dc5402b42e3f6a149c262e89b140494164d6ebd630f5e14",
"tests/unit/cpp/planar_velocity.cpp": "8dea266984edc69d4e0e68007e038d7a587e99f84e33478d6656a66a56680933",
"tests/unit/cpp/reservoir.cpp": "c3eacaf0271400eb45ad559b571a8f7faa2a809d5f1857ffeb5592addce2cd0c",
"tests/unit/cpp/semantic_regression.cpp": "99dba074c0c0a32ea76026e7d54fc60af8e6d3dc5315c8900c470b4518878f39",
"tests/unit/cpp/slot_profile.cpp": "31ac58ccab175bf79fa59fc46d4c0842df18ab0a5e5916be84760d9da2b75788",
"tests/unit/test_body_flags.py": "ac6409157924e15a13a3d2cc2f1a09014b8b0198ba17c824f412ff20b19e2aac",
"tests/unit/test_build_contracts.py": "7bb237425e8bb481f312fa4841c484e280731e13c7cbb9a53dad3e7f98984ac3",
"tests/unit/test_context_ownership.py": "299fed30dd0f9bd4dadd8b27f50df2a6367bdb0ab2ca3f391f215fde7241f35a",
"tests/unit/test_equilibrium.py": "1ecbcc4547b1c846b75320463d828d6a36b6aae73208084fae476b1001c1bb50",
"tests/unit/test_initializers.py": "8b4e3358d925614984265ae73c142006b48fd1c3918cf84901f18afd9fe68c3a",
"tests/unit/test_numerical_operators.py": "6d1d560ef553a2af7adac7db3e325d96d7fe39073d5fe3e0e982439537385b27",
"tests/unit/test_pending_edits.py": "905a0dff23b123e8e38aaf364984c810fe51c39acd64aa271e343a4701d3d024",
"tests/unit/test_planar_velocity.py": "b656da0880b4234b1db805544edbe0d2473cbcc7c2c869c71d8251337f62a982",
"tests/unit/test_reservoir.py": "e718c78a53c3941aba7feb8ae4e8bb0b1726c1145de84febf91220c1917991c9",
"tests/unit/test_simulation_lifecycle.py": "77abdc33218c35e9c8b62dbd99ceddbaccd8417e7f0b539ea8859ea0175c663a",
"tests/unit/test_slot_velocity.py": "6a9494de9a32c350389ccbed58af48951f6b25a21a258537d2e8b73eb67cb11d",
"tests/unit/test_state_regressions.py": "0f69cfeb83428192f95688c76abcae7e5b9cf5f27c52bca4ac20c7f320044374",
"tests/unit/test_sync_plan.py": "983313ef783143231fa5a392f85f3bac011184773ccaf5d946504c206cabb721",
"tests/validation/analyze_j3_saved_frames.py": "438f67dac682b94c4950626f8de4fdcde48c3a4e9ecf8fdf1b0ada4b6e0e781a",
"tests/validation/diagnose_j3_lags.py": "286fcd65b3261667a847b9b26e213d0af92cf459faa6bbd774f78c8479ce31d7",
"tests/validation/multigrid/MULTIGRID_VERIFICATION_STRATEGY.md": "d4f3473da44abee6031a0e1bd4d0ca589077a18f15d2461836e4d2ebb98e458a",
"tests/validation/run_j1.py": "51b758a271ff358f931b3140a80082294a67e66c2fec0f8c19319e37f92aadc4",
"tests/validation/run_j2_slot.py": "b7d2d3aa06fcafc3ac62ed4a50892afbdb7f86e5720ce75a39ce317b6f571dad",
"tests/validation/run_j3_coverage.py": "329869519b7078e854d96241a7aad8ef93f35ac9be83f0be502c3a93523c3b13",
"tests/validation/run_j3_reservoir.py": "47535bc3569ce68c888d38978bc4f9077fd763a17829c20c081be52bb18a2903",
"tests/validation/run_kan99b_rotating_cylinder.py": "323186429a100f36b41ab9b81ade2da6a47e93be3ccb7034a3a6b97f4ee8eb00",
"tests/validation/run_perf_baseline.py": "93dde2eb1132f45ea69e1e285ff421dc97a83651a22c79571f299c1909650721",
"tests/validation/run_poiseuille.py": "e529288e2ffa8e00d281a9006723954d60a96ae4d025e8f28656c09287d4ff46",
"tests/validation/run_sah04_st_matrix.py": "9b9c0ce063e07a316846635ee769b837ed26be6bf039f78f4219c10b516f8006",
"tests/validation/test_sensor_accuracy.py": "c6038a9e7a597a1738814bd15e6ecf357cfd271cdc2a132d47943c5280ac0ef9"
},
"multigrid_before": [
"tests/validation/multigrid/MULTIGRID_VERIFICATION_STRATEGY.md"
]
}
@@ -0,0 +1,96 @@
{
"old_files_checked": 269,
"old_files_changed": [],
"git_status_removed_entries": [],
"git_status_new_entries_before_manifest": [
"?? tests/validation/multigrid/cpu_reference.py",
"?? tests/validation/multigrid/cpu_reference_v0.2.py",
"?? tests/validation/multigrid/cpuref_0_3_evidence/README.txt",
"?? tests/validation/multigrid/cpuref_0_3_evidence/README_grok.md",
"?? tests/validation/multigrid/cpuref_0_3_evidence/baseline.json",
"?? tests/validation/multigrid/cpuref_0_3_evidence/results_horsea.json",
"?? tests/validation/multigrid/cpuref_0_3_evidence/stdout_grok.txt",
"?? tests/validation/multigrid/cpuref_0_3_evidence/stdout_horsea.txt",
"?? tests/validation/multigrid/test_cpu_reference.py",
"?? tests/validation/multigrid/test_open_corner_negative_control.py",
"?? tests/validation/multigrid/test_tron_additions.py"
],
"seven_original_hashes_match": true,
"substantive_objections": [],
"delivered_byte_deviations": [],
"tests": {
"core": 15,
"supplement": 5,
"negative_control": 1,
"all_passed": true,
"attempts_per_script": 1
},
"new_files_except_this_manifest": [
{
"path": "tests/validation/multigrid/cpu_reference.py",
"bytes": 21501,
"lines": 475,
"sha256": "bba2a06a9f6517b32079ffff15e4060d8c3b7ed35f16ca134e1877226c9e4e1e"
},
{
"path": "tests/validation/multigrid/cpu_reference_v0.2.py",
"bytes": 20196,
"lines": 441,
"sha256": "b6adbad7da625ef6a6b97958ea9625030ed92676d0cada48e061c87bcf7ca8c9"
},
{
"path": "tests/validation/multigrid/cpuref_0_3_evidence/README.txt",
"bytes": 4133,
"lines": 64,
"sha256": "1947ee0232b88b3cc2c506d0b0af5ba051ecc94aa8f7f09228ef3939cc95919b"
},
{
"path": "tests/validation/multigrid/cpuref_0_3_evidence/README_grok.md",
"bytes": 1751,
"lines": 18,
"sha256": "065947e15b2242bce7d3eb05a3acdbb59939c621dcd5d31540ad4a1bd4416818"
},
{
"path": "tests/validation/multigrid/cpuref_0_3_evidence/baseline.json",
"bytes": 39291,
"lines": 278,
"sha256": "0daaccee41cabeb17a00e2405e2c7fd0b80d36f2d01778eb39c9fd22b13d2d47"
},
{
"path": "tests/validation/multigrid/cpuref_0_3_evidence/results_horsea.json",
"bytes": 2281,
"lines": 79,
"sha256": "914389afc39752bcd4132aa21fc8d5cbcf0ca75b1efd6a49becab15c2fa3361b"
},
{
"path": "tests/validation/multigrid/cpuref_0_3_evidence/stdout_grok.txt",
"bytes": 7143,
"lines": 84,
"sha256": "73e4ef01138842981daaa534390f1463839e63833c11f4e8872f94f8eaadc717"
},
{
"path": "tests/validation/multigrid/cpuref_0_3_evidence/stdout_horsea.txt",
"bytes": 9013,
"lines": 130,
"sha256": "457f1d2173496554c87ca6e61df518c0b8f1e0a28cdfd94b94ebbb61bc459d70"
},
{
"path": "tests/validation/multigrid/test_cpu_reference.py",
"bytes": 21144,
"lines": 481,
"sha256": "ade5d4827f971aed7174b59d83769e7aa542338e625a9fc8db1e8b1805cb74ca"
},
{
"path": "tests/validation/multigrid/test_open_corner_negative_control.py",
"bytes": 3779,
"lines": 68,
"sha256": "59a6f8ca80cdd63cb7827fbebf9b4b555c3793f19dd6bca801544ec10b5cbe1b"
},
{
"path": "tests/validation/multigrid/test_tron_additions.py",
"bytes": 11340,
"lines": 229,
"sha256": "8e7a6a90b85e64c7326719e7b8bca2f6d34fb4c80690f0685f7e291ab93bd2a4"
}
]
}
@@ -0,0 +1,79 @@
{
"started_utc": "2026-10-13T03:42:59.253863+00:00",
"cwd": "/home/frank14f/CelerisLab/tests/validation/multigrid",
"python_executable": "/home/frank14f/anaconda3/envs/pycuda_3_10/bin/python",
"environment": {
"OPENBLAS_NUM_THREADS": "1",
"PYTHONDONTWRITEBYTECODE": "1",
"PYTHONNOUSERSITE": "1",
"PYTHONPATH": "/home/frank14f/CelerisLab/tests/validation/multigrid",
"CPU_REFERENCE_PATH": "/home/frank14f/CelerisLab/tests/validation/multigrid/cpu_reference.py"
},
"limits": {
"address_space_bytes": [
268435456,
268435456
],
"output_file_bytes": [
2097152,
2097152
],
"core_bytes": [
0,
0
],
"max_coarse_steps_per_case": 8
},
"runs": [
{
"test_script": "test_cpu_reference.py",
"command": [
"/usr/bin/prlimit",
"--as=268435456",
"--fsize=2097152",
"--core=0",
"--",
"/home/frank14f/anaconda3/envs/pycuda_3_10/bin/python",
"-B",
"/home/frank14f/CelerisLab/tests/validation/multigrid/test_cpu_reference.py"
],
"returncode": 0,
"elapsed_seconds": 1.4467838869895786,
"cumulative_child_peak_rss_MiB": 37.5
},
{
"test_script": "test_tron_additions.py",
"command": [
"/usr/bin/prlimit",
"--as=268435456",
"--fsize=2097152",
"--core=0",
"--",
"/home/frank14f/anaconda3/envs/pycuda_3_10/bin/python",
"-B",
"/home/frank14f/CelerisLab/tests/validation/multigrid/test_tron_additions.py"
],
"returncode": 0,
"elapsed_seconds": 0.677576785965357,
"cumulative_child_peak_rss_MiB": 37.5
},
{
"test_script": "test_open_corner_negative_control.py",
"command": [
"/usr/bin/prlimit",
"--as=268435456",
"--fsize=2097152",
"--core=0",
"--",
"/home/frank14f/anaconda3/envs/pycuda_3_10/bin/python",
"-B",
"/home/frank14f/CelerisLab/tests/validation/multigrid/test_open_corner_negative_control.py"
],
"returncode": 0,
"elapsed_seconds": 0.8977452759863809,
"cumulative_child_peak_rss_MiB": 37.5
}
],
"stdout_bytes": 9013,
"completed_utc": "2026-10-13T03:43:02.276695+00:00"
}
@@ -0,0 +1,84 @@
=== CPUREF-0.3 Grok independent suite (15 core + 5 adapted additions) ===
test_corner_pass_links_identity_marker (test_cpu_reference.TestFourCorners.test_corner_pass_links_identity_marker)
Identity: a marker in the source's post-collision slot q must arrive exactly at K. ... ok
test_four_corner_symmetry_srt (test_cpu_reference.TestFourCorners.test_four_corner_symmetry_srt)
Mirror the lower-left SRT corner case to the other three corners; values must match. ... ok
test_leaf_mass_momentum_8_steps (test_cpu_reference.TestIdentityTransportConservation.test_leaf_mass_momentum_8_steps) ... ok
test_matches_independent_implementation (test_cpu_reference.TestIdentityTransportConservation.test_matches_independent_implementation) ... ok
test_coalescence_slots_reads_owner (test_cpu_reference.TestOwnershipPoison.test_coalescence_slots_reads_owner) ... ok
test_collision_and_explosion_counts (test_cpu_reference.TestOwnershipPoison.test_collision_and_explosion_counts) ... ok
test_hop_sources_never_outer (test_cpu_reference.TestOwnershipPoison.test_hop_sources_never_outer) ... ok
test_inputs_not_mutated_and_maps_readonly (test_cpu_reference.TestOwnershipPoison.test_inputs_not_mutated_and_maps_readonly) ... ok
test_invalid_input_entries_ignored_and_poisoned (test_cpu_reference.TestOwnershipPoison.test_invalid_input_entries_ignored_and_poisoned) ... ok
test_make_spec_api (test_cpu_reference.TestOwnershipPoison.test_make_spec_api) ... ok
test_nonfinite_active_input_rejected (test_cpu_reference.TestOwnershipPoison.test_nonfinite_active_input_rejected) ... ok
test_leaf_conservation_and_collision_moments_8_steps (test_cpu_reference.TestSRT.test_leaf_conservation_and_collision_moments_8_steps) ... ok
test_matches_independent_implementation (test_cpu_reference.TestSRT.test_matches_independent_implementation) ... ok
test_identity_changes_expected_packet (test_cpu_reference.TestSRTCornerOracle.test_identity_changes_expected_packet) ... ok
test_srt_oracle (test_cpu_reference.TestSRTCornerOracle.test_srt_oracle) ... ok
test_eight_unique_keys_and_child_packets (test_tron_additions.TestCornerIndividualPackets.test_eight_unique_keys_and_child_packets) ... ok
test_coalesce_paths_reconstructed_test_side (test_tron_additions.TestRetainedDiagnostics.test_coalesce_paths_reconstructed_test_side) ... ok
test_hop2_mask_semantics (test_tron_additions.TestRetainedDiagnostics.test_hop2_mask_semantics) ... ok
test_srt_coarse_and_fine_nan_masks_equal (test_tron_additions.TestSRTNanMask.test_srt_coarse_and_fine_nan_masks_equal) ... ok
test_diagnostic_field_delta (test_tron_additions.TestV02V03FieldDelta.test_diagnostic_field_delta)
Compare top-level diagnostic keys and budget keys between v0.2 and v0.3. ... ok
----------------------------------------------------------------------
Ran 20 tests in 0.480s
OK
reference: /workspace/amr_tests_v03/cpu_reference_v0.3.py API CPUREF-0.3
sha256 bba2a06a9f6517b32079ffff15e4060d8c3b7ed35f16ca134e1877226c9e4e1e cpu_reference_v0.3.py
sha256 ade5d4827f971aed7174b59d83769e7aa542338e625a9fc8db1e8b1805cb74ca test_cpu_reference.py
sha256 8e7a6a90b85e64c7326719e7b8bca2f6d34fb4c80690f0685f7e291ab93bd2a4 test_tron_additions.py
python 3.13.5 numpy 2.5.3 Linux-6.12.94+-x86_64-with-glibc2.41
reference corner_links lists 8 uniquely keyed corner-pass links
corner SRT symmetry values: {'LL': np.float64(0.02798201349283891), 'LR': np.float64(0.027982013492838912), 'UL': np.float64(0.02798201349283891), 'UR': np.float64(0.02798201349283891)}
[identity] leaf0=[255.98790565531962, 7.683069168222897, -5.122316610476732] leaf8=[255.98790565532028, 7.683069168222904, -5.122316610476715] drift=[6.536993168992922e-13, 7.105427357601002e-15, 1.687538997430238e-14]
[identity] max |ref - independent| over 3 steps = 0.000e+00
slots=100 (corner-pass 8), unique reads=400, max read multiplicity=1
counts: coarse cells collided once=192, fine twice=256, ghost explosion writes=320; tick validation OK
[srt] leaf0=[256.01002619890596, 7.680601714336587, -5.120130711410963] leaf8=[256.0100261989044, 7.680601714336586, -5.120130711410962] drift=[-1.5347723092418164e-12, -8.881784197001252e-16, 8.881784197001252e-16]
[srt] max |ref - independent| over 3 steps = 2.776e-16
[identity corner] expected=0.026777777777777775 got=np.float64(0.026777777777777775); srt-expected differs by 1.204e-03
[srt corner] expected=0.02798201349283891 got=np.float64(0.02798201349283891) diff=0.000e+00 (uncoalesced g8=0.028027777777777776)
[8 corner keys] ['lower_left_q7', 'lower_left_q8', 'lower_right_q5', 'lower_right_q6', 'upper_left_q5', 'upper_left_q6', 'upper_right_q7', 'upper_right_q8']; packets 3xg8+1xmid8, weights 0.25, avg=0.02798201349283891
[coalesce_paths test-side] 100 rows x 4; hist={('corner_pass', 'A', 'I'): 8, ('corner_pass', 'I', 'I'): 24, ('face_or_diag_from_patch', 'A', 'A'): 180, ('face_or_diag_from_patch', 'I', 'A'): 188}
[hop2_valid] matches independent derivation; valid inner=1060; reads hop2-valid=400
[srt masks] coarse+fine NaN masks equal over 3 steps; max diff 2.776e-16
[v0.2→v0.3 fields] removed=['coalesce_paths', 'explosion_count', 'fine_valid_after'] added=['hop2_valid']; budget rename closure_error→bookkeeping_check; corner_packets 4→8
peak_rss_MiB 42.6171875
RESULT OK testsRun 20
=== open-corner negative control ===
test_open_vs_closed (__main__.OpenCornerNegativeControl.test_open_vs_closed) ... ok
----------------------------------------------------------------------
Ran 1 test in 0.215s
OK
[identity] coalesce rows closed=100 open=92 dropped=8
[identity] seed=1 steps=1 closed: max|leaf drift|=5.551e-17 max|interface_residual|=2.109e-15 | OPEN: max|leaf drift| (mass,mx,my)=(0.000e+00,5.551e-17,2.776e-17) max|interface_residual|=1.776e-15
[identity] seed=1 steps=8 closed: max|leaf drift|=2.776e-16 max|interface_residual|=2.276e-15 | OPEN: max|leaf drift| (mass,mx,my)=(0.000e+00,2.220e-16,2.776e-16) max|interface_residual|=2.665e-15
[identity] seed=2 steps=1 closed: max|leaf drift|=3.331e-16 max|interface_residual|=1.971e-15 | OPEN: max|leaf drift| (mass,mx,my)=(0.000e+00,1.665e-16,3.331e-16) max|interface_residual|=2.665e-15
[identity] seed=2 steps=8 closed: max|leaf drift|=5.684e-14 max|interface_residual|=2.998e-15 | OPEN: max|leaf drift| (mass,mx,my)=(5.684e-14,2.220e-16,3.331e-16) max|interface_residual|=2.665e-15
[srt] coalesce rows closed=100 open=92 dropped=8
[srt] seed=1 steps=1 closed: max|leaf drift|=2.269e-14 max|interface_residual|=2.831e-15 | OPEN: max|leaf drift| (mass,mx,my)=(2.078e-03,8.560e-04,2.620e-04) max|interface_residual|=2.078e-03
[srt] seed=1 steps=8 closed: max|leaf drift|=4.040e-14 max|interface_residual|=4.774e-15 | OPEN: max|leaf drift| (mass,mx,my)=(2.078e-03,8.560e-04,2.620e-04) max|interface_residual|=2.078e-03
[srt] seed=2 steps=1 closed: max|leaf drift|=4.078e-14 max|interface_residual|=2.331e-15 | OPEN: max|leaf drift| (mass,mx,my)=(5.660e-04,2.359e-04,6.755e-04) max|interface_residual|=6.755e-04
[srt] seed=2 steps=8 closed: max|leaf drift|=4.078e-14 max|interface_residual|=2.554e-15 | OPEN: max|leaf drift| (mass,mx,my)=(6.526e-04,5.767e-04,1.401e-03) max|interface_residual|=1.401e-03
@@ -0,0 +1,130 @@
{
"started_utc": "2026-10-13T03:42:59.253863+00:00",
"cwd": "/home/frank14f/CelerisLab/tests/validation/multigrid",
"python_executable": "/home/frank14f/anaconda3/envs/pycuda_3_10/bin/python",
"environment": {
"OPENBLAS_NUM_THREADS": "1",
"PYTHONDONTWRITEBYTECODE": "1",
"PYTHONNOUSERSITE": "1",
"PYTHONPATH": "/home/frank14f/CelerisLab/tests/validation/multigrid",
"CPU_REFERENCE_PATH": "/home/frank14f/CelerisLab/tests/validation/multigrid/cpu_reference.py"
},
"limits": {
"address_space_bytes": [
268435456,
268435456
],
"output_file_bytes": [
2097152,
2097152
],
"core_bytes": [
0,
0
],
"max_coarse_steps_per_case": 8
},
"runs": []
}
COMMAND /usr/bin/prlimit --as=268435456 --fsize=2097152 --core=0 -- /home/frank14f/anaconda3/envs/pycuda_3_10/bin/python -B /home/frank14f/CelerisLab/tests/validation/multigrid/test_cpu_reference.py
test_corner_pass_links_identity_marker (__main__.TestFourCorners)
Identity: a marker in the source's post-collision slot q must arrive exactly at K. ... ok
test_four_corner_symmetry_srt (__main__.TestFourCorners)
Mirror the lower-left SRT corner case to the other three corners; values must match. ... ok
test_leaf_mass_momentum_8_steps (__main__.TestIdentityTransportConservation) ... ok
test_matches_independent_implementation (__main__.TestIdentityTransportConservation) ... ok
test_coalescence_slots_reads_owner (__main__.TestOwnershipPoison) ... ok
test_collision_and_explosion_counts (__main__.TestOwnershipPoison) ... ok
test_hop_sources_never_outer (__main__.TestOwnershipPoison) ... ok
test_inputs_not_mutated_and_maps_readonly (__main__.TestOwnershipPoison) ... ok
test_invalid_input_entries_ignored_and_poisoned (__main__.TestOwnershipPoison) ... ok
test_make_spec_api (__main__.TestOwnershipPoison) ... ok
test_nonfinite_active_input_rejected (__main__.TestOwnershipPoison) ... ok
test_leaf_conservation_and_collision_moments_8_steps (__main__.TestSRT) ... ok
test_matches_independent_implementation (__main__.TestSRT) ... ok
test_identity_changes_expected_packet (__main__.TestSRTCornerOracle) ... ok
test_srt_oracle (__main__.TestSRTCornerOracle) ... ok
----------------------------------------------------------------------
Ran 15 tests in 1.230s
OK
reference: /home/frank14f/CelerisLab/tests/validation/multigrid/cpu_reference.py API CPUREF-0.3
sha256 bba2a06a9f6517b32079ffff15e4060d8c3b7ed35f16ca134e1877226c9e4e1e cpu_reference.py
sha256 ade5d4827f971aed7174b59d83769e7aa542338e625a9fc8db1e8b1805cb74ca test_cpu_reference.py
python 3.10.13 numpy 1.26.4 Linux-6.8.0-138-generic-x86_64-with-glibc2.35
reference corner_links lists 8 uniquely keyed corner-pass links
corner SRT symmetry values: {'LL': 0.02798201349283891, 'LR': 0.027982013492838912, 'UL': 0.02798201349283891, 'UR': 0.02798201349283891}
[identity] leaf0=[255.98790565531962, 7.683069168222897, -5.122316610476732] leaf8=[255.98790565532028, 7.683069168222904, -5.122316610476715] drift=[6.536993168992922e-13, 7.105427357601002e-15, 1.687538997430238e-14]
[identity] max |ref - independent| over 3 steps = 0.000e+00
slots=100 (corner-pass 8), unique reads=400, max read multiplicity=1
counts: coarse cells collided once=192, fine twice=256, ghost explosion writes=320; tick validation OK
[srt] leaf0=[256.01002619890596, 7.680601714336587, -5.120130711410963] leaf8=[256.0100261989044, 7.680601714336586, -5.120130711410962] drift=[-1.5347723092418164e-12, -8.881784197001252e-16, 8.881784197001252e-16]
[srt] max |ref - independent| over 3 steps = 2.776e-16
[identity corner] expected=0.026777777777777775 got=0.026777777777777775; srt-expected differs by 1.204e-03
[srt corner] expected=0.027982013492838916 got=0.02798201349283891 diff=-6.939e-18 (uncoalesced g8=0.028027777777777783)
peak_rss_MiB 37.5
RUN_RESULT {"test_script": "test_cpu_reference.py", "command": ["/usr/bin/prlimit", "--as=268435456", "--fsize=2097152", "--core=0", "--", "/home/frank14f/anaconda3/envs/pycuda_3_10/bin/python", "-B", "/home/frank14f/CelerisLab/tests/validation/multigrid/test_cpu_reference.py"], "returncode": 0, "elapsed_seconds": 1.4467838869895786, "cumulative_child_peak_rss_MiB": 37.5}
COMMAND /usr/bin/prlimit --as=268435456 --fsize=2097152 --core=0 -- /home/frank14f/anaconda3/envs/pycuda_3_10/bin/python -B /home/frank14f/CelerisLab/tests/validation/multigrid/test_tron_additions.py
test_eight_unique_keys_and_child_packets (__main__.TestCornerIndividualPackets) ... ok
test_coalesce_paths_reconstructed_test_side (__main__.TestRetainedDiagnostics) ... ok
test_hop2_mask_semantics (__main__.TestRetainedDiagnostics) ... ok
test_srt_coarse_and_fine_nan_masks_equal (__main__.TestSRTNanMask) ... ok
test_diagnostic_field_delta (__main__.TestV02V03FieldDelta)
Compare top-level diagnostic keys and budget keys between v0.2 and v0.3. ... ok
----------------------------------------------------------------------
Ran 5 tests in 0.464s
OK
reference: /home/frank14f/CelerisLab/tests/validation/multigrid/cpu_reference.py API CPUREF-0.3
sha256 bba2a06a9f6517b32079ffff15e4060d8c3b7ed35f16ca134e1877226c9e4e1e cpu_reference.py
sha256 ade5d4827f971aed7174b59d83769e7aa542338e625a9fc8db1e8b1805cb74ca test_cpu_reference.py
sha256 8e7a6a90b85e64c7326719e7b8bca2f6d34fb4c80690f0685f7e291ab93bd2a4 test_tron_additions.py
python 3.10.13 numpy 1.26.4 Linux-6.8.0-138-generic-x86_64-with-glibc2.35
[8 corner keys] ['lower_left_q7', 'lower_left_q8', 'lower_right_q5', 'lower_right_q6', 'upper_left_q5', 'upper_left_q6', 'upper_right_q7', 'upper_right_q8']; packets 3xg8+1xmid8, weights 0.25, avg=0.027982013492838916
[coalesce_paths test-side] 100 rows x 4; hist={('corner_pass', 'A', 'I'): 8, ('corner_pass', 'I', 'I'): 24, ('face_or_diag_from_patch', 'A', 'A'): 180, ('face_or_diag_from_patch', 'I', 'A'): 188}
[hop2_valid] matches independent derivation; valid inner=1060; reads hop2-valid=400
[srt masks] coarse+fine NaN masks equal over 3 steps; max diff 2.776e-16
[v0.2→v0.3 fields] removed=['coalesce_paths', 'explosion_count', 'fine_valid_after'] added=['hop2_valid']; budget rename closure_error→bookkeeping_check; corner_packets 4→8
peak_rss_MiB 37.4609375
RUN_RESULT {"test_script": "test_tron_additions.py", "command": ["/usr/bin/prlimit", "--as=268435456", "--fsize=2097152", "--core=0", "--", "/home/frank14f/anaconda3/envs/pycuda_3_10/bin/python", "-B", "/home/frank14f/CelerisLab/tests/validation/multigrid/test_tron_additions.py"], "returncode": 0, "elapsed_seconds": 0.677576785965357, "cumulative_child_peak_rss_MiB": 37.5}
COMMAND /usr/bin/prlimit --as=268435456 --fsize=2097152 --core=0 -- /home/frank14f/anaconda3/envs/pycuda_3_10/bin/python -B /home/frank14f/CelerisLab/tests/validation/multigrid/test_open_corner_negative_control.py
test_open_vs_closed (__main__.OpenCornerNegativeControl) ... ok
----------------------------------------------------------------------
Ran 1 test in 0.703s
OK
[identity] coalesce rows closed=100 open=92 dropped=8
[identity] seed=1 steps=1 closed: max|leaf drift|=5.551e-17 max|interface_residual|=2.109e-15 | OPEN: max|leaf drift| (mass,mx,my)=(0.000e+00,5.551e-17,2.776e-17) max|interface_residual|=1.776e-15
[identity] seed=1 steps=8 closed: max|leaf drift|=2.776e-16 max|interface_residual|=2.276e-15 | OPEN: max|leaf drift| (mass,mx,my)=(0.000e+00,2.220e-16,2.776e-16) max|interface_residual|=2.665e-15
[identity] seed=2 steps=1 closed: max|leaf drift|=3.331e-16 max|interface_residual|=1.971e-15 | OPEN: max|leaf drift| (mass,mx,my)=(0.000e+00,1.665e-16,3.331e-16) max|interface_residual|=2.665e-15
[identity] seed=2 steps=8 closed: max|leaf drift|=5.684e-14 max|interface_residual|=2.998e-15 | OPEN: max|leaf drift| (mass,mx,my)=(5.684e-14,2.220e-16,3.331e-16) max|interface_residual|=2.665e-15
[srt] coalesce rows closed=100 open=92 dropped=8
[srt] seed=1 steps=1 closed: max|leaf drift|=2.269e-14 max|interface_residual|=2.831e-15 | OPEN: max|leaf drift| (mass,mx,my)=(2.078e-03,8.560e-04,2.620e-04) max|interface_residual|=2.078e-03
[srt] seed=1 steps=8 closed: max|leaf drift|=4.040e-14 max|interface_residual|=4.774e-15 | OPEN: max|leaf drift| (mass,mx,my)=(2.078e-03,8.560e-04,2.620e-04) max|interface_residual|=2.078e-03
[srt] seed=2 steps=1 closed: max|leaf drift|=4.078e-14 max|interface_residual|=2.331e-15 | OPEN: max|leaf drift| (mass,mx,my)=(5.660e-04,2.359e-04,6.755e-04) max|interface_residual|=6.755e-04
[srt] seed=2 steps=8 closed: max|leaf drift|=4.078e-14 max|interface_residual|=2.554e-15 | OPEN: max|leaf drift| (mass,mx,my)=(6.526e-04,5.767e-04,1.401e-03) max|interface_residual|=1.401e-03
RUN_RESULT {"test_script": "test_open_corner_negative_control.py", "command": ["/usr/bin/prlimit", "--as=268435456", "--fsize=2097152", "--core=0", "--", "/home/frank14f/anaconda3/envs/pycuda_3_10/bin/python", "-B", "/home/frank14f/CelerisLab/tests/validation/multigrid/test_open_corner_negative_control.py"], "returncode": 0, "elapsed_seconds": 0.8977452759863809, "cumulative_child_peak_rss_MiB": 37.5}
@@ -0,0 +1,124 @@
Local-stress observable v1 — Horsea review and single-run handoff
2026-10-13, Asia/Shanghai. Observation-only; reference unchanged.
Actual result
Exactly one execution of the delivered script: 7 runs x 32 coarse steps, exit 0.
Original 22 Boolean hard checks plus 7 stress-finite checks: all 29 pass.
Both ALL_HARD_CHECKS_PASS_V02 and ALL_HARD_CHECKS_PASS_WITH_STRESS are True.
No retries, added cases, modified formulas, relaxed tolerances or new R thresholds.
Review status (separate from numerical results)
Grok authored the implementation and ran it in an independent environment.
The coordinating root reported an independent static review with no substantive
issue. Claude's implementation-code review is paused due to an API error and
has NOT completed. Claude's earlier specification discussion and the table's
"implicit-definition checks" do not constitute a completed code review.
Horsea read all 902 script lines, original stdout, table and manifest, reviewed
the related reference paths and local reference sources below, and found no
substantive numerical objection blocking this bounded diagnostic rerun.
Scope and static review
Applied .github/skills/lbm-ref-architecture-guard/SKILL.md and its reference/
architecture checklists. No applicable ancestor AGENTS.md was found.
The incoming script is standalone NumPy+stdlib, with no runtime dependency on
the previous shear script. Its original bytes are preserved. Architecture:
main -> run_uniform(B/C) / run_composite(A/A_T) -> arrival populations ->
sigma_xy_cell -> level-specific sigma restriction -> Fourier R and profiles.
The composite advance uses the existing CPUREF-0.3 API without wrapping or
changing its algorithm. The external recorder pins the reference before import;
the diagnostic's printed REF_SHA_MATCH alone would not enforce that pin.
Reference findings (read-only, no imported reference packages)
1. ref/lbmpy/src/lbmpy/macroscopic_value_kernels.py, strain_rate_tensor_getter:
the second moment is formed from f minus equilibrium; S=-3*omega*Pi/(2*rho).
2. ref/OpenLB/src/functors/lattice/latticePhysStrainRate2D.hh independently uses
the negative nonequilibrium-moment sign and omega/(2*rho*cs^2*dt) conversion.
3. ref/lbmpy/src/lbmpy/relaxationrates.py gives nu=(tau-.5)/3. Combining
sigma=2*rho*nu*S yields -(1-1/(2*tau))*Pi_neq in lattice units.
4. ref/OpenLB/src/core/unitConverter.h converts viscosity by dx^2/dt and
pressure/stress by density*(dx/dt)^2. Here dx/dt=1 on both levels and density
units match, so no additional scale factor belongs in this observation.
5. Existing cpu_reference.py: paired D2Q9 ordering, physical patch offset,
acoustic tau scaling, arrival_f input/output, tick increment 2, and owned
leaf-cell masks. The pinned full reference was reviewed in the prior round;
this review reread its maps, collision/explosion, leaf totals and advance path.
Verified definitions
Initialization remains equilibrium of the exact cell-average sine velocity,
not exact cell averages of nonlinear f_eq. Fine coordinates include patch offset.
All final observations use coarse step 32: composite arrival_f tick=64,
uniform B after 64 collide-stream substeps and C after 32. No extra collision.
Pi_xy^neq=sum(cx*cy*f)-rho*ux*uy is evaluated per owned cell. Each level applies
its own tau to obtain sigma BEFORE 2x2 volume averaging. Covered coarse values
and fine ghosts are excluded. Velocity restriction averages rho/j before u=j/rho.
R uses a_u=(2/256)*sum(u*sin) from the same run and final arrival state, not an
analytic decay amplitude. This raw Fourier coefficient includes the cell-average
sinc factor; the old decay fit amplitude uses its sinc-normalized template.
The cosine stress projection and velocity projection use a common 16x16 grid.
Signed horizontal profiles average columns 4:12 and retain all 16 rows; rows
3,4,11,12 flank the patch faces. The transposed case reports R only, no profile.
Runtime evidence
Existing Python 3.10.13 / NumPy 1.26.4, CPU only. run_once.py is a standalone
stdlib recorder derived from the previous recorder; it does not execute or
import the prior diagnostic. It checks all four delivered file hashes, the tar
hash and reference hash before launch, and refuses existing logs/results.
Parent and child both used /usr/bin/prlimit with soft=hard bounds:
--as=268435456 --fsize=2097152 --core=0
Process-only OPENBLAS_NUM_THREADS=1, PYTHONDONTWRITEBYTECODE=1,
PYTHONNOUSERSITE=1, PYTHONOPTIMIZE=0; PYTHONPATH is only the current multigrid
directory. CPU_REFERENCE_PATH explicitly selects its cpu_reference.py.
results_horsea.json and stdout_horsea.txt retain full argv, environment, cwd,
preflight SHA values, versions, times, exit status and measured RSS.
UTC start/end: 2026-10-13 06:01:08.222086 / 06:01:10.671541
Local start/end: 14:01:08 / 14:01:10 Asia/Shanghai.
Child elapsed 2.435032 s; peak RSS 38.41796875 MiB; parent peak 18.75 MiB.
Combined stdout/stderr with recorder metadata: 17091 bytes, below 2 MiB.
Grok and prior-result comparison
comparison.json parses each of the 29 Boolean checks, the original 22 names,
both all-pass markers, R values, ratios and every profile value. HARD CHECKS,
STRESS FINITE CHECKS, SUMMARY_LINES and DECAY FITS blocks all match Grok
exactly at printed precision. All recorded numeric differences are zero.
The ten profile rows in SUMMARY_LINES contain 160 scalar entries total.
Six current lambda values also match the prior local shear output at 8 decimal
places (the precision emitted by this script). Prior 10-decimal values are
retained in the comparison for provenance, not claimed freshly measured here.
Full stdout hashes need not match across machines; paths, runtime and recorder
metadata differ. Printed equality is not full-precision field equality.
R at coarse step 32 (diagnostic only):
phi0: A=1.011774619306 B=.998555854025 C=1.008383635570
phiPi/2: A=1.011850480751 B=.998555854025 C=1.008383635570
A_T: 1.011850480751
Interpretation limits (separate from pass/fail checks)
The retained transpose assertion covers u/rho, not stress. R_A_T agreeing with
R_A at phiPi/2 is a reported observation, NOT a new stress-transpose hard test.
Seven finite-stress checks do not establish local stress accuracy, convergence,
interface stress-transfer correctness or any causal mechanism. One resolution,
tau pair, patch and short window remain in scope. Composite conservation uses
the reference leaf-total helper; this is not a new independent conservation
oracle. Time-held ghosts and unscaled nonequilibrium transfer remain candidate,
non-exhaustive explanations. No time-interpolated ghosts were implemented.
Frozen state and handoff
baseline.json froze HEAD, Git status and 292 old-file hashes, including all
previous CPUREF/shear evidence. Its stated hash scope excludes the read-only
ref tree, symlinks and bytecode. Final manifest.json verifies the frozen files,
original inputs and reference, and lists new paths/bytes/SHA256; its own SHA is
reported in the handoff. Only this evidence directory and the delivered
local_stress_observable_v1.py were added. No production imports, GPU/solver
runs, installs, environment/SSH/system changes, DynamisLab access, commit or push.
Stopped here for joint acceptance; Claude code review remains outstanding.
User authorization evidence, verbatim as relayed by the coordinating thread
<transcript_evidence>
assistant(Sentinel_65ef50edab8c819194404548b6b8e469): 新增的局部剪切应力观测已在 Grok 那边跑通,但同步到 Horsea 又被拦住:审查把上次许可限定为那一份文件。
你是否允许本轮 AMR 协作后续的代码、测试、日志和报告,经现有 SSH 同步到 Horsea,并只在 CelerisLab/tests/validation/multigrid 内审阅和运行小型 CPU 验证?包含这次新观测;每次仍限 256 MiB 内存、2 MiB 输出,不改环境或生产代码。
user(Sentinel_d0d3a42b2c088191aa8aebc105fb1b27): 允许,你用GPU验证都行
</transcript_evidence>
The coordinating instruction narrows this run to CPU observation-only. Future
GPU work was not performed or specified here; this is not unrestricted remote
operation authorization. Input transfer was already complete when received.
@@ -0,0 +1,56 @@
# Local-stress observable v1 — R / ratio / profile table
Spec: `18_local_stress_observable_spec_v1.md`
Reference: CPUREF-0.3 sha256 `bba2a06a9f6517b32079ffff15e4060d8c3b7ed35f16ca134e1877226c9e4e1e` (unchanged)
Script: `local_stress_observable_v1.py`
Stdout: `stdout_local_stress_observable_v1.txt`
Arrival: CPUREF `State.coarse_f` / `State.fine_f` at `phase='arrival_f'` tick=64 after 32 `advance_coarse_once`; uniforms use post-stream `f` after collide→stream.
Diagnostic values only — no thresholds or mechanism claim. φ probes phase structure only.
## Hashes
| file | sha256 |
|------|--------|
| local_stress_observable_v1.py | 0e2777990359a7cf2bb29884173b7b01de37c49bcf49e1f29fc59fe83d62b456 |
| stdout_local_stress_observable_v1.txt | 6a826e5ad729ce45af6879a07a1c659d8b4a21403fde5b9c6d9696cc6a5b09d4 |
| cpu_reference_v0.3.py | bba2a06a9f6517b32079ffff15e4060d8c3b7ed35f16ca134e1877226c9e4e1e |
## Hard checks
- ALL_HARD_CHECKS_PASS_V02 = True (22 Booleans, unchanged from shear v0.2)
- ALL_HARD_CHECKS_PASS_WITH_STRESS = True (+7 finite stress-array checks)
- runtime 0.77 s, CPU only, exit 0
## Scalar R at coarse step 32
| φ | R_A | R_B | R_C | R_A/R_B | R_A/R_C |
|---|-----|-----|-----|--------|--------|
| 0 | 1.011774619306 | 0.998555854025 | 1.008383635570 | 1.013237882716 | 1.003362791319 |
| π/2 | 1.011850480751 | 0.998555854025 | 1.008383635570 | 1.013313853874 | 1.003438022057 |
Transposed A (φ=π/2): R_A_T = 1.011850480751 (R only; no profile). Matches R_A at φ=π/2.
## Signed horizontal-face profile s(j) (x-avg over columns [4,12), / ρ0 ν k a_u)
Face rows flagged: j = 3, 4, 11, 12 (patch faces at y=4 and y=12).
### φ = 0 — face rows
| j | s_A | s_B | s_C | s_A−s_B | s_A−s_C |
|---|-----|-----|-----|--------|--------|
| 3 | 1.826885e-01 | 1.948086e-01 | 1.967259e-01 | -1.212007e-02 | -1.403738e-02 |
| 4 | -2.146875e-01 | -1.948086e-01 | -1.967259e-01 | -1.987891e-02 | -1.796161e-02 |
| 11 | -2.146875e-01 | -1.948086e-01 | -1.967259e-01 | -1.987891e-02 | -1.796161e-02 |
| 12 | 1.826885e-01 | 1.948086e-01 | 1.967259e-01 | -1.212007e-02 | -1.403738e-02 |
### φ = π/2 — face rows
| j | s_A | s_B | s_C | s_A−s_B | s_A−s_C |
|---|-----|-----|-----|--------|--------|
| 3 | -1.003712e+00 | -9.793689e-01 | -9.890078e-01 | -2.434262e-02 | -1.470367e-02 |
| 4 | -9.868392e-01 | -9.793689e-01 | -9.890078e-01 | -7.470343e-03 | 2.168600e-03 |
| 11 | 9.868392e-01 | 9.793689e-01 | 9.890078e-01 | 7.470343e-03 | -2.168600e-03 |
| 12 | 1.003712e+00 | 9.793689e-01 | 9.890078e-01 | 2.434262e-02 | 1.470367e-02 |
Full 16-row profiles are in stdout `SUMMARY_LINES` / `PROFILE_*` blocks.
## Implicit-definition checks (Claude's three)
1. a_u = each run's own projected amplitude from the same arrival state — **yes** (not U0·e^{−νk²t}).
2. Profile x-average over patch columns x∈[4,12) for A/B/C — **yes**.
3. Transposed run reports R only, no profile — **yes**; R_A_T = R_A(φ=π/2).
@@ -0,0 +1,300 @@
{
"created_utc": "2026-10-13T05:59:18.680177+00:00",
"head": "6e3756c587ec08ab6a55c4a1a5f4671822d3f0a0",
"git_status": " M pyproject.toml\n M setup.py\n M src/CelerisLab/__init__.py\n M src/CelerisLab/body/__init__.py\n M src/CelerisLab/body/ddf_patch.py\n M src/CelerisLab/body/manager.py\n M src/CelerisLab/body/preprocess/flag_overlay.py\n M src/CelerisLab/common/__init__.py\n M src/CelerisLab/common/checkpoint.py\n M src/CelerisLab/config.py\n M src/CelerisLab/configs/CONFIG.md\n M src/CelerisLab/cuda/__init__.py\n M src/CelerisLab/cuda/compiler_v2.py\n M src/CelerisLab/cuda/context.py\n M src/CelerisLab/lbm/__init__.py\n M src/CelerisLab/lbm/curved_links.py\n M src/CelerisLab/lbm/field.py\n M src/CelerisLab/lbm/initializers.py\n M src/CelerisLab/lbm/kernels/boundary/bounce_back.cuh\n M src/CelerisLab/lbm/kernels/boundary/curved_boundary.cuh\n M src/CelerisLab/lbm/kernels/boundary/inlet/common.cuh\n M src/CelerisLab/lbm/kernels/boundary/inlet/zou_he_local.cuh\n M src/CelerisLab/lbm/kernels/boundary/inlet_outlet.cuh\n M src/CelerisLab/lbm/kernels/config/config_grid.h\n M src/CelerisLab/lbm/kernels/config/config_method.h\n M src/CelerisLab/lbm/kernels/config/config_objects.h\n M src/CelerisLab/lbm/kernels/config/config_physics.h\n M src/CelerisLab/lbm/kernels/kernel_v2.cu\n M src/CelerisLab/lbm/kernels/operators/collision_mrt.cuh\n M src/CelerisLab/lbm/kernels/operators/collision_trt.cuh\n M src/CelerisLab/lbm/kernels/operators/forcing_guo.cuh\n M src/CelerisLab/lbm/kernels/step/aux_kernels.cu\n M src/CelerisLab/lbm/kernels/step/esopull_sync.cu\n M src/CelerisLab/lbm/kernels/step/init_flow.cu\n M src/CelerisLab/lbm/kernels/step/one_step_double.cu\n M src/CelerisLab/lbm/kernels/step/one_step_esopull.cu\n M src/CelerisLab/lbm/kernels/streaming/esopull_semantic_helpers.cuh\n M src/CelerisLab/lbm/stepper.py\n M src/CelerisLab/simulation.py\n M tests/integration/test_body_sync_e2e.py\n M tests/integration/test_ddf_patch.py\n M tests/integration/test_sync_bodies_skeleton.py\n M tests/integration/test_unified_obs.py\n M tests/postproc/experiment.ipynb\n M tests/validation/run_kan99b_rotating_cylinder.py\n M tests/validation/run_sah04_st_matrix.py\n M tests/validation/test_sensor_accuracy.py\n?? docs/design/README.md\n?? docs/design/integrated_architecture.md\n?? docs/design/multi_level_grid_architecture.md\n?? docs/design/multi_level_summary.md\n?? docs/design/multi_level_visual_reference.md\n?? docs/design/spatial_coupling_refinement.md\n?? docs/multilevel_grid_architecture_analysis.md\n?? research/audit-2026-10-09/REVIEW.zh-CN.md\n?? research/audit-2026-10-09/architecture-cpu-results.json\n?? research/audit-2026-10-09/architecture-report.md\n?? research/audit-2026-10-09/numerical-report.md\n?? research/audit-2026-10-09/numerical_collision_results.json\n?? research/audit-2026-10-09/numerical_compile_results.json\n?? research/audit-2026-10-09/numerical_semantics_results.json\n?? research/audit-2026-10-09/root-initializers-report.md\n?? research/audit-2026-10-09/state-report.md\n?? research/audit-2026-10-09/state_results.json\n?? research/design-2026-10-09/Contracts.lean\n?? research/design-2026-10-09/PLAN.zh-CN.md\n?? research/design-2026-10-09/api-architecture-study.md\n?? research/design-2026-10-09/grid-study.md\n?? research/design-2026-10-09/jet-study.md\n?? research/design-2026-10-09/jet_closure_check.py\n?? research/design-2026-10-09/jet_closure_results.json\n?? research/design-2026-10-09/math-and-history.md\n?? research/design-2026-10-09/math-checks.json\n?? research/design-2026-10-09/math_checks.py\n?? research/j1-2026-10-12/REVIEW.md\n?? research/j1-2026-10-12/baseline-status.txt\n?? research/j1-2026-10-12/baseline.json\n?? research/j1-2026-10-12/incremental.diff\n?? research/j1-2026-10-12/results.json\n?? research/j2-slot-2026-10-12/REVIEW.md\n?? research/j2-slot-2026-10-12/baseline-status.txt\n?? research/j2-slot-2026-10-12/baseline.json\n?? research/j2-slot-2026-10-12/incremental.diff\n?? research/j2-slot-2026-10-12/results.json\n?? research/j3-coverage-2026-10-12/REVIEW.md\n?? research/j3-coverage-2026-10-12/baseline-status.txt\n?? research/j3-coverage-2026-10-12/baseline.json\n?? research/j3-coverage-2026-10-12/incremental.diff\n?? research/j3-coverage-2026-10-12/negative-budget-20744.h5\n?? research/j3-coverage-2026-10-12/negative-end-20760.h5\n?? research/j3-coverage-2026-10-12/restart-21280.h5\n?? research/j3-coverage-2026-10-12/restart-reference-21296.h5\n?? research/j3-coverage-2026-10-12/results.json\n?? research/j3-coverage-2026-10-12/verification.json\n?? research/j3-lag-2026-10-12/REVIEW.md\n?? research/j3-lag-2026-10-12/baseline-status.txt\n?? research/j3-lag-2026-10-12/baseline.json\n?? research/j3-lag-2026-10-12/end-21280.h5\n?? research/j3-lag-2026-10-12/incremental.diff\n?? research/j3-lag-2026-10-12/results.json\n?? research/j3-lag-2026-10-12/start-20760.h5\n?? research/j3-lag-2026-10-12/trajectory.h5\n?? research/j3-offline-2026-10-12/REVIEW.md\n?? research/j3-offline-2026-10-12/lags.csv\n?? research/j3-offline-2026-10-12/localization.png\n?? research/j3-offline-2026-10-12/regions.csv\Line truncated
"hash_scope": "Tracked/nonignored untracked regular files and all prior baseline paths, including CPUREF and shear evidence. Excludes read-only ref tree, symlinks and bytecode.",
"hashes": {
".cursor/rules/cuda-style.mdc": "5810cf8cff793a11ba5dedafaa8a4e7d7d3debb728d837ca1903ff6dc8d6fdb9",
".cursor/rules/project-layout.mdc": "aeed1cd9d48447bcfcfb6a77250af7c5a3d500de4c6b2591c5684696fa04c3ec",
".cursor/rules/python-style.mdc": "ece75cb724d7dc46cb8dab7ecf8d710a90b503001da0d506ea4bf772ce395e21",
".cursorignore": "9f072faa815a6c6d4dc791a424201404f0f623338681ae3d2fcbdf86db1bd035",
".gitignore": "de25151f4cfdf29ca64032e509398e1829c7ded2449ccff803b2fd87d859ae6c",
"LICENSE": "e98392425e9a0007d0d69f0f7c912c2dc1b59061a6197223962aac45599c76ea",
"README.md": "982d0df8b766b1d5017ba702b75e8b3cec8d22f57af8f434be27ea251652596c",
"docs/audit/audit_round2.md": "0f14ad073a0725134e6391f961c324fd0013c7791fd410713e94ed1ad40b7385",
"docs/audit/body_refactor_notes.md": "8f978d7b01c9f49dca9eeaff0d163cec6da085e2f99ee5a5e803d72306e7a72f",
"docs/audit/config_diagnosis.md": "b601652df0cac36a8faf2b317b11853221353716a25184cd9b2dc41373a7f183",
"docs/audit/kernel_layer_audit.md": "89893c98ed7c2699157bf728ec0e79b0dd6aff4008ee5c7b77eb052de24033f1",
"docs/design/README.md": "98242c6960866d9b75aaf363f703edf02c4210bc38da1a340e9f6add49c6a3ce",
"docs/design/integrated_architecture.md": "c26b0d301321fe4b86d83d11c7e0b8d0c0545ee2995afa563966f004e9788132",
"docs/design/multi_level_grid_architecture.md": "e56a67d9129f2e3c311342e21a3fb2ed14bd492dd881949b251d5d9ac577bdee",
"docs/design/multi_level_summary.md": "eebf23e0bec9b154e5ce2128e2806e7558a7d4824b2c700cfd16afd1158b2354",
"docs/design/multi_level_visual_reference.md": "cad4bfbd561e5650ec297334529334b662a1ed35f7373c61f34ee22ecf1f66bd",
"docs/design/spatial_coupling_refinement.md": "36c878c7afad524999d89fa842297a98a0433e0283e78b36ca734ddbf8723ed8",
"docs/multilevel_grid_architecture_analysis.md": "90309730b1759d63531cb258c30db990ab71ca1b56ae47d0bbe2f4e2ae52012c",
"docs/performance_analysis.md": "ba01aaa4d3c02b61a8dc55fd00518ac291ebbed79b6574190d6b7234a1158fcb",
"docs/tests_overview.md": "ffc9591fd7baa4261b2c1ce9cfa7aa13a3554a8d5df712035806266a5eaade3f",
"docs/validation_specs/Force_region.md": "3092080afe4a30665fe1b721803621ba9d0dd5d20ad17826984d94efc160fdac",
"docs/validation_specs/Force_region_validation.md": "279a4484d1bfca0fd67aed4de3282d547aa048f89389420d8e5f2fd86db54fc2",
"docs/validation_specs/Kan99b_validation.md": "0d8bf74f2361f863809af1979bf8807adaa423f98321e1104a3d86d8c7a863cf",
"docs/validation_specs/Sah04_validation.md": "1d122d29e281b7f50801b148f3314a0e35fdc27ee7d757c0a661243aa6185fb0",
"docs/validation_specs/exp_ctrl_matrix.md": "b7250576c23292988b6ef4bcfd080f611d41edc413c3cebd0eadcc8596049470",
"docs/validation_specs/streakline_notes.md": "cd342d214c07eb608ac2e5b8697322c44c31dbf4d27dfdb5409de46ef474df4b",
"output/round3_compatibility_summary.md": "319f2e6abde4b34cc4ec90ef461d8ebb85dd5a3ac1736cfa7a3fb110f2a69df9",
"pyproject.toml": "f24ab9ad3a6a728a9382b1bce2e721612fc76635f35c6f96dfddaa853b6e5a9c",
"research/audit-2026-10-09/REVIEW.zh-CN.md": "2841fd3aa7a6baedbe1079d90915c8b05212b133824ed6abccaa1f09656eaefe",
"research/audit-2026-10-09/architecture-cpu-results.json": "e1b809210005c8765b13fddbb5ed710d15f6fcbb4c5788a4064f3e88808433ef",
"research/audit-2026-10-09/architecture-report.md": "861079dc3f4ced9fdc41bfb22002d32e190c0d630d3ba2f138f9dc7a949b8371",
"research/audit-2026-10-09/numerical-report.md": "970330b3a593f79f09866ce6ae82bc0ddd81226230d0a6ff06ae8ae756ee80da",
"research/audit-2026-10-09/numerical_collision_results.json": "51e5c263bb8cde82cedef2ccfdbf5ef657742a80218d7896b1ff877516e59693",
"research/audit-2026-10-09/numerical_compile_results.json": "c3b0ae02072a2ec408ada7513b542ec255f6855cb743a3ed7f91bd8f31504f44",
"research/audit-2026-10-09/numerical_semantics_results.json": "b95b065b594aa2911740dab216f87936c9bf7f7fa25acfda93b5738443564035",
"research/audit-2026-10-09/root-initializers-report.md": "ca448457c444949d5d0e1e10fa7121064510b77fc4c3512580900f0299219867",
"research/audit-2026-10-09/state-report.md": "f8708807efc2e109810c5955f7c1884a932668c0b3cb2963c2df3b09f2a3d5c4",
"research/audit-2026-10-09/state_results.json": "da9170df3e11231c73f20e5e79ed68e08966673d1dd52004ea6b6a279afc0dcd",
"research/design-2026-10-09/Contracts.lean": "2442d9a778ef20e8af3fecf23be6fea6d73c6299ff744c9664b652bc5ee3f034",
"research/design-2026-10-09/PLAN.zh-CN.md": "0341dd7ee306a040340c8e5dedb07a109e931c27dbf3c994d072aa78e3b6bc67",
"research/design-2026-10-09/api-architecture-study.md": "d6fb45ec784f0e1db55fb9f34e137b9f551db0b9b39fd4f0ef247a78fc34eedf",
"research/design-2026-10-09/grid-study.md": "4435dc1275ec5e15b118becc6ac391f306195d1e5beaa58037b1aff3bb2465c7",
"research/design-2026-10-09/jet-study.md": "a362142ef04a5ad5dbb4c9db9d221b1199dccec53780c8f2da49a15201cfe529",
"research/design-2026-10-09/jet_closure_check.py": "fde45d0f8518740ef5c0bf0fe7635d6adaf9a2e789927dd4e68e991c138ddc30",
"research/design-2026-10-09/jet_closure_results.json": "12cf7d400a206f9f9ec9ea6ad251fe6bb0232e27bcbed22fbc1ead2c0fc7d249",
"research/design-2026-10-09/math-and-history.md": "64f8c82e4949d6f58b46faa09800958714859c36cad20bbeeae8b449ae7a6099",
"research/design-2026-10-09/math-checks.json": "94750381954317cde8d649db26beaed8ea945666572a05030ca2b4d97d384011",
"research/design-2026-10-09/math_checks.py": "4254983a783fe4bad8888b3d7c243c87d991c7bbf242edb0f56f25cbaefee890",
"research/j1-2026-10-12/REVIEW.md": "13004a4f140acdcf59acb57e9e2dda1bb95763d30060f822a7c206c94b813a9f",
"research/j1-2026-10-12/baseline-status.txt": "ac398360e05b746b89ae0c3acfe202b5122e650a3bb1ff234ab26f874a303e64",
"research/j1-2026-10-12/baseline.json": "ad7afdf7b3913d11c07343e971fe2f43c2d1a2b99e3d5904a6ba89e3bb0b24fb",
"research/j1-2026-10-12/checkpoint-gpu.log": "adfe3d77d2e6c6f6184dccc0267b4404b20a7709505d5ff5affed0ed4a618083",
"research/j1-2026-10-12/cpu.log": "60cac097f7c4f11401df2aacb43a248640555e7628d2829c4680c71db34e9640",
"research/j1-2026-10-12/gpu-validation.log": "d1e9f2aea17a85eddcd94b81c700738ce073214857b55c28abd1219ff1edbed7",
"research/j1-2026-10-12/gpu.log": "8659a78ea52bbf8eb923d46ea71636ce63cd322352d5c98a74f631e666dd8cfb",
"research/j1-2026-10-12/incremental.diff": "a454c23da7b0011645949c0fbf64d0c41ecfdab5642b1b7c5119868005d3c721",
"research/j1-2026-10-12/results.json": "449f8a17dacac0fc6d2489c4b10bac330dbbbdb38fad3ce54f739ac8c6d48e85",
"research/j2-slot-2026-10-12/REVIEW.md": "10c4a94ffc32e0a2c4e0f6593b7cfc28479b5869f279f0b9d0b708fa3a47d1e6",
"research/j2-slot-2026-10-12/baseline-status.txt": "812616e2d941efcf854e1b37d6e662dda1aaf2b69074fcc04017133e13b72166",
"research/j2-slot-2026-10-12/baseline.json": "e82a1844145fd0cbc585c581b29f80b56193f122cfe1dfa7578f26904a720285",
"research/j2-slot-2026-10-12/cli.log": "9482ad7101d501f27f92e204b2f3ae5c6d91bd887b525aa31cb4a2a188f3cb92",
"research/j2-slot-2026-10-12/cpu.log": "91aba5961006909fbbb860429a9d3cfc930112a0d74c7788bc51c0a5897b47e5",
"research/j2-slot-2026-10-12/gpu-serialization-failure.log": "df804e53b35e7ddaad79a17842b4b5fd9d834e29ca2d56edb00e835848d09200",
"research/j2-slot-2026-10-12/gpu-validation.log": "223351b52c70fa4523289f3a1b3db435a11286379253280470900ffe397580a6",
"research/j2-slot-2026-10-12/incremental.diff": "c9e391bc91438cd912c1ed5a419705d4388522f672c67a066cfc055e814e699f",
"research/j2-slot-2026-10-12/results.json": "7d35ca7989aed5380e0a45de7f583972566fc516a051da63c53b35514e267494",
"research/j3-coverage-2026-10-12/REVIEW.md": "7293f3f3442855c8521698605aab504e026915a7bf1e77f5a24710d89a812443",
"research/j3-coverage-2026-10-12/baseline-status.txt": "31c949b11b20d7cd4202dba16882b5712aa1653da0cb2da2f0ebd69bf488040e",
"research/j3-coverage-2026-10-12/baseline.json": "d8844104f2665a25bfc417ee29becf89ab3955fac9105b5ddb12cfb1fe2a55b0",
"research/j3-coverage-2026-10-12/gpu-validation.log": "505cd5a5db46d7984aefb2a614151c25c4ace0e7d2a52e02c3e4f9792fd8eb95",
"research/j3-coverage-2026-10-12/incremental.diff": "98aa7855d5d6b91b4509a924c8a5aabab4339ba29c7e7dc2d91262c48e3848ca",
"research/j3-coverage-2026-10-12/negative-budget-20744.h5": "c09d75fc4a2cff68039a0956bd9d32b79b9cd3a6b386c72b4db54c214b110cd8",
"research/j3-coverage-2026-10-12/negative-end-20760.h5": "bd0bd063579d625e358762b1fdde5ac11bfcf739646a847fb77a4a2031011b9b",
"research/j3-coverage-2026-10-12/restart-21280.h5": "3e89c12c16f91f76ca9acd909e0fa7d42df6fbb5e870b299aa08ca42bc3e3dc9",
"research/j3-coverage-2026-10-12/restart-reference-21296.h5": "7192f510dd7820675aa1de130f55514136fba782cf77f92545189918a7e0c328",
"research/j3-coverage-2026-10-12/results.json": "02460981ad49c9cc13b4246abad1d8afd2599c61bfb545a6e32da9bbcd5c0db1",
"research/j3-coverage-2026-10-12/verification.json": "205986efd2b41635721b7fd20288be982348c765180102c7102750ba088f3a28",
"research/j3-lag-2026-10-12/REVIEW.md": "f388b64b0cc0413dc9865afda90ed24de666dda0d6cdb821b4363ce1b73631b3",
"research/j3-lag-2026-10-12/baseline-status.txt": "e0b69879084f54afac1a3bc3701f1de9819068190c815ae84421f02f83cad9f7",
"research/j3-lag-2026-10-12/baseline.json": "5e9a920813fe3d775110af85af92970d5245a7040ace804445e432353b77e489",
"research/j3-lag-2026-10-12/end-21280.h5": "19a94e9e8db6dd9ac981effe06032c351992250b58768d9c090409193893d588",
"research/j3-lag-2026-10-12/gpu-availability.log": "b227a519b8286849cfdf842573bd451803da048c6b27af9517f6b8964cd3aa39",
"research/j3-lag-2026-10-12/gpu-diagnostic.log": "97956b517072b7c34e2e29e2a23f87eafb19b9eda786a4b8149e4a2eaed76ee9",
"research/j3-lag-2026-10-12/host-check.log": "b2b6d262934b3abf9e0f0bdbde14b339cb977f7bffe391c17b51b5d067862dda",
"research/j3-lag-2026-10-12/incremental.diff": "ebdf66c72daf17b926482f79a1a30bf0eb2d27fc930a7bb62e5449ebcf72fcc7",
"research/j3-lag-2026-10-12/results.json": "00435ac7e402943e55e702fac1beb5af8cafe71967999658bcde2b29077b1fa8",
"research/j3-lag-2026-10-12/start-20760.h5": "6c4cba5928c77566c2afc32231311a3986831c18fea766faadebb101243399e2",
"research/j3-lag-2026-10-12/trajectory.h5": "2b51f8ec5e0cc8ca72c73ac1b51dd611158368e6d6de791d85150fa111ea1986",
"research/j3-offline-2026-10-12/REVIEW.md": "d9902c58498e73c29e054b23adb968f7e1e14421cba5c58d03bbc5a50159ae79",
"research/j3-offline-2026-10-12/cpu-analysis.log": "bc02a9b197fc15ae1b503ca54655a7622d4361f9b45b7848ff9c387ea3665f11",
"research/j3-offline-2026-10-12/lags.csv": "fbd9addd413f24c47f4411317e872265bb774e8e1724fe169412befa860ae94d",
"research/j3-offline-2026-10-12/localization.png": "a72907638e32b0ecfc2205bea438e7b408f40aad86217ce6ad9b4877840c9cfc",
"research/j3-offline-2026-10-12/regions.csv": "3a8fc640b61d70e3b7f73d2bf8ac2bd3f720adf39a90dfda6180430e0489efae",
"research/j3-offline-2026-10-12/results.json": "cdb857bea6f4e06ed15acf773505ce6d5147f8cb8ce0a53cc368ee267cde6361",
"research/j3-reservoir-2026-10-12/REVIEW.md": "1ea5f860728584ea6cbe40ba3994e40471102d8e2cf6d93e28fe47222cba0cab",
"research/j3-reservoir-2026-10-12/baseline-status.txt": "0ef1a8c9878c4053ebc1a7d4bace6d4ec38bf27ace167b4239ddbb1c6c897e20",
"research/j3-reservoir-2026-10-12/baseline.json": "847fefd1eae971985d34d04d89ee6d6f1c91f6940c54fe351d112faba7bc6838",
"research/j3-reservoir-2026-10-12/cpu.log": "b33f6c1a1b0ee67968c4cff85d491e46e30e0d6c796b552629714ab8b5dcead0",
"research/j3-reservoir-2026-10-12/gpu-availability-sandbox.log": "1d58470512e583a0acfabf6896ee5f31e5b493b8231aed54b864f64eb275b02c",
"research/j3-reservoir-2026-10-12/gpu-validation.log": "ff04024db197e332f37c912a96413e3251fd0186947348ffbc33af6f4a899f2c",
"research/j3-reservoir-2026-10-12/incremental.diff": "fae312831d71e46dd477a640b06ed927853a9e735d26bf9f5868927fa31cfa56",
"research/j3-reservoir-2026-10-12/results.json": "49685de7679a14860258abf1753aaa6d116ad709b868d907ddb40e74c9b845ea",
"research/repair-2026-10-10/TRON_HANDOFF.md": "f8aaa3d99cd133c2055d4adf396a0a57d14f6006aea19e87611bd1c2c1b53a88",
"research/repair-2026-10-10/baseline-hashes.json": "d6a7d5f9ec5bceb0e7927d55603d9c5e70105982cd945723454659b19ab476e6",
"research/repair-2026-10-10/baseline-status.txt": "074088d793014e3b8154c58718058c7d300fb45595f5129fa957ef1e4cec38e2",
"research/repair-2026-10-10/checkpoint-domain-2026-10-12.diff": "292b4bafe7a62d4fbbf7c165eb99929336edfcaa16b15f34f72ab71fcd928391",
"research/repair-2026-10-10/classic-results.json": "a5d15305f516fd378b54cf9029102be58a83a55a7bad4b8e058fcfe0cc9898f4",
"research/repair-2026-10-10/classic-signals.npz": "820c9a0b0713d7455f0a5839ac2cd5ee706086d1a26461225dcdb095673421e2",
"research/repair-2026-10-10/final-gpu.log": "988bb97256d17b88c14f3793b15880d727ecb285abe62e7d2ae27a16729651c3",
"research/repair-2026-10-10/final-unit.log": "a892a39ecf88125558538cadce2cb5dc46d106b993b164e03da4ebb0eee68cef",
"research/repair-2026-10-10/original-user-files/src/CelerisLab/lbm/kernels/config/config_grid.h": "8be3a7cf74ba30d7fd3074fed79e63dbda7311c4d03b454ea641bf298ffeaa8d",
"research/repair-2026-10-10/original-user-files/src/CelerisLab/lbm/kernels/config/config_method.h": "3db4e16ef2c6b22349d04e6aa8ab04bdfe0eb784f9f3a98277e15dbed1835d81",
"research/repair-2026-10-10/original-user-files/src/CelerisLab/lbm/kernels/config/config_objects.h": "dbb93c063586da278c15d95e23f84c12e728f4f5f1bbc3980fe9cedaa6fff90e",
"research/repair-2026-10-10/original-user-files/src/CelerisLab/lbm/kernels/config/config_physics.h": "26df33c2960ba36f3283e19b55b4ea92e50e4efda705f9ebfbf3f875a4092c59",
"research/repair-2026-10-10/original-user-files/tests/postproc/experiment.ipynb": "c6b45db1c57200f0777213ef8d44cb4996c1aa7a5fb42b968b77e56f51b4fca4",
"research/repair-2026-10-10/provenance.json": "a81b7e32ecf7182c9617df1b39bbb063a05ef89290ad501bac4573cd5e8a6832",
"research/repair-2026-10-10/repair-architecture.md": "49be42ff5c994017f3175e17efda14d84f0b68f8ecd239f66ccee38415b60c5a",
"research/repair-2026-10-10/repair-numerical.md": "0272ebfa8c519aad161c520542cf53156574661609b91fd5ccad7955fdf2bd7b",
"research/repair-2026-10-10/repair-state.md": "4d4aa1ec0c11a87d2c8380912e7ed74cf5c910ae42e5cc529effde36c9020969",
"research/repair-2026-10-10/simplification-checks.log": "c9f15e870d02003480adf1a7f2fe4a9aca66c1934c4477619f05c8a4798ba85b",
"setup.py": "bf07df7ec19de56710d2bb5f61873e09710cd059d46837dc3aa54f3e09ff9e06",
"src/CelerisLab/__init__.py": "21cc469bd6e970a1f9ff5970c8eea4602065e41fc881854759ee565ee55c10c6",
"src/CelerisLab/body/__init__.py": "d6ec221d51eaf7b1da11ef320b399599cf5b9422e5bc271a7264a273033e6928",
"src/CelerisLab/body/action_smoother.py": "b1a23ee6bbd4850b172cb8738c5c3546ee465a54189e6af9d8044f023d4687dc",
"src/CelerisLab/body/coupling/__init__.py": "c931f7eb318d48408c3e2febcc6917c88c8dcc1697cbf4329b1f340d94c35763",
"src/CelerisLab/body/coupling/soa_packer.py": "8ec26fd55ef74801bbd5ab6bd3d0a7dabc750cbd498aaac2ca4c61a0108ad3c9",
"src/CelerisLab/body/ddf_patch.py": "60fcfb7441e73bf290bcff41ca3a83da3e7ddad765d7247464e8f02e3043b4e2",
"src/CelerisLab/body/geometry/__init__.py": "ada88980ab672959aca9aa3a4c4aade3219524b2ab68110cd2a2f41e3e0ca90a",
"src/CelerisLab/body/geometry/base.py": "cceca14361ca2f34d34a3e43730e1a79b8ca81be00f0dd62e884db32b479419f",
"src/CelerisLab/body/geometry/circle.py": "7605ca7c21103f1d801ac73ab8dd18dffbdac425b2dee7b8858b283628a9e436",
"src/CelerisLab/body/manager.py": "eac22c9ac92c26e89c10bb089fb3c4156e4eb7bd0c1b1f6fe6dd32e2940a020e",
"src/CelerisLab/body/objects.py": "71692d098ebb5ab2d0e614cb9b7854f048b8b33fbe6707e61fd0e8ac35745017",
"src/CelerisLab/body/preprocess/__init__.py": "dfd9d58bc07f626ab23a70053e31b88a6d9165d2e4c76a4e9f48abe674d3d2ec",
"src/CelerisLab/body/preprocess/flag_overlay.py": "831fc9e9736b758847759a085ff133eb49ec91318ace4fda76f85960138ee300",
"src/CelerisLab/body/registry.py": "fbb7327780adbdc6da15ebdb799980daf32df22ee974af0893d7409f177bbb68",
"src/CelerisLab/body/sync_plan.py": "a73ac9ee361b2120d0b7bbebeaa2ccbf924ba27bd95d4dd4b383c10a39b2a409",
"src/CelerisLab/common/__init__.py": "d4dbde78bc97fccc9eabac9abae8f0f15c112c10ff8e9b45bd9401d4723df1ef",
"src/CelerisLab/common/_types.py": "aad2ff1a9033d4fd68783ad7123afb47201ddc58785cb6dc0246947037072a5f",
"src/CelerisLab/common/checkpoint.py": "5b7caf3896167a3f37c539b58837de6eb3f8085fa7bf5f821a09666cc16d43a4",
"src/CelerisLab/common/pathline.py": "a1b6efcc0a076d0f1dc8d49a595779426d7d5626b00072a59bac710ff02ad046",
"src/CelerisLab/common/preprocess.py": "7fc78a08857cf8e98519500b094a1d896af189b6b15658ff9b388ed51bed4515",
"src/CelerisLab/common/render.py": "0e055476257eb2bcd11e733766e52195de02f8fad228f570a3511a7c831bdc29",
"src/CelerisLab/common/streakline/__init__.py": "13ff1cfa416fdd721a08a659e76b5a5a99b8d3201add10a83b7b0bc654bc1eec",
"src/CelerisLab/common/streakline/_config.py": "a9185ef68e9c7b5d5a1dc0b04a28341e2ad91d13c145a7c106636a878cf0a605",
"src/CelerisLab/common/streakline/_integrate.py": "3fbd4368b2c8d0e7fda40dc65aac5df02b085008b4c68acd83cb7ae45d33a13b",
"src/CelerisLab/common/streakline/_render.py": "236cd637414ee318c4d66f9aed32110d8dc42a100d65fde06172f7cd0ba62c65",
"src/CelerisLab/common/streakline/_streakline.py": "1a3e08daa706b5f83cdeb337e9a945a36ddf7583c40af1d0bb9d825ac954df37",
"src/CelerisLab/config.py": "2f1bba7515f5bc08cb3a8d140bcafe7fa0689e01b3b06494697bb2956a71530e",
"src/CelerisLab/configs/CONFIG.md": "41cafdbe525366c08aa9d0416ea026ccf0026ba7123b8a9b65f968a80d928e3a",
"src/CelerisLab/configs/config_body.json": "055f261f0828ca1d4f2bb694bd15b72bbcabe31d552326208f28e37f761adab1",
"src/CelerisLab/configs/config_lbm.json": "17e4311f1f250c6ece59177a8b6ff856b69a016c7c10267e774b030a0a390865",
"src/CelerisLab/configs/config_lbm_flume_mrt_zouhe.json": "8f593321db05a563a42931603a228d61cbcba06dfbe113262d5cd0ad93c0fe79",
"src/CelerisLab/configs/config_lbm_flume_trt_regularized.json": "f4bba8e6a4339fc3c4eb14f6e2f57c4b22993c73703c773d853edfbe34736e56",
"src/CelerisLab/configs/config_lbm_three_cylinder_triangle.json": "eeb8e7149dbe4aa6b3a9562802735aa950750dfbe2d972a0727e788573afa817",
"src/CelerisLab/cuda/__init__.py": "0d01dff9f0399c8baba822aab5ca0122a135f011008ed8a499ebd9f7e5b06aea",
"src/CelerisLab/cuda/compiler_v2.py": "c4cc3ec4445c8d75e6a253dd87963877117a722bc73b9d4811806fc6045d08c1",
"src/CelerisLab/cuda/context.py": "013dd4ec6d01d2fbd11afdfb103eac6a273bd9f798d663d761b851eeb27885e9",
"src/CelerisLab/cuda/obs_layout.py": "5ffb2c3aeeaaaaeb64f2cd8febfbcf4ad9919e5414020ad753cfade0683b21c2",
"src/CelerisLab/lbm/__init__.py": "7f60fb3aaae81501b510d08c2fedff44fcb05657260eb10b6f5cc91e7204306b",
"src/CelerisLab/lbm/curved_links.py": "587f3f4638688c09c0850bef2f314780d03f06c9211abc5fd773fbeecabc3326",
"src/CelerisLab/lbm/descriptors.py": "c9f025dfc14da43b989047b84cc22bd05d5cc92c9ec695c1da68fdfb788e3f2b",
"src/CelerisLab/lbm/equilibrium.py": "2fb2f2bb7ff326d23abce80fc2a4c0907b17740ea3e29fe6ae079c5044783826",
"src/CelerisLab/lbm/field.py": "0e727eacc3706add4d8d15c418e9b631050871f831698d3ac689dd5f2c701b9b",
"src/CelerisLab/lbm/initializers.py": "dacf9586963e862d6d0a98ef1a066036be6f91e9d423720661d8ef2c1fb2df6a",
"src/CelerisLab/lbm/kernels/boundary/bounce_back.cuh": "aba3748c564ed91b161d268ef8b737b7c7be96a823063d201f3da684dd845233",
"src/CelerisLab/lbm/kernels/boundary/curved_boundary.cuh": "4bd761e81b32f4bb3238fbb1f6ea890cde0cc987cd8bbeb54e9df8b0e1b57914",
"src/CelerisLab/lbm/kernels/boundary/esopull_curved_helpers.cuh": "b9b474bc4edaff05681c5443235472d04072d0d775fc0eb9c5967faef52b0258",
"src/CelerisLab/lbm/kernels/boundary/ibm_kernels.cuh": "e6909b547dc8d64cdd8a76a90660243a8f5fee535caa161b52b4dd8b7c29934b",
"src/CelerisLab/lbm/kernels/boundary/inlet/channel_stabilized.cuh": "efe077afcbb6b731256a987c2fd79a1dbc470c902f87070d60421ea6cb13d4e2",
"src/CelerisLab/lbm/kernels/boundary/inlet/common.cuh": "f3cec54c8873c65b3dca4375605d2c89a8727765884d3954c235242fdff9c6ba",
"src/CelerisLab/lbm/kernels/boundary/inlet/equilibrium.cuh": "f0964c811b2c41a5aaa1c6d99c490b06e850c634eb8749f1f05ef61f93c2de1d",
"src/CelerisLab/lbm/kernels/boundary/inlet/regularized.cuh": "943d4a571818bacb89c70bccfaac202691121e3e385803ce6309123a0a03ddaf",
"src/CelerisLab/lbm/kernels/boundary/inlet/zou_he_local.cuh": "e73e66b853b1e4e0e30d8f4185d832aa414ce670a1813ce2b5459f2887f71f89",
"src/CelerisLab/lbm/kernels/boundary/inlet_outlet.cuh": "de8b213a6da42c2e5e9f8966199fc66ea4541b85144a90f3f5dbad3c6ab63b97",
"src/CelerisLab/lbm/kernels/boundary/outlet/pressure_neq.cuh": "c8b2adc66d12fe602076ddc9693c5c208711fcaddb58aa9a31401a269f51c4c4",
"src/CelerisLab/lbm/kernels/boundary/planar_velocity.cuh": "0b2f9e0bd483c199637e5672dc0ffc460bc383dd1804805befbeb4c5d8c708d1",
"src/CelerisLab/lbm/kernels/config.h": "7d1124125e0b354558297934460e64c760fb68cdd7bf6d01a1238bb2eaab8c37",
"src/CelerisLab/lbm/kernels/config/config_grid.h": "8be3a7cf74ba30d7fd3074fed79e63dbda7311c4d03b454ea641bf298ffeaa8d",
"src/CelerisLab/lbm/kernels/config/config_method.h": "3db4e16ef2c6b22349d04e6aa8ab04bdfe0eb784f9f3a98277e15dbed1835d81",
"src/CelerisLab/lbm/kernels/config/config_objects.h": "dbb93c063586da278c15d95e23f84c12e728f4f5f1bbc3980fe9cedaa6fff90e",
"src/CelerisLab/lbm/kernels/config/config_obs.h": "c11e2249359145b5c4cbaaf0487506fa77c1f4b82c7c169ddc574aa0babcd727",
"src/CelerisLab/lbm/kernels/config/config_physics.h": "26df33c2960ba36f3283e19b55b4ea92e50e4efda705f9ebfbf3f875a4092c59",
"src/CelerisLab/lbm/kernels/core/descriptors.cuh": "8440bc14857da9007982650f828a23608eec9f7cc4bf772e8c8dc1239cb45356",
"src/CelerisLab/lbm/kernels/core/flags.cuh": "0025705f24710330d9d9195f713879bfb650a85a3449baef0e196b831af104ab",
"src/CelerisLab/lbm/kernels/core/layout.cuh": "1fbd820021c89ac3efcde24145996cb0147769e607e498e61f308ed3e0b13706",
"src/CelerisLab/lbm/kernels/core/obs.cuh": "b742b77c9f61e1f020fe9922c3838ae9d855e17b381154958b58f10a22938922",
"src/CelerisLab/lbm/kernels/core/params.cuh": "6e18bf730d936d940e3d85452f0714a2eaae31bf41002f9fd520ec5b372878dd",
"src/CelerisLab/lbm/kernels/core/precision.cuh": "849df14b4cce50af52399e4b8f3e997196f3ae5f1163f68e28df3e6b2507a8c4",
"src/CelerisLab/lbm/kernels/kernel_v2.cu": "c7bd3fb705b77261ba2441c52a24a7e6a7865c165cba088a1b75201c4d29c408",
"src/CelerisLab/lbm/kernels/operators/collision_mrt.cuh": "aee444eb60c47a3fd518dca975d1af05425a0818a0ec6c3fb3f6150f60c2cb44",
"src/CelerisLab/lbm/kernels/operators/collision_srt.cuh": "6b7ff842f392c8f853d2d1a97cc69bfe50f21283f73e659404da07cf6c95f5e1",
"src/CelerisLab/lbm/kernels/operators/collision_trt.cuh": "9725b9840b9ad8b4ec7be61ff5d06d3151e86d1a87585c13f2fbf934d0d2c5f6",
"src/CelerisLab/lbm/kernels/operators/forcing_guo.cuh": "969a430c1af03f32e3bd0df95d805e64f56334717c44dd4ba208ba503062a24b",
"src/CelerisLab/lbm/kernels/operators/helpers.cuh": "0b3a4d95d7d19f5fec09e5423b8f4cc99f8a226b541967425967330da5a051ec",
"src/CelerisLab/lbm/kernels/operators/macro.cuh": "e27c1c410dc857be98da4596568e405eeaf88701d291ac0e398aa9cd23dee740",
"src/CelerisLab/lbm/kernels/operators/turbulence_smag.cuh": "ff7f000297ee0817e255ad9fcb6a13b647e3ddd5b206518d35f38d2895a9f501",
"src/CelerisLab/lbm/kernels/step/aux_kernels.cu": "bb7f07d898f0d5151e5bd0f45e6bd819c5e83a345a265b73204906ac3cc29db4",
"src/CelerisLab/lbm/kernels/step/esopull_macro.cu": "c73116020ca217ede1e4de27c8269c31f9d91e33433ac8252a21e9b14187c50f",
"src/CelerisLab/lbm/kernels/step/esopull_sync.cu": "c0ff3e72900c3ab89a05dd03684e96d3b740cf1672d565727fc2af165933d087",
"src/CelerisLab/lbm/kernels/step/init_flow.cu": "305be3bb12fc0d039acec1701baabcf0e8a35e683c49c34f2af8ca9867d2b29c",
"src/CelerisLab/lbm/kernels/step/one_step_double.cu": "f9f8242b38e8e0cf8425b75e2b0215bc15363c62eaa0fb43c761b8e0931bfdc9",
"src/CelerisLab/lbm/kernels/step/one_step_esopull.cu": "aa223b2744ae6c9125673df311a96ce588032c1ba58bebb11fd33ecb990f8ed4",
"src/CelerisLab/lbm/kernels/streaming/esopull_semantic_helpers.cuh": "dd5a9091628b079efd97e53fd49e52d09dcee88529235db77a5648e02937af6e",
"src/CelerisLab/lbm/kernels/streaming/esopull_single_buffer.cuh": "77ed4ab9a0ebc5ff62a91a7c39066ef395391ae36e9040a69fb2bd8b1626dc79",
"src/CelerisLab/lbm/kernels/streaming/pull_double_buffer.cuh": "b65d741ed78b7b62f99531ba0c0ce1936663d8dc9640e7d7d16c707f1baf6549",
"src/CelerisLab/lbm/stepper.py": "e9e51e3a902fbda086d4707c0487e7b1dea6246fab290a24d82bd52d4296410e",
"src/CelerisLab/simulation.py": "34d69e71844f553790c5a2bed0f8fbfb912a9498e95b500d1ef2ad41cae3b424",
"tests/audit/Force_region.md": "3092080afe4a30665fe1b721803621ba9d0dd5d20ad17826984d94efc160fdac",
"tests/audit/Force_region_validation.md": "279a4484d1bfca0fd67aed4de3282d547aa048f89389420d8e5f2fd86db54fc2",
"tests/audit/body\u5220\u51cf\u529f\u80fd.md": "e9f308a8cd0f0e7df5441c32a15f84c0bae50bc0e56b8728f6c6f2cf78596673",
"tests/audit/body\u91cd\u6784\u7b14\u8bb0.md": "8f978d7b01c9f49dca9eeaff0d163cec6da085e2f99ee5a5e803d72306e7a72f",
"tests/audit/\u517c\u5bb9\u6027\u6d4b\u8bd5.md": "9c1721a33b381b9c3810545772b022913da06617711b5ba13a3c2c991b81a7f7",
"tests/audit/\u5ba1\u8ba1.md": "0f14ad073a0725134e6391f961c324fd0013c7791fd410713e94ed1ad40b7385",
"tests/audit/\u5ba1\u8ba1\u62a5\u544a_kernel_layer.md": "89893c98ed7c2699157bf728ec0e79b0dd6aff4008ee5c7b77eb052de24033f1",
"tests/conftest.py": "fa0ec26667872c9c1011d608310d2551fd24719b5d216f06d923ff4c74c73237",
"tests/integration/__init__.py": "c354e43ba09b55a8013a2df2069438740b5f48b5917d855e52e33ab5d7da5a6c",
"tests/integration/_cases.py": "ab76ca1096d2d10fb05b3539aa8ed3c7e549619bae6900ac98723f6c3c908f2d",
"tests/integration/test_body_sync_e2e.py": "d29f01771f3512a4b3ad06fae4ee952327d7fd9f0476942402fe92e9e327fcec",
"tests/integration/test_ddf_patch.py": "dda2abba32ca13e17098232f2831a0b1b66439c35f8931d9997a0257250c1281",
"tests/integration/test_numerical_gpu.py": "002a6745929bd5ee86a9491ea9bc3f97602fb825ea17262ea190c9311881100e",
"tests/integration/test_runtime_contracts_gpu.py": "775e578e2e8072af32fc740b2698abbb79454235a0f3ee929ac4c75d747f8db5",
"tests/integration/test_state_gpu.py": "dde0948941e8abbc5ea10a3acb3a35abbaea576f36ecee0f1120fbcf7454d60b",
"tests/integration/test_sync_bodies_skeleton.py": "65f55a0980659b49ae0027f0642a27e2ebaead226ef083f233e878150884b07c",
"tests/integration/test_unified_obs.py": "4a681536099741d92bdc258525fe3374cbdbeba0d49996e53808381a1b6a13fa",
"tests/postproc/experiment.ipynb": "c6b45db1c57200f0777213ef8d44cb4996c1aa7a5fb42b968b77e56f51b4fca4",
"tests/postproc/run_exp_ctrl_matrix_streakline.py": "529d5f31a3862080f890c65177502b589710b2d960ddf131abaf7dc2f9e2a96f",
"tests/postproc/run_exp_ctrl_matrix_vorticity.py": "b7e0c4113111b9b677f321750c0055656ccfa4f45c25fe7846f3ed22f30d1467",
"tests/postproc/run_kan99b_streakline.py": "a2bbf3fc629ea170d2d4879317dbf2b81c43378a328100ac1f2ee8d9895666cb",
"tests/postproc/run_stealth_steady_sweep.py": "3c32c4dede7da77fd6cfbd3f7b1ff43bb11390aaba621883ec96c6c7fdad5af7",
"tests/postproc/streakline_triangle_clean.png": "aa6669de7af6f82e98af25698a15f494e9cea20cb911ad9a30fe52597d33bb79",
"tests/postproc/vorticity_triangle_clean.png": "f831b8143b50f038d5920a0658469622655f34176d30cf7216feff108aa2ecaf",
"tests/screening/run_config_sweep.py": "5030c99923815ed6ad39110cb56f748c579ff4c66c7c1a368ad1a6008017e2ff",
"tests/specs/Kan99b_validation.md": "0d8bf74f2361f863809af1979bf8807adaa423f98321e1104a3d86d8c7a863cf",
"tests/specs/Sah04_validation.md": "1d122d29e281b7f50801b148f3314a0e35fdc27ee7d757c0a661243aa6185fb0",
"tests/specs/exp_ctrl_matrix.md": "5d9dd2e703582572eb68afe3a7096ea43ec82aa03418d20ed283c5365031e433",
"tests/specs/kan99b.md": "b7e0669f0a6b677d902204f3427d1b3ac254bfe70c37d9cf995fb3e8f1fedfb1",
"tests/specs/sah04.md": "33dbe5e0fd63738abd055c4aa403c191b6de04e6efdbc568f1942c6d23c7459f",
"tests/specs/streakline_notes.md": "cd342d214c07eb608ac2e5b8697322c44c31dbf4d27dfdb5409de46ef474df4b",
"tests/unit/__init__.py": "17f57920d9c1ff46096ceb2af008eb38c4b98dc81ffa3c3d310e758e80ca1cd4",
"tests/unit/cpp/collision_regression.cpp": "f17acdff74ab82a62dc5402b42e3f6a149c262e89b140494164d6ebd630f5e14",
"tests/unit/cpp/planar_velocity.cpp": "8dea266984edc69d4e0e68007e038d7a587e99f84e33478d6656a66a56680933",
"tests/unit/cpp/reservoir.cpp": "c3eacaf0271400eb45ad559b571a8f7faa2a809d5f1857ffeb5592addce2cd0c",
"tests/unit/cpp/semantic_regression.cpp": "99dba074c0c0a32ea76026e7d54fc60af8e6d3dc5315c8900c470b4518878f39",
"tests/unit/cpp/slot_profile.cpp": "31ac58ccab175bf79fa59fc46d4c0842df18ab0a5e5916be84760d9da2b75788",
"tests/unit/test_body_flags.py": "ac6409157924e15a13a3d2cc2f1a09014b8b0198ba17c824f412ff20b19e2aac",
"tests/unit/test_build_contracts.py": "7bb237425e8bb481f312fa4841c484e280731e13c7cbb9a53dad3e7f98984ac3",
"tests/unit/test_context_ownership.py": "299fed30dd0f9bd4dadd8b27f50df2a6367bdb0ab2ca3f391f215fde7241f35a",
"tests/unit/test_equilibrium.py": "1ecbcc4547b1c846b75320463d828d6a36b6aae73208084fae476b1001c1bb50",
"tests/unit/test_initializers.py": "8b4e3358d925614984265ae73c142006b48fd1c3918cf84901f18afd9fe68c3a",
"tests/unit/test_numerical_operators.py": "6d1d560ef553a2af7adac7db3e325d96d7fe39073d5fe3e0e982439537385b27",
"tests/unit/test_pending_edits.py": "905a0dff23b123e8e38aaf364984c810fe51c39acd64aa271e343a4701d3d024",
"tests/unit/test_planar_velocity.py": "b656da0880b4234b1db805544edbe0d2473cbcc7c2c869c71d8251337f62a982",
"tests/unit/test_reservoir.py": "e718c78a53c3941aba7feb8ae4e8bb0b1726c1145de84febf91220c1917991c9",
"tests/unit/test_simulation_lifecycle.py": "77abdc33218c35e9c8b62dbd99ceddbaccd8417e7f0b539ea8859ea0175c663a",
"tests/unit/test_slot_velocity.py": "6a9494de9a32c350389ccbed58af48951f6b25a21a258537d2e8b73eb67cb11d",
"tests/unit/test_state_regressions.py": "0f69cfeb83428192f95688c76abcae7e5b9cf5f27c52bca4ac20c7f320044374",
"tests/unit/test_sync_plan.py": "983313ef783143231fa5a392f85f3bac011184773ccaf5d946504c206cabb721",
"tests/validation/analyze_j3_saved_frames.py": "438f67dac682b94c4950626f8de4fdcde48c3a4e9ecf8fdf1b0ada4b6e0e781a",
"tests/validation/diagnose_j3_lags.py": "286fcd65b3261667a847b9b26e213d0af92cf459faa6bbd774f78c8479ce31d7",
"tests/validation/multigrid/MULTIGRID_VERIFICATION_STRATEGY.md": "d4f3473da44abee6031a0e1bd4d0ca589077a18f15d2461836e4d2ebb98e458a",
"tests/validation/multigrid/cpu_reference.py": "bba2a06a9f6517b32079ffff15e4060d8c3b7ed35f16ca134e1877226c9e4e1e",
"tests/validation/multigrid/cpu_reference_v0.2.py": "b6adbad7da625ef6a6b97958ea9625030ed92676d0cada48e061c87bcf7ca8c9",
"tests/validation/multigrid/cpuref_0_3_evidence/README.txt": "1947ee0232b88b3cc2c506d0b0af5ba051ecc94aa8f7f09228ef3939cc95919b",
"tests/validation/multigrid/cpuref_0_3_evidence/README_grok.md": "065947e15b2242bce7d3eb05a3acdbb59939c621dcd5d31540ad4a1bd4416818",
"tests/validation/multigrid/cpuref_0_3_evidence/baseline.json": "0daaccee41cabeb17a00e2405e2c7fd0b80d36f2d01778eb39c9fd22b13d2d47",
"tests/validation/multigrid/cpuref_0_3_evidence/manifest.json": "2850ecaf2e19d010ba35eb54162371d82cc1a092831e08a03b6adf75a614988b",
"tests/validation/multigrid/cpuref_0_3_evidence/results_horsea.json": "914389afc39752bcd4132aa21fc8d5cbcf0ca75b1efd6a49becab15c2fa3361b",
"tests/validation/multigrid/cpuref_0_3_evidence/stdout_grok.txt": "73e4ef01138842981daaa534390f1463839e63833c11f4e8872f94f8eaadc717",
"tests/validation/multigrid/cpuref_0_3_evidence/stdout_horsea.txt": "457f1d2173496554c87ca6e61df518c0b8f1e0a28cdfd94b94ebbb61bc459d70",
"tests/validation/multigrid/shear_diagnostic_v0_2.py": "a8b1cf2f7abd00efc4d068bbd27bb2317144a6ca4c545d9b2e0dcf421eadebc6",
"tests/validation/multigrid/shear_v0_2_evidence/README.txt": "4306a34b6896bd6e7a5c2ca71d68e18450359239d0c7ad7a67a4e83e7155959a",
"tests/validation/multigrid/shear_v0_2_evidence/baseline.json": "98a7853341ea732762c7506694e3a867a7259bf110e9e461ea84f741fd9ab829",
"tests/validation/multigrid/shear_v0_2_evidence/comparison.json": "41c00372099dd04b6d323785e9eaf4fec09da1753d3d150ffa230800f904142f",
"tests/validation/multigrid/shear_v0_2_evidence/joint_report.md": "1860b8082108c8b8a87998af90cd0b81dce1c04e9f6c67b41e0912f9fef6cc9c",
"tests/validation/multigrid/shear_v0_2_evidence/manifest.json": "e42aa19e91608164698bea42da88fbbfab8b0f87cc37b27c5baf165453a4fdb0",
"tests/validation/multigrid/shear_v0_2_evidence/results_horsea.json": "c2d7ce8d16a0f47baff0788a153353dcf67088da974d9cd3d521b04ecd91ee05",
"tests/validation/multigrid/shear_v0_2_evidence/run_once.py": "6698a2e040c56be949b809387d4518eb0ba82d34cc9d99640da4f8bf3c35c23f",
"tests/validation/multigrid/shear_v0_2_evidence/source_manifest.json": "56fbd0259ff3d4dbd14ace52f64e249a435e9df91732b0e4027def2c344c2e6a",
"tests/validation/multigrid/shear_v0_2_evidence/stdout_grok.txt": "28ddd1267ca91a772f5a6bfc65d949c9a4ea7dac5c9ba3a0bdb168492810b670",
"tests/validation/multigrid/shear_v0_2_evidence/stdout_horsea.txt": "0577df5b3f5cb3c7b6e1ef2de71344f8fd3e6d959117487a06cbaf7f2afa3dea",
"tests/validation/multigrid/test_cpu_reference.py": "ade5d4827f971aed7174b59d83769e7aa542338e625a9fc8db1e8b1805cb74ca",
"tests/validation/multigrid/test_open_corner_negative_control.py": "59a6f8ca80cdd63cb7827fbebf9b4b555c3793f19dd6bca801544ec10b5cbe1b",
"tests/validation/multigrid/test_tron_additions.py": "8e7a6a90b85e64c7326719e7b8bca2f6d34fb4c80690f0685f7e291ab93bd2a4",
"tests/validation/run_j1.py": "51b758a271ff358f931b3140a80082294a67e66c2fec0f8c19319e37f92aadc4",
"tests/validation/run_j2_slot.py": "b7d2d3aa06fcafc3ac62ed4a50892afbdb7f86e5720ce75a39ce317b6f571dad",
"tests/validation/run_j3_coverage.py": "329869519b7078e854d96241a7aad8ef93f35ac9be83f0be502c3a93523c3b13",
"tests/validation/run_j3_reservoir.py": "47535bc3569ce68c888d38978bc4f9077fd763a17829c20c081be52bb18a2903",
"tests/validation/run_kan99b_rotating_cylinder.py": "323186429a100f36b41ab9b81ade2da6a47e93be3ccb7034a3a6b97f4ee8eb00",
"tests/validation/run_perf_baseline.py": "93dde2eb1132f45ea69e1e285ff421dc97a83651a22c79571f299c1909650721",
"tests/validation/run_poiseuille.py": "e529288e2ffa8e00d281a9006723954d60a96ae4d025e8f28656c09287d4ff46",
"tests/validation/run_sah04_st_matrix.py": "9b9c0ce063e07a316846635ee769b837ed26be6bf039f78f4219c10b516f8006",
"tests/validation/test_sensor_accuracy.py": "c6038a9e7a597a1738814bd15e6ecf357cfd271cdc2a132d47943c5280ac0ef9"
}
}
@@ -0,0 +1,560 @@
{
"comparison_scope": "Printed values only; no new numerical tolerances, no rerun, no claim of full-precision field equality. Current script prints lambda to 8dp, so old 10dp values are retained for provenance, not treated as changed results.",
"all_29_booleans_match_and_pass": true,
"boolean_checks": {
"finite_A_phi0.0000": true,
"cons_A_phi0.0000": true,
"finite_B_phi0.0000": true,
"cons_B_phi0.0000": true,
"finite_C_phi0.0000": true,
"cons_C_phi0.0000": true,
"finite_A_phi1.5708": true,
"cons_A_phi1.5708": true,
"finite_B_phi1.5708": true,
"cons_B_phi1.5708": true,
"finite_C_phi1.5708": true,
"cons_C_phi1.5708": true,
"finite_A_T_phi1.5708": true,
"cons_A_T_phi1.5708": true,
"transpose_ok": true,
"t0_AB_patch_ok_phi0.0000": true,
"t0_AC_out_ok_phi0.0000": true,
"init_mismatch_ok_phi0.0000": true,
"t0_AB_patch_ok_phi1.5708": true,
"t0_AC_out_ok_phi1.5708": true,
"init_mismatch_ok_phi1.5708": true,
"init_mismatch_ok_A_T_phi1.5708": true,
"stress_finite_C_phi0.0000": true,
"stress_finite_B_phi0.0000": true,
"stress_finite_A_phi0.0000": true,
"stress_finite_C_phi1.5708": true,
"stress_finite_B_phi1.5708": true,
"stress_finite_A_phi1.5708": true,
"stress_finite_A_T_phi1.5708": true
},
"original_22_boolean_names_match_previous_shear": true,
"sections": {
"hard_checks": {
"identical_at_printed_precision": true,
"line_count": 11,
"diff": []
},
"stress_finite_checks": {
"identical_at_printed_precision": true,
"line_count": 9,
"diff": []
},
"summary_lines": {
"identical_at_printed_precision": true,
"line_count": 15,
"diff": []
},
"decay_fits": {
"identical_at_printed_precision": true,
"line_count": 7,
"diff": []
}
},
"summary_numeric_comparisons": [
{
"name": "R phi0.0000",
"horsea_values": {
"A": "1.011774619306",
"B": "0.998555854025",
"C": "1.008383635570",
"A/B": "1.013237882716",
"A/C": "1.003362791319"
},
"horsea_minus_grok": {
"A": "0E-12",
"B": "0E-12",
"C": "0E-12",
"A/B": "0E-12",
"A/C": "0E-12"
}
},
{
"name": "PROFILE_A phi0.0000",
"horsea_values": [
"9.91559495e-01",
"8.38223110e-01",
"5.53937362e-01",
"1.82688509e-01",
"-2.14687493e-01",
"-5.72526539e-01",
"-8.48939033e-01",
"-9.98789772e-01",
"-9.98789772e-01",
"-8.48939033e-01",
"-5.72526539e-01",
"-2.14687493e-01",
"1.82688509e-01",
"5.53937362e-01",
"8.38223110e-01",
"9.91559495e-01"
],
"horsea_minus_grok": [
"0E-9",
"0E-9",
"0E-9",
"0E-9",
"0E-9",
"0E-9",
"0E-9",
"0E-9",
"0E-9",
"0E-9",
"0E-9",
"0E-9",
"0E-9",
"0E-9",
"0E-9",
"0E-9"
]
},
{
"name": "PROFILE_B phi0.0000",
"horsea_values": [
"9.79368883e-01",
"8.30268849e-01",
"5.54767909e-01",
"1.94808583e-01",
"-1.94808583e-01",
"-5.54767909e-01",
"-8.30268849e-01",
"-9.79368883e-01",
"-9.79368883e-01",
"-8.30268849e-01",
"-5.54767909e-01",
"-1.94808583e-01",
"1.94808583e-01",
"5.54767909e-01",
"8.30268849e-01",
"9.79368883e-01"
],
"horsea_minus_grok": [
"0E-9",
"0E-9",
"0E-9",
"0E-9",
"0E-9",
"0E-9",
"0E-9",
"0E-9",
"0E-9",
"0E-9",
"0E-9",
"0E-9",
"0E-9",
"0E-9",
"0E-9",
"0E-9"
]
},
{
"name": "PROFILE_C phi0.0000",
"horsea_values": [
"9.89007827e-01",
"8.38440351e-01",
"5.60227931e-01",
"1.96725888e-01",
"-1.96725888e-01",
"-5.60227931e-01",
"-8.38440351e-01",
"-9.89007827e-01",
"-9.89007827e-01",
"-8.38440351e-01",
"-5.60227931e-01",
"-1.96725888e-01",
"1.96725888e-01",
"5.60227931e-01",
"8.38440351e-01",
"9.89007827e-01"
],
"horsea_minus_grok": [
"0E-9",
"0E-9",
"0E-9",
"0E-9",
"0E-9",
"0E-9",
"0E-9",
"0E-9",
"0E-9",
"0E-9",
"0E-9",
"0E-9",
"0E-9",
"0E-9",
"0E-9",
"0E-9"
]
},
{
"name": "PROFILE_A-B phi0.0000",
"horsea_values": [
"1.21906117e-02",
"7.95426140e-03",
"-8.30546408e-04",
"-1.21200743e-02",
"-1.98789102e-02",
"-1.77586304e-02",
"-1.86701838e-02",
"-1.94208889e-02",
"-1.94208889e-02",
"-1.86701838e-02",
"-1.77586304e-02",
"-1.98789102e-02",
"-1.21200743e-02",
"-8.30546408e-04",
"7.95426140e-03",
"1.21906117e-02"
],
"horsea_minus_grok": [
"0E-10",
"0E-11",
"0E-12",
"0E-10",
"0E-10",
"0E-10",
"0E-10",
"0E-10",
"0E-10",
"0E-10",
"0E-10",
"0E-10",
"0E-10",
"0E-12",
"0E-11",
"0E-10"
]
},
{
"name": "PROFILE_A-C phi0.0000",
"horsea_values": [
"2.55166826e-03",
"-2.17240307e-04",
"-6.29056929e-03",
"-1.40373794e-02",
"-1.79616052e-02",
"-1.22986075e-02",
"-1.04986821e-02",
"-9.78194544e-03",
"-9.78194544e-03",
"-1.04986821e-02",
"-1.22986075e-02",
"-1.79616052e-02",
"-1.40373794e-02",
"-6.29056929e-03",
"-2.17240307e-04",
"2.55166826e-03"
],
"horsea_minus_grok": [
"0E-11",
"0E-12",
"0E-11",
"0E-10",
"0E-10",
"0E-10",
"0E-10",
"0E-11",
"0E-11",
"0E-10",
"0E-10",
"0E-10",
"0E-10",
"0E-11",
"0E-12",
"0E-11"
]
},
{
"name": "R phi1.5708",
"horsea_values": {
"A": "1.011850480751",
"B": "0.998555854025",
"C": "1.008383635570",
"A/B": "1.013313853874",
"A/C": "1.003438022057"
},
"horsea_minus_grok": {
"A": "0E-12",
"B": "0E-12",
"C": "0E-12",
"A/B": "0E-12",
"A/C": "0E-12"
}
},
{
"name": "PROFILE_A phi1.5708",
"horsea_values": [
"-1.99435683e-01",
"-5.68175817e-01",
"-8.52874579e-01",
"-1.00371150e+00",
"-9.86839227e-01",
"-8.33347608e-01",
"-5.58176761e-01",
"-1.96153580e-01",
"1.96153580e-01",
"5.58176761e-01",
"8.33347608e-01",
"9.86839227e-01",
"1.00371150e+00",
"8.52874579e-01",
"5.68175817e-01",
"1.99435683e-01"
],
"horsea_minus_grok": [
"0E-9",
"0E-9",
"0E-9",
"0E-8",
"0E-9",
"0E-9",
"0E-9",
"0E-9",
"0E-9",
"0E-9",
"0E-9",
"0E-9",
"0E-8",
"0E-9",
"0E-9",
"0E-9"
]
},
{
"name": "PROFILE_B phi1.5708",
"horsea_values": [
"-1.94808583e-01",
"-5.54767909e-01",
"-8.30268849e-01",
"-9.79368883e-01",
"-9.79368883e-01",
"-8.30268849e-01",
"-5.54767909e-01",
"-1.94808583e-01",
"1.94808583e-01",
"5.54767909e-01",
"8.30268849e-01",
"9.79368883e-01",
"9.79368883e-01",
"8.30268849e-01",
"5.54767909e-01",
"1.94808583e-01"
],
"horsea_minus_grok": [
"0E-9",
"0E-9",
"0E-9",
"0E-9",
"0E-9",
"0E-9",
"0E-9",
"0E-9",
"0E-9",
"0E-9",
"0E-9",
"0E-9",
"0E-9",
"0E-9",
"0E-9",
"0E-9"
]
},
{
"name": "PROFILE_C phi1.5708",
"horsea_values": [
"-1.96725888e-01",
"-5.60227931e-01",
"-8.38440351e-01",
"-9.89007827e-01",
"-9.89007827e-01",
"-8.38440351e-01",
"-5.60227931e-01",
"-1.96725888e-01",
"1.96725888e-01",
"5.60227931e-01",
"8.38440351e-01",
"9.89007827e-01",
"9.89007827e-01",
"8.38440351e-01",
"5.60227931e-01",
"1.96725888e-01"
],
"horsea_minus_grok": [
"0E-9",
"0E-9",
"0E-9",
"0E-9",
"0E-9",
"0E-9",
"0E-9",
"0E-9",
"0E-9",
"0E-9",
"0E-9",
"0E-9",
"0E-9",
"0E-9",
"0E-9",
"0E-9"
]
},
{
"name": "PROFILE_A-B phi1.5708",
"horsea_values": [
"-4.62709942e-03",
"-1.34079086e-02",
"-2.26057300e-02",
"-2.43426175e-02",
"-7.47034346e-03",
"-3.07875936e-03",
"-3.40885205e-03",
"-1.34499672e-03",
"1.34499672e-03",
"3.40885205e-03",
"3.07875936e-03",
"7.47034346e-03",
"2.43426175e-02",
"2.26057300e-02",
"1.34079086e-02",
"4.62709942e-03"
],
"horsea_minus_grok": [
"0E-11",
"0E-10",
"0E-10",
"0E-10",
"0E-11",
"0E-11",
"0E-11",
"0E-11",
"0E-11",
"0E-11",
"0E-11",
"0E-11",
"0E-10",
"0E-10",
"0E-10",
"0E-11"
]
},
{
"name": "PROFILE_A-C phi1.5708",
"horsea_values": [
"-2.70979435e-03",
"-7.94788568e-03",
"-1.44342283e-02",
"-1.47036740e-02",
"2.16860001e-03",
"5.09274236e-03",
"2.05117083e-03",
"5.72308350e-04",
"-5.72308350e-04",
"-2.05117083e-03",
"-5.09274236e-03",
"-2.16860001e-03",
"1.47036740e-02",
"1.44342283e-02",
"7.94788568e-03",
"2.70979435e-03"
],
"horsea_minus_grok": [
"0E-11",
"0E-11",
"0E-10",
"0E-10",
"0E-11",
"0E-11",
"0E-11",
"0E-12",
"0E-12",
"0E-11",
"0E-11",
"0E-11",
"0E-10",
"0E-10",
"0E-11",
"0E-11"
]
},
{
"name": "R A_T_phi1.5708",
"horsea_values": {
"R": "1.011850480751"
},
"horsea_minus_grok": {
"R": "0E-12"
}
},
{
"grok": "TRANSPOSE err=6.661338e-16 ok=True",
"horsea": "TRANSPOSE err=6.661338e-16 ok=True",
"identical": true
},
{
"grok": "REF_SHA256=bba2a06a9f6517b32079ffff15e4060d8c3b7ed35f16ca134e1877226c9e4e1e",
"horsea": "REF_SHA256=bba2a06a9f6517b32079ffff15e4060d8c3b7ed35f16ca134e1877226c9e4e1e",
"identical": true
}
],
"lambda_comparisons": [
{
"run": "A_phi0.0000",
"horsea_current_8dp": "0.01585222",
"grok_current_8dp": "0.01585222",
"horsea_previous_shear_8dp": "0.01585222",
"horsea_previous_shear_10dp": "0.0158522189",
"current_minus_previous_at_8dp": "0E-8",
"current_minus_grok_at_8dp": "0E-8"
},
{
"run": "B_phi0.0000",
"horsea_current_8dp": "0.01539917",
"grok_current_8dp": "0.01539917",
"horsea_previous_shear_8dp": "0.01539917",
"horsea_previous_shear_10dp": "0.0153991657",
"current_minus_previous_at_8dp": "0E-8",
"current_minus_grok_at_8dp": "0E-8"
},
{
"run": "C_phi0.0000",
"horsea_current_8dp": "0.01554973",
"grok_current_8dp": "0.01554973",
"horsea_previous_shear_8dp": "0.01554973",
"horsea_previous_shear_10dp": "0.0155497331",
"current_minus_previous_at_8dp": "0E-8",
"current_minus_grok_at_8dp": "0E-8"
},
{
"run": "A_phi1.5708",
"horsea_current_8dp": "0.01584192",
"grok_current_8dp": "0.01584192",
"horsea_previous_shear_8dp": "0.01584192",
"horsea_previous_shear_10dp": "0.0158419175",
"current_minus_previous_at_8dp": "0E-8",
"current_minus_grok_at_8dp": "0E-8"
},
{
"run": "B_phi1.5708",
"horsea_current_8dp": "0.01539917",
"grok_current_8dp": "0.01539917",
"horsea_previous_shear_8dp": "0.01539917",
"horsea_previous_shear_10dp": "0.0153991657",
"current_minus_previous_at_8dp": "0E-8",
"current_minus_grok_at_8dp": "0E-8"
},
{
"run": "C_phi1.5708",
"horsea_current_8dp": "0.01554973",
"grok_current_8dp": "0.01554973",
"horsea_previous_shear_8dp": "0.01554973",
"horsea_previous_shear_10dp": "0.0155497331",
"current_minus_previous_at_8dp": "0E-8",
"current_minus_grok_at_8dp": "0E-8"
}
],
"stress_transpose_hard_assertion_present": false
}
@@ -0,0 +1,98 @@
{
"verified_utc": "2026-10-13T06:04:36.332815+00:00",
"head": "6e3756c587ec08ab6a55c4a1a5f4671822d3f0a0",
"old_files_checked": 292,
"old_files_changed": [],
"old_git_status_entries_removed": [],
"only_authorized_new_paths": true,
"archive_path": "/tmp/celerislab-local-stress-input-20261013-0e277799.tar",
"archive_sha256": "5834b23711496beb152188df5f47ff8175baf7e52543774401bd2c1183433eed",
"reference_sha256": "bba2a06a9f6517b32079ffff15e4060d8c3b7ed35f16ca134e1877226c9e4e1e",
"inputs": [
{
"path": "tests/validation/multigrid/local_stress_v1_evidence/TABLE_local_stress_observable_v1.md",
"bytes": 2967,
"sha256": "d8ff0568d9c473a4bb09396a8948ddc8dc5af2f0f3a23ac84d238814fc779501",
"matches_original_tar_bytes": true
},
{
"path": "tests/validation/multigrid/local_stress_observable_v1.py",
"bytes": 32574,
"sha256": "0e2777990359a7cf2bb29884173b7b01de37c49bcf49e1f29fc59fe83d62b456",
"matches_original_tar_bytes": true
},
{
"path": "tests/validation/multigrid/local_stress_v1_evidence/stdout_local_stress_observable_v1.txt",
"bytes": 12238,
"sha256": "6a826e5ad729ce45af6879a07a1c659d8b4a21403fde5b9c6d9696cc6a5b09d4",
"matches_original_tar_bytes": true
},
{
"path": "tests/validation/multigrid/local_stress_v1_evidence/source_manifest.json",
"bytes": 622,
"sha256": "d2cf90b73458f493c665c9a281d06aef0c190cf0d143639fb77ab838c78f020c",
"matches_original_tar_bytes": true
}
],
"input_bytes_unchanged": true,
"blocking_numerical_objections": [],
"execution_attempts": 1,
"hard_checks_passed": 29,
"grok_blocks_identical_at_printed_precision": true,
"previous_lambda_matches_at_8dp": true,
"claude_implementation_code_review": "Not completed: paused due to API error. Specification discussion is not code review.",
"horsea_review": "Completed before single bounded rerun; no substantive objection within diagnostic scope.",
"stress_transpose_hard_assertion": false,
"new_files_except_this_manifest": [
{
"path": "tests/validation/multigrid/local_stress_observable_v1.py",
"bytes": 32574,
"sha256": "0e2777990359a7cf2bb29884173b7b01de37c49bcf49e1f29fc59fe83d62b456"
},
{
"path": "tests/validation/multigrid/local_stress_v1_evidence/README.txt",
"bytes": 8239,
"sha256": "4f62314876047ee437bb9ecbf84798d2a9f6e85f6a3aef260277b85bcdb35fae"
},
{
"path": "tests/validation/multigrid/local_stress_v1_evidence/TABLE_local_stress_observable_v1.md",
"bytes": 2967,
"sha256": "d8ff0568d9c473a4bb09396a8948ddc8dc5af2f0f3a23ac84d238814fc779501"
},
{
"path": "tests/validation/multigrid/local_stress_v1_evidence/baseline.json",
"bytes": 43991,
"sha256": "64f6541447afbd15b1b15d802ad6f1b5042aaf84e7d4d2414e4ed4c52cf70507"
},
{
"path": "tests/validation/multigrid/local_stress_v1_evidence/comparison.json",
"bytes": 13248,
"sha256": "be236671a501c31c06f7e266f6e0c0c2a89aede321a483452050ff37bf84c84a"
},
{
"path": "tests/validation/multigrid/local_stress_v1_evidence/results_horsea.json",
"bytes": 2671,
"sha256": "f17b4644d19eb75d55deb7021ab679cb9e7922a2b46f1cacf8b6da6bfb9a2690"
},
{
"path": "tests/validation/multigrid/local_stress_v1_evidence/run_once.py",
"bytes": 4313,
"sha256": "e629800291ef65ffea8555f66ec80bf15200552540b2a493a677bfb53d0830b3"
},
{
"path": "tests/validation/multigrid/local_stress_v1_evidence/source_manifest.json",
"bytes": 622,
"sha256": "d2cf90b73458f493c665c9a281d06aef0c190cf0d143639fb77ab838c78f020c"
},
{
"path": "tests/validation/multigrid/local_stress_v1_evidence/stdout_horsea.txt",
"bytes": 17091,
"sha256": "882f2cfb1dbdf82cce63c011397e7c2e6307bbcfec42a3510648d328cd6ddcfe"
},
{
"path": "tests/validation/multigrid/local_stress_v1_evidence/stdout_local_stress_observable_v1.txt",
"bytes": 12238,
"sha256": "6a826e5ad729ce45af6879a07a1c659d8b4a21403fde5b9c6d9696cc6a5b09d4"
}
]
}
@@ -0,0 +1,73 @@
{
"started_utc": "2026-10-13T06:01:08.222086+00:00",
"cwd": "/home/frank14f/CelerisLab/tests/validation/multigrid",
"parent_command": [
"env",
"OPENBLAS_NUM_THREADS=1",
"PYTHONDONTWRITEBYTECODE=1",
"PYTHONNOUSERSITE=1",
"PYTHONOPTIMIZE=0",
"PYTHONPATH=/home/frank14f/CelerisLab/tests/validation/multigrid",
"CPU_REFERENCE_PATH=/home/frank14f/CelerisLab/tests/validation/multigrid/cpu_reference.py",
"/usr/bin/prlimit",
"--as=268435456",
"--fsize=2097152",
"--core=0",
"--",
"/home/frank14f/anaconda3/envs/pycuda_3_10/bin/python",
"-B",
"/home/frank14f/CelerisLab/tests/validation/multigrid/local_stress_v1_evidence/run_once.py"
],
"script_command": [
"/usr/bin/prlimit",
"--as=268435456",
"--fsize=2097152",
"--core=0",
"--",
"/home/frank14f/anaconda3/envs/pycuda_3_10/bin/python",
"-B",
"/home/frank14f/CelerisLab/tests/validation/multigrid/local_stress_observable_v1.py"
],
"environment": {
"OPENBLAS_NUM_THREADS": "1",
"PYTHONDONTWRITEBYTECODE": "1",
"PYTHONNOUSERSITE": "1",
"PYTHONOPTIMIZE": "0",
"PYTHONPATH": "/home/frank14f/CelerisLab/tests/validation/multigrid",
"CPU_REFERENCE_PATH": "/home/frank14f/CelerisLab/tests/validation/multigrid/cpu_reference.py"
},
"python_version": "3.10.13 (main, Sep 11 2023, 13:44:35) [GCC 11.2.0]",
"numpy_version_from_installed_metadata": "1.26.4",
"platform": "Linux-6.8.0-138-generic-x86_64-with-glibc2.35",
"hard_limits": {
"address_space_bytes": [
268435456,
268435456
],
"output_file_bytes": [
2097152,
2097152
],
"core_bytes": [
0,
0
]
},
"input_hashes_verified_before_execution": {
"local_stress_observable_v1.py": "0e2777990359a7cf2bb29884173b7b01de37c49bcf49e1f29fc59fe83d62b456",
"stdout_local_stress_observable_v1.txt": "6a826e5ad729ce45af6879a07a1c659d8b4a21403fde5b9c6d9696cc6a5b09d4",
"TABLE_local_stress_observable_v1.md": "d8ff0568d9c473a4bb09396a8948ddc8dc5af2f0f3a23ac84d238814fc779501",
"source_manifest.json": "d2cf90b73458f493c665c9a281d06aef0c190cf0d143639fb77ab838c78f020c"
},
"archive_sha256_verified_before_execution": "5834b23711496beb152188df5f47ff8175baf7e52543774401bd2c1183433eed",
"reference_sha256_verified_before_execution": "bba2a06a9f6517b32079ffff15e4060d8c3b7ed35f16ca134e1877226c9e4e1e",
"planned_runs": 7,
"coarse_steps_per_run": 32,
"attempt": 1,
"returncode": 0,
"elapsed_seconds": 2.435032418987248,
"child_peak_rss_MiB": 38.41796875,
"parent_peak_rss_MiB": 18.75,
"completed_utc": "2026-10-13T06:01:10.671541+00:00",
"stdout_bytes": 17091
}
@@ -0,0 +1,84 @@
"""Bounded execution recorder; refuses to overwrite evidence or repeat a run."""
import datetime
import hashlib
import importlib.metadata
import json
import os
from pathlib import Path
import platform
import resource
import shlex
import subprocess
import sys
import time
evidence = Path(__file__).resolve().parent
base = evidence.parent
script = base / "local_stress_observable_v1.py"
reference = base / "cpu_reference.py"
expected_env = {
"OPENBLAS_NUM_THREADS": "1",
"PYTHONDONTWRITEBYTECODE": "1",
"PYTHONNOUSERSITE": "1",
"PYTHONOPTIMIZE": "0",
"PYTHONPATH": str(base),
"CPU_REFERENCE_PATH": str(reference),
}
limits = {
"address_space_bytes": (resource.RLIMIT_AS, 268435456),
"output_file_bytes": (resource.RLIMIT_FSIZE, 2097152),
"core_bytes": (resource.RLIMIT_CORE, 0),
}
assert all(os.environ.get(k) == v for k, v in expected_env.items())
assert all(resource.getrlimit(key) == (value, value) for key, value in limits.values())
assert sys.executable == "/home/frank14f/anaconda3/envs/pycuda_3_10/bin/python"
assert hashlib.sha256(script.read_bytes()).hexdigest() == "0e2777990359a7cf2bb29884173b7b01de37c49bcf49e1f29fc59fe83d62b456"
assert hashlib.sha256(reference.read_bytes()).hexdigest() == "bba2a06a9f6517b32079ffff15e4060d8c3b7ed35f16ca134e1877226c9e4e1e"
input_hashes = {'local_stress_observable_v1.py': '0e2777990359a7cf2bb29884173b7b01de37c49bcf49e1f29fc59fe83d62b456', 'stdout_local_stress_observable_v1.txt': '6a826e5ad729ce45af6879a07a1c659d8b4a21403fde5b9c6d9696cc6a5b09d4', 'TABLE_local_stress_observable_v1.md': 'd8ff0568d9c473a4bb09396a8948ddc8dc5af2f0f3a23ac84d238814fc779501', 'source_manifest.json': 'd2cf90b73458f493c665c9a281d06aef0c190cf0d143639fb77ab838c78f020c'}
for name, digest in input_hashes.items():
path = (base if name.endswith(".py") else evidence) / name
assert hashlib.sha256(path.read_bytes()).hexdigest() == digest, name
archive_path = Path("/tmp/celerislab-local-stress-input-20261013-0e277799.tar")
archive_sha = "5834b23711496beb152188df5f47ff8175baf7e52543774401bd2c1183433eed"
assert hashlib.sha256(archive_path.read_bytes()).hexdigest() == archive_sha
log_path = evidence / "stdout_horsea.txt"
result_path = evidence / "results_horsea.json"
assert not log_path.exists() and not result_path.exists(), "Existing execution evidence; do not rerun"
prefix = ["/usr/bin/prlimit", "--as=268435456", "--fsize=2097152", "--core=0", "--", sys.executable, "-B"]
command = prefix + [str(script)]
report = {
"started_utc": datetime.datetime.now(datetime.timezone.utc).isoformat(),
"cwd": str(base),
"parent_command": ["env"] + [f"{k}={v}" for k, v in expected_env.items()] + prefix + [str(Path(__file__).resolve())],
"script_command": command,
"environment": expected_env,
"python_version": sys.version,
"numpy_version_from_installed_metadata": importlib.metadata.version("numpy"),
"platform": platform.platform(),
"hard_limits": {name: resource.getrlimit(key) for name, (key, _) in limits.items()},
"input_hashes_verified_before_execution": input_hashes,
"archive_sha256_verified_before_execution": archive_sha,
"reference_sha256_verified_before_execution": hashlib.sha256(reference.read_bytes()).hexdigest(),
"planned_runs": 7,
"coarse_steps_per_run": 32,
"attempt": 1,
}
with log_path.open("xb", buffering=0) as log:
log.write(("RECORDER " + json.dumps(report) + "\nCOMMAND " + shlex.join(command) + "\n").encode())
start = time.monotonic()
child = subprocess.run(command, cwd=base, stdout=log, stderr=subprocess.STDOUT, check=False)
report.update(
returncode=child.returncode,
elapsed_seconds=time.monotonic() - start,
child_peak_rss_MiB=resource.getrusage(resource.RUSAGE_CHILDREN).ru_maxrss / 1024,
parent_peak_rss_MiB=resource.getrusage(resource.RUSAGE_SELF).ru_maxrss / 1024,
completed_utc=datetime.datetime.now(datetime.timezone.utc).isoformat(),
)
log.write(("\nRUN_RESULT " + json.dumps(report) + "\n").encode())
report["stdout_bytes"] = log_path.stat().st_size
with result_path.open("x") as result:
json.dump(report, result, indent=2)
result.write("\n")
print(json.dumps(report, indent=2))
assert report["stdout_bytes"] < 2097152
sys.exit(child.returncode if child.returncode >= 0 else 1)
@@ -0,0 +1,20 @@
[
{
"id": "1EBdGY3CxGm_uwCZ_L9vv3q6UgDoH01pM",
"name": "local_stress_observable_v1.py",
"bytes": 32574,
"sha256": "0e2777990359a7cf2bb29884173b7b01de37c49bcf49e1f29fc59fe83d62b456"
},
{
"id": "1TpMS9MfWP3gnouHJ95MQ_lozKMPbgTSH",
"name": "stdout_local_stress_observable_v1.txt",
"bytes": 12238,
"sha256": "6a826e5ad729ce45af6879a07a1c659d8b4a21403fde5b9c6d9696cc6a5b09d4"
},
{
"id": "1l1HljRJEcCrJNgSGdWSdQ7OOvEjdRXqi",
"name": "TABLE_local_stress_observable_v1.md",
"bytes": 2967,
"sha256": "d8ff0568d9c473a4bb09396a8948ddc8dc5af2f0f3a23ac84d238814fc779501"
}
]
@@ -0,0 +1,122 @@
RECORDER {"started_utc": "2026-10-13T06:01:08.222086+00:00", "cwd": "/home/frank14f/CelerisLab/tests/validation/multigrid", "parent_command": ["env", "OPENBLAS_NUM_THREADS=1", "PYTHONDONTWRITEBYTECODE=1", "PYTHONNOUSERSITE=1", "PYTHONOPTIMIZE=0", "PYTHONPATH=/home/frank14f/CelerisLab/tests/validation/multigrid", "CPU_REFERENCE_PATH=/home/frank14f/CelerisLab/tests/validation/multigrid/cpu_reference.py", "/usr/bin/prlimit", "--as=268435456", "--fsize=2097152", "--core=0", "--", "/home/frank14f/anaconda3/envs/pycuda_3_10/bin/python", "-B", "/home/frank14f/CelerisLab/tests/validation/multigrid/local_stress_v1_evidence/run_once.py"], "script_command": ["/usr/bin/prlimit", "--as=268435456", "--fsize=2097152", "--core=0", "--", "/home/frank14f/anaconda3/envs/pycuda_3_10/bin/python", "-B", "/home/frank14f/CelerisLab/tests/validation/multigrid/local_stress_observable_v1.py"], "environment": {"OPENBLAS_NUM_THREADS": "1", "PYTHONDONTWRITEBYTECODE": "1", "PYTHONNOUSERSITE": "1", "PYTHONOPTIMIZE": "0", "PYTHONPATH": "/home/frank14f/CelerisLab/tests/validation/multigrid", "CPU_REFERENCE_PATH": "/home/frank14f/CelerisLab/tests/validation/multigrid/cpu_reference.py"}, "python_version": "3.10.13 (main, Sep 11 2023, 13:44:35) [GCC 11.2.0]", "numpy_version_from_installed_metadata": "1.26.4", "platform": "Linux-6.8.0-138-generic-x86_64-with-glibc2.35", "hard_limits": {"address_space_bytes": [268435456, 268435456], "output_file_bytes": [2097152, 2097152], "core_bytes": [0, 0]}, "input_hashes_verified_before_execution": {"local_stress_observable_v1.py": "0e2777990359a7cf2bb29884173b7b01de37c49bcf49e1f29fc59fe83d62b456", "stdout_local_stress_observable_v1.txt": "6a826e5ad729ce45af6879a07a1c659d8b4a21403fde5b9c6d9696cc6a5b09d4", "TABLE_local_stress_observable_v1.md": "d8ff0568d9c473a4bb09396a8948ddc8dc5af2f0f3a23ac84d238814fc779501", "source_manifest.json": "d2cf90b73458f493c665c9a281d06aef0c190cf0d143639fb77ab838c78f020c"}, "archive_sha256_verified_before_execution": "5834b23711496beb152188df5f47ff8175baf7e52543774401bd2c1183433eed", "reference_sha256_verified_before_execution": "bba2a06a9f6517b32079ffff15e4060d8c3b7ed35f16ca134e1877226c9e4e1e", "planned_runs": 7, "coarse_steps_per_run": 32, "attempt": 1}
COMMAND /usr/bin/prlimit --as=268435456 --fsize=2097152 --core=0 -- /home/frank14f/anaconda3/envs/pycuda_3_10/bin/python -B /home/frank14f/CelerisLab/tests/validation/multigrid/local_stress_observable_v1.py
=== local_stress_observable_v1 against CPUREF-0.3 ===
REF_PATH=/home/frank14f/CelerisLab/tests/validation/multigrid/cpu_reference.py
REF_SHA256=bba2a06a9f6517b32079ffff15e4060d8c3b7ed35f16ca134e1877226c9e4e1e
REF_SHA_MATCH=True
API_VERSION=CPUREF-0.3
U0=0.001 tau_c=0.8 tau_f=1.1 steps=32 nu=0.1 k=0.39269908169872414
nu*k^2=0.01542126
ARRIVAL_STATE_POLICY: read CPUREF-0.3 State.coarse_f/fine_f at phase='arrival_f'
after N advance_coarse_once calls (tick=2N). That array IS post-stream pre-collision.
Uniform B/C use local collide-then-stream; f after 2N (B) or N (C) streams is arrival.
If arrival were unreachable without changing the reference, this script would STOP.
STRESS: Pi_neq=sum(cx*cy*f)-rho*ux*uy; sigma=-(1-1/(2*tau))*Pi_neq; 2x2 vol-avg of sigma.
No extra dx/dt factor. a_u=(2/256)sum u sin; P_sigma=(2/256)sum sigma cos; own a_u.
Profile s(j)=mean_x[4,12)(sigma)/ (rho0*nu*k*a_u). Transposed: R only, no profile.
-- running C (uniform-coarse) phi0.0000
ARRIVAL_ARRAY: uniform_C_f_after_32_stream_steps_(=coarse_step_32_arrival; collide-then-stream loop)
-- running B (uniform-fine) phi0.0000
ARRIVAL_ARRAY: uniform_B_f_after_64_stream_steps_(=coarse_step_32_arrival; collide-then-stream loop)
-- running A (composite CPUREF) phi0.0000
ARRIVAL_ARRAY: State.coarse_f + State.fine_f at phase='arrival_f' tick=64 (after 32 advance_coarse_once; arrival_f = post-stream pre-collision)
state.phase=arrival_f state.tick=64
-- running C (uniform-coarse) phi1.5708
ARRIVAL_ARRAY: uniform_C_f_after_32_stream_steps_(=coarse_step_32_arrival; collide-then-stream loop)
-- running B (uniform-fine) phi1.5708
ARRIVAL_ARRAY: uniform_B_f_after_64_stream_steps_(=coarse_step_32_arrival; collide-then-stream loop)
-- running A (composite CPUREF) phi1.5708
ARRIVAL_ARRAY: State.coarse_f + State.fine_f at phase='arrival_f' tick=64 (after 32 advance_coarse_once; arrival_f = post-stream pre-collision)
state.phase=arrival_f state.tick=64
-- running A transpose phi=1.5707963267948966
ARRIVAL_ARRAY: State.coarse_f + State.fine_f at phase='arrival_f' tick=64 (after 32 advance_coarse_once; arrival_f = post-stream pre-collision)
=== HARD CHECKS (unchanged v0.2 set) ===
finite[A_phi0.0000]=True cons=True mass_drift=5.969e-13 momx_drift=1.690e-13 momy_drift=2.753e-14 tol_abs=2.560e-10 init_rho_j_mismatch_vs_coarse_formula=1.110e-16
finite[B_phi0.0000]=True cons=True mass_drift=7.105e-13 momx_drift=2.970e-15 momy_drift=3.553e-15 tol_abs=2.560e-10
finite[C_phi0.0000]=True cons=True mass_drift=4.547e-13 momx_drift=4.607e-15 momy_drift=6.495e-15 tol_abs=2.560e-10
finite[A_phi1.5708]=True cons=True mass_drift=8.242e-13 momx_drift=1.033e-13 momy_drift=9.015e-14 tol_abs=2.560e-10 init_rho_j_mismatch_vs_coarse_formula=1.110e-16
finite[B_phi1.5708]=True cons=True mass_drift=6.821e-13 momx_drift=2.970e-15 momy_drift=3.553e-15 tol_abs=2.560e-10
finite[C_phi1.5708]=True cons=True mass_drift=4.547e-13 momx_drift=4.607e-15 momy_drift=6.495e-15 tol_abs=2.560e-10
finite[A_T_phi1.5708]=True cons=True mass_drift=7.105e-13 momx_drift=1.843e-14 momy_drift=6.062e-14 tol_abs=2.560e-10 init_rho_j_mismatch_vs_coarse_formula=1.110e-16
transpose_ok=True max_err=6.661e-16 (tol=1.000e-15)
t0 phi0.0000: AB_patch=1.084e-19 ok=True AC_out=2.168e-19 ok=True init_mm=1.110e-16 ok=True
t0 phi1.5708: AB_patch=1.084e-19 ok=True AC_out=2.168e-19 ok=True init_mm=1.110e-16 ok=True
init_mismatch[A_T]=1.110e-16 ok=True
=== STRESS FINITE CHECKS (addition) ===
stress_finite[C_phi0.0000]=True R=1.00838364 a_u=5.991310e-04 P_sigma=2.372507e-05
stress_finite[B_phi0.0000]=True R=0.99855585 a_u=6.078606e-04 P_sigma=2.383616e-05
stress_finite[A_phi0.0000]=True R=1.01177462 a_u=5.949025e-04 P_sigma=2.363684e-05
stress_finite[C_phi1.5708]=True R=1.00838364 a_u=5.991310e-04 P_sigma=2.372507e-05
stress_finite[B_phi1.5708]=True R=0.99855585 a_u=6.078606e-04 P_sigma=2.383616e-05
stress_finite[A_phi1.5708]=True R=1.01185048 a_u=5.950623e-04 P_sigma=2.364496e-05
stress_finite[A_T_phi1.5708]=True R=1.01185048 a_u=5.950623e-04 P_sigma=2.364496e-05
N_BOOLEAN_HARD_CHECKS_V02=22: cons_A_T_phi1.5708,cons_A_phi0.0000,cons_A_phi1.5708,cons_B_phi0.0000,cons_B_phi1.5708,cons_C_phi0.0000,cons_C_phi1.5708,finite_A_T_phi1.5708,finite_A_phi0.0000,finite_A_phi1.5708,finite_B_phi0.0000,finite_B_phi1.5708,finite_C_phi0.0000,finite_C_phi1.5708,init_mismatch_ok_A_T_phi1.5708,init_mismatch_ok_phi0.0000,init_mismatch_ok_phi1.5708,t0_AB_patch_ok_phi0.0000,t0_AB_patch_ok_phi1.5708,t0_AC_out_ok_phi0.0000,t0_AC_out_ok_phi1.5708,transpose_ok
N_BOOLEAN_HARD_CHECKS_WITH_STRESS=29
=== LOCAL STRESS OBSERVABLE at coarse step 32 ===
FORMULA: R = P_sigma / (rho0 * nu * k * a_u); a_u from SAME run/tick/arrival
WORDING: reported diagnostics only; phi probes phase structure only; no mechanism claim
-- phi0.0000 --
R_A=1.0117746193 R_B=0.9985558540 R_C=1.0083836356
R_A/R_B=1.0132378827 R_A/R_C=1.0033627913
a_u A/B/C: 5.94902468e-04 6.07860566e-04 5.99130994e-04
P_sigma A/B/C: 2.36368412e-05 2.38361559e-05 2.37250678e-05
s_A(j): 9.915595e-01 8.382231e-01 5.539374e-01 1.826885e-01 -2.146875e-01 -5.725265e-01 -8.489390e-01 -9.987898e-01 -9.987898e-01 -8.489390e-01 -5.725265e-01 -2.146875e-01 1.826885e-01 5.539374e-01 8.382231e-01 9.915595e-01
s_B(j): 9.793689e-01 8.302688e-01 5.547679e-01 1.948086e-01 -1.948086e-01 -5.547679e-01 -8.302688e-01 -9.793689e-01 -9.793689e-01 -8.302688e-01 -5.547679e-01 -1.948086e-01 1.948086e-01 5.547679e-01 8.302688e-01 9.793689e-01
s_C(j): 9.890078e-01 8.384404e-01 5.602279e-01 1.967259e-01 -1.967259e-01 -5.602279e-01 -8.384404e-01 -9.890078e-01 -9.890078e-01 -8.384404e-01 -5.602279e-01 -1.967259e-01 1.967259e-01 5.602279e-01 8.384404e-01 9.890078e-01
s_A-s_B: 1.219061e-02 7.954261e-03 -8.305464e-04 -1.212007e-02 -1.987891e-02 -1.775863e-02 -1.867018e-02 -1.942089e-02 -1.942089e-02 -1.867018e-02 -1.775863e-02 -1.987891e-02 -1.212007e-02 -8.305464e-04 7.954261e-03 1.219061e-02
s_A-s_C: 2.551668e-03 -2.172403e-04 -6.290569e-03 -1.403738e-02 -1.796161e-02 -1.229861e-02 -1.049868e-02 -9.781945e-03 -9.781945e-03 -1.049868e-02 -1.229861e-02 -1.796161e-02 -1.403738e-02 -6.290569e-03 -2.172403e-04 2.551668e-03
FACE_ROWS j=3,4,11,12 flagged: j3:A=1.82689e-01,B=1.94809e-01,C=1.96726e-01,A-B=-1.21201e-02,A-C=-1.40374e-02 j4:A=-2.14687e-01,B=-1.94809e-01,C=-1.96726e-01,A-B=-1.98789e-02,A-C=-1.79616e-02 j11:A=-2.14687e-01,B=-1.94809e-01,C=-1.96726e-01,A-B=-1.98789e-02,A-C=-1.79616e-02 j12:A=1.82689e-01,B=1.94809e-01,C=1.96726e-01,A-B=-1.21201e-02,A-C=-1.40374e-02
-- phi1.5708 --
R_A=1.0118504808 R_B=0.9985558540 R_C=1.0083836356
R_A/R_B=1.0133138539 R_A/R_C=1.0034380221
a_u A/B/C: 5.95062313e-04 6.07860566e-04 5.99130994e-04
P_sigma A/B/C: 2.36449649e-05 2.38361559e-05 2.37250678e-05
s_A(j): -1.994357e-01 -5.681758e-01 -8.528746e-01 -1.003712e+00 -9.868392e-01 -8.333476e-01 -5.581768e-01 -1.961536e-01 1.961536e-01 5.581768e-01 8.333476e-01 9.868392e-01 1.003712e+00 8.528746e-01 5.681758e-01 1.994357e-01
s_B(j): -1.948086e-01 -5.547679e-01 -8.302688e-01 -9.793689e-01 -9.793689e-01 -8.302688e-01 -5.547679e-01 -1.948086e-01 1.948086e-01 5.547679e-01 8.302688e-01 9.793689e-01 9.793689e-01 8.302688e-01 5.547679e-01 1.948086e-01
s_C(j): -1.967259e-01 -5.602279e-01 -8.384404e-01 -9.890078e-01 -9.890078e-01 -8.384404e-01 -5.602279e-01 -1.967259e-01 1.967259e-01 5.602279e-01 8.384404e-01 9.890078e-01 9.890078e-01 8.384404e-01 5.602279e-01 1.967259e-01
s_A-s_B: -4.627099e-03 -1.340791e-02 -2.260573e-02 -2.434262e-02 -7.470343e-03 -3.078759e-03 -3.408852e-03 -1.344997e-03 1.344997e-03 3.408852e-03 3.078759e-03 7.470343e-03 2.434262e-02 2.260573e-02 1.340791e-02 4.627099e-03
s_A-s_C: -2.709794e-03 -7.947886e-03 -1.443423e-02 -1.470367e-02 2.168600e-03 5.092742e-03 2.051171e-03 5.723084e-04 -5.723084e-04 -2.051171e-03 -5.092742e-03 -2.168600e-03 1.470367e-02 1.443423e-02 7.947886e-03 2.709794e-03
FACE_ROWS j=3,4,11,12 flagged: j3:A=-1.00371e+00,B=-9.79369e-01,C=-9.89008e-01,A-B=-2.43426e-02,A-C=-1.47037e-02 j4:A=-9.86839e-01,B=-9.79369e-01,C=-9.89008e-01,A-B=-7.47034e-03,A-C=2.16860e-03 j11:A=9.86839e-01,B=9.79369e-01,C=9.89008e-01,A-B=7.47034e-03,A-C=-2.16860e-03 j12:A=1.00371e+00,B=9.79369e-01,C=9.89008e-01,A-B=2.43426e-02,A-C=1.47037e-02
-- A_T phi=1.5708 (R only, no profile) --
R_A_T=1.0118504808 a_u=5.95062313e-04 P_sigma=2.36449649e-05
profile=None (transpose)
=== DECAY FITS (informational; same as v0.2) ===
analytic lambda = 0.01542126
A phi0.0000: lambda=0.01585222 stderr=8.572e-08 R2=1.000000 A0=1.000000e-03 A32=5.987423e-04
B phi0.0000: lambda=0.01539917 stderr=3.372e-15 R2=1.000000 A0=1.000000e-03 A32=6.117840e-04
C phi0.0000: lambda=0.01554973 stderr=1.906e-08 R2=1.000000 A0=1.000000e-03 A32=6.029981e-04
A phi1.5708: lambda=0.01584192 stderr=2.131e-07 R2=1.000000 A0=1.000000e-03 A32=5.989032e-04
B phi1.5708: lambda=0.01539917 stderr=3.372e-15 R2=1.000000 A0=1.000000e-03 A32=6.117840e-04
C phi1.5708: lambda=0.01554973 stderr=1.906e-08 R2=1.000000 A0=1.000000e-03 A32=6.029981e-04
=== NUMERIC SUMMARY ===
ALL_HARD_CHECKS_PASS_V02=True
ALL_HARD_CHECKS_PASS_WITH_STRESS=True
runtime_sec=2.26
SUMMARY_LINES_BEGIN
R phi0.0000 A=1.011774619306 B=0.998555854025 C=1.008383635570 A/B=1.013237882716 A/C=1.003362791319
PROFILE_A phi0.0000 9.91559495e-01 8.38223110e-01 5.53937362e-01 1.82688509e-01 -2.14687493e-01 -5.72526539e-01 -8.48939033e-01 -9.98789772e-01 -9.98789772e-01 -8.48939033e-01 -5.72526539e-01 -2.14687493e-01 1.82688509e-01 5.53937362e-01 8.38223110e-01 9.91559495e-01
PROFILE_B phi0.0000 9.79368883e-01 8.30268849e-01 5.54767909e-01 1.94808583e-01 -1.94808583e-01 -5.54767909e-01 -8.30268849e-01 -9.79368883e-01 -9.79368883e-01 -8.30268849e-01 -5.54767909e-01 -1.94808583e-01 1.94808583e-01 5.54767909e-01 8.30268849e-01 9.79368883e-01
PROFILE_C phi0.0000 9.89007827e-01 8.38440351e-01 5.60227931e-01 1.96725888e-01 -1.96725888e-01 -5.60227931e-01 -8.38440351e-01 -9.89007827e-01 -9.89007827e-01 -8.38440351e-01 -5.60227931e-01 -1.96725888e-01 1.96725888e-01 5.60227931e-01 8.38440351e-01 9.89007827e-01
PROFILE_A-B phi0.0000 1.21906117e-02 7.95426140e-03 -8.30546408e-04 -1.21200743e-02 -1.98789102e-02 -1.77586304e-02 -1.86701838e-02 -1.94208889e-02 -1.94208889e-02 -1.86701838e-02 -1.77586304e-02 -1.98789102e-02 -1.21200743e-02 -8.30546408e-04 7.95426140e-03 1.21906117e-02
PROFILE_A-C phi0.0000 2.55166826e-03 -2.17240307e-04 -6.29056929e-03 -1.40373794e-02 -1.79616052e-02 -1.22986075e-02 -1.04986821e-02 -9.78194544e-03 -9.78194544e-03 -1.04986821e-02 -1.22986075e-02 -1.79616052e-02 -1.40373794e-02 -6.29056929e-03 -2.17240307e-04 2.55166826e-03
R phi1.5708 A=1.011850480751 B=0.998555854025 C=1.008383635570 A/B=1.013313853874 A/C=1.003438022057
PROFILE_A phi1.5708 -1.99435683e-01 -5.68175817e-01 -8.52874579e-01 -1.00371150e+00 -9.86839227e-01 -8.33347608e-01 -5.58176761e-01 -1.96153580e-01 1.96153580e-01 5.58176761e-01 8.33347608e-01 9.86839227e-01 1.00371150e+00 8.52874579e-01 5.68175817e-01 1.99435683e-01
PROFILE_B phi1.5708 -1.94808583e-01 -5.54767909e-01 -8.30268849e-01 -9.79368883e-01 -9.79368883e-01 -8.30268849e-01 -5.54767909e-01 -1.94808583e-01 1.94808583e-01 5.54767909e-01 8.30268849e-01 9.79368883e-01 9.79368883e-01 8.30268849e-01 5.54767909e-01 1.94808583e-01
PROFILE_C phi1.5708 -1.96725888e-01 -5.60227931e-01 -8.38440351e-01 -9.89007827e-01 -9.89007827e-01 -8.38440351e-01 -5.60227931e-01 -1.96725888e-01 1.96725888e-01 5.60227931e-01 8.38440351e-01 9.89007827e-01 9.89007827e-01 8.38440351e-01 5.60227931e-01 1.96725888e-01
PROFILE_A-B phi1.5708 -4.62709942e-03 -1.34079086e-02 -2.26057300e-02 -2.43426175e-02 -7.47034346e-03 -3.07875936e-03 -3.40885205e-03 -1.34499672e-03 1.34499672e-03 3.40885205e-03 3.07875936e-03 7.47034346e-03 2.43426175e-02 2.26057300e-02 1.34079086e-02 4.62709942e-03
PROFILE_A-C phi1.5708 -2.70979435e-03 -7.94788568e-03 -1.44342283e-02 -1.47036740e-02 2.16860001e-03 5.09274236e-03 2.05117083e-03 5.72308350e-04 -5.72308350e-04 -2.05117083e-03 -5.09274236e-03 -2.16860001e-03 1.47036740e-02 1.44342283e-02 7.94788568e-03 2.70979435e-03
R A_T_phi1.5708 R=1.011850480751
TRANSPOSE err=6.661338e-16 ok=True
REF_SHA256=bba2a06a9f6517b32079ffff15e4060d8c3b7ed35f16ca134e1877226c9e4e1e
SUMMARY_LINES_END
RUN_RESULT {"started_utc": "2026-10-13T06:01:08.222086+00:00", "cwd": "/home/frank14f/CelerisLab/tests/validation/multigrid", "parent_command": ["env", "OPENBLAS_NUM_THREADS=1", "PYTHONDONTWRITEBYTECODE=1", "PYTHONNOUSERSITE=1", "PYTHONOPTIMIZE=0", "PYTHONPATH=/home/frank14f/CelerisLab/tests/validation/multigrid", "CPU_REFERENCE_PATH=/home/frank14f/CelerisLab/tests/validation/multigrid/cpu_reference.py", "/usr/bin/prlimit", "--as=268435456", "--fsize=2097152", "--core=0", "--", "/home/frank14f/anaconda3/envs/pycuda_3_10/bin/python", "-B", "/home/frank14f/CelerisLab/tests/validation/multigrid/local_stress_v1_evidence/run_once.py"], "script_command": ["/usr/bin/prlimit", "--as=268435456", "--fsize=2097152", "--core=0", "--", "/home/frank14f/anaconda3/envs/pycuda_3_10/bin/python", "-B", "/home/frank14f/CelerisLab/tests/validation/multigrid/local_stress_observable_v1.py"], "environment": {"OPENBLAS_NUM_THREADS": "1", "PYTHONDONTWRITEBYTECODE": "1", "PYTHONNOUSERSITE": "1", "PYTHONOPTIMIZE": "0", "PYTHONPATH": "/home/frank14f/CelerisLab/tests/validation/multigrid", "CPU_REFERENCE_PATH": "/home/frank14f/CelerisLab/tests/validation/multigrid/cpu_reference.py"}, "python_version": "3.10.13 (main, Sep 11 2023, 13:44:35) [GCC 11.2.0]", "numpy_version_from_installed_metadata": "1.26.4", "platform": "Linux-6.8.0-138-generic-x86_64-with-glibc2.35", "hard_limits": {"address_space_bytes": [268435456, 268435456], "output_file_bytes": [2097152, 2097152], "core_bytes": [0, 0]}, "input_hashes_verified_before_execution": {"local_stress_observable_v1.py": "0e2777990359a7cf2bb29884173b7b01de37c49bcf49e1f29fc59fe83d62b456", "stdout_local_stress_observable_v1.txt": "6a826e5ad729ce45af6879a07a1c659d8b4a21403fde5b9c6d9696cc6a5b09d4", "TABLE_local_stress_observable_v1.md": "d8ff0568d9c473a4bb09396a8948ddc8dc5af2f0f3a23ac84d238814fc779501", "source_manifest.json": "d2cf90b73458f493c665c9a281d06aef0c190cf0d143639fb77ab838c78f020c"}, "archive_sha256_verified_before_execution": "5834b23711496beb152188df5f47ff8175baf7e52543774401bd2c1183433eed", "reference_sha256_verified_before_execution": "bba2a06a9f6517b32079ffff15e4060d8c3b7ed35f16ca134e1877226c9e4e1e", "planned_runs": 7, "coarse_steps_per_run": 32, "attempt": 1, "returncode": 0, "elapsed_seconds": 2.435032418987248, "child_peak_rss_MiB": 38.41796875, "parent_peak_rss_MiB": 18.75, "completed_utc": "2026-10-13T06:01:10.671541+00:00"}
@@ -0,0 +1,118 @@
=== local_stress_observable_v1 against CPUREF-0.3 ===
REF_PATH=/workspace/shear_diag/cpu_reference_v0.3.py
REF_SHA256=bba2a06a9f6517b32079ffff15e4060d8c3b7ed35f16ca134e1877226c9e4e1e
REF_SHA_MATCH=True
API_VERSION=CPUREF-0.3
U0=0.001 tau_c=0.8 tau_f=1.1 steps=32 nu=0.1 k=0.39269908169872414
nu*k^2=0.01542126
ARRIVAL_STATE_POLICY: read CPUREF-0.3 State.coarse_f/fine_f at phase='arrival_f'
after N advance_coarse_once calls (tick=2N). That array IS post-stream pre-collision.
Uniform B/C use local collide-then-stream; f after 2N (B) or N (C) streams is arrival.
If arrival were unreachable without changing the reference, this script would STOP.
STRESS: Pi_neq=sum(cx*cy*f)-rho*ux*uy; sigma=-(1-1/(2*tau))*Pi_neq; 2x2 vol-avg of sigma.
No extra dx/dt factor. a_u=(2/256)sum u sin; P_sigma=(2/256)sum sigma cos; own a_u.
Profile s(j)=mean_x[4,12)(sigma)/ (rho0*nu*k*a_u). Transposed: R only, no profile.
-- running C (uniform-coarse) phi0.0000
ARRIVAL_ARRAY: uniform_C_f_after_32_stream_steps_(=coarse_step_32_arrival; collide-then-stream loop)
-- running B (uniform-fine) phi0.0000
ARRIVAL_ARRAY: uniform_B_f_after_64_stream_steps_(=coarse_step_32_arrival; collide-then-stream loop)
-- running A (composite CPUREF) phi0.0000
ARRIVAL_ARRAY: State.coarse_f + State.fine_f at phase='arrival_f' tick=64 (after 32 advance_coarse_once; arrival_f = post-stream pre-collision)
state.phase=arrival_f state.tick=64
-- running C (uniform-coarse) phi1.5708
ARRIVAL_ARRAY: uniform_C_f_after_32_stream_steps_(=coarse_step_32_arrival; collide-then-stream loop)
-- running B (uniform-fine) phi1.5708
ARRIVAL_ARRAY: uniform_B_f_after_64_stream_steps_(=coarse_step_32_arrival; collide-then-stream loop)
-- running A (composite CPUREF) phi1.5708
ARRIVAL_ARRAY: State.coarse_f + State.fine_f at phase='arrival_f' tick=64 (after 32 advance_coarse_once; arrival_f = post-stream pre-collision)
state.phase=arrival_f state.tick=64
-- running A transpose phi=1.5707963267948966
ARRIVAL_ARRAY: State.coarse_f + State.fine_f at phase='arrival_f' tick=64 (after 32 advance_coarse_once; arrival_f = post-stream pre-collision)
=== HARD CHECKS (unchanged v0.2 set) ===
finite[A_phi0.0000]=True cons=True mass_drift=5.969e-13 momx_drift=1.690e-13 momy_drift=2.753e-14 tol_abs=2.560e-10 init_rho_j_mismatch_vs_coarse_formula=1.110e-16
finite[B_phi0.0000]=True cons=True mass_drift=7.105e-13 momx_drift=2.970e-15 momy_drift=3.553e-15 tol_abs=2.560e-10
finite[C_phi0.0000]=True cons=True mass_drift=4.547e-13 momx_drift=4.607e-15 momy_drift=6.495e-15 tol_abs=2.560e-10
finite[A_phi1.5708]=True cons=True mass_drift=8.242e-13 momx_drift=1.033e-13 momy_drift=9.015e-14 tol_abs=2.560e-10 init_rho_j_mismatch_vs_coarse_formula=1.110e-16
finite[B_phi1.5708]=True cons=True mass_drift=6.821e-13 momx_drift=2.970e-15 momy_drift=3.553e-15 tol_abs=2.560e-10
finite[C_phi1.5708]=True cons=True mass_drift=4.547e-13 momx_drift=4.607e-15 momy_drift=6.495e-15 tol_abs=2.560e-10
finite[A_T_phi1.5708]=True cons=True mass_drift=7.105e-13 momx_drift=1.843e-14 momy_drift=6.062e-14 tol_abs=2.560e-10 init_rho_j_mismatch_vs_coarse_formula=1.110e-16
transpose_ok=True max_err=6.661e-16 (tol=1.000e-15)
t0 phi0.0000: AB_patch=1.084e-19 ok=True AC_out=2.168e-19 ok=True init_mm=1.110e-16 ok=True
t0 phi1.5708: AB_patch=1.084e-19 ok=True AC_out=2.168e-19 ok=True init_mm=1.110e-16 ok=True
init_mismatch[A_T]=1.110e-16 ok=True
=== STRESS FINITE CHECKS (addition) ===
stress_finite[C_phi0.0000]=True R=1.00838364 a_u=5.991310e-04 P_sigma=2.372507e-05
stress_finite[B_phi0.0000]=True R=0.99855585 a_u=6.078606e-04 P_sigma=2.383616e-05
stress_finite[A_phi0.0000]=True R=1.01177462 a_u=5.949025e-04 P_sigma=2.363684e-05
stress_finite[C_phi1.5708]=True R=1.00838364 a_u=5.991310e-04 P_sigma=2.372507e-05
stress_finite[B_phi1.5708]=True R=0.99855585 a_u=6.078606e-04 P_sigma=2.383616e-05
stress_finite[A_phi1.5708]=True R=1.01185048 a_u=5.950623e-04 P_sigma=2.364496e-05
stress_finite[A_T_phi1.5708]=True R=1.01185048 a_u=5.950623e-04 P_sigma=2.364496e-05
N_BOOLEAN_HARD_CHECKS_V02=22: cons_A_T_phi1.5708,cons_A_phi0.0000,cons_A_phi1.5708,cons_B_phi0.0000,cons_B_phi1.5708,cons_C_phi0.0000,cons_C_phi1.5708,finite_A_T_phi1.5708,finite_A_phi0.0000,finite_A_phi1.5708,finite_B_phi0.0000,finite_B_phi1.5708,finite_C_phi0.0000,finite_C_phi1.5708,init_mismatch_ok_A_T_phi1.5708,init_mismatch_ok_phi0.0000,init_mismatch_ok_phi1.5708,t0_AB_patch_ok_phi0.0000,t0_AB_patch_ok_phi1.5708,t0_AC_out_ok_phi0.0000,t0_AC_out_ok_phi1.5708,transpose_ok
N_BOOLEAN_HARD_CHECKS_WITH_STRESS=29
=== LOCAL STRESS OBSERVABLE at coarse step 32 ===
FORMULA: R = P_sigma / (rho0 * nu * k * a_u); a_u from SAME run/tick/arrival
WORDING: reported diagnostics only; phi probes phase structure only; no mechanism claim
-- phi0.0000 --
R_A=1.0117746193 R_B=0.9985558540 R_C=1.0083836356
R_A/R_B=1.0132378827 R_A/R_C=1.0033627913
a_u A/B/C: 5.94902468e-04 6.07860566e-04 5.99130994e-04
P_sigma A/B/C: 2.36368412e-05 2.38361559e-05 2.37250678e-05
s_A(j): 9.915595e-01 8.382231e-01 5.539374e-01 1.826885e-01 -2.146875e-01 -5.725265e-01 -8.489390e-01 -9.987898e-01 -9.987898e-01 -8.489390e-01 -5.725265e-01 -2.146875e-01 1.826885e-01 5.539374e-01 8.382231e-01 9.915595e-01
s_B(j): 9.793689e-01 8.302688e-01 5.547679e-01 1.948086e-01 -1.948086e-01 -5.547679e-01 -8.302688e-01 -9.793689e-01 -9.793689e-01 -8.302688e-01 -5.547679e-01 -1.948086e-01 1.948086e-01 5.547679e-01 8.302688e-01 9.793689e-01
s_C(j): 9.890078e-01 8.384404e-01 5.602279e-01 1.967259e-01 -1.967259e-01 -5.602279e-01 -8.384404e-01 -9.890078e-01 -9.890078e-01 -8.384404e-01 -5.602279e-01 -1.967259e-01 1.967259e-01 5.602279e-01 8.384404e-01 9.890078e-01
s_A-s_B: 1.219061e-02 7.954261e-03 -8.305464e-04 -1.212007e-02 -1.987891e-02 -1.775863e-02 -1.867018e-02 -1.942089e-02 -1.942089e-02 -1.867018e-02 -1.775863e-02 -1.987891e-02 -1.212007e-02 -8.305464e-04 7.954261e-03 1.219061e-02
s_A-s_C: 2.551668e-03 -2.172403e-04 -6.290569e-03 -1.403738e-02 -1.796161e-02 -1.229861e-02 -1.049868e-02 -9.781945e-03 -9.781945e-03 -1.049868e-02 -1.229861e-02 -1.796161e-02 -1.403738e-02 -6.290569e-03 -2.172403e-04 2.551668e-03
FACE_ROWS j=3,4,11,12 flagged: j3:A=1.82689e-01,B=1.94809e-01,C=1.96726e-01,A-B=-1.21201e-02,A-C=-1.40374e-02 j4:A=-2.14687e-01,B=-1.94809e-01,C=-1.96726e-01,A-B=-1.98789e-02,A-C=-1.79616e-02 j11:A=-2.14687e-01,B=-1.94809e-01,C=-1.96726e-01,A-B=-1.98789e-02,A-C=-1.79616e-02 j12:A=1.82689e-01,B=1.94809e-01,C=1.96726e-01,A-B=-1.21201e-02,A-C=-1.40374e-02
-- phi1.5708 --
R_A=1.0118504808 R_B=0.9985558540 R_C=1.0083836356
R_A/R_B=1.0133138539 R_A/R_C=1.0034380221
a_u A/B/C: 5.95062313e-04 6.07860566e-04 5.99130994e-04
P_sigma A/B/C: 2.36449649e-05 2.38361559e-05 2.37250678e-05
s_A(j): -1.994357e-01 -5.681758e-01 -8.528746e-01 -1.003712e+00 -9.868392e-01 -8.333476e-01 -5.581768e-01 -1.961536e-01 1.961536e-01 5.581768e-01 8.333476e-01 9.868392e-01 1.003712e+00 8.528746e-01 5.681758e-01 1.994357e-01
s_B(j): -1.948086e-01 -5.547679e-01 -8.302688e-01 -9.793689e-01 -9.793689e-01 -8.302688e-01 -5.547679e-01 -1.948086e-01 1.948086e-01 5.547679e-01 8.302688e-01 9.793689e-01 9.793689e-01 8.302688e-01 5.547679e-01 1.948086e-01
s_C(j): -1.967259e-01 -5.602279e-01 -8.384404e-01 -9.890078e-01 -9.890078e-01 -8.384404e-01 -5.602279e-01 -1.967259e-01 1.967259e-01 5.602279e-01 8.384404e-01 9.890078e-01 9.890078e-01 8.384404e-01 5.602279e-01 1.967259e-01
s_A-s_B: -4.627099e-03 -1.340791e-02 -2.260573e-02 -2.434262e-02 -7.470343e-03 -3.078759e-03 -3.408852e-03 -1.344997e-03 1.344997e-03 3.408852e-03 3.078759e-03 7.470343e-03 2.434262e-02 2.260573e-02 1.340791e-02 4.627099e-03
s_A-s_C: -2.709794e-03 -7.947886e-03 -1.443423e-02 -1.470367e-02 2.168600e-03 5.092742e-03 2.051171e-03 5.723084e-04 -5.723084e-04 -2.051171e-03 -5.092742e-03 -2.168600e-03 1.470367e-02 1.443423e-02 7.947886e-03 2.709794e-03
FACE_ROWS j=3,4,11,12 flagged: j3:A=-1.00371e+00,B=-9.79369e-01,C=-9.89008e-01,A-B=-2.43426e-02,A-C=-1.47037e-02 j4:A=-9.86839e-01,B=-9.79369e-01,C=-9.89008e-01,A-B=-7.47034e-03,A-C=2.16860e-03 j11:A=9.86839e-01,B=9.79369e-01,C=9.89008e-01,A-B=7.47034e-03,A-C=-2.16860e-03 j12:A=1.00371e+00,B=9.79369e-01,C=9.89008e-01,A-B=2.43426e-02,A-C=1.47037e-02
-- A_T phi=1.5708 (R only, no profile) --
R_A_T=1.0118504808 a_u=5.95062313e-04 P_sigma=2.36449649e-05
profile=None (transpose)
=== DECAY FITS (informational; same as v0.2) ===
analytic lambda = 0.01542126
A phi0.0000: lambda=0.01585222 stderr=8.572e-08 R2=1.000000 A0=1.000000e-03 A32=5.987423e-04
B phi0.0000: lambda=0.01539917 stderr=3.372e-15 R2=1.000000 A0=1.000000e-03 A32=6.117840e-04
C phi0.0000: lambda=0.01554973 stderr=1.906e-08 R2=1.000000 A0=1.000000e-03 A32=6.029981e-04
A phi1.5708: lambda=0.01584192 stderr=2.131e-07 R2=1.000000 A0=1.000000e-03 A32=5.989032e-04
B phi1.5708: lambda=0.01539917 stderr=3.372e-15 R2=1.000000 A0=1.000000e-03 A32=6.117840e-04
C phi1.5708: lambda=0.01554973 stderr=1.906e-08 R2=1.000000 A0=1.000000e-03 A32=6.029981e-04
=== NUMERIC SUMMARY ===
ALL_HARD_CHECKS_PASS_V02=True
ALL_HARD_CHECKS_PASS_WITH_STRESS=True
runtime_sec=0.77
SUMMARY_LINES_BEGIN
R phi0.0000 A=1.011774619306 B=0.998555854025 C=1.008383635570 A/B=1.013237882716 A/C=1.003362791319
PROFILE_A phi0.0000 9.91559495e-01 8.38223110e-01 5.53937362e-01 1.82688509e-01 -2.14687493e-01 -5.72526539e-01 -8.48939033e-01 -9.98789772e-01 -9.98789772e-01 -8.48939033e-01 -5.72526539e-01 -2.14687493e-01 1.82688509e-01 5.53937362e-01 8.38223110e-01 9.91559495e-01
PROFILE_B phi0.0000 9.79368883e-01 8.30268849e-01 5.54767909e-01 1.94808583e-01 -1.94808583e-01 -5.54767909e-01 -8.30268849e-01 -9.79368883e-01 -9.79368883e-01 -8.30268849e-01 -5.54767909e-01 -1.94808583e-01 1.94808583e-01 5.54767909e-01 8.30268849e-01 9.79368883e-01
PROFILE_C phi0.0000 9.89007827e-01 8.38440351e-01 5.60227931e-01 1.96725888e-01 -1.96725888e-01 -5.60227931e-01 -8.38440351e-01 -9.89007827e-01 -9.89007827e-01 -8.38440351e-01 -5.60227931e-01 -1.96725888e-01 1.96725888e-01 5.60227931e-01 8.38440351e-01 9.89007827e-01
PROFILE_A-B phi0.0000 1.21906117e-02 7.95426140e-03 -8.30546408e-04 -1.21200743e-02 -1.98789102e-02 -1.77586304e-02 -1.86701838e-02 -1.94208889e-02 -1.94208889e-02 -1.86701838e-02 -1.77586304e-02 -1.98789102e-02 -1.21200743e-02 -8.30546408e-04 7.95426140e-03 1.21906117e-02
PROFILE_A-C phi0.0000 2.55166826e-03 -2.17240307e-04 -6.29056929e-03 -1.40373794e-02 -1.79616052e-02 -1.22986075e-02 -1.04986821e-02 -9.78194544e-03 -9.78194544e-03 -1.04986821e-02 -1.22986075e-02 -1.79616052e-02 -1.40373794e-02 -6.29056929e-03 -2.17240307e-04 2.55166826e-03
R phi1.5708 A=1.011850480751 B=0.998555854025 C=1.008383635570 A/B=1.013313853874 A/C=1.003438022057
PROFILE_A phi1.5708 -1.99435683e-01 -5.68175817e-01 -8.52874579e-01 -1.00371150e+00 -9.86839227e-01 -8.33347608e-01 -5.58176761e-01 -1.96153580e-01 1.96153580e-01 5.58176761e-01 8.33347608e-01 9.86839227e-01 1.00371150e+00 8.52874579e-01 5.68175817e-01 1.99435683e-01
PROFILE_B phi1.5708 -1.94808583e-01 -5.54767909e-01 -8.30268849e-01 -9.79368883e-01 -9.79368883e-01 -8.30268849e-01 -5.54767909e-01 -1.94808583e-01 1.94808583e-01 5.54767909e-01 8.30268849e-01 9.79368883e-01 9.79368883e-01 8.30268849e-01 5.54767909e-01 1.94808583e-01
PROFILE_C phi1.5708 -1.96725888e-01 -5.60227931e-01 -8.38440351e-01 -9.89007827e-01 -9.89007827e-01 -8.38440351e-01 -5.60227931e-01 -1.96725888e-01 1.96725888e-01 5.60227931e-01 8.38440351e-01 9.89007827e-01 9.89007827e-01 8.38440351e-01 5.60227931e-01 1.96725888e-01
PROFILE_A-B phi1.5708 -4.62709942e-03 -1.34079086e-02 -2.26057300e-02 -2.43426175e-02 -7.47034346e-03 -3.07875936e-03 -3.40885205e-03 -1.34499672e-03 1.34499672e-03 3.40885205e-03 3.07875936e-03 7.47034346e-03 2.43426175e-02 2.26057300e-02 1.34079086e-02 4.62709942e-03
PROFILE_A-C phi1.5708 -2.70979435e-03 -7.94788568e-03 -1.44342283e-02 -1.47036740e-02 2.16860001e-03 5.09274236e-03 2.05117083e-03 5.72308350e-04 -5.72308350e-04 -2.05117083e-03 -5.09274236e-03 -2.16860001e-03 1.47036740e-02 1.44342283e-02 7.94788568e-03 2.70979435e-03
R A_T_phi1.5708 R=1.011850480751
TRANSPOSE err=6.661338e-16 ok=True
REF_SHA256=bba2a06a9f6517b32079ffff15e4060d8c3b7ed35f16ca134e1877226c9e4e1e
SUMMARY_LINES_END
@@ -0,0 +1,115 @@
Shear diagnostic v0.2 — Horsea review and single bounded run
2026-10-13 (Asia/Shanghai); completed 13:02:45 local time.
Result: exit 0; N_BOOLEAN_HARD_CHECKS=22; ALL_HARD_CHECKS_PASS=True.
The delivered script ran exactly once: 7 runs, 32 coarse steps each. No extra
cases, tests, retries, algorithm edits or tolerance changes were performed.
The original script, Grok output, joint report and source manifest are retained
byte-for-byte. The reference remains the pinned CPUREF-0.3 original.
Review before execution
Read the complete 790-line script, joint report, Grok output, input manifest
and existing reference. Followed .github/skills/lbm-ref-architecture-guard/
SKILL.md and its discovery/architecture checklists. No applicable AGENTS.md
was found on the workspace/test-directory ancestor chain. No numerical issue
blocks this fixed-scope rerun; this is Horsea's own review, not the Mac review.
Reference findings (local files read only; no external package execution):
1. ref/lbmpy/src/lbmpy/relaxationrates.py: lattice nu=(tau-1/2)/3.
2. ref/OpenLB/src/core/unitConverter.h: physical nu=lattice nu*dx^2/dt.
With dx_f=dt_f=1/2, tau_c=.8 and tau_f=1.1 both give physical nu=.1;
the lattice velocity conversion is unchanged and B needs two fine steps.
3. ref/lbmpy/tests/full_scenarios/shear_wave/scenario_shear_wave.py:
periodic modes decay as exp(-nu*|k|^2*t); log-amplitude fits estimate
decay. This supports the diagnostic, not an accuracy threshold here.
4. ref/lbmpy/tests/test_shear_flow.py: the second moment needs the convective
contribution and relaxation correction considered before stress comparison.
The supplied global Pi_xy mean is not used as stress evidence.
5. Existing cpu_reference.py: arrival_f input/output, tick advances by 2,
two fine hops, one coarse ghost explosion, closed-corner coalescence.
Reviewed full source and confirmed the unchanged hash before execution.
Architecture/scope: script main -> run_uniform(B/C), run_composite(A/A_T) ->
reference advance_coarse_once -> existing collision/hops/coalescence. Observation
restricts rho and j to the same 16x16 coarse cells before dividing to obtain u.
All observations are arrival_f. Exact cell-average sine velocity includes sinc
and the patch coordinate offset; equilibrium of that velocity is not the exact
cell average of nonlinear equilibrium populations. Fit 4..32 means coarse steps
(reference ticks 8..64), despite the legacy PER-TICK table heading.
Only the new script and this evidence directory are in scope. No src, existing
test, strategy document, old evidence, reference or DynamisLab changes.
Nonblocking limits: composite conservation uses the reference's _leaf_totals;
this diagnostic is not a fresh independent conservation implementation. The
uniform solver has an unused intermediate equilibrium calculation; it does not
change its returned values. Retained both without cleanup to preserve delivery
bytes. The explicit CPU_REFERENCE_PATH is required in this layout because the
script's default filename is cpu_reference_v0.3.py.
Execution evidence
results_horsea.json records the exact complete parent/child argv, cwd, process
environment, versions, timestamps, hard limits, exit code and measured memory.
run_once.py is the stdlib-only recorder, not another numerical test. It refuses
existing execution logs/results and checks the script/reference hashes and hard
limits before launching. Both it and the child ran through existing prlimit:
address space 268435456 bytes (soft=hard)
file size 2097152 bytes (soft=hard), core 0
OPENBLAS_NUM_THREADS=1, PYTHONDONTWRITEBYTECODE=1, PYTHONNOUSERSITE=1.
PYTHONPATH is this exact multigrid directory; CPU_REFERENCE_PATH is its exact
cpu_reference.py. PYTHONOPTIMIZE=0 keeps assertions enabled. No global changes.
Existing Python 3.10.13 / NumPy 1.26.4; no dependency installation.
Start/end UTC: 05:02:42.804589 / 05:02:45.056308 on 2026-10-13.
Child wall time 2.237032 s; peak child RSS 37.69140625 MiB, parent 18.75 MiB.
Combined stdout/stderr plus recorder metadata: 11421 bytes, below 2 MiB.
No CelerisLab, Simulation or pycuda imports; no production/GPU/SSH/system work.
Comparison with Grok
HARD CHECKS and SUMMARY_LINES blocks match exactly at printed precision.
All 22 individual Boolean values were parsed and matched, and checked against
the printed list of 22 names. All 33 summary values match; all printed numeric
differences in these two blocks are zero. See comparison.json for each value.
This is not a claim of full-precision field or whole-stdout byte equality;
reference path, runtime and recorder metadata are environment-specific.
lambda per coarse step:
A phi0 0.0158522189
A phi(pi/2) 0.0158419175
B both 0.0153991657
C both 0.0155497331
analytic 0.0154212569
Conservation mass drift <=8.242e-13, momentum drift <=1.690e-13, versus
unchanged mass-scaled tolerance 2.560e-10. Transpose error 6.661338e-16
passes 1e-15. Initial matches and all finite-state checks pass unchanged.
Interpretation qualifications to the preserved joint report
The ~2.94% / ~2.88% excess decay relative to B is a diagnostic observation
over this fixed window, not a hard-threshold failure. A good exponential fit
over steps 4..32 does not establish longer-time persistence or exclude all
initialization effects. Symmetry cancels the global Pi mean; it is not stress
transfer evidence. Time-held ghost supply and unscaled nonequilibrium copying
are candidate explanations, not an exhaustive set or an identified mechanism.
In particular, a negative time-interpolation result would not establish the
other candidate by elimination. Original joint_report.md remains unchanged.
Next minimal verification — specification only, not implemented or run
First specify a phase- and unit-matched local shear observation on the same
7-run/32-step setup: arrival_f Pi_xy^neq=sum(cx*cy*f)-rho*ux*uy, restricted
with consistent volume weighting and the appropriate relaxation/unit conversion.
Measure a cosine shear-mode projection and signed profiles on both sides of
the patch faces, with B/C as controls; avoid cancellation by a domain mean.
Keep all 22 checks, initialization and fit window fixed. Report differences
without inventing a pass/fail stress threshold. This can test localization and
phase structure, but does not alone prove causation.
Before any later time-interpolated-ghost variant, jointly specify the available
donor time levels, arrival_f/postcollision_g phase, interpolation order and flux
accounting. Coarse g(t+1) is unavailable before the present fine hops; silently
reordering the step or using unspecified future data would confound that test.
No such variant, new observation code or reference continuation is part of this run.
Audit
baseline.json freezes HEAD, Git status and 281 existing file hashes before any
input extraction. Its scope includes tracked/nonignored project files and the
prior baseline's ignored records; excludes the read-only ref tree and bytecode.
manifest.json records final old-file/input/reference verification and every new
file's path, bytes and SHA256, except its own hash reported in the handoff.
No commit or push. Stopped for joint acceptance.
@@ -0,0 +1,289 @@
{
"created_utc": "2026-10-13T04:59:54.914211+00:00",
"head": "6e3756c587ec08ab6a55c4a1a5f4671822d3f0a0",
"git_status": " M pyproject.toml\n M setup.py\n M src/CelerisLab/__init__.py\n M src/CelerisLab/body/__init__.py\n M src/CelerisLab/body/ddf_patch.py\n M src/CelerisLab/body/manager.py\n M src/CelerisLab/body/preprocess/flag_overlay.py\n M src/CelerisLab/common/__init__.py\n M src/CelerisLab/common/checkpoint.py\n M src/CelerisLab/config.py\n M src/CelerisLab/configs/CONFIG.md\n M src/CelerisLab/cuda/__init__.py\n M src/CelerisLab/cuda/compiler_v2.py\n M src/CelerisLab/cuda/context.py\n M src/CelerisLab/lbm/__init__.py\n M src/CelerisLab/lbm/curved_links.py\n M src/CelerisLab/lbm/field.py\n M src/CelerisLab/lbm/initializers.py\n M src/CelerisLab/lbm/kernels/boundary/bounce_back.cuh\n M src/CelerisLab/lbm/kernels/boundary/curved_boundary.cuh\n M src/CelerisLab/lbm/kernels/boundary/inlet/common.cuh\n M src/CelerisLab/lbm/kernels/boundary/inlet/zou_he_local.cuh\n M src/CelerisLab/lbm/kernels/boundary/inlet_outlet.cuh\n M src/CelerisLab/lbm/kernels/config/config_grid.h\n M src/CelerisLab/lbm/kernels/config/config_method.h\n M src/CelerisLab/lbm/kernels/config/config_objects.h\n M src/CelerisLab/lbm/kernels/config/config_physics.h\n M src/CelerisLab/lbm/kernels/kernel_v2.cu\n M src/CelerisLab/lbm/kernels/operators/collision_mrt.cuh\n M src/CelerisLab/lbm/kernels/operators/collision_trt.cuh\n M src/CelerisLab/lbm/kernels/operators/forcing_guo.cuh\n M src/CelerisLab/lbm/kernels/step/aux_kernels.cu\n M src/CelerisLab/lbm/kernels/step/esopull_sync.cu\n M src/CelerisLab/lbm/kernels/step/init_flow.cu\n M src/CelerisLab/lbm/kernels/step/one_step_double.cu\n M src/CelerisLab/lbm/kernels/step/one_step_esopull.cu\n M src/CelerisLab/lbm/kernels/streaming/esopull_semantic_helpers.cuh\n M src/CelerisLab/lbm/stepper.py\n M src/CelerisLab/simulation.py\n M tests/integration/test_body_sync_e2e.py\n M tests/integration/test_ddf_patch.py\n M tests/integration/test_sync_bodies_skeleton.py\n M tests/integration/test_unified_obs.py\n M tests/postproc/experiment.ipynb\n M tests/validation/run_kan99b_rotating_cylinder.py\n M tests/validation/run_sah04_st_matrix.py\n M tests/validation/test_sensor_accuracy.py\n?? docs/design/README.md\n?? docs/design/integrated_architecture.md\n?? docs/design/multi_level_grid_architecture.md\n?? docs/design/multi_level_summary.md\n?? docs/design/multi_level_visual_reference.md\n?? docs/design/spatial_coupling_refinement.md\n?? docs/multilevel_grid_architecture_analysis.md\n?? research/audit-2026-10-09/REVIEW.zh-CN.md\n?? research/audit-2026-10-09/architecture-cpu-results.json\n?? research/audit-2026-10-09/architecture-report.md\n?? research/audit-2026-10-09/numerical-report.md\n?? research/audit-2026-10-09/numerical_collision_results.json\n?? research/audit-2026-10-09/numerical_compile_results.json\n?? research/audit-2026-10-09/numerical_semantics_results.json\n?? research/audit-2026-10-09/root-initializers-report.md\n?? research/audit-2026-10-09/state-report.md\n?? research/audit-2026-10-09/state_results.json\n?? research/design-2026-10-09/Contracts.lean\n?? research/design-2026-10-09/PLAN.zh-CN.md\n?? research/design-2026-10-09/api-architecture-study.md\n?? research/design-2026-10-09/grid-study.md\n?? research/design-2026-10-09/jet-study.md\n?? research/design-2026-10-09/jet_closure_check.py\n?? research/design-2026-10-09/jet_closure_results.json\n?? research/design-2026-10-09/math-and-history.md\n?? research/design-2026-10-09/math-checks.json\n?? research/design-2026-10-09/math_checks.py\n?? research/j1-2026-10-12/REVIEW.md\n?? research/j1-2026-10-12/baseline-status.txt\n?? research/j1-2026-10-12/baseline.json\n?? research/j1-2026-10-12/incremental.diff\n?? research/j1-2026-10-12/results.json\n?? research/j2-slot-2026-10-12/REVIEW.md\n?? research/j2-slot-2026-10-12/baseline-status.txt\n?? research/j2-slot-2026-10-12/baseline.json\n?? research/j2-slot-2026-10-12/incremental.diff\n?? research/j2-slot-2026-10-12/results.json\n?? research/j3-coverage-2026-10-12/REVIEW.md\n?? research/j3-coverage-2026-10-12/baseline-status.txt\n?? research/j3-coverage-2026-10-12/baseline.json\n?? research/j3-coverage-2026-10-12/incremental.diff\n?? research/j3-coverage-2026-10-12/negative-budget-20744.h5\n?? research/j3-coverage-2026-10-12/negative-end-20760.h5\n?? research/j3-coverage-2026-10-12/restart-21280.h5\n?? research/j3-coverage-2026-10-12/restart-reference-21296.h5\n?? research/j3-coverage-2026-10-12/results.json\n?? research/j3-coverage-2026-10-12/verification.json\n?? research/j3-lag-2026-10-12/REVIEW.md\n?? research/j3-lag-2026-10-12/baseline-status.txt\n?? research/j3-lag-2026-10-12/baseline.json\n?? research/j3-lag-2026-10-12/end-21280.h5\n?? research/j3-lag-2026-10-12/incremental.diff\n?? research/j3-lag-2026-10-12/results.json\n?? research/j3-lag-2026-10-12/start-20760.h5\n?? research/j3-lag-2026-10-12/trajectory.h5\n?? research/j3-offline-2026-10-12/REVIEW.md\n?? research/j3-offline-2026-10-12/lags.csv\n?? research/j3-offline-2026-10-12/localization.png\n?? research/j3-offline-2026-10-12/regions.csv\Line truncated
"hash_scope": "Tracked and nonignored untracked regular files excluding ref and bytecode, plus all prior 269-file baseline paths; ref is read-only research material.",
"hashes": {
".cursor/rules/cuda-style.mdc": "5810cf8cff793a11ba5dedafaa8a4e7d7d3debb728d837ca1903ff6dc8d6fdb9",
".cursor/rules/project-layout.mdc": "aeed1cd9d48447bcfcfb6a77250af7c5a3d500de4c6b2591c5684696fa04c3ec",
".cursor/rules/python-style.mdc": "ece75cb724d7dc46cb8dab7ecf8d710a90b503001da0d506ea4bf772ce395e21",
".cursorignore": "9f072faa815a6c6d4dc791a424201404f0f623338681ae3d2fcbdf86db1bd035",
".gitignore": "de25151f4cfdf29ca64032e509398e1829c7ded2449ccff803b2fd87d859ae6c",
"LICENSE": "e98392425e9a0007d0d69f0f7c912c2dc1b59061a6197223962aac45599c76ea",
"README.md": "982d0df8b766b1d5017ba702b75e8b3cec8d22f57af8f434be27ea251652596c",
"docs/audit/audit_round2.md": "0f14ad073a0725134e6391f961c324fd0013c7791fd410713e94ed1ad40b7385",
"docs/audit/body_refactor_notes.md": "8f978d7b01c9f49dca9eeaff0d163cec6da085e2f99ee5a5e803d72306e7a72f",
"docs/audit/config_diagnosis.md": "b601652df0cac36a8faf2b317b11853221353716a25184cd9b2dc41373a7f183",
"docs/audit/kernel_layer_audit.md": "89893c98ed7c2699157bf728ec0e79b0dd6aff4008ee5c7b77eb052de24033f1",
"docs/design/README.md": "98242c6960866d9b75aaf363f703edf02c4210bc38da1a340e9f6add49c6a3ce",
"docs/design/integrated_architecture.md": "c26b0d301321fe4b86d83d11c7e0b8d0c0545ee2995afa563966f004e9788132",
"docs/design/multi_level_grid_architecture.md": "e56a67d9129f2e3c311342e21a3fb2ed14bd492dd881949b251d5d9ac577bdee",
"docs/design/multi_level_summary.md": "eebf23e0bec9b154e5ce2128e2806e7558a7d4824b2c700cfd16afd1158b2354",
"docs/design/multi_level_visual_reference.md": "cad4bfbd561e5650ec297334529334b662a1ed35f7373c61f34ee22ecf1f66bd",
"docs/design/spatial_coupling_refinement.md": "36c878c7afad524999d89fa842297a98a0433e0283e78b36ca734ddbf8723ed8",
"docs/multilevel_grid_architecture_analysis.md": "90309730b1759d63531cb258c30db990ab71ca1b56ae47d0bbe2f4e2ae52012c",
"docs/performance_analysis.md": "ba01aaa4d3c02b61a8dc55fd00518ac291ebbed79b6574190d6b7234a1158fcb",
"docs/tests_overview.md": "ffc9591fd7baa4261b2c1ce9cfa7aa13a3554a8d5df712035806266a5eaade3f",
"docs/validation_specs/Force_region.md": "3092080afe4a30665fe1b721803621ba9d0dd5d20ad17826984d94efc160fdac",
"docs/validation_specs/Force_region_validation.md": "279a4484d1bfca0fd67aed4de3282d547aa048f89389420d8e5f2fd86db54fc2",
"docs/validation_specs/Kan99b_validation.md": "0d8bf74f2361f863809af1979bf8807adaa423f98321e1104a3d86d8c7a863cf",
"docs/validation_specs/Sah04_validation.md": "1d122d29e281b7f50801b148f3314a0e35fdc27ee7d757c0a661243aa6185fb0",
"docs/validation_specs/exp_ctrl_matrix.md": "b7250576c23292988b6ef4bcfd080f611d41edc413c3cebd0eadcc8596049470",
"docs/validation_specs/streakline_notes.md": "cd342d214c07eb608ac2e5b8697322c44c31dbf4d27dfdb5409de46ef474df4b",
"output/round3_compatibility_summary.md": "319f2e6abde4b34cc4ec90ef461d8ebb85dd5a3ac1736cfa7a3fb110f2a69df9",
"pyproject.toml": "f24ab9ad3a6a728a9382b1bce2e721612fc76635f35c6f96dfddaa853b6e5a9c",
"research/audit-2026-10-09/REVIEW.zh-CN.md": "2841fd3aa7a6baedbe1079d90915c8b05212b133824ed6abccaa1f09656eaefe",
"research/audit-2026-10-09/architecture-cpu-results.json": "e1b809210005c8765b13fddbb5ed710d15f6fcbb4c5788a4064f3e88808433ef",
"research/audit-2026-10-09/architecture-report.md": "861079dc3f4ced9fdc41bfb22002d32e190c0d630d3ba2f138f9dc7a949b8371",
"research/audit-2026-10-09/numerical-report.md": "970330b3a593f79f09866ce6ae82bc0ddd81226230d0a6ff06ae8ae756ee80da",
"research/audit-2026-10-09/numerical_collision_results.json": "51e5c263bb8cde82cedef2ccfdbf5ef657742a80218d7896b1ff877516e59693",
"research/audit-2026-10-09/numerical_compile_results.json": "c3b0ae02072a2ec408ada7513b542ec255f6855cb743a3ed7f91bd8f31504f44",
"research/audit-2026-10-09/numerical_semantics_results.json": "b95b065b594aa2911740dab216f87936c9bf7f7fa25acfda93b5738443564035",
"research/audit-2026-10-09/root-initializers-report.md": "ca448457c444949d5d0e1e10fa7121064510b77fc4c3512580900f0299219867",
"research/audit-2026-10-09/state-report.md": "f8708807efc2e109810c5955f7c1884a932668c0b3cb2963c2df3b09f2a3d5c4",
"research/audit-2026-10-09/state_results.json": "da9170df3e11231c73f20e5e79ed68e08966673d1dd52004ea6b6a279afc0dcd",
"research/design-2026-10-09/Contracts.lean": "2442d9a778ef20e8af3fecf23be6fea6d73c6299ff744c9664b652bc5ee3f034",
"research/design-2026-10-09/PLAN.zh-CN.md": "0341dd7ee306a040340c8e5dedb07a109e931c27dbf3c994d072aa78e3b6bc67",
"research/design-2026-10-09/api-architecture-study.md": "d6fb45ec784f0e1db55fb9f34e137b9f551db0b9b39fd4f0ef247a78fc34eedf",
"research/design-2026-10-09/grid-study.md": "4435dc1275ec5e15b118becc6ac391f306195d1e5beaa58037b1aff3bb2465c7",
"research/design-2026-10-09/jet-study.md": "a362142ef04a5ad5dbb4c9db9d221b1199dccec53780c8f2da49a15201cfe529",
"research/design-2026-10-09/jet_closure_check.py": "fde45d0f8518740ef5c0bf0fe7635d6adaf9a2e789927dd4e68e991c138ddc30",
"research/design-2026-10-09/jet_closure_results.json": "12cf7d400a206f9f9ec9ea6ad251fe6bb0232e27bcbed22fbc1ead2c0fc7d249",
"research/design-2026-10-09/math-and-history.md": "64f8c82e4949d6f58b46faa09800958714859c36cad20bbeeae8b449ae7a6099",
"research/design-2026-10-09/math-checks.json": "94750381954317cde8d649db26beaed8ea945666572a05030ca2b4d97d384011",
"research/design-2026-10-09/math_checks.py": "4254983a783fe4bad8888b3d7c243c87d991c7bbf242edb0f56f25cbaefee890",
"research/j1-2026-10-12/REVIEW.md": "13004a4f140acdcf59acb57e9e2dda1bb95763d30060f822a7c206c94b813a9f",
"research/j1-2026-10-12/baseline-status.txt": "ac398360e05b746b89ae0c3acfe202b5122e650a3bb1ff234ab26f874a303e64",
"research/j1-2026-10-12/baseline.json": "ad7afdf7b3913d11c07343e971fe2f43c2d1a2b99e3d5904a6ba89e3bb0b24fb",
"research/j1-2026-10-12/checkpoint-gpu.log": "adfe3d77d2e6c6f6184dccc0267b4404b20a7709505d5ff5affed0ed4a618083",
"research/j1-2026-10-12/cpu.log": "60cac097f7c4f11401df2aacb43a248640555e7628d2829c4680c71db34e9640",
"research/j1-2026-10-12/gpu-validation.log": "d1e9f2aea17a85eddcd94b81c700738ce073214857b55c28abd1219ff1edbed7",
"research/j1-2026-10-12/gpu.log": "8659a78ea52bbf8eb923d46ea71636ce63cd322352d5c98a74f631e666dd8cfb",
"research/j1-2026-10-12/incremental.diff": "a454c23da7b0011645949c0fbf64d0c41ecfdab5642b1b7c5119868005d3c721",
"research/j1-2026-10-12/results.json": "449f8a17dacac0fc6d2489c4b10bac330dbbbdb38fad3ce54f739ac8c6d48e85",
"research/j2-slot-2026-10-12/REVIEW.md": "10c4a94ffc32e0a2c4e0f6593b7cfc28479b5869f279f0b9d0b708fa3a47d1e6",
"research/j2-slot-2026-10-12/baseline-status.txt": "812616e2d941efcf854e1b37d6e662dda1aaf2b69074fcc04017133e13b72166",
"research/j2-slot-2026-10-12/baseline.json": "e82a1844145fd0cbc585c581b29f80b56193f122cfe1dfa7578f26904a720285",
"research/j2-slot-2026-10-12/cli.log": "9482ad7101d501f27f92e204b2f3ae5c6d91bd887b525aa31cb4a2a188f3cb92",
"research/j2-slot-2026-10-12/cpu.log": "91aba5961006909fbbb860429a9d3cfc930112a0d74c7788bc51c0a5897b47e5",
"research/j2-slot-2026-10-12/gpu-serialization-failure.log": "df804e53b35e7ddaad79a17842b4b5fd9d834e29ca2d56edb00e835848d09200",
"research/j2-slot-2026-10-12/gpu-validation.log": "223351b52c70fa4523289f3a1b3db435a11286379253280470900ffe397580a6",
"research/j2-slot-2026-10-12/incremental.diff": "c9e391bc91438cd912c1ed5a419705d4388522f672c67a066cfc055e814e699f",
"research/j2-slot-2026-10-12/results.json": "7d35ca7989aed5380e0a45de7f583972566fc516a051da63c53b35514e267494",
"research/j3-coverage-2026-10-12/REVIEW.md": "7293f3f3442855c8521698605aab504e026915a7bf1e77f5a24710d89a812443",
"research/j3-coverage-2026-10-12/baseline-status.txt": "31c949b11b20d7cd4202dba16882b5712aa1653da0cb2da2f0ebd69bf488040e",
"research/j3-coverage-2026-10-12/baseline.json": "d8844104f2665a25bfc417ee29becf89ab3955fac9105b5ddb12cfb1fe2a55b0",
"research/j3-coverage-2026-10-12/gpu-validation.log": "505cd5a5db46d7984aefb2a614151c25c4ace0e7d2a52e02c3e4f9792fd8eb95",
"research/j3-coverage-2026-10-12/incremental.diff": "98aa7855d5d6b91b4509a924c8a5aabab4339ba29c7e7dc2d91262c48e3848ca",
"research/j3-coverage-2026-10-12/negative-budget-20744.h5": "c09d75fc4a2cff68039a0956bd9d32b79b9cd3a6b386c72b4db54c214b110cd8",
"research/j3-coverage-2026-10-12/negative-end-20760.h5": "bd0bd063579d625e358762b1fdde5ac11bfcf739646a847fb77a4a2031011b9b",
"research/j3-coverage-2026-10-12/restart-21280.h5": "3e89c12c16f91f76ca9acd909e0fa7d42df6fbb5e870b299aa08ca42bc3e3dc9",
"research/j3-coverage-2026-10-12/restart-reference-21296.h5": "7192f510dd7820675aa1de130f55514136fba782cf77f92545189918a7e0c328",
"research/j3-coverage-2026-10-12/results.json": "02460981ad49c9cc13b4246abad1d8afd2599c61bfb545a6e32da9bbcd5c0db1",
"research/j3-coverage-2026-10-12/verification.json": "205986efd2b41635721b7fd20288be982348c765180102c7102750ba088f3a28",
"research/j3-lag-2026-10-12/REVIEW.md": "f388b64b0cc0413dc9865afda90ed24de666dda0d6cdb821b4363ce1b73631b3",
"research/j3-lag-2026-10-12/baseline-status.txt": "e0b69879084f54afac1a3bc3701f1de9819068190c815ae84421f02f83cad9f7",
"research/j3-lag-2026-10-12/baseline.json": "5e9a920813fe3d775110af85af92970d5245a7040ace804445e432353b77e489",
"research/j3-lag-2026-10-12/end-21280.h5": "19a94e9e8db6dd9ac981effe06032c351992250b58768d9c090409193893d588",
"research/j3-lag-2026-10-12/gpu-availability.log": "b227a519b8286849cfdf842573bd451803da048c6b27af9517f6b8964cd3aa39",
"research/j3-lag-2026-10-12/gpu-diagnostic.log": "97956b517072b7c34e2e29e2a23f87eafb19b9eda786a4b8149e4a2eaed76ee9",
"research/j3-lag-2026-10-12/host-check.log": "b2b6d262934b3abf9e0f0bdbde14b339cb977f7bffe391c17b51b5d067862dda",
"research/j3-lag-2026-10-12/incremental.diff": "ebdf66c72daf17b926482f79a1a30bf0eb2d27fc930a7bb62e5449ebcf72fcc7",
"research/j3-lag-2026-10-12/results.json": "00435ac7e402943e55e702fac1beb5af8cafe71967999658bcde2b29077b1fa8",
"research/j3-lag-2026-10-12/start-20760.h5": "6c4cba5928c77566c2afc32231311a3986831c18fea766faadebb101243399e2",
"research/j3-lag-2026-10-12/trajectory.h5": "2b51f8ec5e0cc8ca72c73ac1b51dd611158368e6d6de791d85150fa111ea1986",
"research/j3-offline-2026-10-12/REVIEW.md": "d9902c58498e73c29e054b23adb968f7e1e14421cba5c58d03bbc5a50159ae79",
"research/j3-offline-2026-10-12/cpu-analysis.log": "bc02a9b197fc15ae1b503ca54655a7622d4361f9b45b7848ff9c387ea3665f11",
"research/j3-offline-2026-10-12/lags.csv": "fbd9addd413f24c47f4411317e872265bb774e8e1724fe169412befa860ae94d",
"research/j3-offline-2026-10-12/localization.png": "a72907638e32b0ecfc2205bea438e7b408f40aad86217ce6ad9b4877840c9cfc",
"research/j3-offline-2026-10-12/regions.csv": "3a8fc640b61d70e3b7f73d2bf8ac2bd3f720adf39a90dfda6180430e0489efae",
"research/j3-offline-2026-10-12/results.json": "cdb857bea6f4e06ed15acf773505ce6d5147f8cb8ce0a53cc368ee267cde6361",
"research/j3-reservoir-2026-10-12/REVIEW.md": "1ea5f860728584ea6cbe40ba3994e40471102d8e2cf6d93e28fe47222cba0cab",
"research/j3-reservoir-2026-10-12/baseline-status.txt": "0ef1a8c9878c4053ebc1a7d4bace6d4ec38bf27ace167b4239ddbb1c6c897e20",
"research/j3-reservoir-2026-10-12/baseline.json": "847fefd1eae971985d34d04d89ee6d6f1c91f6940c54fe351d112faba7bc6838",
"research/j3-reservoir-2026-10-12/cpu.log": "b33f6c1a1b0ee67968c4cff85d491e46e30e0d6c796b552629714ab8b5dcead0",
"research/j3-reservoir-2026-10-12/gpu-availability-sandbox.log": "1d58470512e583a0acfabf6896ee5f31e5b493b8231aed54b864f64eb275b02c",
"research/j3-reservoir-2026-10-12/gpu-validation.log": "ff04024db197e332f37c912a96413e3251fd0186947348ffbc33af6f4a899f2c",
"research/j3-reservoir-2026-10-12/incremental.diff": "fae312831d71e46dd477a640b06ed927853a9e735d26bf9f5868927fa31cfa56",
"research/j3-reservoir-2026-10-12/results.json": "49685de7679a14860258abf1753aaa6d116ad709b868d907ddb40e74c9b845ea",
"research/repair-2026-10-10/TRON_HANDOFF.md": "f8aaa3d99cd133c2055d4adf396a0a57d14f6006aea19e87611bd1c2c1b53a88",
"research/repair-2026-10-10/baseline-hashes.json": "d6a7d5f9ec5bceb0e7927d55603d9c5e70105982cd945723454659b19ab476e6",
"research/repair-2026-10-10/baseline-status.txt": "074088d793014e3b8154c58718058c7d300fb45595f5129fa957ef1e4cec38e2",
"research/repair-2026-10-10/checkpoint-domain-2026-10-12.diff": "292b4bafe7a62d4fbbf7c165eb99929336edfcaa16b15f34f72ab71fcd928391",
"research/repair-2026-10-10/classic-results.json": "a5d15305f516fd378b54cf9029102be58a83a55a7bad4b8e058fcfe0cc9898f4",
"research/repair-2026-10-10/classic-signals.npz": "820c9a0b0713d7455f0a5839ac2cd5ee706086d1a26461225dcdb095673421e2",
"research/repair-2026-10-10/final-gpu.log": "988bb97256d17b88c14f3793b15880d727ecb285abe62e7d2ae27a16729651c3",
"research/repair-2026-10-10/final-unit.log": "a892a39ecf88125558538cadce2cb5dc46d106b993b164e03da4ebb0eee68cef",
"research/repair-2026-10-10/original-user-files/src/CelerisLab/lbm/kernels/config/config_grid.h": "8be3a7cf74ba30d7fd3074fed79e63dbda7311c4d03b454ea641bf298ffeaa8d",
"research/repair-2026-10-10/original-user-files/src/CelerisLab/lbm/kernels/config/config_method.h": "3db4e16ef2c6b22349d04e6aa8ab04bdfe0eb784f9f3a98277e15dbed1835d81",
"research/repair-2026-10-10/original-user-files/src/CelerisLab/lbm/kernels/config/config_objects.h": "dbb93c063586da278c15d95e23f84c12e728f4f5f1bbc3980fe9cedaa6fff90e",
"research/repair-2026-10-10/original-user-files/src/CelerisLab/lbm/kernels/config/config_physics.h": "26df33c2960ba36f3283e19b55b4ea92e50e4efda705f9ebfbf3f875a4092c59",
"research/repair-2026-10-10/original-user-files/tests/postproc/experiment.ipynb": "c6b45db1c57200f0777213ef8d44cb4996c1aa7a5fb42b968b77e56f51b4fca4",
"research/repair-2026-10-10/provenance.json": "a81b7e32ecf7182c9617df1b39bbb063a05ef89290ad501bac4573cd5e8a6832",
"research/repair-2026-10-10/repair-architecture.md": "49be42ff5c994017f3175e17efda14d84f0b68f8ecd239f66ccee38415b60c5a",
"research/repair-2026-10-10/repair-numerical.md": "0272ebfa8c519aad161c520542cf53156574661609b91fd5ccad7955fdf2bd7b",
"research/repair-2026-10-10/repair-state.md": "4d4aa1ec0c11a87d2c8380912e7ed74cf5c910ae42e5cc529effde36c9020969",
"research/repair-2026-10-10/simplification-checks.log": "c9f15e870d02003480adf1a7f2fe4a9aca66c1934c4477619f05c8a4798ba85b",
"setup.py": "bf07df7ec19de56710d2bb5f61873e09710cd059d46837dc3aa54f3e09ff9e06",
"src/CelerisLab/__init__.py": "21cc469bd6e970a1f9ff5970c8eea4602065e41fc881854759ee565ee55c10c6",
"src/CelerisLab/body/__init__.py": "d6ec221d51eaf7b1da11ef320b399599cf5b9422e5bc271a7264a273033e6928",
"src/CelerisLab/body/action_smoother.py": "b1a23ee6bbd4850b172cb8738c5c3546ee465a54189e6af9d8044f023d4687dc",
"src/CelerisLab/body/coupling/__init__.py": "c931f7eb318d48408c3e2febcc6917c88c8dcc1697cbf4329b1f340d94c35763",
"src/CelerisLab/body/coupling/soa_packer.py": "8ec26fd55ef74801bbd5ab6bd3d0a7dabc750cbd498aaac2ca4c61a0108ad3c9",
"src/CelerisLab/body/ddf_patch.py": "60fcfb7441e73bf290bcff41ca3a83da3e7ddad765d7247464e8f02e3043b4e2",
"src/CelerisLab/body/geometry/__init__.py": "ada88980ab672959aca9aa3a4c4aade3219524b2ab68110cd2a2f41e3e0ca90a",
"src/CelerisLab/body/geometry/base.py": "cceca14361ca2f34d34a3e43730e1a79b8ca81be00f0dd62e884db32b479419f",
"src/CelerisLab/body/geometry/circle.py": "7605ca7c21103f1d801ac73ab8dd18dffbdac425b2dee7b8858b283628a9e436",
"src/CelerisLab/body/manager.py": "eac22c9ac92c26e89c10bb089fb3c4156e4eb7bd0c1b1f6fe6dd32e2940a020e",
"src/CelerisLab/body/objects.py": "71692d098ebb5ab2d0e614cb9b7854f048b8b33fbe6707e61fd0e8ac35745017",
"src/CelerisLab/body/preprocess/__init__.py": "dfd9d58bc07f626ab23a70053e31b88a6d9165d2e4c76a4e9f48abe674d3d2ec",
"src/CelerisLab/body/preprocess/flag_overlay.py": "831fc9e9736b758847759a085ff133eb49ec91318ace4fda76f85960138ee300",
"src/CelerisLab/body/registry.py": "fbb7327780adbdc6da15ebdb799980daf32df22ee974af0893d7409f177bbb68",
"src/CelerisLab/body/sync_plan.py": "a73ac9ee361b2120d0b7bbebeaa2ccbf924ba27bd95d4dd4b383c10a39b2a409",
"src/CelerisLab/common/__init__.py": "d4dbde78bc97fccc9eabac9abae8f0f15c112c10ff8e9b45bd9401d4723df1ef",
"src/CelerisLab/common/_types.py": "aad2ff1a9033d4fd68783ad7123afb47201ddc58785cb6dc0246947037072a5f",
"src/CelerisLab/common/checkpoint.py": "5b7caf3896167a3f37c539b58837de6eb3f8085fa7bf5f821a09666cc16d43a4",
"src/CelerisLab/common/pathline.py": "a1b6efcc0a076d0f1dc8d49a595779426d7d5626b00072a59bac710ff02ad046",
"src/CelerisLab/common/preprocess.py": "7fc78a08857cf8e98519500b094a1d896af189b6b15658ff9b388ed51bed4515",
"src/CelerisLab/common/render.py": "0e055476257eb2bcd11e733766e52195de02f8fad228f570a3511a7c831bdc29",
"src/CelerisLab/common/streakline/__init__.py": "13ff1cfa416fdd721a08a659e76b5a5a99b8d3201add10a83b7b0bc654bc1eec",
"src/CelerisLab/common/streakline/_config.py": "a9185ef68e9c7b5d5a1dc0b04a28341e2ad91d13c145a7c106636a878cf0a605",
"src/CelerisLab/common/streakline/_integrate.py": "3fbd4368b2c8d0e7fda40dc65aac5df02b085008b4c68acd83cb7ae45d33a13b",
"src/CelerisLab/common/streakline/_render.py": "236cd637414ee318c4d66f9aed32110d8dc42a100d65fde06172f7cd0ba62c65",
"src/CelerisLab/common/streakline/_streakline.py": "1a3e08daa706b5f83cdeb337e9a945a36ddf7583c40af1d0bb9d825ac954df37",
"src/CelerisLab/config.py": "2f1bba7515f5bc08cb3a8d140bcafe7fa0689e01b3b06494697bb2956a71530e",
"src/CelerisLab/configs/CONFIG.md": "41cafdbe525366c08aa9d0416ea026ccf0026ba7123b8a9b65f968a80d928e3a",
"src/CelerisLab/configs/config_body.json": "055f261f0828ca1d4f2bb694bd15b72bbcabe31d552326208f28e37f761adab1",
"src/CelerisLab/configs/config_lbm.json": "17e4311f1f250c6ece59177a8b6ff856b69a016c7c10267e774b030a0a390865",
"src/CelerisLab/configs/config_lbm_flume_mrt_zouhe.json": "8f593321db05a563a42931603a228d61cbcba06dfbe113262d5cd0ad93c0fe79",
"src/CelerisLab/configs/config_lbm_flume_trt_regularized.json": "f4bba8e6a4339fc3c4eb14f6e2f57c4b22993c73703c773d853edfbe34736e56",
"src/CelerisLab/configs/config_lbm_three_cylinder_triangle.json": "eeb8e7149dbe4aa6b3a9562802735aa950750dfbe2d972a0727e788573afa817",
"src/CelerisLab/cuda/__init__.py": "0d01dff9f0399c8baba822aab5ca0122a135f011008ed8a499ebd9f7e5b06aea",
"src/CelerisLab/cuda/compiler_v2.py": "c4cc3ec4445c8d75e6a253dd87963877117a722bc73b9d4811806fc6045d08c1",
"src/CelerisLab/cuda/context.py": "013dd4ec6d01d2fbd11afdfb103eac6a273bd9f798d663d761b851eeb27885e9",
"src/CelerisLab/cuda/obs_layout.py": "5ffb2c3aeeaaaaeb64f2cd8febfbcf4ad9919e5414020ad753cfade0683b21c2",
"src/CelerisLab/lbm/__init__.py": "7f60fb3aaae81501b510d08c2fedff44fcb05657260eb10b6f5cc91e7204306b",
"src/CelerisLab/lbm/curved_links.py": "587f3f4638688c09c0850bef2f314780d03f06c9211abc5fd773fbeecabc3326",
"src/CelerisLab/lbm/descriptors.py": "c9f025dfc14da43b989047b84cc22bd05d5cc92c9ec695c1da68fdfb788e3f2b",
"src/CelerisLab/lbm/equilibrium.py": "2fb2f2bb7ff326d23abce80fc2a4c0907b17740ea3e29fe6ae079c5044783826",
"src/CelerisLab/lbm/field.py": "0e727eacc3706add4d8d15c418e9b631050871f831698d3ac689dd5f2c701b9b",
"src/CelerisLab/lbm/initializers.py": "dacf9586963e862d6d0a98ef1a066036be6f91e9d423720661d8ef2c1fb2df6a",
"src/CelerisLab/lbm/kernels/boundary/bounce_back.cuh": "aba3748c564ed91b161d268ef8b737b7c7be96a823063d201f3da684dd845233",
"src/CelerisLab/lbm/kernels/boundary/curved_boundary.cuh": "4bd761e81b32f4bb3238fbb1f6ea890cde0cc987cd8bbeb54e9df8b0e1b57914",
"src/CelerisLab/lbm/kernels/boundary/esopull_curved_helpers.cuh": "b9b474bc4edaff05681c5443235472d04072d0d775fc0eb9c5967faef52b0258",
"src/CelerisLab/lbm/kernels/boundary/ibm_kernels.cuh": "e6909b547dc8d64cdd8a76a90660243a8f5fee535caa161b52b4dd8b7c29934b",
"src/CelerisLab/lbm/kernels/boundary/inlet/channel_stabilized.cuh": "efe077afcbb6b731256a987c2fd79a1dbc470c902f87070d60421ea6cb13d4e2",
"src/CelerisLab/lbm/kernels/boundary/inlet/common.cuh": "f3cec54c8873c65b3dca4375605d2c89a8727765884d3954c235242fdff9c6ba",
"src/CelerisLab/lbm/kernels/boundary/inlet/equilibrium.cuh": "f0964c811b2c41a5aaa1c6d99c490b06e850c634eb8749f1f05ef61f93c2de1d",
"src/CelerisLab/lbm/kernels/boundary/inlet/regularized.cuh": "943d4a571818bacb89c70bccfaac202691121e3e385803ce6309123a0a03ddaf",
"src/CelerisLab/lbm/kernels/boundary/inlet/zou_he_local.cuh": "e73e66b853b1e4e0e30d8f4185d832aa414ce670a1813ce2b5459f2887f71f89",
"src/CelerisLab/lbm/kernels/boundary/inlet_outlet.cuh": "de8b213a6da42c2e5e9f8966199fc66ea4541b85144a90f3f5dbad3c6ab63b97",
"src/CelerisLab/lbm/kernels/boundary/outlet/pressure_neq.cuh": "c8b2adc66d12fe602076ddc9693c5c208711fcaddb58aa9a31401a269f51c4c4",
"src/CelerisLab/lbm/kernels/boundary/planar_velocity.cuh": "0b2f9e0bd483c199637e5672dc0ffc460bc383dd1804805befbeb4c5d8c708d1",
"src/CelerisLab/lbm/kernels/config.h": "7d1124125e0b354558297934460e64c760fb68cdd7bf6d01a1238bb2eaab8c37",
"src/CelerisLab/lbm/kernels/config/config_grid.h": "8be3a7cf74ba30d7fd3074fed79e63dbda7311c4d03b454ea641bf298ffeaa8d",
"src/CelerisLab/lbm/kernels/config/config_method.h": "3db4e16ef2c6b22349d04e6aa8ab04bdfe0eb784f9f3a98277e15dbed1835d81",
"src/CelerisLab/lbm/kernels/config/config_objects.h": "dbb93c063586da278c15d95e23f84c12e728f4f5f1bbc3980fe9cedaa6fff90e",
"src/CelerisLab/lbm/kernels/config/config_obs.h": "c11e2249359145b5c4cbaaf0487506fa77c1f4b82c7c169ddc574aa0babcd727",
"src/CelerisLab/lbm/kernels/config/config_physics.h": "26df33c2960ba36f3283e19b55b4ea92e50e4efda705f9ebfbf3f875a4092c59",
"src/CelerisLab/lbm/kernels/core/descriptors.cuh": "8440bc14857da9007982650f828a23608eec9f7cc4bf772e8c8dc1239cb45356",
"src/CelerisLab/lbm/kernels/core/flags.cuh": "0025705f24710330d9d9195f713879bfb650a85a3449baef0e196b831af104ab",
"src/CelerisLab/lbm/kernels/core/layout.cuh": "1fbd820021c89ac3efcde24145996cb0147769e607e498e61f308ed3e0b13706",
"src/CelerisLab/lbm/kernels/core/obs.cuh": "b742b77c9f61e1f020fe9922c3838ae9d855e17b381154958b58f10a22938922",
"src/CelerisLab/lbm/kernels/core/params.cuh": "6e18bf730d936d940e3d85452f0714a2eaae31bf41002f9fd520ec5b372878dd",
"src/CelerisLab/lbm/kernels/core/precision.cuh": "849df14b4cce50af52399e4b8f3e997196f3ae5f1163f68e28df3e6b2507a8c4",
"src/CelerisLab/lbm/kernels/kernel_v2.cu": "c7bd3fb705b77261ba2441c52a24a7e6a7865c165cba088a1b75201c4d29c408",
"src/CelerisLab/lbm/kernels/operators/collision_mrt.cuh": "aee444eb60c47a3fd518dca975d1af05425a0818a0ec6c3fb3f6150f60c2cb44",
"src/CelerisLab/lbm/kernels/operators/collision_srt.cuh": "6b7ff842f392c8f853d2d1a97cc69bfe50f21283f73e659404da07cf6c95f5e1",
"src/CelerisLab/lbm/kernels/operators/collision_trt.cuh": "9725b9840b9ad8b4ec7be61ff5d06d3151e86d1a87585c13f2fbf934d0d2c5f6",
"src/CelerisLab/lbm/kernels/operators/forcing_guo.cuh": "969a430c1af03f32e3bd0df95d805e64f56334717c44dd4ba208ba503062a24b",
"src/CelerisLab/lbm/kernels/operators/helpers.cuh": "0b3a4d95d7d19f5fec09e5423b8f4cc99f8a226b541967425967330da5a051ec",
"src/CelerisLab/lbm/kernels/operators/macro.cuh": "e27c1c410dc857be98da4596568e405eeaf88701d291ac0e398aa9cd23dee740",
"src/CelerisLab/lbm/kernels/operators/turbulence_smag.cuh": "ff7f000297ee0817e255ad9fcb6a13b647e3ddd5b206518d35f38d2895a9f501",
"src/CelerisLab/lbm/kernels/step/aux_kernels.cu": "bb7f07d898f0d5151e5bd0f45e6bd819c5e83a345a265b73204906ac3cc29db4",
"src/CelerisLab/lbm/kernels/step/esopull_macro.cu": "c73116020ca217ede1e4de27c8269c31f9d91e33433ac8252a21e9b14187c50f",
"src/CelerisLab/lbm/kernels/step/esopull_sync.cu": "c0ff3e72900c3ab89a05dd03684e96d3b740cf1672d565727fc2af165933d087",
"src/CelerisLab/lbm/kernels/step/init_flow.cu": "305be3bb12fc0d039acec1701baabcf0e8a35e683c49c34f2af8ca9867d2b29c",
"src/CelerisLab/lbm/kernels/step/one_step_double.cu": "f9f8242b38e8e0cf8425b75e2b0215bc15363c62eaa0fb43c761b8e0931bfdc9",
"src/CelerisLab/lbm/kernels/step/one_step_esopull.cu": "aa223b2744ae6c9125673df311a96ce588032c1ba58bebb11fd33ecb990f8ed4",
"src/CelerisLab/lbm/kernels/streaming/esopull_semantic_helpers.cuh": "dd5a9091628b079efd97e53fd49e52d09dcee88529235db77a5648e02937af6e",
"src/CelerisLab/lbm/kernels/streaming/esopull_single_buffer.cuh": "77ed4ab9a0ebc5ff62a91a7c39066ef395391ae36e9040a69fb2bd8b1626dc79",
"src/CelerisLab/lbm/kernels/streaming/pull_double_buffer.cuh": "b65d741ed78b7b62f99531ba0c0ce1936663d8dc9640e7d7d16c707f1baf6549",
"src/CelerisLab/lbm/stepper.py": "e9e51e3a902fbda086d4707c0487e7b1dea6246fab290a24d82bd52d4296410e",
"src/CelerisLab/simulation.py": "34d69e71844f553790c5a2bed0f8fbfb912a9498e95b500d1ef2ad41cae3b424",
"tests/audit/Force_region.md": "3092080afe4a30665fe1b721803621ba9d0dd5d20ad17826984d94efc160fdac",
"tests/audit/Force_region_validation.md": "279a4484d1bfca0fd67aed4de3282d547aa048f89389420d8e5f2fd86db54fc2",
"tests/audit/body\u5220\u51cf\u529f\u80fd.md": "e9f308a8cd0f0e7df5441c32a15f84c0bae50bc0e56b8728f6c6f2cf78596673",
"tests/audit/body\u91cd\u6784\u7b14\u8bb0.md": "8f978d7b01c9f49dca9eeaff0d163cec6da085e2f99ee5a5e803d72306e7a72f",
"tests/audit/\u517c\u5bb9\u6027\u6d4b\u8bd5.md": "9c1721a33b381b9c3810545772b022913da06617711b5ba13a3c2c991b81a7f7",
"tests/audit/\u5ba1\u8ba1.md": "0f14ad073a0725134e6391f961c324fd0013c7791fd410713e94ed1ad40b7385",
"tests/audit/\u5ba1\u8ba1\u62a5\u544a_kernel_layer.md": "89893c98ed7c2699157bf728ec0e79b0dd6aff4008ee5c7b77eb052de24033f1",
"tests/conftest.py": "fa0ec26667872c9c1011d608310d2551fd24719b5d216f06d923ff4c74c73237",
"tests/integration/__init__.py": "c354e43ba09b55a8013a2df2069438740b5f48b5917d855e52e33ab5d7da5a6c",
"tests/integration/_cases.py": "ab76ca1096d2d10fb05b3539aa8ed3c7e549619bae6900ac98723f6c3c908f2d",
"tests/integration/test_body_sync_e2e.py": "d29f01771f3512a4b3ad06fae4ee952327d7fd9f0476942402fe92e9e327fcec",
"tests/integration/test_ddf_patch.py": "dda2abba32ca13e17098232f2831a0b1b66439c35f8931d9997a0257250c1281",
"tests/integration/test_numerical_gpu.py": "002a6745929bd5ee86a9491ea9bc3f97602fb825ea17262ea190c9311881100e",
"tests/integration/test_runtime_contracts_gpu.py": "775e578e2e8072af32fc740b2698abbb79454235a0f3ee929ac4c75d747f8db5",
"tests/integration/test_state_gpu.py": "dde0948941e8abbc5ea10a3acb3a35abbaea576f36ecee0f1120fbcf7454d60b",
"tests/integration/test_sync_bodies_skeleton.py": "65f55a0980659b49ae0027f0642a27e2ebaead226ef083f233e878150884b07c",
"tests/integration/test_unified_obs.py": "4a681536099741d92bdc258525fe3374cbdbeba0d49996e53808381a1b6a13fa",
"tests/postproc/experiment.ipynb": "c6b45db1c57200f0777213ef8d44cb4996c1aa7a5fb42b968b77e56f51b4fca4",
"tests/postproc/run_exp_ctrl_matrix_streakline.py": "529d5f31a3862080f890c65177502b589710b2d960ddf131abaf7dc2f9e2a96f",
"tests/postproc/run_exp_ctrl_matrix_vorticity.py": "b7e0c4113111b9b677f321750c0055656ccfa4f45c25fe7846f3ed22f30d1467",
"tests/postproc/run_kan99b_streakline.py": "a2bbf3fc629ea170d2d4879317dbf2b81c43378a328100ac1f2ee8d9895666cb",
"tests/postproc/run_stealth_steady_sweep.py": "3c32c4dede7da77fd6cfbd3f7b1ff43bb11390aaba621883ec96c6c7fdad5af7",
"tests/postproc/streakline_triangle_clean.png": "aa6669de7af6f82e98af25698a15f494e9cea20cb911ad9a30fe52597d33bb79",
"tests/postproc/vorticity_triangle_clean.png": "f831b8143b50f038d5920a0658469622655f34176d30cf7216feff108aa2ecaf",
"tests/screening/run_config_sweep.py": "5030c99923815ed6ad39110cb56f748c579ff4c66c7c1a368ad1a6008017e2ff",
"tests/specs/Kan99b_validation.md": "0d8bf74f2361f863809af1979bf8807adaa423f98321e1104a3d86d8c7a863cf",
"tests/specs/Sah04_validation.md": "1d122d29e281b7f50801b148f3314a0e35fdc27ee7d757c0a661243aa6185fb0",
"tests/specs/exp_ctrl_matrix.md": "5d9dd2e703582572eb68afe3a7096ea43ec82aa03418d20ed283c5365031e433",
"tests/specs/kan99b.md": "b7e0669f0a6b677d902204f3427d1b3ac254bfe70c37d9cf995fb3e8f1fedfb1",
"tests/specs/sah04.md": "33dbe5e0fd63738abd055c4aa403c191b6de04e6efdbc568f1942c6d23c7459f",
"tests/specs/streakline_notes.md": "cd342d214c07eb608ac2e5b8697322c44c31dbf4d27dfdb5409de46ef474df4b",
"tests/unit/__init__.py": "17f57920d9c1ff46096ceb2af008eb38c4b98dc81ffa3c3d310e758e80ca1cd4",
"tests/unit/cpp/collision_regression.cpp": "f17acdff74ab82a62dc5402b42e3f6a149c262e89b140494164d6ebd630f5e14",
"tests/unit/cpp/planar_velocity.cpp": "8dea266984edc69d4e0e68007e038d7a587e99f84e33478d6656a66a56680933",
"tests/unit/cpp/reservoir.cpp": "c3eacaf0271400eb45ad559b571a8f7faa2a809d5f1857ffeb5592addce2cd0c",
"tests/unit/cpp/semantic_regression.cpp": "99dba074c0c0a32ea76026e7d54fc60af8e6d3dc5315c8900c470b4518878f39",
"tests/unit/cpp/slot_profile.cpp": "31ac58ccab175bf79fa59fc46d4c0842df18ab0a5e5916be84760d9da2b75788",
"tests/unit/test_body_flags.py": "ac6409157924e15a13a3d2cc2f1a09014b8b0198ba17c824f412ff20b19e2aac",
"tests/unit/test_build_contracts.py": "7bb237425e8bb481f312fa4841c484e280731e13c7cbb9a53dad3e7f98984ac3",
"tests/unit/test_context_ownership.py": "299fed30dd0f9bd4dadd8b27f50df2a6367bdb0ab2ca3f391f215fde7241f35a",
"tests/unit/test_equilibrium.py": "1ecbcc4547b1c846b75320463d828d6a36b6aae73208084fae476b1001c1bb50",
"tests/unit/test_initializers.py": "8b4e3358d925614984265ae73c142006b48fd1c3918cf84901f18afd9fe68c3a",
"tests/unit/test_numerical_operators.py": "6d1d560ef553a2af7adac7db3e325d96d7fe39073d5fe3e0e982439537385b27",
"tests/unit/test_pending_edits.py": "905a0dff23b123e8e38aaf364984c810fe51c39acd64aa271e343a4701d3d024",
"tests/unit/test_planar_velocity.py": "b656da0880b4234b1db805544edbe0d2473cbcc7c2c869c71d8251337f62a982",
"tests/unit/test_reservoir.py": "e718c78a53c3941aba7feb8ae4e8bb0b1726c1145de84febf91220c1917991c9",
"tests/unit/test_simulation_lifecycle.py": "77abdc33218c35e9c8b62dbd99ceddbaccd8417e7f0b539ea8859ea0175c663a",
"tests/unit/test_slot_velocity.py": "6a9494de9a32c350389ccbed58af48951f6b25a21a258537d2e8b73eb67cb11d",
"tests/unit/test_state_regressions.py": "0f69cfeb83428192f95688c76abcae7e5b9cf5f27c52bca4ac20c7f320044374",
"tests/unit/test_sync_plan.py": "983313ef783143231fa5a392f85f3bac011184773ccaf5d946504c206cabb721",
"tests/validation/analyze_j3_saved_frames.py": "438f67dac682b94c4950626f8de4fdcde48c3a4e9ecf8fdf1b0ada4b6e0e781a",
"tests/validation/diagnose_j3_lags.py": "286fcd65b3261667a847b9b26e213d0af92cf459faa6bbd774f78c8479ce31d7",
"tests/validation/multigrid/MULTIGRID_VERIFICATION_STRATEGY.md": "d4f3473da44abee6031a0e1bd4d0ca589077a18f15d2461836e4d2ebb98e458a",
"tests/validation/multigrid/cpu_reference.py": "bba2a06a9f6517b32079ffff15e4060d8c3b7ed35f16ca134e1877226c9e4e1e",
"tests/validation/multigrid/cpu_reference_v0.2.py": "b6adbad7da625ef6a6b97958ea9625030ed92676d0cada48e061c87bcf7ca8c9",
"tests/validation/multigrid/cpuref_0_3_evidence/README.txt": "1947ee0232b88b3cc2c506d0b0af5ba051ecc94aa8f7f09228ef3939cc95919b",
"tests/validation/multigrid/cpuref_0_3_evidence/README_grok.md": "065947e15b2242bce7d3eb05a3acdbb59939c621dcd5d31540ad4a1bd4416818",
"tests/validation/multigrid/cpuref_0_3_evidence/baseline.json": "0daaccee41cabeb17a00e2405e2c7fd0b80d36f2d01778eb39c9fd22b13d2d47",
"tests/validation/multigrid/cpuref_0_3_evidence/manifest.json": "2850ecaf2e19d010ba35eb54162371d82cc1a092831e08a03b6adf75a614988b",
"tests/validation/multigrid/cpuref_0_3_evidence/results_horsea.json": "914389afc39752bcd4132aa21fc8d5cbcf0ca75b1efd6a49becab15c2fa3361b",
"tests/validation/multigrid/cpuref_0_3_evidence/stdout_grok.txt": "73e4ef01138842981daaa534390f1463839e63833c11f4e8872f94f8eaadc717",
"tests/validation/multigrid/cpuref_0_3_evidence/stdout_horsea.txt": "457f1d2173496554c87ca6e61df518c0b8f1e0a28cdfd94b94ebbb61bc459d70",
"tests/validation/multigrid/test_cpu_reference.py": "ade5d4827f971aed7174b59d83769e7aa542338e625a9fc8db1e8b1805cb74ca",
"tests/validation/multigrid/test_open_corner_negative_control.py": "59a6f8ca80cdd63cb7827fbebf9b4b555c3793f19dd6bca801544ec10b5cbe1b",
"tests/validation/multigrid/test_tron_additions.py": "8e7a6a90b85e64c7326719e7b8bca2f6d34fb4c80690f0685f7e291ab93bd2a4",
"tests/validation/run_j1.py": "51b758a271ff358f931b3140a80082294a67e66c2fec0f8c19319e37f92aadc4",
"tests/validation/run_j2_slot.py": "b7d2d3aa06fcafc3ac62ed4a50892afbdb7f86e5720ce75a39ce317b6f571dad",
"tests/validation/run_j3_coverage.py": "329869519b7078e854d96241a7aad8ef93f35ac9be83f0be502c3a93523c3b13",
"tests/validation/run_j3_reservoir.py": "47535bc3569ce68c888d38978bc4f9077fd763a17829c20c081be52bb18a2903",
"tests/validation/run_kan99b_rotating_cylinder.py": "323186429a100f36b41ab9b81ade2da6a47e93be3ccb7034a3a6b97f4ee8eb00",
"tests/validation/run_perf_baseline.py": "93dde2eb1132f45ea69e1e285ff421dc97a83651a22c79571f299c1909650721",
"tests/validation/run_poiseuille.py": "e529288e2ffa8e00d281a9006723954d60a96ae4d025e8f28656c09287d4ff46",
"tests/validation/run_sah04_st_matrix.py": "9b9c0ce063e07a316846635ee769b837ed26be6bf039f78f4219c10b516f8006",
"tests/validation/test_sensor_accuracy.py": "c6038a9e7a597a1738814bd15e6ecf357cfd271cdc2a132d47943c5280ac0ef9"
}
}
@@ -0,0 +1,296 @@
{
"comparison_precision": "Printed output precision only; no claim of bitwise full-precision field equivalence. No new tolerance or diagnostic pass/fail threshold introduced.",
"all_22_boolean_checks_match_and_pass": true,
"boolean_checks": {
"finite_A_phi0.0000": true,
"cons_A_phi0.0000": true,
"finite_B_phi0.0000": true,
"cons_B_phi0.0000": true,
"finite_C_phi0.0000": true,
"cons_C_phi0.0000": true,
"finite_A_phi1.5708": true,
"cons_A_phi1.5708": true,
"finite_B_phi1.5708": true,
"cons_B_phi1.5708": true,
"finite_C_phi1.5708": true,
"cons_C_phi1.5708": true,
"finite_A_T_phi1.5708": true,
"cons_A_T_phi1.5708": true,
"transpose_ok": true,
"t0_AB_patch_ok_phi0.0000": true,
"t0_AC_out_ok_phi0.0000": true,
"init_mismatch_ok_phi0.0000": true,
"t0_AB_patch_ok_phi1.5708": true,
"t0_AC_out_ok_phi1.5708": true,
"init_mismatch_ok_phi1.5708": true,
"init_mismatch_ok_A_T_phi1.5708": true
},
"summary_metrics": [
{
"row": "FIT A phi0.0000",
"metric": "lambda",
"grok": "0.0158522189",
"horsea": "0.0158522189",
"identical_printed": true,
"horsea_minus_grok": "0E-10"
},
{
"row": "FIT A phi0.0000",
"metric": "stderr",
"grok": "8.571672e-08",
"horsea": "8.571672e-08",
"identical_printed": true,
"horsea_minus_grok": "0E-14"
},
{
"row": "FIT A phi0.0000",
"metric": "R2",
"grok": "1.00000000",
"horsea": "1.00000000",
"identical_printed": true,
"horsea_minus_grok": "0E-8"
},
{
"row": "FIT A phi0.0000",
"metric": "A0",
"grok": "1.0000000000e-03",
"horsea": "1.0000000000e-03",
"identical_printed": true,
"horsea_minus_grok": "0E-13"
},
{
"row": "FIT A phi0.0000",
"metric": "A32",
"grok": "5.9874229183e-04",
"horsea": "5.9874229183e-04",
"identical_printed": true,
"horsea_minus_grok": "0E-14"
},
{
"row": "FIT B phi0.0000",
"metric": "lambda",
"grok": "0.0153991657",
"horsea": "0.0153991657",
"identical_printed": true,
"horsea_minus_grok": "0E-10"
},
{
"row": "FIT B phi0.0000",
"metric": "stderr",
"grok": "3.372428e-15",
"horsea": "3.372428e-15",
"identical_printed": true,
"horsea_minus_grok": "0E-21"
},
{
"row": "FIT B phi0.0000",
"metric": "R2",
"grok": "1.00000000",
"horsea": "1.00000000",
"identical_printed": true,
"horsea_minus_grok": "0E-8"
},
{
"row": "FIT B phi0.0000",
"metric": "A0",
"grok": "1.0000000000e-03",
"horsea": "1.0000000000e-03",
"identical_printed": true,
"horsea_minus_grok": "0E-13"
},
{
"row": "FIT B phi0.0000",
"metric": "A32",
"grok": "6.1178402808e-04",
"horsea": "6.1178402808e-04",
"identical_printed": true,
"horsea_minus_grok": "0E-14"
},
{
"row": "FIT C phi0.0000",
"metric": "lambda",
"grok": "0.0155497331",
"horsea": "0.0155497331",
"identical_printed": true,
"horsea_minus_grok": "0E-10"
},
{
"row": "FIT C phi0.0000",
"metric": "stderr",
"grok": "1.906424e-08",
"horsea": "1.906424e-08",
"identical_printed": true,
"horsea_minus_grok": "0E-14"
},
{
"row": "FIT C phi0.0000",
"metric": "R2",
"grok": "1.00000000",
"horsea": "1.00000000",
"identical_printed": true,
"horsea_minus_grok": "0E-8"
},
{
"row": "FIT C phi0.0000",
"metric": "A0",
"grok": "1.0000000000e-03",
"horsea": "1.0000000000e-03",
"identical_printed": true,
"horsea_minus_grok": "0E-13"
},
{
"row": "FIT C phi0.0000",
"metric": "A32",
"grok": "6.0299811110e-04",
"horsea": "6.0299811110e-04",
"identical_printed": true,
"horsea_minus_grok": "0E-14"
},
{
"row": "FIT A phi1.5708",
"metric": "lambda",
"grok": "0.0158419175",
"horsea": "0.0158419175",
"identical_printed": true,
"horsea_minus_grok": "0E-10"
},
{
"row": "FIT A phi1.5708",
"metric": "stderr",
"grok": "2.130663e-07",
"horsea": "2.130663e-07",
"identical_printed": true,
"horsea_minus_grok": "0E-13"
},
{
"row": "FIT A phi1.5708",
"metric": "R2",
"grok": "1.00000000",
"horsea": "1.00000000",
"identical_printed": true,
"horsea_minus_grok": "0E-8"
},
{
"row": "FIT A phi1.5708",
"metric": "A0",
"grok": "1.0000000000e-03",
"horsea": "1.0000000000e-03",
"identical_printed": true,
"horsea_minus_grok": "0E-13"
},
{
"row": "FIT A phi1.5708",
"metric": "A32",
"grok": "5.9890316832e-04",
"horsea": "5.9890316832e-04",
"identical_printed": true,
"horsea_minus_grok": "0E-14"
},
{
"row": "FIT B phi1.5708",
"metric": "lambda",
"grok": "0.0153991657",
"horsea": "0.0153991657",
"identical_printed": true,
"horsea_minus_grok": "0E-10"
},
{
"row": "FIT B phi1.5708",
"metric": "stderr",
"grok": "3.372390e-15",
"horsea": "3.372390e-15",
"identical_printed": true,
"horsea_minus_grok": "0E-21"
},
{
"row": "FIT B phi1.5708",
"metric": "R2",
"grok": "1.00000000",
"horsea": "1.00000000",
"identical_printed": true,
"horsea_minus_grok": "0E-8"
},
{
"row": "FIT B phi1.5708",
"metric": "A0",
"grok": "1.0000000000e-03",
"horsea": "1.0000000000e-03",
"identical_printed": true,
"horsea_minus_grok": "0E-13"
},
{
"row": "FIT B phi1.5708",
"metric": "A32",
"grok": "6.1178402808e-04",
"horsea": "6.1178402808e-04",
"identical_printed": true,
"horsea_minus_grok": "0E-14"
},
{
"row": "FIT C phi1.5708",
"metric": "lambda",
"grok": "0.0155497331",
"horsea": "0.0155497331",
"identical_printed": true,
"horsea_minus_grok": "0E-10"
},
{
"row": "FIT C phi1.5708",
"metric": "stderr",
"grok": "1.906424e-08",
"horsea": "1.906424e-08",
"identical_printed": true,
"horsea_minus_grok": "0E-14"
},
{
"row": "FIT C phi1.5708",
"metric": "R2",
"grok": "1.00000000",
"horsea": "1.00000000",
"identical_printed": true,
"horsea_minus_grok": "0E-8"
},
{
"row": "FIT C phi1.5708",
"metric": "A0",
"grok": "1.0000000000e-03",
"horsea": "1.0000000000e-03",
"identical_printed": true,
"horsea_minus_grok": "0E-13"
},
{
"row": "FIT C phi1.5708",
"metric": "A32",
"grok": "6.0299811110e-04",
"horsea": "6.0299811110e-04",
"identical_printed": true,
"horsea_minus_grok": "0E-14"
},
{
"row": "TRANSPOSE",
"metric": "err",
"grok": "6.661338e-16",
"horsea": "6.661338e-16",
"identical_printed": true,
"horsea_minus_grok": "0E-22"
},
{
"row": "TRANSPOSE",
"metric": "ok",
"grok": "True",
"horsea": "True",
"identical_printed": true
},
{
"row": "ANALYTIC",
"metric": "lambda",
"grok": "0.0154212569",
"horsea": "0.0154212569",
"identical_printed": true,
"horsea_minus_grok": "0E-10"
}
],
"hard_check_numeric_differences": [],
"hard_block_identical": true,
"summary_block_identical": true
}
@@ -0,0 +1,96 @@
# Shear interface diagnostic v0: merged FINAL report v2 (ClaudeWorker + Grok, 2026-10-13)
Supersedes 17_shear_diagnostic_v0_merged_report.md (14BeLNaB7M3ALgrDubBeDu3LO7DeR_JYZ), which was
written before the final pinning. All numbers below were re-checked against the pinned v0.2 stdout.
Status: diagnostic finding only. Not a solver-failure gate. No stress-transfer mechanism has been identified.
## 0. Pinned artifacts (Drive folder 1v-ptYZ3JyU8mVmiyBizcIuA440FYlMSz)
- Reference: unchanged CPUREF-0.3, SHA256 bba2a06a9f6517b32079ffff15e4060d8c3b7ed35f16ca134e1877226c9e4e1e
- Script: shear_diagnostic_v0_2.py (1_IFVwcgAekq1geeam5jkoUyjXBVXJWRA),
SHA256 a8b1cf2f7abd00efc4d068bbd27bb2317144a6ca4c545d9b2e0dcf421eadebc6
- Stdout (Grok sandbox): stdout_shear_diagnostic_v0_2.txt (10TxZvxweLZXCv_WMzuk6jKzLwlRwOdmg),
SHA256 28ddd1267ca91a772f5a6bfc65d949c9a4ea7dac5c9ba3a0bdb168492810b670
- Horsea confirmation:
- Command: CPU_REFERENCE_PATH=<path>/cpu_reference_v0.3.py python3 shear_diagnostic_v0_2.py
- Expected: exit 0.
- Compare the HARD CHECKS and SUMMARY_LINES blocks, not the whole-file hash: REF_PATH and runtime differ
between machines.
- History:
- v0 (1Kf3_99u210n_FyLKRGEMoB40zHzQgHHM) and v0.1 (1pH9q39daAXie4B0IFEicSLYOQOIMz9tW) differ from v0.2
only in the checker and reporting code.
- The lambda values are bit-identical across v0, v0.1 and v0.2.
- Reviews: 16_CLAUDE review (1hhuCAXAURP2qVyptM4pgIlDT_qqaicY9); root's static review via TRON.
## 1. Frozen setup
- Geometry: 16^2 periodic coarse grid, static 2:1 patch [4,12)^2, D2Q9 SRT, tau_c = 0.8, tau_f = 1.1
(nu = 0.1 coarse units). CPU only; runtime 0.55 s.
- Mode: u_x = U0 sin(2*pi*y/16 + phi), U0 = 1e-3, phi in {0, pi/2}.
- 7 runs: A composite, B uniform-fine 32^2, C uniform-coarse 16^2 for each phi; plus A transposed at phi = pi/2.
- Duration: 32 coarse steps. Startup = steps 0-3 (reported). Fit = steps 4-32 (= CPUREF ticks 8..64).
- Initialisation: equilibrium of the exact cell-average velocity (sinc factor); fine centres include the patch
offset. This is not the exact cell average of the nonlinear f_eq.
- Observation: all grids at arrival_f (post-stream, pre-collision). Restrict rho and j by 2x2 averaging,
then u = j/rho. One common 16^2 modal projection.
## 2. Hard checks: 22 Booleans, all True (ALL_HARD_CHECKS_PASS = True)
- Cross-review corrections:
- A_T is now included (Claude B1).
- The t0 and init conventions are now Boolean assertions, not just printed values (root).
- Finite active states: all 7 runs.
- Conservation drift: mass <= 8.2e-13, momentum <= 1.7e-13 (tolerance 1e-12 x mass ~ 2.56e-10).
- Transpose: error 6.7e-16 (tolerance 1e-15).
- t0 restricted u:
- A vs B on the patch: 1.1e-19.
- A vs C outside the patch: 2.2e-19.
- Tolerance: T0_TOL = 1e-15.
- Init rho/j mismatch: 1.1e-16 for A (both phi) and for A_T (tolerance INIT_TOL = 1e-12).
## 3. Reported numbers (no thresholds)
Decay rate lambda per coarse step. The analytic value nu*k^2 is 0.0154213.
| run | phi=0 | phi=pi/2 | stderr |
|---|---|---|---|
| A composite | 0.0158522 | 0.0158419 | <= 2.1e-7 |
| B uniform-fine | 0.0153992 | 0.0153992 | ~3e-15 |
| C uniform-coarse | 0.0155497 | 0.0155497 | 1.9e-8 |
- The composite decays ~2.9% faster than uniform-fine and also faster than uniform-coarse.
The fit is exponential, so this is a persistent rate excess, not a startup transient.
s = (A-B)/(C-B) = 3.01 / 2.94, with denominator 1.5e-4, well above fit noise.
- e_IF/e_CB at step 32 = 1.50 / 1.57 (unnormalised L2 over 256 cells).
- Per-cell RMS of (u_A - u_B) at step 32 (patch = 64 cells, outside = 192):
- phi=0: patch 9.92e-6, outside 9.04e-6 (ratio 1.10). The patch holds 28.6% of the error energy on 25% of
the area.
- phi=pi/2: patch 1.15e-5, outside 9.01e-6 (ratio 1.28). The patch holds 35.2% of the error energy on 25%
of the area.
- Reference: C-B per-cell RMS is 6.2e-6.
Reading: the error is spread over the whole domain, with mild concentration on the patch at phi = pi/2.
- Profile of the x-averaged (u_A - u_B)(y):
- phi=0: mostly modal, with a larger deficit inside the patch.
- phi=pi/2: a non-modal kink at y ~ 3.5-4.5, where the horizontal interface sits at maximum shear.
The non-modal residual is 5.5e-2 vs 2.2e-2 at phi=0 (L2/U0).
- Acoustic sensors at step 32: max|u_y|/U0 = 3.7e-3 / 5.0e-3, max|rho-1| ~ 4e-6.
- Pi_xy: the domain mean cancels by symmetry. It is not a stress-transfer sensor, is still printed in stdout,
and is excluded from the conclusions.
## 4. Limitations
- One resolution, wavenumber, tau pair, patch and duration. No convergence order can be inferred.
- Approximate equilibrium-only initialisation. The startup transient is excluded from the fit, not modelled.
- B and C use the script's own uniform SRT. Its formulas were checked against the reference, but it is a
separate implementation.
- Sandbox run only. Bounded Horsea confirmation is pending.
- Attribution is open. The data are consistent with an interface stress-transfer error but do not show one.
The candidates are two stated CPUREF simplifications, neither claimed wrong:
(i) post-collision coarse packets are copied into the fine ghosts without rescaling;
(ii) the ghosts hold g_c(t) for both fine hops.
## 5. One next discriminating test (not run; write a spec first)
Same 7-run freeze, changing exactly one simplification: time-interpolated ghosts between the two fine hops,
with the unrescaled copy kept.
- If lambda_A - lambda_B shrinks, the ghost hold is implicated.
- If it does not, the unrescaled copy becomes the remaining suspect, by elimination only.
- Spec caveat: in the current step order, coarse g_c(t+1) does not exist before the fine hops. The
interpolation source (extrapolation or a reordered coarse step) has to be specified first, and the change
reviewed as a reference-algorithm change.
- Static prior (ClaudeWorker, an estimate, not evidence): the ghost-hold lag is about lambda*dt/2 ~ 1% of the
local velocity, while the non-equilibrium copy mismatch scales with k*U0. So the result may well be negative.
@@ -0,0 +1,97 @@
{
"verified_utc": "2026-10-13T05:06:08.983097+00:00",
"head": "6e3756c587ec08ab6a55c4a1a5f4671822d3f0a0",
"old_files_checked": 281,
"old_files_changed": [],
"old_git_status_entries_removed": [],
"only_authorized_new_git_paths": true,
"archive_path": "/tmp/celerislab-shear-input-20261013-a8b1cf2.tar",
"archive_sha256": "7937bcb6b6962718ce7509fa6e35905cb834e50eb25c72b18087127685d02630",
"reference_sha256": "bba2a06a9f6517b32079ffff15e4060d8c3b7ed35f16ca134e1877226c9e4e1e",
"inputs": [
{
"path": "tests/validation/multigrid/shear_v0_2_evidence/joint_report.md",
"bytes": 6110,
"sha256": "1860b8082108c8b8a87998af90cd0b81dce1c04e9f6c67b41e0912f9fef6cc9c",
"matches_tar_bytes": true
},
{
"path": "tests/validation/multigrid/shear_diagnostic_v0_2.py",
"bytes": 30308,
"sha256": "a8b1cf2f7abd00efc4d068bbd27bb2317144a6ca4c545d9b2e0dcf421eadebc6",
"matches_tar_bytes": true
},
{
"path": "tests/validation/multigrid/shear_v0_2_evidence/stdout_grok.txt",
"bytes": 7950,
"sha256": "28ddd1267ca91a772f5a6bfc65d949c9a4ea7dac5c9ba3a0bdb168492810b670",
"matches_tar_bytes": true
},
{
"path": "tests/validation/multigrid/shear_v0_2_evidence/source_manifest.json",
"bytes": 574,
"sha256": "56fbd0259ff3d4dbd14ace52f64e249a435e9df91732b0e4027def2c344c2e6a",
"matches_tar_bytes": true
}
],
"original_input_bytes_unchanged": true,
"delivered_byte_deviations": [],
"blocking_numerical_objections": [],
"interpretation_qualifications": "See README.txt; report extrapolation/causal-elimination wording is not adopted.",
"execution_attempts": 1,
"hard_checks_passed": 22,
"grok_hard_block_identical": true,
"grok_summary_block_identical": true,
"new_files_except_this_manifest": [
{
"path": "tests/validation/multigrid/shear_diagnostic_v0_2.py",
"bytes": 30308,
"sha256": "a8b1cf2f7abd00efc4d068bbd27bb2317144a6ca4c545d9b2e0dcf421eadebc6"
},
{
"path": "tests/validation/multigrid/shear_v0_2_evidence/README.txt",
"bytes": 7220,
"sha256": "4306a34b6896bd6e7a5c2ca71d68e18450359239d0c7ad7a67a4e83e7155959a"
},
{
"path": "tests/validation/multigrid/shear_v0_2_evidence/baseline.json",
"bytes": 41751,
"sha256": "98a7853341ea732762c7506694e3a867a7259bf110e9e461ea84f741fd9ab829"
},
{
"path": "tests/validation/multigrid/shear_v0_2_evidence/comparison.json",
"bytes": 7679,
"sha256": "41c00372099dd04b6d323785e9eaf4fec09da1753d3d150ffa230800f904142f"
},
{
"path": "tests/validation/multigrid/shear_v0_2_evidence/joint_report.md",
"bytes": 6110,
"sha256": "1860b8082108c8b8a87998af90cd0b81dce1c04e9f6c67b41e0912f9fef6cc9c"
},
{
"path": "tests/validation/multigrid/shear_v0_2_evidence/results_horsea.json",
"bytes": 1957,
"sha256": "c2d7ce8d16a0f47baff0788a153353dcf67088da974d9cd3d521b04ecd91ee05"
},
{
"path": "tests/validation/multigrid/shear_v0_2_evidence/run_once.py",
"bytes": 3245,
"sha256": "6698a2e040c56be949b809387d4518eb0ba82d34cc9d99640da4f8bf3c35c23f"
},
{
"path": "tests/validation/multigrid/shear_v0_2_evidence/source_manifest.json",
"bytes": 574,
"sha256": "56fbd0259ff3d4dbd14ace52f64e249a435e9df91732b0e4027def2c344c2e6a"
},
{
"path": "tests/validation/multigrid/shear_v0_2_evidence/stdout_grok.txt",
"bytes": 7950,
"sha256": "28ddd1267ca91a772f5a6bfc65d949c9a4ea7dac5c9ba3a0bdb168492810b670"
},
{
"path": "tests/validation/multigrid/shear_v0_2_evidence/stdout_horsea.txt",
"bytes": 11421,
"sha256": "0577df5b3f5cb3c7b6e1ef2de71344f8fd3e6d959117487a06cbaf7f2afa3dea"
}
]
}
@@ -0,0 +1,65 @@
{
"started_utc": "2026-10-13T05:02:42.804589+00:00",
"cwd": "/home/frank14f/CelerisLab/tests/validation/multigrid",
"parent_command": [
"env",
"OPENBLAS_NUM_THREADS=1",
"PYTHONDONTWRITEBYTECODE=1",
"PYTHONNOUSERSITE=1",
"PYTHONOPTIMIZE=0",
"PYTHONPATH=/home/frank14f/CelerisLab/tests/validation/multigrid",
"CPU_REFERENCE_PATH=/home/frank14f/CelerisLab/tests/validation/multigrid/cpu_reference.py",
"/usr/bin/prlimit",
"--as=268435456",
"--fsize=2097152",
"--core=0",
"--",
"/home/frank14f/anaconda3/envs/pycuda_3_10/bin/python",
"-B",
"/home/frank14f/CelerisLab/tests/validation/multigrid/shear_v0_2_evidence/run_once.py"
],
"script_command": [
"/usr/bin/prlimit",
"--as=268435456",
"--fsize=2097152",
"--core=0",
"--",
"/home/frank14f/anaconda3/envs/pycuda_3_10/bin/python",
"-B",
"/home/frank14f/CelerisLab/tests/validation/multigrid/shear_diagnostic_v0_2.py"
],
"environment": {
"OPENBLAS_NUM_THREADS": "1",
"PYTHONDONTWRITEBYTECODE": "1",
"PYTHONNOUSERSITE": "1",
"PYTHONOPTIMIZE": "0",
"PYTHONPATH": "/home/frank14f/CelerisLab/tests/validation/multigrid",
"CPU_REFERENCE_PATH": "/home/frank14f/CelerisLab/tests/validation/multigrid/cpu_reference.py"
},
"python_version": "3.10.13 (main, Sep 11 2023, 13:44:35) [GCC 11.2.0]",
"numpy_version_from_installed_metadata": "1.26.4",
"platform": "Linux-6.8.0-138-generic-x86_64-with-glibc2.35",
"hard_limits": {
"address_space_bytes": [
268435456,
268435456
],
"output_file_bytes": [
2097152,
2097152
],
"core_bytes": [
0,
0
]
},
"planned_runs": 7,
"coarse_steps_per_run": 32,
"attempt": 1,
"returncode": 0,
"elapsed_seconds": 2.2370318549801596,
"child_peak_rss_MiB": 37.69140625,
"parent_peak_rss_MiB": 18.75,
"completed_utc": "2026-10-13T05:02:45.056308+00:00",
"stdout_bytes": 11421
}
@@ -0,0 +1,74 @@
"""Bounded execution recorder; refuses to overwrite evidence or repeat a run."""
import datetime
import hashlib
import importlib.metadata
import json
import os
from pathlib import Path
import platform
import resource
import shlex
import subprocess
import sys
import time
evidence = Path(__file__).resolve().parent
base = evidence.parent
script = base / "shear_diagnostic_v0_2.py"
reference = base / "cpu_reference.py"
expected_env = {
"OPENBLAS_NUM_THREADS": "1",
"PYTHONDONTWRITEBYTECODE": "1",
"PYTHONNOUSERSITE": "1",
"PYTHONOPTIMIZE": "0",
"PYTHONPATH": str(base),
"CPU_REFERENCE_PATH": str(reference),
}
limits = {
"address_space_bytes": (resource.RLIMIT_AS, 268435456),
"output_file_bytes": (resource.RLIMIT_FSIZE, 2097152),
"core_bytes": (resource.RLIMIT_CORE, 0),
}
assert all(os.environ.get(k) == v for k, v in expected_env.items())
assert all(resource.getrlimit(key) == (value, value) for key, value in limits.values())
assert sys.executable == "/home/frank14f/anaconda3/envs/pycuda_3_10/bin/python"
assert hashlib.sha256(script.read_bytes()).hexdigest() == "a8b1cf2f7abd00efc4d068bbd27bb2317144a6ca4c545d9b2e0dcf421eadebc6"
assert hashlib.sha256(reference.read_bytes()).hexdigest() == "bba2a06a9f6517b32079ffff15e4060d8c3b7ed35f16ca134e1877226c9e4e1e"
log_path = evidence / "stdout_horsea.txt"
result_path = evidence / "results_horsea.json"
assert not log_path.exists() and not result_path.exists(), "Existing execution evidence; do not rerun"
prefix = ["/usr/bin/prlimit", "--as=268435456", "--fsize=2097152", "--core=0", "--", sys.executable, "-B"]
command = prefix + [str(script)]
report = {
"started_utc": datetime.datetime.now(datetime.timezone.utc).isoformat(),
"cwd": str(base),
"parent_command": ["env"] + [f"{k}={v}" for k, v in expected_env.items()] + prefix + [str(Path(__file__).resolve())],
"script_command": command,
"environment": expected_env,
"python_version": sys.version,
"numpy_version_from_installed_metadata": importlib.metadata.version("numpy"),
"platform": platform.platform(),
"hard_limits": {name: resource.getrlimit(key) for name, (key, _) in limits.items()},
"planned_runs": 7,
"coarse_steps_per_run": 32,
"attempt": 1,
}
with log_path.open("xb", buffering=0) as log:
log.write(("RECORDER " + json.dumps(report) + "\nCOMMAND " + shlex.join(command) + "\n").encode())
start = time.monotonic()
child = subprocess.run(command, cwd=base, stdout=log, stderr=subprocess.STDOUT, check=False)
report.update(
returncode=child.returncode,
elapsed_seconds=time.monotonic() - start,
child_peak_rss_MiB=resource.getrusage(resource.RUSAGE_CHILDREN).ru_maxrss / 1024,
parent_peak_rss_MiB=resource.getrusage(resource.RUSAGE_SELF).ru_maxrss / 1024,
completed_utc=datetime.datetime.now(datetime.timezone.utc).isoformat(),
)
log.write(("\nRUN_RESULT " + json.dumps(report) + "\n").encode())
report["stdout_bytes"] = log_path.stat().st_size
with result_path.open("x") as result:
json.dump(report, result, indent=2)
result.write("\n")
print(json.dumps(report, indent=2))
assert report["stdout_bytes"] < 2097152
sys.exit(child.returncode if child.returncode >= 0 else 1)
@@ -0,0 +1,20 @@
[
{
"id": "1_IFVwcgAekq1geeam5jkoUyjXBVXJWRA",
"name": "shear_diagnostic_v0_2.py",
"bytes": 30308,
"sha256": "a8b1cf2f7abd00efc4d068bbd27bb2317144a6ca4c545d9b2e0dcf421eadebc6"
},
{
"id": "10TxZvxweLZXCv_WMzuk6jKzLwlRwOdmg",
"name": "stdout_grok.txt",
"bytes": 7950,
"sha256": "28ddd1267ca91a772f5a6bfc65d949c9a4ea7dac5c9ba3a0bdb168492810b670"
},
{
"id": "1u21zTKWxnfjAnBwhlk_XhWJjdQTC_ytb",
"name": "joint_report.md",
"bytes": 6110,
"sha256": "1860b8082108c8b8a87998af90cd0b81dce1c04e9f6c67b41e0912f9fef6cc9c"
}
]
@@ -0,0 +1,89 @@
=== shear_diagnostic_v0.2 against CPUREF-0.3 ===
REF_PATH=/workspace/shear_diag/cpu_reference_v0.3.py
REF_SHA256=bba2a06a9f6517b32079ffff15e4060d8c3b7ed35f16ca134e1877226c9e4e1e
API_VERSION=CPUREF-0.3
U0=0.001 tau_c=0.8 tau_f=1.1 steps=32 nu=0.1 k=0.39269908169872414
nu*k^2=0.01542126 (analytic decay rate)
INIT: equilibrium of averaged velocity (NOT exact cell-avg of nonlinear feq)
UNITS: fit/report 'steps' are coarse steps; CPUREF tick = fine step count
fit window coarse steps 4..32 = CPUREF ticks 8..64
startup coarse steps 0..3 = CPUREF ticks 0..6
nonmodal/e_IF/e_CB are unnormalised L2 sums over 256 coarse cells
(per-cell RMS = value/16); nonmodal is already /U0
CONS_TOL=1e-12 relative to mass (~256) => abs ~2.560e-10
-- running C (uniform-coarse) phi0.0000
-- running B (uniform-fine) phi0.0000
-- running A (composite CPUREF) phi0.0000
-- running C (uniform-coarse) phi1.5708
-- running B (uniform-fine) phi1.5708
-- running A (composite CPUREF) phi1.5708
-- running A transpose phi=1.5707963267948966
=== HARD CHECKS ===
finite[A_phi0.0000]=True cons=True mass_drift=5.969e-13 momx_drift=1.690e-13 momy_drift=2.753e-14 tol_abs=2.560e-10 (CONS_TOL*mass=1e-12*|256|) init_rho_j_mismatch_vs_coarse_formula=1.110e-16
finite[B_phi0.0000]=True cons=True mass_drift=7.105e-13 momx_drift=2.970e-15 momy_drift=3.553e-15 tol_abs=2.560e-10 (CONS_TOL*mass=1e-12*|256|)
finite[C_phi0.0000]=True cons=True mass_drift=4.547e-13 momx_drift=4.607e-15 momy_drift=6.495e-15 tol_abs=2.560e-10 (CONS_TOL*mass=1e-12*|256|)
finite[A_phi1.5708]=True cons=True mass_drift=8.242e-13 momx_drift=1.033e-13 momy_drift=9.015e-14 tol_abs=2.560e-10 (CONS_TOL*mass=1e-12*|256|) init_rho_j_mismatch_vs_coarse_formula=1.110e-16
finite[B_phi1.5708]=True cons=True mass_drift=6.821e-13 momx_drift=2.970e-15 momy_drift=3.553e-15 tol_abs=2.560e-10 (CONS_TOL*mass=1e-12*|256|)
finite[C_phi1.5708]=True cons=True mass_drift=4.547e-13 momx_drift=4.607e-15 momy_drift=6.495e-15 tol_abs=2.560e-10 (CONS_TOL*mass=1e-12*|256|)
finite[A_T_phi1.5708]=True cons=True mass_drift=7.105e-13 momx_drift=1.843e-14 momy_drift=6.062e-14 tol_abs=2.560e-10 (CONS_TOL*mass=1e-12*|256|) init_rho_j_mismatch_vs_coarse_formula=1.110e-16
transpose_ok=True max_err=6.661e-16 (tol=1.000e-15)
t0 amp A/B/C phi0.0000: 1.00000000e-03 1.00000000e-03 1.00000000e-03
t0 max|ux A-B| patch=1.084e-19 |A-C| outside=2.168e-19 |B-C| all=6.245e-17
t0_AB_patch_ok=True t0_AC_out_ok=True (T0_TOL=1.0e-15) init_mismatch=1.110e-16 ok=True (INIT_TOL=1.0e-12)
t0 amp A/B/C phi1.5708: 1.00000000e-03 1.00000000e-03 1.00000000e-03
t0 max|ux A-B| patch=1.084e-19 |A-C| outside=2.168e-19 |B-C| all=6.245e-17
t0_AB_patch_ok=True t0_AC_out_ok=True (T0_TOL=1.0e-15) init_mismatch=1.110e-16 ok=True (INIT_TOL=1.0e-12)
init_mismatch[A_T]=1.110e-16 ok=True (INIT_TOL=1.0e-12)
N_BOOLEAN_HARD_CHECKS=22: cons_A_T_phi1.5708,cons_A_phi0.0000,cons_A_phi1.5708,cons_B_phi0.0000,cons_B_phi1.5708,cons_C_phi0.0000,cons_C_phi1.5708,finite_A_T_phi1.5708,finite_A_phi0.0000,finite_A_phi1.5708,finite_B_phi0.0000,finite_B_phi1.5708,finite_C_phi0.0000,finite_C_phi1.5708,init_mismatch_ok_A_T_phi1.5708,init_mismatch_ok_phi0.0000,init_mismatch_ok_phi1.5708,t0_AB_patch_ok_phi0.0000,t0_AB_patch_ok_phi1.5708,t0_AC_out_ok_phi0.0000,t0_AC_out_ok_phi1.5708,transpose_ok
=== DECAY FITS (coarse steps 4..32 = CPUREF ticks 8..64) ===
analytic lambda = nu*k^2 = 0.01542126
A phi0.0000: lambda=0.01585222 stderr=8.572e-08 R2=1.000000 A0=1.000000e-03 A32=5.987423e-04
B phi0.0000: lambda=0.01539917 stderr=3.372e-15 R2=1.000000 A0=1.000000e-03 A32=6.117840e-04
C phi0.0000: lambda=0.01554973 stderr=1.906e-08 R2=1.000000 A0=1.000000e-03 A32=6.029981e-04
DIAG s=(lambda_A-lambda_B)/(lambda_C-lambda_B) phi0.0000: s=3.0090 (lambda_C-lambda_B)=1.505674e-04
DIAG e_IF/e_CB step32 (unnorm L2/256cells): e_IF=1.482978e-04 e_IF_patch=7.933404e-05 e_IF_out=1.252931e-04 e_CB=9.876383e-05 ratio_IF/CB=1.5015
DIAG per-cell RMS (uA-uB) step32 phi0.0000: patch=9.9168e-06 (64 cells) outside=9.0422e-06 (192 cells) ratio=1.097 patch_energy_frac=0.2862 (area frac 0.25)
DIAG sensors step32: nonmodal(L2/U0)=2.2349e-02 max|uy|/U0=3.6890e-03 max|drho|=3.8401e-06
DIAG (uA-uB)_xavg(y) step32 phi0.0000: -2.032e-06 -6.024e-06 -9.820e-06 -1.332e-05 -1.222e-05 -1.167e-05 -8.270e-06 -2.980e-06 2.980e-06 8.270e-06 1.167e-05 1.222e-05 1.332e-05 9.820e-06 6.024e-06 2.032e-06
DIAG Pi_xy_mean step32 phi0.0000: B=-1.084202e-19 C=2.168404e-19 (composite=NaN; arrival_f proxy on uniforms)
A phi1.5708: lambda=0.01584192 stderr=2.131e-07 R2=1.000000 A0=1.000000e-03 A32=5.989032e-04
B phi1.5708: lambda=0.01539917 stderr=3.372e-15 R2=1.000000 A0=1.000000e-03 A32=6.117840e-04
C phi1.5708: lambda=0.01554973 stderr=1.906e-08 R2=1.000000 A0=1.000000e-03 A32=6.029981e-04
DIAG s=(lambda_A-lambda_B)/(lambda_C-lambda_B) phi1.5708: s=2.9406 (lambda_C-lambda_B)=1.505674e-04
DIAG e_IF/e_CB step32 (unnorm L2/256cells): e_IF=1.550631e-04 e_IF_patch=9.195288e-05 e_IF_out=1.248568e-04 e_CB=9.876383e-05 ratio_IF/CB=1.5700
DIAG per-cell RMS (uA-uB) step32 phi1.5708: patch=1.1494e-05 (64 cells) outside=9.0108e-06 (192 cells) ratio=1.276 patch_energy_frac=0.3517 (area frac 0.25)
DIAG sensors step32: nonmodal(L2/U0)=5.5487e-02 max|uy|/U0=5.0221e-03 max|drho|=4.3542e-06
DIAG (uA-uB)_xavg(y) step32 phi1.5708: -9.119e-06 -8.622e-06 -7.886e-06 -7.167e-06 -2.176e-06 6.314e-06 1.264e-05 1.601e-05 1.601e-05 1.264e-05 6.314e-06 -2.176e-06 -7.167e-06 -7.886e-06 -8.622e-06 -9.119e-06
DIAG Pi_xy_mean step32 phi1.5708: B=-1.084202e-19 C=2.168404e-19 (composite=NaN; arrival_f proxy on uniforms)
=== PER-TICK AMPLITUDE (selected) ===
tick A_p0 B_p0 C_p0 A_p90 B_p90 C_p90 exact
0 1.000000e-03 1.000000e-03 1.000000e-03 1.000000e-03 1.000000e-03 1.000000e-03 1.000000e-03
1 9.773722e-04 9.860853e-04 9.746265e-04 9.774280e-04 9.860853e-04 9.746265e-04 9.846970e-04
2 9.636011e-04 9.710270e-04 9.617788e-04 9.635461e-04 9.710270e-04 9.617788e-04 9.696283e-04
3 9.481499e-04 9.561886e-04 9.465229e-04 9.481500e-04 9.561886e-04 9.465229e-04 9.547901e-04
4 9.332807e-04 9.415768e-04 9.319786e-04 9.332641e-04 9.415768e-04 9.319786e-04 9.401790e-04
8 8.759254e-04 8.853290e-04 8.757728e-04 8.759360e-04 8.853290e-04 8.757728e-04 8.839365e-04
12 8.221055e-04 8.324412e-04 8.229603e-04 8.221445e-04 8.324412e-04 8.229603e-04 8.310585e-04
16 7.715978e-04 7.827129e-04 7.733326e-04 7.716635e-04 7.827129e-04 7.733326e-04 7.813437e-04
20 7.241928e-04 7.359552e-04 7.266976e-04 7.242838e-04 7.359552e-04 7.266976e-04 7.346029e-04
24 6.796981e-04 6.919908e-04 6.828749e-04 6.798155e-04 6.919908e-04 6.828749e-04 6.906582e-04
28 6.379365e-04 6.506527e-04 6.416948e-04 6.380768e-04 6.506527e-04 6.416948e-04 6.493424e-04
32 5.987423e-04 6.117840e-04 6.029981e-04 5.989032e-04 6.117840e-04 6.029981e-04 6.104980e-04
=== NUMERIC SUMMARY ===
ALL_HARD_CHECKS_PASS=True
runtime_sec=0.55
SUMMARY_LINES_BEGIN
FIT A phi0.0000 lambda=0.0158522189 stderr=8.571672e-08 R2=1.00000000 A0=1.0000000000e-03 A32=5.9874229183e-04
FIT B phi0.0000 lambda=0.0153991657 stderr=3.372428e-15 R2=1.00000000 A0=1.0000000000e-03 A32=6.1178402808e-04
FIT C phi0.0000 lambda=0.0155497331 stderr=1.906424e-08 R2=1.00000000 A0=1.0000000000e-03 A32=6.0299811110e-04
FIT A phi1.5708 lambda=0.0158419175 stderr=2.130663e-07 R2=1.00000000 A0=1.0000000000e-03 A32=5.9890316832e-04
FIT B phi1.5708 lambda=0.0153991657 stderr=3.372390e-15 R2=1.00000000 A0=1.0000000000e-03 A32=6.1178402808e-04
FIT C phi1.5708 lambda=0.0155497331 stderr=1.906424e-08 R2=1.00000000 A0=1.0000000000e-03 A32=6.0299811110e-04
TRANSPOSE err=6.661338e-16 ok=True
ANALYTIC lambda=0.0154212569
SUMMARY_LINES_END
@@ -0,0 +1,93 @@
RECORDER {"started_utc": "2026-10-13T05:02:42.804589+00:00", "cwd": "/home/frank14f/CelerisLab/tests/validation/multigrid", "parent_command": ["env", "OPENBLAS_NUM_THREADS=1", "PYTHONDONTWRITEBYTECODE=1", "PYTHONNOUSERSITE=1", "PYTHONOPTIMIZE=0", "PYTHONPATH=/home/frank14f/CelerisLab/tests/validation/multigrid", "CPU_REFERENCE_PATH=/home/frank14f/CelerisLab/tests/validation/multigrid/cpu_reference.py", "/usr/bin/prlimit", "--as=268435456", "--fsize=2097152", "--core=0", "--", "/home/frank14f/anaconda3/envs/pycuda_3_10/bin/python", "-B", "/home/frank14f/CelerisLab/tests/validation/multigrid/shear_v0_2_evidence/run_once.py"], "script_command": ["/usr/bin/prlimit", "--as=268435456", "--fsize=2097152", "--core=0", "--", "/home/frank14f/anaconda3/envs/pycuda_3_10/bin/python", "-B", "/home/frank14f/CelerisLab/tests/validation/multigrid/shear_diagnostic_v0_2.py"], "environment": {"OPENBLAS_NUM_THREADS": "1", "PYTHONDONTWRITEBYTECODE": "1", "PYTHONNOUSERSITE": "1", "PYTHONOPTIMIZE": "0", "PYTHONPATH": "/home/frank14f/CelerisLab/tests/validation/multigrid", "CPU_REFERENCE_PATH": "/home/frank14f/CelerisLab/tests/validation/multigrid/cpu_reference.py"}, "python_version": "3.10.13 (main, Sep 11 2023, 13:44:35) [GCC 11.2.0]", "numpy_version_from_installed_metadata": "1.26.4", "platform": "Linux-6.8.0-138-generic-x86_64-with-glibc2.35", "hard_limits": {"address_space_bytes": [268435456, 268435456], "output_file_bytes": [2097152, 2097152], "core_bytes": [0, 0]}, "planned_runs": 7, "coarse_steps_per_run": 32, "attempt": 1}
COMMAND /usr/bin/prlimit --as=268435456 --fsize=2097152 --core=0 -- /home/frank14f/anaconda3/envs/pycuda_3_10/bin/python -B /home/frank14f/CelerisLab/tests/validation/multigrid/shear_diagnostic_v0_2.py
=== shear_diagnostic_v0.2 against CPUREF-0.3 ===
REF_PATH=/home/frank14f/CelerisLab/tests/validation/multigrid/cpu_reference.py
REF_SHA256=bba2a06a9f6517b32079ffff15e4060d8c3b7ed35f16ca134e1877226c9e4e1e
API_VERSION=CPUREF-0.3
U0=0.001 tau_c=0.8 tau_f=1.1 steps=32 nu=0.1 k=0.39269908169872414
nu*k^2=0.01542126 (analytic decay rate)
INIT: equilibrium of averaged velocity (NOT exact cell-avg of nonlinear feq)
UNITS: fit/report 'steps' are coarse steps; CPUREF tick = fine step count
fit window coarse steps 4..32 = CPUREF ticks 8..64
startup coarse steps 0..3 = CPUREF ticks 0..6
nonmodal/e_IF/e_CB are unnormalised L2 sums over 256 coarse cells
(per-cell RMS = value/16); nonmodal is already /U0
CONS_TOL=1e-12 relative to mass (~256) => abs ~2.560e-10
-- running C (uniform-coarse) phi0.0000
-- running B (uniform-fine) phi0.0000
-- running A (composite CPUREF) phi0.0000
-- running C (uniform-coarse) phi1.5708
-- running B (uniform-fine) phi1.5708
-- running A (composite CPUREF) phi1.5708
-- running A transpose phi=1.5707963267948966
=== HARD CHECKS ===
finite[A_phi0.0000]=True cons=True mass_drift=5.969e-13 momx_drift=1.690e-13 momy_drift=2.753e-14 tol_abs=2.560e-10 (CONS_TOL*mass=1e-12*|256|) init_rho_j_mismatch_vs_coarse_formula=1.110e-16
finite[B_phi0.0000]=True cons=True mass_drift=7.105e-13 momx_drift=2.970e-15 momy_drift=3.553e-15 tol_abs=2.560e-10 (CONS_TOL*mass=1e-12*|256|)
finite[C_phi0.0000]=True cons=True mass_drift=4.547e-13 momx_drift=4.607e-15 momy_drift=6.495e-15 tol_abs=2.560e-10 (CONS_TOL*mass=1e-12*|256|)
finite[A_phi1.5708]=True cons=True mass_drift=8.242e-13 momx_drift=1.033e-13 momy_drift=9.015e-14 tol_abs=2.560e-10 (CONS_TOL*mass=1e-12*|256|) init_rho_j_mismatch_vs_coarse_formula=1.110e-16
finite[B_phi1.5708]=True cons=True mass_drift=6.821e-13 momx_drift=2.970e-15 momy_drift=3.553e-15 tol_abs=2.560e-10 (CONS_TOL*mass=1e-12*|256|)
finite[C_phi1.5708]=True cons=True mass_drift=4.547e-13 momx_drift=4.607e-15 momy_drift=6.495e-15 tol_abs=2.560e-10 (CONS_TOL*mass=1e-12*|256|)
finite[A_T_phi1.5708]=True cons=True mass_drift=7.105e-13 momx_drift=1.843e-14 momy_drift=6.062e-14 tol_abs=2.560e-10 (CONS_TOL*mass=1e-12*|256|) init_rho_j_mismatch_vs_coarse_formula=1.110e-16
transpose_ok=True max_err=6.661e-16 (tol=1.000e-15)
t0 amp A/B/C phi0.0000: 1.00000000e-03 1.00000000e-03 1.00000000e-03
t0 max|ux A-B| patch=1.084e-19 |A-C| outside=2.168e-19 |B-C| all=6.245e-17
t0_AB_patch_ok=True t0_AC_out_ok=True (T0_TOL=1.0e-15) init_mismatch=1.110e-16 ok=True (INIT_TOL=1.0e-12)
t0 amp A/B/C phi1.5708: 1.00000000e-03 1.00000000e-03 1.00000000e-03
t0 max|ux A-B| patch=1.084e-19 |A-C| outside=2.168e-19 |B-C| all=6.245e-17
t0_AB_patch_ok=True t0_AC_out_ok=True (T0_TOL=1.0e-15) init_mismatch=1.110e-16 ok=True (INIT_TOL=1.0e-12)
init_mismatch[A_T]=1.110e-16 ok=True (INIT_TOL=1.0e-12)
N_BOOLEAN_HARD_CHECKS=22: cons_A_T_phi1.5708,cons_A_phi0.0000,cons_A_phi1.5708,cons_B_phi0.0000,cons_B_phi1.5708,cons_C_phi0.0000,cons_C_phi1.5708,finite_A_T_phi1.5708,finite_A_phi0.0000,finite_A_phi1.5708,finite_B_phi0.0000,finite_B_phi1.5708,finite_C_phi0.0000,finite_C_phi1.5708,init_mismatch_ok_A_T_phi1.5708,init_mismatch_ok_phi0.0000,init_mismatch_ok_phi1.5708,t0_AB_patch_ok_phi0.0000,t0_AB_patch_ok_phi1.5708,t0_AC_out_ok_phi0.0000,t0_AC_out_ok_phi1.5708,transpose_ok
=== DECAY FITS (coarse steps 4..32 = CPUREF ticks 8..64) ===
analytic lambda = nu*k^2 = 0.01542126
A phi0.0000: lambda=0.01585222 stderr=8.572e-08 R2=1.000000 A0=1.000000e-03 A32=5.987423e-04
B phi0.0000: lambda=0.01539917 stderr=3.372e-15 R2=1.000000 A0=1.000000e-03 A32=6.117840e-04
C phi0.0000: lambda=0.01554973 stderr=1.906e-08 R2=1.000000 A0=1.000000e-03 A32=6.029981e-04
DIAG s=(lambda_A-lambda_B)/(lambda_C-lambda_B) phi0.0000: s=3.0090 (lambda_C-lambda_B)=1.505674e-04
DIAG e_IF/e_CB step32 (unnorm L2/256cells): e_IF=1.482978e-04 e_IF_patch=7.933404e-05 e_IF_out=1.252931e-04 e_CB=9.876383e-05 ratio_IF/CB=1.5015
DIAG per-cell RMS (uA-uB) step32 phi0.0000: patch=9.9168e-06 (64 cells) outside=9.0422e-06 (192 cells) ratio=1.097 patch_energy_frac=0.2862 (area frac 0.25)
DIAG sensors step32: nonmodal(L2/U0)=2.2349e-02 max|uy|/U0=3.6890e-03 max|drho|=3.8401e-06
DIAG (uA-uB)_xavg(y) step32 phi0.0000: -2.032e-06 -6.024e-06 -9.820e-06 -1.332e-05 -1.222e-05 -1.167e-05 -8.270e-06 -2.980e-06 2.980e-06 8.270e-06 1.167e-05 1.222e-05 1.332e-05 9.820e-06 6.024e-06 2.032e-06
DIAG Pi_xy_mean step32 phi0.0000: B=-1.084202e-19 C=2.168404e-19 (composite=NaN; arrival_f proxy on uniforms)
A phi1.5708: lambda=0.01584192 stderr=2.131e-07 R2=1.000000 A0=1.000000e-03 A32=5.989032e-04
B phi1.5708: lambda=0.01539917 stderr=3.372e-15 R2=1.000000 A0=1.000000e-03 A32=6.117840e-04
C phi1.5708: lambda=0.01554973 stderr=1.906e-08 R2=1.000000 A0=1.000000e-03 A32=6.029981e-04
DIAG s=(lambda_A-lambda_B)/(lambda_C-lambda_B) phi1.5708: s=2.9406 (lambda_C-lambda_B)=1.505674e-04
DIAG e_IF/e_CB step32 (unnorm L2/256cells): e_IF=1.550631e-04 e_IF_patch=9.195288e-05 e_IF_out=1.248568e-04 e_CB=9.876383e-05 ratio_IF/CB=1.5700
DIAG per-cell RMS (uA-uB) step32 phi1.5708: patch=1.1494e-05 (64 cells) outside=9.0108e-06 (192 cells) ratio=1.276 patch_energy_frac=0.3517 (area frac 0.25)
DIAG sensors step32: nonmodal(L2/U0)=5.5487e-02 max|uy|/U0=5.0221e-03 max|drho|=4.3542e-06
DIAG (uA-uB)_xavg(y) step32 phi1.5708: -9.119e-06 -8.622e-06 -7.886e-06 -7.167e-06 -2.176e-06 6.314e-06 1.264e-05 1.601e-05 1.601e-05 1.264e-05 6.314e-06 -2.176e-06 -7.167e-06 -7.886e-06 -8.622e-06 -9.119e-06
DIAG Pi_xy_mean step32 phi1.5708: B=-1.084202e-19 C=2.168404e-19 (composite=NaN; arrival_f proxy on uniforms)
=== PER-TICK AMPLITUDE (selected) ===
tick A_p0 B_p0 C_p0 A_p90 B_p90 C_p90 exact
0 1.000000e-03 1.000000e-03 1.000000e-03 1.000000e-03 1.000000e-03 1.000000e-03 1.000000e-03
1 9.773722e-04 9.860853e-04 9.746265e-04 9.774280e-04 9.860853e-04 9.746265e-04 9.846970e-04
2 9.636011e-04 9.710270e-04 9.617788e-04 9.635461e-04 9.710270e-04 9.617788e-04 9.696283e-04
3 9.481499e-04 9.561886e-04 9.465229e-04 9.481500e-04 9.561886e-04 9.465229e-04 9.547901e-04
4 9.332807e-04 9.415768e-04 9.319786e-04 9.332641e-04 9.415768e-04 9.319786e-04 9.401790e-04
8 8.759254e-04 8.853290e-04 8.757728e-04 8.759360e-04 8.853290e-04 8.757728e-04 8.839365e-04
12 8.221055e-04 8.324412e-04 8.229603e-04 8.221445e-04 8.324412e-04 8.229603e-04 8.310585e-04
16 7.715978e-04 7.827129e-04 7.733326e-04 7.716635e-04 7.827129e-04 7.733326e-04 7.813437e-04
20 7.241928e-04 7.359552e-04 7.266976e-04 7.242838e-04 7.359552e-04 7.266976e-04 7.346029e-04
24 6.796981e-04 6.919908e-04 6.828749e-04 6.798155e-04 6.919908e-04 6.828749e-04 6.906582e-04
28 6.379365e-04 6.506527e-04 6.416948e-04 6.380768e-04 6.506527e-04 6.416948e-04 6.493424e-04
32 5.987423e-04 6.117840e-04 6.029981e-04 5.989032e-04 6.117840e-04 6.029981e-04 6.104980e-04
=== NUMERIC SUMMARY ===
ALL_HARD_CHECKS_PASS=True
runtime_sec=2.07
SUMMARY_LINES_BEGIN
FIT A phi0.0000 lambda=0.0158522189 stderr=8.571672e-08 R2=1.00000000 A0=1.0000000000e-03 A32=5.9874229183e-04
FIT B phi0.0000 lambda=0.0153991657 stderr=3.372428e-15 R2=1.00000000 A0=1.0000000000e-03 A32=6.1178402808e-04
FIT C phi0.0000 lambda=0.0155497331 stderr=1.906424e-08 R2=1.00000000 A0=1.0000000000e-03 A32=6.0299811110e-04
FIT A phi1.5708 lambda=0.0158419175 stderr=2.130663e-07 R2=1.00000000 A0=1.0000000000e-03 A32=5.9890316832e-04
FIT B phi1.5708 lambda=0.0153991657 stderr=3.372390e-15 R2=1.00000000 A0=1.0000000000e-03 A32=6.1178402808e-04
FIT C phi1.5708 lambda=0.0155497331 stderr=1.906424e-08 R2=1.00000000 A0=1.0000000000e-03 A32=6.0299811110e-04
TRANSPOSE err=6.661338e-16 ok=True
ANALYTIC lambda=0.0154212569
SUMMARY_LINES_END
RUN_RESULT {"started_utc": "2026-10-13T05:02:42.804589+00:00", "cwd": "/home/frank14f/CelerisLab/tests/validation/multigrid", "parent_command": ["env", "OPENBLAS_NUM_THREADS=1", "PYTHONDONTWRITEBYTECODE=1", "PYTHONNOUSERSITE=1", "PYTHONOPTIMIZE=0", "PYTHONPATH=/home/frank14f/CelerisLab/tests/validation/multigrid", "CPU_REFERENCE_PATH=/home/frank14f/CelerisLab/tests/validation/multigrid/cpu_reference.py", "/usr/bin/prlimit", "--as=268435456", "--fsize=2097152", "--core=0", "--", "/home/frank14f/anaconda3/envs/pycuda_3_10/bin/python", "-B", "/home/frank14f/CelerisLab/tests/validation/multigrid/shear_v0_2_evidence/run_once.py"], "script_command": ["/usr/bin/prlimit", "--as=268435456", "--fsize=2097152", "--core=0", "--", "/home/frank14f/anaconda3/envs/pycuda_3_10/bin/python", "-B", "/home/frank14f/CelerisLab/tests/validation/multigrid/shear_diagnostic_v0_2.py"], "environment": {"OPENBLAS_NUM_THREADS": "1", "PYTHONDONTWRITEBYTECODE": "1", "PYTHONNOUSERSITE": "1", "PYTHONOPTIMIZE": "0", "PYTHONPATH": "/home/frank14f/CelerisLab/tests/validation/multigrid", "CPU_REFERENCE_PATH": "/home/frank14f/CelerisLab/tests/validation/multigrid/cpu_reference.py"}, "python_version": "3.10.13 (main, Sep 11 2023, 13:44:35) [GCC 11.2.0]", "numpy_version_from_installed_metadata": "1.26.4", "platform": "Linux-6.8.0-138-generic-x86_64-with-glibc2.35", "hard_limits": {"address_space_bytes": [268435456, 268435456], "output_file_bytes": [2097152, 2097152], "core_bytes": [0, 0]}, "planned_runs": 7, "coarse_steps_per_run": 32, "attempt": 1, "returncode": 0, "elapsed_seconds": 2.2370318549801596, "child_peak_rss_MiB": 37.69140625, "parent_peak_rss_MiB": 18.75, "completed_utc": "2026-10-13T05:02:45.056308+00:00"}