优化端口传递物性参数方式,减少上下游元件重复计算量
This commit is contained in:
1 parent
91bd9fb252
commit
5d5a2e1843
12 files changed
+773
-65
No files matched your search
@@ -34,7 +34,9 @@
|
||||
- 压力与焓同时互相依赖时,在这个局部块内保留嵌套求解。迭代到上限仍未满足条件,或出现非有限数值,返回求值失败;不把未完成的局部闭合当作成功。
|
||||
- 条件表达式记录所有可能分支的依赖,覆盖反向与零流量。此做法较为保守:某个特定工况下能进一步简化的关系仍可能留在小循环内。本版没有实现运行时分支特化。
|
||||
|
||||
管路自身的摩擦/流量求根属于元件内部计算。本轮没有改其算法或 16/64/48 轮上限,也没有改积分器或雅可比策略。系统循环的来源检查和局部划分不代表任意新非线性方程都已得到数值求解支持。
|
||||
管路自身的摩擦/流量求根属于元件内部计算。2026-09-11起,PNL管流使用带区间保护的局部Newton求根,保留既有物理分支,并在实际返回点要求方程相对残差不超过 `1e-9`;不再把达到16/64次上限的迭代值直接当成解。上面的系统压力、焓闭合策略,以及积分器和系统雅可比策略仍然保留。系统循环的来源检查和局部划分不代表任意新非线性方程都已得到数值求解支持。
|
||||
|
||||
每次 `model_eval` 还建立调用者持有的 `NativePropertyCache`,并显式传给局部辅助函数。气体状态准备后登记已有温度、焓和密度;阀口、管路及诊断计算共享相同状态中的有效物性。压力、焓或介质参数改变时按完整输入重新查询,缓存不跨系统试算复用。记录容量满时使用正常计算回退。
|
||||
|
||||
## 新模型如何接入
|
||||
|
||||
@@ -49,6 +51,10 @@ operations.append(Computation.assignment(
|
||||
|
||||
没有依赖流量的参考值复制必须单独列出,不能与需要流量的能量计算合并为一个条目。共享状态、机械/信号准备和气体物性阶段仍需要在现有 C 接入中实现;仅注册 `PORTS/PARAMETERS` 不会自动产生方程。
|
||||
|
||||
新增气动部件应传递现有 `properties` 上下文,使用 `native_medium_gas_context`、`native_temperature_ph_context`、`native_density_context` 及相应阀口/管路的 `_context` 接口。记录和有效标志由内核维护,不能由部件绕过检查直接改写。新增物性字段时应在内核中定义其输入条件与有效标志;不能因焓相同就沿用不同压力下的温度,也不能在多次试算之间建立未核对输入的全局缓存。旧无上下文接口用于兼容或独立计算,不作为新生成代码的默认路径。
|
||||
|
||||
新增能力至少检查:来源缺失、多个提供者、长参考链、组件与连接顺序打乱、正反流和零压差、两个独立循环互不重算、耦合压力/混合循环的质量能量守恒,以及独立数值基准。当前自动排序对象是已接入的内置方程,不接受任意外部 C 代码。
|
||||
|
||||
对应测试:`tests/test_native_schedule.py`、`tests/test_native_catalog.py`。本轮模型对照记录见 [计算排序验证记录](../other/C计算依赖排序验证-2026-09-10.md)。
|
||||
|
||||
物性复用和管流求根还由 `tests/test_native_properties.py`、`tests/test_native_pipe_physics.py` 覆盖。实现边界与实测结果见 [物性复用与管流求根实现及验证](../other/物性复用与管流求根实现及验证-2026-09-11.md)。
|
||||
Reference in new issue
Block a user