Files
SystemSimulationApp/docs/other/Python数值实现退役记录.md
T

2.8 KiB
Raw Blame History

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 完整仿真过慢;本次删除旧实现不解决该问题,不能据组件覆盖或短时测试宣称其长时仿真已通过。详见 组件覆盖记录。

本地生成的 EXE、DLL、计时日志在 /test/,不提交编译产物。源码和冻结基准进入 Git,可重新生成。