相较上一版 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 通过。
18 KiB
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。