Replace Python numerical kernels with native C execution
This commit is contained in:
1 parent
48da6be21c
commit
3b38f73fe0
227 files changed
+16801
-75499
No files matched your search
@@ -0,0 +1,23 @@
|
||||
# 更新日志 2026-09-09
|
||||
|
||||
## 21:37
|
||||
|
||||
- 完成第一版 C 数值后端:由规范化 XML 自动生成模型 C 代码,链接独立 RK45/CVODE BDF 程序,支持 skill-test 使用的 12 类组件及已声明模式。
|
||||
- 接入现有 XML 仿真 API、编译缓存、独立进程、进度、取消与错误结果;共用 Python 后端入口和结果合同,保留仍在使用的 Python 参考及其他模型。未调整现有雅可比算法。
|
||||
- 33 项相关测试通过。skill-test 的 RK45 全量结果与当前 Python 严格对照通过;三次纯求解中位时间为 RK45 0.2948 s、BDF 0.02228 s。BDF 收紧误差限后的收敛检查通过,详细偏差和限制见第一版报告。
|
||||
- 程序、生成源码、验证数据与报告保存在 `test/native-v1/`;新增使用说明和分步实施记录。
|
||||
|
||||
## 22:19
|
||||
|
||||
- 在当前网页真实复现并修复 C 仿真完成后读取缺失 `pressureFlow.maxScaledResidual` 的错误。C 结果补齐采样点数和状态数,前端兼容可选的 Python 诊断以及旧 C 后端缺少的计数字段;结果可以保存和刷新恢复。
|
||||
- 确认用户改后的默认后端实际为 `native-c`。3 项浏览器回归、1 项原生 API 诊断回归、TypeScript 检查及前端生产构建通过。
|
||||
- 完成 skill-test 的 EXE、HTTP、生产网页及当前开发网页对照:两种方法共 96 次运行(含预热),完整数值结果逐点一致;5 次中位数中,RK45 纯求解 0.3196 s、完整 EXE 0.6326 s、当前网页 1.1846 s;BDF 分别为 0.02206 s、0.3673 s、0.8043 s。
|
||||
- 另以固定结果流回放隔离进度交互开销:10 组配对中位数约增加 189.6 ms 的浏览器主线程任务时间,主要落在开发构建下工作台与组件库的重复 JSX 创建。该时间与后台执行重叠,不能直接作为额外等待时间相加。
|
||||
- 详细记录和复现脚本位于 `test/native-web-20260909/`。本次未变更求解器、雅可比或进度交互性能结构。
|
||||
|
||||
## 默认 C 启动与 Python 依赖核对
|
||||
|
||||
- 统一默认内核选择,后端脚本默认设为 `native`,启动日志明确显示所选内核;显式 `python` 覆盖仍用于旧模型和数值对照。
|
||||
- 启动预热按内核分支执行:C 模式检查工具链与 XML Schema,不再执行 Python/SciPy 数值预热;工具链失败不会静默回退。
|
||||
- 10 项启动/默认 API 回归测试通过。额外在全新进程中移除内核环境变量,验证真实应用 lifespan 与 skill-test XML 执行:默认 native、未加载 scipy.integrate,成功计算至 10 s,502 采样点,12 状态。记录位于 `test/native-default-startup/result.json`。
|
||||
- 核对并记录 Python 保留范围:C 编译仍依赖组件对象、注册表、公共配置与 XML 采样校验,旧示例和未覆盖模型仍依赖 Python 数值实现,未整批删除现有文件。
|
||||
@@ -0,0 +1,15 @@
|
||||
# 更新日志 2026-09-10
|
||||
|
||||
- 完成当前注册组件库的 C 方程覆盖:22 类 Amesim 公开组件(含两种介质定义)和 5 类实验组件,新增显式模型版本白名单。
|
||||
- 补充空气物性、管路阻力/换热、阀参数模式、气动和机械节点、摩擦、柔性及反弹限位;扩展串联压力闭合、焓传播、刚性质量合并及兼容管路容腔投影。
|
||||
- 数值循环全部位于生成的 C 程序中;保留原简单拓扑的紧凑生成路径、默认 C 启动及 Python 参考后端。未调整 ODE 雅可比策略。
|
||||
- 27 项回归通过,另增加的四质量块合并解析校验通过。`skill-test` 完成 10 s,最终 RK45 回归的单次求解时间 0.322429 s;EXE 与记录位于 `test/native-catalog/skill-final-rk45/`。
|
||||
- `test-mql-8` 在初始和瞬态状态下的 132 个导数、1784 个输出通过 Python 对照;完整 CVODE BDF 在 60 s 限额内仅推进至 0.0153307 s,明确记录为超时,完整运行性能仍待改善。
|
||||
- 详细范围、已有参数的实际物理行为与连接限制见 `docs/other/C内核组件库覆盖记录.md`。
|
||||
|
||||
## 随后完成:退役旧 Python 数值实现
|
||||
|
||||
- 删除旧 Python 积分器、模型数值方法、物性缓存和固定算例求解器;Python 层保留配置、参数、校验、编译、进度与结果合同,C 同时负责状态初值。
|
||||
- 固化 50 个网络、112 组 Python 参考状态,删除后用独立 EXE 回归;补充无需 NumPy/SciPy 导入的后台与代码生成检查。
|
||||
- 原生 RK45 完成 `skill-test` 10 s,最大步长 0.001 s、rtol 1e-7,预热后纯求解 0.381517 s;前端生产构建通过。
|
||||
- 当前生效范围与限制以 `docs/other/Python数值实现退役记录.md` 为准,前面的 Python 参考后端描述属于当日较早阶段。
|
||||
Reference in new issue
Block a user