加载中
0606 / 10一个单位从单元左侧进入,两个单位从右侧离开,上下两侧都没有流量。这个收支差额从哪里来?
平滑的插值图像可能藏住这个问题,网格却不能。在不可压缩模型中,面速度必须满足体积平衡。压力投影的一项工作,就是让数值状态服从这个约束。
对各面等长、面积为一的正方形单元,净流出通量为:
右 − 左 + 上 − 下一般单元还需要考虑面长度和单元面积。符号不能忽略:左面、下面与右面、上面的方向相反。把四个速率的大小相加,并不能得到这个平衡。
单位单元教学示例:各面等长、面积为一。左右面使用向右为正的 x 分量,上下面使用向上为正的 y 分量;公式通过减法处理向外方向的符号。平衡一个单元只是代数;FLOW 的压力投影必须耦合整个计算域。
调节右侧面速度,取 1 时净通量为零。按钮通过代数直接设置这个值。它不是压力求解器,也不声称一个单元的修正能解决整个耦合计算域。
FLOW 的流体实现采用交错布局,通常称为 MAC 网格:压力一类标量位于单元中心,相关速度分量位于单元面上。相邻单元自然共用同一个面值。
共享面不仅便于存储。一个单元从该面失去的,应当正是邻居从该面得到的,只是符号相反。同一个位置若有两个不一致的值,就会给出互相矛盾的收支记录。
渲染时还要把这些数据重构到绘图或探针位置。重构值适合显示和读取,却不意味着求解器换了一种存储约定。
分裂步骤可能产生不满足不可压缩约束的中间速度。与压力相关的求解会提供梯度修正。在相容的离散算子下,修正后的散度受该求解残差控制。
修正需要耦合单元。改动一个面,会影响它的邻居;解也依赖整个计算域的边界条件。事后独立把每个单元“调平衡”,可能让共享面出现冲突。
因此,实现需要检验算子及其组合,而不只是在仪表板上显示一个很小的数。散度诊断必须匹配网格约定,否则程序可能通过一个测量了错误对象的测试。
投影步骤保存的修正量并不自动等于物理压力测量。压力场还需要指定参考水平(规范)。在这种解释获得验证之前,FLOW 不提供定量压力视图。
周期后端利用傅里叶空间方法处理相关压力与速度操作。周期边界把两侧连接为邻居,使这里的谱方法成为可能。封闭墙面,以及带入口、出口的通道,则需要不同处理。
所以,通用 MAC 后端与周期后端必须保有各自的证据。历史通用引擎目录不能自动认证当前每个周期预设;周期输运测试通过,也不能单独说明尾流实验中的出口反射情况。
这不意味着要立刻给初学者塞满求解器细节,而是要先画出计算域,再解释算法。没有边界规则,“网格”这个描述仍不完整。
一个结构清楚的涡旋,可能伴随很小的散度误差,也可能隐藏很大的误差。运动外观不是残差范数。读取诊断值时,继续检查使用了什么算子、归一化和分辨率。
有限容差是工程陈述,不是精确的数学零。应报告测试持续时间和阈值,而不是把一次通过说成对所有未来状态的证明。
小单元教会的大规则: 相信屏幕上的运动之前,先检查相邻部分是否对穿过共同边界的东西达成一致。
下一篇:另一份收支表——漂亮图像正在失去的染料。