Repository navigation
Commit 9eca50e
authored
Check physical momentum before accepting symplectic endpoints (#560)
[V] Restore [SIMPLE](https://github.com/itpplasma/SIMPLE)'s existing
0.5% momentum bound using a fresh endpoint field and canonical parallel
momentum, including localized ordinary/wall losses. Preserve the carried
cache, collision reference and electric work. Main 9a6697e is merged.
[V] Golden changes are intended physics corrections; no new production
defect was found. Per-marker causes:
| Case | Markers | Cause |
|---|---|---|
| Albert coils | 1, 2, 6, 7, 8, 9, 10, 11, 12, 13, 15, 16, 17, 19, 21,
22, 24, 25, 26, 29, 31, 32 | #560 rejects the first fresh physical
endpoint beyond 0.5%; recovery then changes the trajectory. |
| Meiss coils | 1, 2, 6, 7, 9, 10, 11, 12, 13, 15, 16, 17, 19, 21, 22,
24, 25, 26, 29, 31, 32 | Same corrected physical rejection. |
| Meiss coils | 8 | #540 recovery-start normalization changes only
reported p/p0: 0.999899952176 to 1.0. |
| Meiss coils | 18 | Same normalization: 1.000186277524 to 1.0; time,
position, pitch and exit status agree exactly. |
[V] Albert marker 9 returns from main's p/p0=3.28614485936 to 1.0. Its
differences from pre-#540 columns 2, 6, 7, 8, 10 follow recovery after
the genuine physical rejection at microstep 87 (physical drift
-0.504850499%). The old cache rejected step 1 despite physical drift
only +0.003256568%.
[V] Independent reconstruction uses v_parallel=(Pphi-Aphi/ro0)/hphi and
p²=mu*B+v_parallel²/2; the unchanged bound gives energy interval
[0.990025,1.010025]. Four retained canonical/field samples independently
violate that interval. The new parent diagnostic preserves the raw table
byte-for-byte. For Meiss 8/18, reconstructing boundary fractions
0.331670804921 / 0.580034170284 from loss time and microstep width
reproduces both old reported momenta exactly via
p_start+fraction*(p_RK-p_start). The #540 recovery start at
src/simple_main.f90:2755 makes both interpolation momenta equal to the
reference.
[V] Refresh the two coil orbit records from the deterministic GCC 12.2
run at 048c02f, libneo 924ba7735366d95c2c6855bf00bd0e46b8c05cf2. Apply
them only to exact historical references 9ec87fd / 9a6697e; retain raw
reference runs and original field diagnostics. Comparators and
tolerances are unchanged. Other raw differences are completed survivor
phases (Albert/Meiss 2,13, protected by the existing outcome contract)
and pre-#540 collision trajectories (the #558 stream/operator
correction, checked by the native analytic collision contract).
[V] Native validation with system GCC/GFortran 12.2, deterministic FP64,
CGAL and the Python/IMAS interface: endpoint regression 1/1, fast
selection 162/162 (sCluster job 3300299 COMPLETED 0:0), and slow
selection 45/45 (CTest results from 3300192). Golden job 3300118
COMPLETED 0:0: both 15-test selections passed against historical parent
9ec87fd and main 9a6697e. It executed 6e124d7; production/test
sources and all snapshot numerical tokens are identical at final head
f1eb9ec.
[V] The initial slow-job failure was external setup:
--no-build-isolation lacked wheel, so function-generator metadata failed
before compilation. The replacement installed its build prerequisites. A
separate inherited GOLDEN_RECORD_PERF_GATE=0 conflicted with the
comparator's performance-gate test; job 3300277 reproduced this on main
and passed all 35 checks on main plus head's registered test with the
override removed. The full corrected fast selection then passed; no
comparator, tolerance, test or production source was weakened. All 45
slow tests passed before 3300192's wrapper error, which was
independently reproduced as replacing an active Bash script; the final
fast submission kept its script unchanged.
[V] Current-head hosted CI is green, including both build/test shards,
changed-line lint, CGAL, documentation and the required Build and Test /
CI result checks. Merge through the configured queue.
Chris&AI7 files changed
Lines changed: 389 additions & 32 deletions
File tree
- src
- test
- golden_record
- baselines/physical_momentum
- albert_coils
- meiss_coils
- tests
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
41 | 41 | | |
42 | 42 | | |
43 | 43 | | |
| 44 | + | |
44 | 45 | | |
45 | 46 | | |
46 | 47 | | |
| |||
2529 | 2530 | | |
2530 | 2531 | | |
2531 | 2532 | | |
| 2533 | + | |
| 2534 | + | |
| 2535 | + | |
| 2536 | + | |
| 2537 | + | |
| 2538 | + | |
| 2539 | + | |
| 2540 | + | |
| 2541 | + | |
| 2542 | + | |
| 2543 | + | |
| 2544 | + | |
| 2545 | + | |
| 2546 | + | |
| 2547 | + | |
| 2548 | + | |
| 2549 | + | |
| 2550 | + | |
| 2551 | + | |
| 2552 | + | |
| 2553 | + | |
| 2554 | + | |
| 2555 | + | |
| 2556 | + | |
| 2557 | + | |
| 2558 | + | |
| 2559 | + | |
| 2560 | + | |
| 2561 | + | |
| 2562 | + | |
| 2563 | + | |
| 2564 | + | |
| 2565 | + | |
| 2566 | + | |
| 2567 | + | |
| 2568 | + | |
| 2569 | + | |
| 2570 | + | |
| 2571 | + | |
| 2572 | + | |
| 2573 | + | |
| 2574 | + | |
| 2575 | + | |
| 2576 | + | |
| 2577 | + | |
| 2578 | + | |
| 2579 | + | |
| 2580 | + | |
| 2581 | + | |
| 2582 | + | |
2532 | 2583 | | |
2533 | 2584 | | |
2534 | 2585 | | |
| |||
2546 | 2597 | | |
2547 | 2598 | | |
2548 | 2599 | | |
2549 | | - | |
| 2600 | + | |
2550 | 2601 | | |
2551 | 2602 | | |
2552 | 2603 | | |
| |||
2659 | 2710 | | |
2660 | 2711 | | |
2661 | 2712 | | |
2662 | | - | |
| 2713 | + | |
| 2714 | + | |
| 2715 | + | |
| 2716 | + | |
2663 | 2717 | | |
2664 | 2718 | | |
2665 | | - | |
2666 | | - | |
2667 | | - | |
2668 | | - | |
2669 | | - | |
2670 | | - | |
2671 | | - | |
| 2719 | + | |
| 2720 | + | |
| 2721 | + | |
2672 | 2722 | | |
2673 | 2723 | | |
2674 | 2724 | | |
| |||
2677 | 2727 | | |
2678 | 2728 | | |
2679 | 2729 | | |
| 2730 | + | |
2680 | 2731 | | |
2681 | 2732 | | |
| 2733 | + | |
| 2734 | + | |
2682 | 2735 | | |
2683 | 2736 | | |
2684 | 2737 | | |
| |||
2903 | 2956 | | |
2904 | 2957 | | |
2905 | 2958 | | |
2906 | | - | |
| 2959 | + | |
2907 | 2960 | | |
2908 | 2961 | | |
2909 | 2962 | | |
| |||
2999 | 3052 | | |
3000 | 3053 | | |
3001 | 3054 | | |
3002 | | - | |
| 3055 | + | |
| 3056 | + | |
| 3057 | + | |
| 3058 | + | |
3003 | 3059 | | |
3004 | 3060 | | |
3005 | | - | |
3006 | | - | |
3007 | | - | |
3008 | | - | |
3009 | | - | |
3010 | | - | |
3011 | | - | |
| 3061 | + | |
| 3062 | + | |
| 3063 | + | |
3012 | 3064 | | |
3013 | 3065 | | |
3014 | 3066 | | |
3015 | 3067 | | |
3016 | 3068 | | |
| 3069 | + | |
3017 | 3070 | | |
3018 | 3071 | | |
| 3072 | + | |
| 3073 | + | |
3019 | 3074 | | |
3020 | 3075 | | |
3021 | 3076 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
| 1 | + | |
| 2 | + | |
| 3 | + | |
| 4 | + | |
| 5 | + | |
| 6 | + | |
| 7 | + | |
| 8 | + | |
| 9 | + | |
| 10 | + | |
| 11 | + | |
| 12 | + | |
| 13 | + | |
| 14 | + | |
| 15 | + | |
| 16 | + | |
| 17 | + | |
| 18 | + | |
| 19 | + | |
| 20 | + | |
| 21 | + | |
| 22 | + | |
| 23 | + | |
| 24 | + | |
| 25 | + | |
| 26 | + | |
| 27 | + | |
| 28 | + | |
| 29 | + | |
| 30 | + | |
| 31 | + | |
| 32 | + | |
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
| 1 | + | |
| 2 | + | |
| 3 | + | |
| 4 | + | |
| 5 | + | |
| 6 | + | |
| 7 | + | |
| 8 | + | |
| 9 | + | |
| 10 | + | |
| 11 | + | |
| 12 | + | |
| 13 | + | |
| 14 | + | |
| 15 | + | |
| 16 | + | |
| 17 | + | |
| 18 | + | |
| 19 | + | |
| 20 | + | |
| 21 | + | |
| 22 | + | |
| 23 | + | |
| 24 | + | |
| 25 | + | |
| 26 | + | |
| 27 | + | |
| 28 | + | |
| 29 | + | |
| 30 | + | |
| 31 | + | |
| 32 | + | |
0 commit comments