C内核流量计算方法优化,前端文件名称读取优化
This commit is contained in:
1 parent
5d5a2e1843
commit
808c484f5b
94 files changed
+20163
-4418
No files matched your search
@@ -34,7 +34,14 @@
|
||||
- 压力与焓同时互相依赖时,在这个局部块内保留嵌套求解。迭代到上限仍未满足条件,或出现非有限数值,返回求值失败;不把未完成的局部闭合当作成功。
|
||||
- 条件表达式记录所有可能分支的依赖,覆盖反向与零流量。此做法较为保守:某个特定工况下能进一步简化的关系仍可能留在小循环内。本版没有实现运行时分支特化。
|
||||
|
||||
管路自身的摩擦/流量求根属于元件内部计算。2026-09-11起,PNL管流使用带区间保护的局部Newton求根,保留既有物理分支,并在实际返回点要求方程相对残差不超过 `1e-9`;不再把达到16/64次上限的迭代值直接当成解。上面的系统压力、焓闭合策略,以及积分器和系统雅可比策略仍然保留。系统循环的来源检查和局部划分不代表任意新非线性方程都已得到数值求解支持。
|
||||
管路自身的摩擦/流量求根属于元件内部计算。PNL管流将既有阻力关系写成 `Re² × f(Re) = K`,使用带区间保护的局部Newton求根,保留可压缩流动、摩擦系数混合、流向和近平衡平滑公式。求根器遵守:
|
||||
|
||||
- 先检查有限输入,并通过最多128次上界试算显式确认夹根;无法得到有限且满足上界符号的值时失败,不进入未受保护的迭代。
|
||||
- Newton试点越界、斜率非正或非有限时二分回退。一次Newton试点若未将方程绝对残差至少减半,下一步强制二分,使区间内的无效小步也能触发保护。
|
||||
- 在实际返回候选点检查方程相对残差不超过 `1e-9`,同时保留流量变化的绝对 `1e-13 kg/s` 或相对 `1e-10` 判据;比较过程避免流量尺度溢出造成误判。解析低雷诺数分支也核对残差及返回流量的有限性。
|
||||
- 求根最多128轮。区间已缩至相邻浮点值时核验两端候选,仍不满足上述条件则失败;非有限方程、无法夹根、迭代耗尽均返回失败值,不将最后一次试算当成解。
|
||||
|
||||
PNL00R原有的直接层流分支(对应 `Re ≤ 1000`)继续按其解析式计算;该保留分支不经过上述混合摩擦关系的求根检查。区间法的收敛仍以区间内方程连续等条件为前提,不代表任意经验公式、任意有限输入或整套耦合系统都能成功求解。上面的系统压力、焓闭合策略,以及积分器和系统雅可比策略均保留。系统循环的来源检查和局部划分不代表任意新非线性方程都已得到数值求解支持。
|
||||
|
||||
每次 `model_eval` 还建立调用者持有的 `NativePropertyCache`,并显式传给局部辅助函数。气体状态准备后登记已有温度、焓和密度;阀口、管路及诊断计算共享相同状态中的有效物性。压力、焓或介质参数改变时按完整输入重新查询,缓存不跨系统试算复用。记录容量满时使用正常计算回退。
|
||||
|
||||
@@ -57,4 +64,4 @@ operations.append(Computation.assignment(
|
||||
|
||||
对应测试:`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)。
|
||||
物性复用和管流求根还由 `tests/test_native_properties.py`、`tests/test_native_pipe_physics.py` 覆盖。`tests/test_native_pipe_solver.py` 仅依赖Python标准库和C编译器,通过独立二分、切换邻点及临时测试副本中的斜率/方程故障注入,验证区间保护、残差、回退与明确失败。实现边界与实测结果见 [物性复用与管流求根实现及验证](../other/物性复用与管流求根实现及验证-2026-09-11.md)。
|
||||
@@ -138,6 +138,8 @@ v3 不保存 `name/componentType/x/y/rotation/mirrored`。其中:
|
||||
|
||||
### 5.2 `Parameter`
|
||||
|
||||
平台压力统一采用绝压,默认显示单位为 `Pa`,可切换为 `kPa`、`MPa` 或 `bar`。这些显示单位只作比例换算,不增加或减去大气压偏移,`1 bar = 100000 Pa`。工程 JSON 中的数值参数保存 SI 值,`parameterUnits` 保存显示单位;表达式按保存的显示单位求值后换算到 SI。例如输入 `2.5 bar` 时,XML 的压力参数值为 `250000`。后端仿真输入与压力结果均使用绝压 Pa。
|
||||
|
||||
```xml
|
||||
<Parameter name="direction" value="-1"/>
|
||||
```
|
||||
|
||||
Reference in new issue
Block a user