27 lines
2.8 KiB
Markdown
27 lines
2.8 KiB
Markdown
# Python 数值实现退役记录(2026-09-10)
|
||
|
||
网页与 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,可重新生成。
|