Files
SystemSimulationApp/tests/manual/context_access_checklists.md
T
ljz 7611f13208 修复循环信号与事件采样并接入 LSTP 接触定位,补充八路验证及复用实验
相较上一版 Jacobian 确定性复用更新,本次补齐事件边界一致性、结果两侧采样及接触事件定位;保留已有物性复用和组件力学公式。

- 统一 UD00 信号求值与下一事件查询的绝对时间边界,修复循环边界浮点舍入导致的阶段错位、重复或漏报,并覆盖零时长、多阶段及长周期场景。
- 引入原生输出语义 v2:保留规则网格真实时间,补充内部时间事件和状态事件的左邻及事件后采样,按保存时间、状态和离散模式重放结果。
- 两条代码生成路径均发出 LSTP 接触描述,默认定位间隙过零及非负力模式的力截断;仅在接受事件时更新防重复记录,增加 contactEvents 诊断计数。
- 补充 MASS/LSTP 独立事件实验、八路全曲线与驱动阶段配对评估,以及 Amesim 不连续点输出对照和力差定位报告;MASS 新增释放机制仍保留为独立实验。
- 保存局部 probe、context 访问与回退、shadow replay、R288 real skip/typed replay 及阀门数值尾部诊断工具和报告;未证明净收益的实验不启用为生产默认优化。
- 更新原生运行说明和元件建模规范,补充信号边界、输出语义、接触事件和实验依赖回归测试。

验证:五组专项回归共 34 项全部通过;37 个待提交 Python 文件语法检查通过;git diff --cached --check 通过。
2026-09-17 23:50:13 +08:00

18 KiB
Raw Blame History

Context 访问级清单:实测数据

由 analyze_context_access.py 从访问事件生成。slot、Jacobian 和 position 均从 0 开始;group=-1 为 baseline。

以下以 Jacobian 200 为主案例,补充 position 52 的 PH 命中/未命中路径。完整逐次记录位于 test/context-access-20260917/operations.json;原始访问事件在 audit/access.jsonl。

Jacobian 1,group 18,position 52

t=1.3389986581645337e-08;count 11 → 12;capacity=256;输出 0.033351539732391834;model evaluator 返回 1。

查询与首次匹配

顺序 类型 完整 key:p, T 或 h, R, cp, Tref, slope, mu, muT, S medium kind 首个匹配 slot 扫描条数
1 PH 141437.08341422619, 200554.29912985844, 2077.2643940499802, 5193.1609851249505, 293.14999999999998, 0, 1.9599999999999999e-05, 293.14999999999998, 79.400000000000006 1 7 8
2 PT 141437.08341422619, 336.75814451285157, 2077.2643940499802, 5193.1609851249505, 293.14999999999998, 0, 1.9599999999999999e-05, 293.14999999999998, 79.400000000000006 1 7 8
3 PT 100000.73403195803, 293.15086386132788, 2077.2643940499802, 5193.1609851249505, 293.14999999999998, 0, 1.9599999999999999e-05, 293.14999999999998, 79.400000000000006 1 miss 11

实际选中后的字段读取

域 / slot 字段
pipes[28] valid
states[7] T, isentropic_exponent, isentropic_factor, medium, medium.Tref, medium.cp, medium.real_helium, medium.slope, mu, p, rho, temperatures
states[11] T, isentropic_exponent, isentropic_factor, jacobian, medium.R, medium.S, medium.Tref, medium.cp, medium.mu, medium.muT, medium.real_helium, medium.slope, p, rho, temperatures

查询扫描另外按短路次序读取 valid & PT/H、p、T/h、medium;未匹配项的字段不等于被用于物性计算。

选中后的 valid 测试

顺序 slot mask 结果
1 7 8 8
2 7 16 16
3 11 16 0
4 11 4 0
5 7 4 4

必须保留的 probe 数据

保留入口 states[0:11] 的全部字段;此路径没有写已有物性条目。仅追加以下新条目,修改本 operation 的 pipe 槽;其余 pipe 槽保持 probe 值。

有序写入动作

顺序 目标 写入值 已知同值写入
1 context[0].count 12 —
2 states[11].* 完整 struct 清零(显式写入) —
3 states[11].medium 复制上述完整 medium —
4 states[11].p 100000.73403195803 —
5 states[11].T 293.15086386132788 —
6 states[11].valid 1 —
7 states[11].temperatures NULL 是
8 states[11].jacobian 当前 context 的 Jacobian memo 指针 —
9 states[11].rho 0.16419111112032281 —
10 states[11].valid 5 —
11 states[11].isentropic_factor 0.59983509720368744 —
12 states[11].isentropic_exponent 0.4000169505487694 —
13 states[11].valid 21 —
14 pipes[28].valid 0 是
15 pipes[28].medium 复制上述完整 medium —
16 pipes[28].p1 141437.08341422619 —
17 pipes[28].p2 100000.73403195803 —
18 pipes[28].T 336.75814451285157 —
19 pipes[28].diameter 0.02 —
20 pipes[28].length 1 —
21 pipes[28].roughness 0.0022499999999999998 —
22 pipes[28].kind 1 —
23 pipes[28].flow 0.033351539732391834 —
24 pipes[28].valid 1 —

新条目分配分支均为 positive/finite key 且 count < capacity;每次在当前 count 追加,再 count++。未初始化槽的 struct 首次清零不计入“已知同值写入”。

Fallback 原因

查询 key/首匹配逻辑条目不同、已消费字段或已测试 valid 位不同、容量不足转 scratch、observer 非空、pipe 命中分支改变,或无法建立无冲突的 slot 映射时,执行原 operation。此清单不授权放宽现有 guard。

Jacobian 2,group 18,position 52

t=2.5903206074281044e-08;count 16 → 18;capacity=256;输出 0.13649710784608116;model evaluator 返回 1。

查询与首次匹配

顺序 类型 完整 key:p, T 或 h, R, cp, Tref, slope, mu, muT, S medium kind 首个匹配 slot 扫描条数
1 PH 755686.80622119282, 1871284.0942772815, 2077.2643940499802, 5193.1609851249505, 293.14999999999998, 0, 1.9599999999999999e-05, 293.14999999999998, 79.400000000000006 1 miss 16
2 PT 755686.80622119282, 658.33729595925956, 2077.2643940499802, 5193.1609851249505, 293.14999999999998, 0, 1.9599999999999999e-05, 293.14999999999998, 79.400000000000006 1 miss 16
3 PT 755686.80622119282, 658.33729595925956, 2077.2643940499802, 5193.1609851249505, 293.14999999999998, 0, 1.9599999999999999e-05, 293.14999999999998, 79.400000000000006 1 16 17
4 PT 100004.87065313551, 293.15011545458538, 2077.2643940499802, 5193.1609851249505, 293.14999999999998, 0, 1.9599999999999999e-05, 293.14999999999998, 79.400000000000006 1 miss 17

实际选中后的字段读取

域 / slot 字段
pipes[28] valid
states[16] T, isentropic_exponent, isentropic_factor, jacobian, medium, medium.R, medium.S, medium.Tref, medium.cp, medium.mu, medium.muT, medium.real_helium, medium.slope, mu, p, rho, temperatures
states[17] T, isentropic_exponent, isentropic_factor, jacobian, medium.R, medium.S, medium.Tref, medium.cp, medium.mu, medium.muT, medium.real_helium, medium.slope, p, rho, temperatures

查询扫描另外按短路次序读取 valid & PT/H、p、T/h、medium;未匹配项的字段不等于被用于物性计算。

选中后的 valid 测试

顺序 slot mask 结果
1 16 2 0
2 16 8 0
3 16 16 0
4 16 4 0
5 17 16 0
6 17 4 0
7 16 4 4

必须保留的 probe 数据

保留入口 states[0:16] 的全部字段;此路径没有写已有物性条目。仅追加以下新条目,修改本 operation 的 pipe 槽;其余 pipe 槽保持 probe 值。

有序写入动作

顺序 目标 写入值 已知同值写入
1 context[0].count 17 —
2 states[16].* 完整 struct 清零(显式写入) —
3 states[16].medium 复制上述完整 medium —
4 states[16].p 755686.80622119282 —
5 states[16].T 658.33729595925956 —
6 states[16].valid 1 —
7 states[16].temperatures NULL 是
8 states[16].jacobian 当前 context 的 Jacobian memo 指针 —
9 states[16].h 1871284.0942772815 —
10 states[16].valid 3 —
11 states[16].mu 3.4336896373307344e-05 —
12 states[16].valid 11 —
13 states[16].rho 0.55213584825878159 —
14 states[16].valid 15 —
15 states[16].isentropic_factor 0.59936841974574895 —
16 states[16].isentropic_exponent 0.4000342868314512 —
17 states[16].valid 31 —
18 context[0].count 18 —
19 states[17].* 完整 struct 清零(显式写入) —
20 states[17].medium 复制上述完整 medium —
21 states[17].p 100004.87065313551 —
22 states[17].T 293.15011545458538 —
23 states[17].valid 1 —
24 states[17].temperatures NULL 是
25 states[17].jacobian 当前 context 的 Jacobian memo 指针 —
26 states[17].rho 0.16419832110282509 —
27 states[17].valid 5 —
28 states[17].isentropic_factor 0.59983509001364188 —
29 states[17].isentropic_exponent 0.40001695130827536 —
30 states[17].valid 21 —
31 pipes[28].valid 0 是
32 pipes[28].medium 复制上述完整 medium —
33 pipes[28].p1 755686.80622119282 —
34 pipes[28].p2 100004.87065313551 —
35 pipes[28].T 658.33729595925956 —
36 pipes[28].diameter 0.02 —
37 pipes[28].length 1 —
38 pipes[28].roughness 0.0022499999999999998 —
39 pipes[28].kind 1 —
40 pipes[28].flow 0.13649710784608116 —
41 pipes[28].valid 1 —

新条目分配分支均为 positive/finite key 且 count < capacity;每次在当前 count 追加,再 count++。未初始化槽的 struct 首次清零不计入“已知同值写入”。

Fallback 原因

查询 key/首匹配逻辑条目不同、已消费字段或已测试 valid 位不同、容量不足转 scratch、observer 非空、pipe 命中分支改变,或无法建立无冲突的 slot 映射时,执行原 operation。此清单不授权放宽现有 guard。

Jacobian 200,group 6,position 16

t=0.37285444606381923;count 13 → 15;capacity=256;输出 -3.34452871903457e-06;model evaluator 返回 1。

查询与首次匹配

顺序 类型 完整 key:p, T 或 h, R, cp, Tref, slope, mu, muT, S medium kind 首个匹配 slot 扫描条数
1 PT 15019678.822746754, 291.84964142606623, 2077.2643940499802, 5193.1609851249505, 293.14999999999998, 0, 1.9599999999999999e-05, 293.14999999999998, 79.400000000000006 1 miss 13
2 PT 15019662.638804033, 291.84951601402554, 2077.2643940499802, 5193.1609851249505, 293.14999999999998, 0, 1.9599999999999999e-05, 293.14999999999998, 79.400000000000006 1 miss 14

实际选中后的字段读取

域 / slot 字段
pipes[0] valid
states[13] T, isentropic_exponent, isentropic_factor, jacobian, medium, medium.R, medium.S, medium.Tref, medium.cp, medium.mu, medium.muT, medium.real_helium, medium.slope, mu, p, rho, temperatures
states[14] T, isentropic_exponent, isentropic_factor, jacobian, medium.R, medium.S, medium.Tref, medium.cp, medium.mu, medium.muT, medium.real_helium, medium.slope, p, rho, temperatures

查询扫描另外按短路次序读取 valid & PT/H、p、T/h、medium;未匹配项的字段不等于被用于物性计算。

选中后的 valid 测试

顺序 slot mask 结果
1 13 8 0
2 13 16 0
3 13 4 0
4 14 16 0
5 14 4 0
6 13 4 4

必须保留的 probe 数据

保留入口 states[0:13] 的全部字段;此路径没有写已有物性条目。仅追加以下新条目,修改本 operation 的 pipe 槽;其余 pipe 槽保持 probe 值。

有序写入动作

顺序 目标 写入值 已知同值写入
1 context[0].count 14 —
2 states[13].* 完整 struct 清零(显式写入) —
3 states[13].medium 复制上述完整 medium —
4 states[13].p 15019678.822746754 —
5 states[13].T 291.84964142606623 —
6 states[13].valid 1 —
7 states[13].temperatures NULL 是
8 states[13].jacobian 当前 context 的 Jacobian memo 指针 —
9 states[13].mu 1.9556955415450165e-05 —
10 states[13].valid 9 —
11 states[13].rho 23.797175883728954 —
12 states[13].valid 13 —
13 states[13].isentropic_factor 0.5638664372147334 —
14 states[13].isentropic_exponent 0.39880100414729064 —
15 states[13].valid 29 —
16 context[0].count 15 —
17 states[14].* 完整 struct 清零(显式写入) —
18 states[14].medium 复制上述完整 medium —
19 states[14].p 15019662.638804033 —
20 states[14].T 291.84951601402554 —
21 states[14].valid 1 —
22 states[14].temperatures NULL 是
23 states[14].jacobian 当前 context 的 Jacobian memo 指针 —
24 states[14].rho 23.797161425154815 —
25 states[14].valid 5 —
26 states[14].isentropic_factor 0.56386646597889145 —
27 states[14].isentropic_exponent 0.39880100666377111 —
28 states[14].valid 21 —
29 pipes[0].valid 0 是
30 pipes[0].medium 复制上述完整 medium —
31 pipes[0].p1 15019662.638804033 —
32 pipes[0].p2 15019678.822746754 —
33 pipes[0].T 291.84964142606623 —
34 pipes[0].diameter 0.014 —
35 pipes[0].length 1 —
36 pipes[0].roughness 0.0032142857142857142 —
37 pipes[0].kind 1 —
38 pipes[0].flow -3.34452871903457e-06 —
39 pipes[0].valid 1 —

新条目分配分支均为 positive/finite key 且 count < capacity;每次在当前 count 追加,再 count++。未初始化槽的 struct 首次清零不计入“已知同值写入”。

Fallback 原因

查询 key/首匹配逻辑条目不同、已消费字段或已测试 valid 位不同、容量不足转 scratch、observer 非空、pipe 命中分支改变,或无法建立无冲突的 slot 映射时,执行原 operation。此清单不授权放宽现有 guard。

Jacobian 200,group 18,position 52

t=0.37285444606381923;count 75 → 77;capacity=256;输出 -1.4080633385291488e-06;model evaluator 返回 1。

查询与首次匹配

顺序 类型 完整 key:p, T 或 h, R, cp, Tref, slope, mu, muT, S medium kind 首个匹配 slot 扫描条数
1 PT 15019625.056587901, 529.09774891777454, 2077.2643940499802, 5193.1609851249505, 293.14999999999998, 0, 1.9599999999999999e-05, 293.14999999999998, 79.400000000000006 1 miss 75
2 PT 15019613.376778807, 529.09758439456209, 2077.2643940499802, 5193.1609851249505, 293.14999999999998, 0, 1.9599999999999999e-05, 293.14999999999998, 79.400000000000006 1 miss 76

实际选中后的字段读取

域 / slot 字段
pipes[28] valid
states[75] T, isentropic_exponent, isentropic_factor, jacobian, medium, medium.R, medium.S, medium.Tref, medium.cp, medium.mu, medium.muT, medium.real_helium, medium.slope, mu, p, rho, temperatures
states[76] T, isentropic_exponent, isentropic_factor, jacobian, medium.R, medium.S, medium.Tref, medium.cp, medium.mu, medium.muT, medium.real_helium, medium.slope, p, rho, temperatures

查询扫描另外按短路次序读取 valid & PT/H、p、T/h、medium;未匹配项的字段不等于被用于物性计算。

选中后的 valid 测试

顺序 slot mask 结果
1 75 8 0
2 75 16 0
3 75 4 0
4 76 16 0
5 76 4 0
6 75 4 4

必须保留的 probe 数据

保留入口 states[0:75] 的全部字段;此路径没有写已有物性条目。仅追加以下新条目,修改本 operation 的 pipe 槽;其余 pipe 槽保持 probe 值。

有序写入动作

顺序 目标 写入值 已知同值写入
1 context[0].count 76 —
2 states[75].* 完整 struct 清零(显式写入) —
3 states[75].medium 复制上述完整 medium —
4 states[75].p 15019625.056587901 —
5 states[75].T 529.09774891777454 —
6 states[75].valid 1 —
7 states[75].temperatures NULL 是
8 states[75].jacobian 当前 context 的 Jacobian memo 指针 —
9 states[75].mu 2.9451615911502958e-05 —
10 states[75].valid 9 —
11 states[75].rho 13.352686365896215 —
12 states[75].valid 13 —
13 states[75].isentropic_factor 0.58140881158784896 —
14 states[75].isentropic_exponent 0.39986603165187307 —
15 states[75].valid 29 —
16 context[0].count 77 —
17 states[76].* 完整 struct 清零(显式写入) —
18 states[76].medium 复制上述完整 medium —
19 states[76].p 15019613.376778807 —
20 states[76].T 529.09758439456209 —
21 states[76].valid 1 —
22 states[76].temperatures NULL 是
23 states[76].jacobian 当前 context 的 Jacobian memo 指针 —
24 states[76].rho 13.35268032881546 —
25 states[76].valid 5 —
26 states[76].isentropic_factor 0.58140882193020493 —
27 states[76].isentropic_exponent 0.39986603223234823 —
28 states[76].valid 21 —
29 pipes[28].valid 0 是
30 pipes[28].medium 复制上述完整 medium —
31 pipes[28].p1 15019613.376778807 —
32 pipes[28].p2 15019625.056587901 —
33 pipes[28].T 529.09774891777454 —
34 pipes[28].diameter 0.02 —
35 pipes[28].length 1 —
36 pipes[28].roughness 0.0022499999999999998 —
37 pipes[28].kind 1 —
38 pipes[28].flow -1.4080633385291488e-06 —
39 pipes[28].valid 1 —

新条目分配分支均为 positive/finite key 且 count < capacity;每次在当前 count 追加,再 count++。未初始化槽的 struct 首次清零不计入“已知同值写入”。

Fallback 原因

查询 key/首匹配逻辑条目不同、已消费字段或已测试 valid 位不同、容量不足转 scratch、observer 非空、pipe 命中分支改变,或无法建立无冲突的 slot 映射时,执行原 operation。此清单不授权放宽现有 guard。