Files
SystemSimulationApp/docs/other/雅可比算法正式启用与网页验收-2026-09-11.md

62 lines
5.7 KiB
Markdown
Raw Permalink 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。用户已确认接受试验版的数值误差,并要求正式网页使用新版、清理旧算法。上一轮最大温度误差相对较严格 native 参考为 0.0468 → 0.0543 K;接受该差异不等同于新增八路 AMESim 外部曲线验收。
## 正式行为
网页/API、Python runner 和独立 C 程序统一自动选择有收益的结构着色差分。八路仍为 132 状态、27 组扰动 + 1 次 canonical 基准,沿用已验证的物理方程、普通 RHS、`rtol=1e-8`、状态 atol、采样与 Dense LU。
删除 `SIMULATION_NATIVE_JACOBIAN` 和 `--jacobian dense|auto|verify` 的生产选择入口,旧 CLI 选项会明确以 64 退出。不存在需要用户开启的试验开关。独立 C 程序保留诊断无值标志 `--verify-jacobian`,按完整矩阵核对新算法,不用于正式速度比较。
不支持结构证明、没有分组收益的模型保留必要的逐列差分;分组扰动失败、核对失配时保留 canonical 逐列恢复。它们是新算法的兼容/恢复路径,不是独立可选择的旧版本。紧凑模型、未知结构、取消、事件重启都纳入检查。
## 实现与历史对照
运行时不再保存旧算法模式;构建 manifest 直接说明默认策略。Python 不再从环境变量选择旧算法。手动性能工具默认测新算法,仅通过显式提供冻结的旧可执行文件做历史对照;正式源码不保留旧版本选择器。
原始试验数据和误差不重写,详见 [完整试验报告](雅可比结构着色试验与八路验证-2026-09-11.md)。本轮只是将用户已接受的候选设为默认并清理入口,需验证正式输出与该候选一致。
## 本轮验证记录
57 项后端与雅可比专项测试全部通过,用时 129.667 s,覆盖元件目录冻结基准、两种积分器、结构依赖、canonical 差分核对、失败恢复、事件重启、结果直传、取消及旧 CLI 选项拒绝。四路 72 条 AMESim 参考曲线沿用原门槛通过,并确认默认 `colored-difference`、15 组 + 1 次基准、无回退。
```sh
.venv/bin/python -m unittest tests.test_native_codegen tests.test_native_schedule tests.test_native_catalog tests.test_native_pipe_physics tests.test_native_only_backend tests.test_native_result_transport tests.test_generic_system_xml_simulation tests.test_native_jacobian_structure tests.test_native_jacobian_runtime -v
```
单独通过正式构建程序执行新 `--verify-jacobian` 标志,八路 0~0.0001 s 完成 16 次完整矩阵核对,零失配、零回退。它检查新诊断入口的实际 CLI 行为;完整 0~10 s 的 433 次核对已在前一轮完成,本轮不混用两个次数。
手动工具完成语法、参数、真实八路 prepare-only、隔离插桩准备与进程编排检查。它们的旧历史成本汇总重算后,除脚本 SHA 外逐字段不变,没有重写旧数据。
原始产物全部在 Git 忽略的 `test/jacobian-production-20260911/`,轻量 [正式启用摘要](assets/2026-09-11/jacobian-production-summary.json) 随文档保留,包括来源 SHA、默认策略、计数和用时。
## 正式网页验证
通过原有 `bat/start-all.sh` 重启当前正式 FastAPI 与前端。实际入口:
- [正常编辑器入口](http://127.0.0.1:5173/):经原有代理调用 8000 后端。
- [正式构建页面](http://127.0.0.1:8000/):同一后端提供现有生产静态资源。
没有另开需要指定算法环境变量的试验实例。正式页面在 8000 端口执行 1 次预热 + 3 次串行测量;5173 端口另做 1 次完整操作检查。5173 使用 Vite 开发资源,仅用于入口连通性与功能验证,不与生产资源的性能基准混合。
主模型为修正八路 `tests/data/test-mql-8-corrected.json`,输入 SHA 与前一轮一致;8000 实际加载的前端资源集合 SHA 仍为 `f089bfc67e38ab5a4a0f7649d94f711642d4ab08b690be50b8ef075d8422a1c2`。模型导入后元件参数、端口连接、仿真设置的公开导出核对通过。
| 正式页面过程 | 三次中位 |
| --- | ---: |
| C 求解 | 2.6066 s |
| 点击运行 → 结果可查看 | 3.4985 s |
| 点击运行 → 浏览器保存完成(观察值) | 3.6134 s |
| CSV 点击 → 下载保存完成 | 1.1997 s |
| 结果文件点击 → 下载保存完成 | 1.1057 s |
时间口径与试验报告一致:浏览器保存为 IndexedDB 提交/指针可见的观察时刻,含轮询与调度;文件保存包括浏览器通知和自动化本地 `saveAs`。各过程不相加,也不把新的单组样本当作再次测量旧版的配对加速比。
首次构建单次 4.2035 s,首次点击到可查看 7.6946 s;它不进入三次已命中缓存的正式中位数。
5 次完整网页运行均自动报告 `colored-difference`:`nfev=22,853`、`njev=433`、`jacobianRhsCalls=12,124`、`jacobianFallbacks=0`、接受步 6,660、拒绝步 359、事件 1、求解器启动 4,与用户已接受的候选一致。
计时后对 8000 的全部 4 次结果、最终输出、CSV 与前一轮已接受 native 候选逐数值比较;1,002 点 × 1,785 列 × 4,共 7,154,280 个 CSV 单元全部一致。5173 的单次结果/最终输出也与候选一致,CSV 与已核验正式 CSV 字节完全相同。5 次刷新恢复后的完整结果均一致,没有浏览器异常。[8000 核对记录](../../test/jacobian-production-20260911/equality-official.json)
新生成 C/头文件的数值内容和结构与已接受候选相同;生产运行时只改默认选择和诊断入口。完整来源、构建缓存、测试日志和浏览器下载保存在上述忽略目录;本轮未安装环境或更改模型、积分精度、物理方程、结果编码和前端功能。