重叠网格(Chimera)
机理:重叠网格并传递数值
概述
我想把旋转的螺旋桨和船体一起分析,但不知道运动部分和静止部分的网格怎么连接。
重叠(Chimera)网格就是不需要连接的方法。分别生成螺旋桨周围的网格和船体、背景网格,直接叠在一起。在重叠部分,把一套网格的值插值后传给另一套。物体内部或重叠过多部分的网格作为“洞”从计算中去除。网格可以自由运动、每个部件都能生成高质量网格是它的长处,代价是多了一个新的误差来源——插值误差。
网格单元的角色
| 类型 | 作用 |
|---|---|
| 计算单元 | 正常求解方程 |
| 洞(屏蔽单元) | 位于物体内部等,从计算中去除 |
| 接收单元 | 位于洞边缘和网格外边界,接收从其他网格插值得到的值 |
| 贡献单元 | 向接收单元提供数值的另一套网格的单元 |
| 孤立点 | 找不到合适贡献单元的接收单元,是误差或发散的原因 |
插值及其误差
$w_i$ 为插值权重,$k$ 为流动变化的波数,$h$ 为贡献网格间距。线性插值误差与间距平方成正比,二次插值与三次方成正比。关键在于,决定误差的不是接收单元,而是“贡献一方的网格间距”。
因航天飞机分析而普及
重叠网格的思想于20世纪80年代在美国提出,在航天飞机发射构型——轨道器、外挂燃料箱和两枚固体火箭助推器并列的复杂外形——的流场分析中显示了实力。只需为每个部件生成高质量结构网格再叠在一起,就避开了把整体连成一套网格的难题。此后,它成为直升机旋翼、外挂物分离、船舶螺旋桨等运动物体问题的标准方法之一。
算例:插值误差的大小
网格细度与误差
把正弦波 $\sin(2\pi x)$ 从贡献网格插值到20,000个接收点,求最大误差(相对振幅之比):
| 每波长贡献网格点数 | 线性插值 | 二次插值 |
|---|---|---|
| 5 | 18.2 % | 11.4 % |
| 10 | 4.9 % | 1.6 % |
| 20 | 1.2 % | 0.20 % |
| 40 | 0.31 % | 0.025 % |
贡献与接收单元的尺寸比
接收一侧细网格为每波长20点时,贡献一侧网格变粗,线性插值误差增大如下:
| 尺寸比(贡献/接收) | 最大误差 |
|---|---|
| 1 | 1.2 % |
| 2 | 4.9 % |
| 4 | 18.2 % |
接收一侧再细,贡献一侧粗的话误差依然很大。
对,常见的失误就是“物体周围网格很细,背景网格却很粗”。从物体周围脱落的涡和尾流一旦传到背景网格,精度就立刻降到粗网格的水平。在重叠区,两套网格的尺寸应控制在2倍以内。
反复插值使波动衰减
线性插值在网格中间取值时,波每次都会稍微变小。每波长10点时每次乘以0.951,穿过重叠区20次后振幅只剩37%;20点时为0.988,20次后仍剩78%。螺旋桨尾流跨越多套网格,或旋转网格每步都要插值时,这种衰减会影响结果。
设置与验证
设置要点
- 重叠宽度:在插值模板所需网格数之外,再留出若干网格的余量重叠。重叠过窄容易产生孤立点。
- 尺寸一致:重叠区两套网格尺寸控制在2倍以内,背景网格只在重叠部分局部加密。
- 避开剧烈变化处:不要把重叠区边界放在激波、边界层、剪切层等数值急剧变化的地方。
- 运动网格的时间步长:物体每步移动超过一个网格时,挖洞和插值关系会突变而产生误差。时间步长应使每步位移小于网格尺寸。
验证
- 确认孤立点数量并消除。
- 确认流入流出的质量收支。插值一般不严格守恒,收支偏差大时要重新检查重叠设置。
- 若同一几何能用一套连通网格求解,比较一次就能了解重叠网格带来的误差大小。
“力的时间历程出现锯齿”
运动物体的重叠网格分析中,作用在物体上的力的时间历程有时会出现周期性锯齿。原因多半是物体运动时网格从“洞”切换为“计算单元”(或反过来)瞬间的不连续:新激活单元的初值与周围不一致,就会产生小的压力冲击。统一重叠区尺寸比、减小时间步长、让切换发生的位置远离物体等措施都能使之不明显。
常见错误
错误与对策
| 错误 | 后果 | 对策 |
|---|---|---|
| 背景网格过粗 | 尾流和涡在插值时丢失 | 重叠部分局部加密 |
| 重叠过窄 | 产生孤立点 | 重叠宽度为模板加若干网格 |
| 重叠边界位于边界层内 | 壁面摩擦和传热出错 | 边界层用一套网格覆盖 |
| 不检查质量收支 | 察觉不到非守恒误差 | 监测流入流出差 |
| 时间步长内位移过大 | 力的时间历程出现尖峰 | 每步位移小于一个网格 |
我想自己确认插值误差。