Files
SystemSimulationApp/docs/update-log/更新日志-2026-09-11.md
T

70 lines
11 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# 2026-09-11:C 管路验证版合入网页后端
用户确认接受雅可比试验误差后,已将结构着色差分设为正式默认并重启正常 8000/5173 服务。删除旧算法环境变量/CLI 选择器,只保留 `--verify-jacobian` 诊断及必要自动回退。57 项回归通过(含四路原 AME 门槛),正式八路三轮中位求解 2.6066 s、结果可查看 3.4985 s、浏览器保存 3.6134 s;5 次网页运行、下载与刷新恢复和已接受候选一致。当前状态及使用方式见 [正式启用报告](../other/雅可比算法正式启用与网页验收-2026-09-11.md),下文“试验版/默认 dense”为启用前历史记录。
雅可比结构着色试验完成:先前结果处理优化已通过 `3bc4be3` 推送到 `origin/system-optimization`,其后新增显式启用的 `auto/verify` 候选,默认继续 `dense`。修正八路 132 状态合并为 27 色,每次另算 1 次 canonical 基准;原生三轮中位 5.7915→2.4926 s(-56.96%),网页可查看 7.0185→3.4556 s(-50.76%),浏览器保存 7.1597→3.5793 s(-50.01%)。433 次全矩阵核对零失配、16 次网页/CSV/恢复完整核对通过,取消竞态已修复并复测。部分温度相对较严格参考的误差略增,未宣称等精度或八路 AME 验收;本轮试验改动保留本地。详见 [雅可比试验与阶段成本报告](../other/雅可比结构着色试验与八路验证-2026-09-11.md)。
同步基线记录:将已验证的原生结果直传、浏览器Float64缓存与CSV工作线程、C端Ryu编码写出,以及八路性能调研/复现工具统一保存到 `system-optimization`。本次同步包含源代码、测试和报告;本地环境、仿真大结果和临时构建继续保留在Git忽略目录。雅可比矩阵优化从这份基线之后单独开展,沿用修正八路与 `rtol=1e-8`。
C结果编码写出优化完成:采用精确回读的Ryu数字编码与64 KiB批量写出,保留JSON结构、全量采样及binary64数值。相同修正八路,正式运行各三次,C写出1.1808→0.1638 s(-86.13%),点击到可查看8.0100→6.9756 s(-12.91%),点击到缓存保存8.1280→7.0841 s(-12.84%);CSV1.1127→1.1506 s,未观察到改善。冷编译单次3.658→4.372 s,首次网页11.682→11.381 s,已单独披露。10项编码专项、29项相关回归、8份原生结果逐位与16次网页/CSV/恢复核验通过。研究、限制、分阶段数据和复现见 [C端编码与写出报告](../other/C端结果编码与写出优化-2026-09-11.md)。未安装新环境或提交Git。
补充当前优化版八路全流程成本评估:网页预处理约19.6 ms,后台积分约6.064 s、C结果写出约1.175 s;独立原生诊断中RHS占积分93.72%,实测差分Jacobian需62,700次RHS,占全部调用84.43%。12次网页与8次原生诊断完整数值一致,本轮只增加计时工具和报告;阶段边界、CPU/墙钟、首次编译和前端采样见 [全流程成本评估](../other/八路网页求解全流程成本评估-2026-09-11.md)。
本轮结果处理优化完成:C的数值series直接进入HTTP结果流,Python不再解析并重新编码大数组;网页保存改为打包Float64块的一次原子事务,CSV改由工作线程本地生成。相同修正八路、相同精度和采样,同机旧版/优化版各预热加三次,点击到结果可查看9.872→8.034 s(-18.62%)、点击到保存完成11.774→8.132 s(-30.93%)、CSV下载保存5.610→1.005 s(-82.08%)。12次完整网页/CSV数值及刷新恢复一致;后端29项、传输6项复测、持久化6项与CSV6项专项通过。记录与实现见 [结果处理优化报告](../other/八路结果处理与网页保存优化-2026-09-11.md)。
本轮八路性能评估:后续优化优先 `test-mql-8-corrected.json`,只有八路无法运行且短期无解时才退四路。八路同精度三算法基准,当前方案纯求解 5.9138 s,相对旧固定点 12.0976 s 减少 51.12%;相同 3081320 组管阻输入重放,耗尽迭代从 3010570 次降至 0,最多 6 轮。真实网页两组各预热加三次完成;常规组点击到完成绘制中位 9.8989 s,CSV 下载 5.6198 s。已拆分后台与浏览器各阶段,并验证全部网页/CSV 数值与原生结果精确相等。当前 AME 可作保存曲线观察,但仍有早期温压和碰撞峰差异,未判八路曲线验收通过;无可信 Amesim 耗时,速度对比跳过。详见 [八路完整计时报告](../other/八路模型计算效率与网页阶段计时-2026-09-11.md) 与 [当前 AME 核查](../other/test-mql-8当前AME归档与完整曲线核查-2026-09-11.md)。本轮仅新增手动诊断和文档,未改生产算法或环境。
数据目录整理:按用户要求,`tests/data` 的 JSON/XML 仅保留可在浏览器导入、且已与对应 AME 参数和端口对齐的 `test-mql-4-corrected.json` 与 `test-mql-8-corrected.json`。其余8份资料逐字节迁到 `tests/fixtures` / `tests/baselines`;活动测试、审计脚本、CI、基准清单路径和当前报告已同步。两个工程真实浏览器导入及XML下载通过,导出的物理参数、连接和仿真设置与工程输入一致;8项路径/清单相关回归通过。具体去向见 [目录说明](../../tests/data/README.md)。
最新补充:本轮完成管流牛顿迭代的有限夹根、残差进展检查与二分回退;按用户确认将网页/API 默认 `rtol` 改为 `1e-8`。重新核对四路/八路 AME 图纸并交付 `tests/data/test-mql-4-corrected.json` 与 `tests/data/test-mql-8-corrected.json`;用户复核发现的 P4NODE2 显示方向和 3/4 号端口锚点错误一并修正。相同新精度下,相比局部半步松弛迭代,四路纯求解中位耗时 1.3309→0.9097 s(减少31.6%);72条已有Amesim参考曲线均通过原门槛,最大温差0.00882331 K。38项后端测试与2项P4真实端口几何测试通过;四路最终网页从点击到结果可查看中位3.55 s。八路修正版在新精度下单次完整完成10 s,纯求解5.91 s。最新验收范围、网页证据和八路运行限制以 [本轮完整报告](../other/牛顿管流求根与四路网页验证-2026-09-11.md) 为准;下文旧默认精度和旧输入路径为此前历史记录。
当天后续更新:已将物性状态复用、等熵计算中的密度复用、焓直接计算,以及检查残差的管流求根接入正式C内核和两条生成路径。最终25项回归通过;MQL4纯求解中位耗时3.138→1.391 s,skill-test 0.255→0.139 s。已启动更新后的本机后台并以真实HTTP请求验证。详见 [实现与验证报告](../other/物性复用与管流求根实现及验证-2026-09-11.md)。下文为当天较早一次合入的历史记录。
后续网页检查补充:LSTP00A 接口力在新增碰撞事件点存在极短高峰,原有共同采样点回归没有覆盖该现象。详情及对原曲线一致性结论的限定见 [接口力对比报告](../other/test-mql-4网页仿真与LSTP00A接口力对比-2026-09-11.md)。
在 `system-optimization` 工作区,将 test-mql-4 验证版的修正合入正式原生编译和求解路径,并重启本机 `127.0.0.1:8000` 后端。网页通过 `5173` 端口代理调用的新仿真已经使用这些修正。未提交或推送 Git。
## 合入内容
- PNL0003 的两段储气状态之间,采用与 PNL0001/2 相同的可压缩管流关系及小压差平滑处理,移除独立 Darcy 反求和固定 48 次二分分支。
- PNL0001 按实际流向选择上游温度;流量计算和雷诺数、摩擦系数、流速诊断使用同一侧的温度。
- 氦气管流与诊断统一使用已有 NASA 黏度表达式;理想空气等介质保留原有黏度模型。
- 两条 C 代码生成路径统一生成按物理量区分的绝对误差限:质量 `1e-14 kg`、内能 `1e-8 J`、速度 `1e-12 m/s`、位移 `1e-12 m`。这是本轮验证的默认值,尚未实现按模型尺寸自动缩放或用户自定义绝对误差限。
- 网页后端默认相对误差限从 `1e-6` 调整为 `1e-7`,与此次对照设置一致,并在结果诊断中返回实际 `rtol`。积分方法、最大步长和输出间隔仍取自用户模型。
雅各比算法、求解器类型和前端操作流程未修改。构建缓存会根据模型及 C 源文件内容自动生成新的键,无需手动删除旧缓存。用户仍需导入修正后的 JSON;内核更新不会自动改动已保存模型的接线或参数。
## 验证结果
经真实 HTTP 请求 `http://127.0.0.1:5173/api/system-xml/simulate-stream`,修正后的 test-mql-4 以 BDF、相对误差限 `1e-7`、最大步长 `1e30` 完成 0~10 s:
| 指标 | 本次运行 |
|---|---:|
| 纯求解墙钟 | 4.4088 s |
| 求解 CPU | 4.1719 s |
| HTTP 全程 | 9.3444 s |
| 模型计算次数 | 24941 |
| 接受步数 | 5137 |
| 进度事件数 | 50 |
HTTP 全程包含进程启动、结果整理、序列化和传输等,不应把它与纯求解的差额全部归因于进度条。本次是后端合入验证,未测量浏览器绘图时间。
72 条物理曲线在共同的 1001 个时间点上,与重新编译的 Amesim 四支路模型比较。最大压力差 `198.2697 Pa`、温度差 `0.009626 K`、位移差 `0.646855 μm`、速度差 `3.41015 μm/s`、质量流量差 `0.0160272 g/s`,与先前 C 验证版一致。剩余局部差异仍按原报告记录,未声称完全消除。闭合气路总质量最大漂移约 `1.20e-14 kg`。
另外,通过同一 HTTP 路径运行仓库 `native-skill-test.xml`:RK45、最大步长 0.001 s,完成 10 s 仿真,纯求解墙钟 `0.5205 s`,CPU `0.4531 s`。
29 项相关测试通过,包括两种积分器、完整元件目录、依赖排序、管流缓存、正反向上游温度、平衡附近管流、守恒和网页流式求解。目录测试中与旧 Python 管流公式有关的断言,改为保留独立热力学基准并校验守恒;其他模型继续进行完整旧基准对照。新增 Amesim 曲线基准覆盖 72 条曲线、57 个选定时间点,用于持续回归;本次 HTTP 核验使用完整的 1001 个共同时间点。
## 文件
- 正式代码:`native/components/kernels.c`、`app/simulation/native_codegen/{compiler,extended,tolerances,runner}.py`、`app/simulation/backends.py`。
- 回归:`tests/test_native_pipe_physics.py`、`tests/test_native_catalog.py`、`tests/data/test-mql-4-corrected.xml`、`tests/data/test-mql-4-amesim-reference.json`。
- 执行记录:`test/mql4-backend-integration-20260911/` 内的 `http-verification.json`、`http-result.json`、`http-events.json`、`skill-test-http-summary.json`、`physics.log`、`regression-final.log`。
- 用户输入文件仍为 [test-mql-4-corrected.json](../../test/mql4-20260910/test-mql-4-corrected.json)。
复核命令:
```powershell
./.venv-win/Scripts/python.exe -m unittest tests.test_native_pipe_physics tests.test_native_codegen tests.test_native_pipe_cache tests.test_native_catalog tests.test_native_schedule tests.test_amesim_pnl0001_xml tests.test_amesim_pnl0002_pnl0003_xml tests.test_native_only_backend -v
```