Files
SystemSimulationApp/docs/other/Python数值实现退役记录.md
lujingze b6c22a54f8 修复测试模型路径并完善四路八路回归与文档
- 按文件哈希区分当前八路工程和历史 Amesim 基准,修复测试与清单中的旧路径。
- 四路审计从 JSON 按需生成 XML,八路新增只核对模式,并显式使用 UTF-8 与 LF。
- 将缺失高刚度夹具的测试替换为当前八路完整 BDF 运行,明确未恢复原 RK45 专项覆盖。
- 更新前端大型工程测试、历史活动回放入口、数据说明、现行规范和相关报告。

验证:全量后台 374 项通过、1 项条件跳过;前端 11 项通过、历史独立服务用例 1 项跳过;四路八路 AME 审计通过。
环境、缓存和运行产物保持忽略;本次未实施工程 JSON 字段精简。
2026-09-12 15:49:09 +00:00

44 lines
4.4 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.
# Python 数值实现退役记录(2026-09-10)
> 路径复核 / 2026-09-12:本文当时使用的 `tests/data/test-mql-8.json` 已删除;当前活动输入为 `tests/data/test-mql-8-corrected.json`,按其实际保存配置运行。August 冻结基准仍在 `tests/baselines/simulation/test_mql_8/sources/`,对应 AME 为 `tests/data/AmesimModels/test_mql.ame`。 详见 [路径修复记录](2026-09-12-test-input-path-refresh.md)。
网页与 CLI 统一采用 C 数值内核。删除旧 Python 积分器及模型数值实现;Python 保留输入校验、模型元数据、C 生成、构建缓存、任务与结果管理。
## 删除与保留
- 删除 `app/simulation/solvers/`、`systems/generic.py`、Python 状态/物性求值、组件流量/受力/导数方法、物性缓存及对应的逐次物性计时。
- 删除旧固定算例求解器、旧 Python 基准执行脚本和依赖它们的比较脚本;保留 Amesim 结果读取器与历史数值文件。
- `config.py` 保存配置与进度,`sampling.py` 保存采样合法性检查,`results.py` 保存结果合同。
- 组件 Python 文件保留参数、端口、显示、结果、方程结构以及几何预处理。方程结构声明不再包含运行时残差值。
- 气体质量/能量初值由 C `native_medium_init()` 计算,兼容实验气瓶/贮箱原有初值定义。
- 后端默认且仅支持 `native`;`native-c` 是别名,`python` 会明确报错。旧固定算例 HTTP 接口返回 410,统一 XML 接口继续使用。
- 后端运行依赖移除 NumPy/SciPy。NumPy 仅用于回归断言,列在 `requirements-test.txt`。
- C RK45/CVODE BDF 和既有雅可比策略保持不变。无时间信号机械模型的生成代码补充未使用参数声明,修复严格编译警告导致的构建失败。
## 回归依据
删除前从旧 Python 内核捕获 `tests/data/native-python-reference.json`:50 个网络、112 组状态的初值、导数和输出。覆盖空气/氦气、正反向流、换热、节点、串联阻力、管路容腔、机械模式、信号、重命名/重排及重复支路;删除后由生成的 EXE 对照冻结值,容差 `rtol=2e-8, atol=2e-7`。另有四质量块解析校验、反弹与纯信号 RK45/BDF、XML/任务取消和接口测试。
历史 Python MQL 基准的原始 XML/JSON 移到 `tests/baselines/simulation/test_mql_8/sources/`,保留原始哈希与仿真设置,不用新内核覆盖历史结果。当前 `tests/data/test-mql-8.json` 和 XML 同步采用已选择的最大步长 0.02 s。
`skill-test` 对应的 `tests/data/native-skill-test.xml` 完成 0–10 s:RK45、最大步长 0.001 s、rtol 1e-7、不记录轨迹。预热后单次纯求解 **0.381517 s**,60224 次导数求值、10022 个接受步、14 个拒绝步。该次同时进行其他回归工作,不作为新的性能优劣结论。
当前版本仍仅提供 Windows x64 原生构建。此前已发现大型 `test-mql-8` 的 CVODE BDF 完整仿真过慢;本次删除旧实现不解决该问题,不能据组件覆盖或短时测试宣称其长时仿真已通过。详见 [组件覆盖记录](C内核组件库覆盖记录.md)。
本地生成的 EXE、DLL、计时日志在 `/test/`,不提交编译产物。源码和冻结基准进入 Git,可重新生成。
## 远端 IR 分支集成(历史阶段)
合并 `system-optimization` 时曾保留 IR v2 schema、Python 数据结构、内容签名和静态校验器,停用了依赖旧 Python 系统对象的导出器。这些 IR 文件已在随后清理中删除,未接入当前 C 生成或求解路径。
当时从远端提交 `ce353d2` 固化了三个 IR 示例并通过 20 项校验测试;专属示例和测试已随 IR 一起删除,历史内容可从 Git 找回。
当前 CI 在 Linux 验证元数据和 XML 合同,在 Windows 配置 C 工具链后运行原生回归。本地验证与远端 CI 的实际运行结果分别记录,不把本地通过当成远端 CI 已通过。
## 旧数值实现退役时的本地验证
- 后端完整发现 280 项测试,1 项 Linux 锁定环境版本校验按配置跳过。数值、XML、IR 等检查通过;心跳测试改为等待消费确认后,对应 11 项 API 回归通过,消除依赖几毫秒固定等待的时序假设。
- 前端 TypeScript 检查与 Vite 生产构建通过。
- Chrome 无界面网页测试 3 项通过:C 结果、缺少旧诊断字段的结果、历史 Python 结果均可显示并在刷新后恢复。
- `skill-test` 完整 10 s 原生求解通过,计时与设置见上文。