{
  "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}
