周期边界:工程设置与参数选择
给出周期域最短镜像距离的逐分量写法、盒子尺寸下限与核支撑的关系、驱动通道流的体积力取值与动量平衡核算,以及统计收敛所需的穿越时间与验收判据。
周期边界:工程设置与参数选择
周期边界用最短镜像把计算盒首尾相连,让粒子从一侧离开后由对侧进入,从而在有限域内复现统计均匀的无限流场。它对 SPH 有两个硬约束:盒子尺寸必须大于两倍核支撑,否则粒子会与自身镜像发生虚假相互作用;粒子穿越必须与邻居表同步,否则密度求和会出现锯齿。本文给出最短镜像距离的写法、盒子尺寸下限、驱动体积力取值与动量平衡核算,以及统计收敛时间与验收判据。
最短镜像距离
周期域中粒子对的真实距离取所有镜像中的最小值,按分量计算:
符号 表示逐分量相乘, 取最近整数。等价的手写形式是逐维判断:当 时执行 。两种写法结果相同,但后者更容易在只对一个方向做周期时按需启用。
盒子尺寸下限
若 ,粒子会通过周期镜像与自己的镜像一起落进核支撑域,产生虚假自相互作用,表现为密度被高估、压力偏高。因此
m、 m 时 m。取 m 的盒子,每个方向有 20 个粒子间距,安全余量约 4 倍;取 m 时只有 6 个间距,已逼近下限,此时必须验证密度是否被高估。
驱动通道流与动量平衡
周期槽道没有进出口,流动靠体积力驱动:
取 Pa/m、 kg/m³,得 m/s²,只有重力加速度的 0.02%,因此压力场几乎不受体积力方向影响,静水修正可以照常使用。
稳态时体积力与两侧壁面剪应力平衡,这是周期边界最直接的自检恒等式:
m 代入得 Pa,与解析 Poiseuille 的 Pa 完全一致。把 与 SPH 统计出的壁面剪切对比,误差应小于 2%;若偏差大于 5%,先检查体积力是否被错误地加在所有粒子上(包括壁面粒子)。
统计收敛时间
周期域里只有统计稳态,没有确定性收敛点。流动穿越时间
取 m/s、 m,则 m/s、 s。要得到稳定的平均剖面至少需要 20 个穿越时间,即 30 s; s 时对应 步。只跑 5 个穿越时间得到的 会偏高 3%~5%,因为速度剖面仍在从初始条件向抛物线形松弛。
穿越与邻居表片段
def min_image(dx, L): # 逐分量最短镜像
return dx - L * np.round(dx / L)
def wrap(x, xmin, L): # 穿越后重定位
moved = False
for d in range(3):
if x[d] >= xmin[d] + L[d]:
x[d] -= L[d]
moved = True
elif x[d] < xmin[d]:
x[d] += L[d]
moved = True
return x, moved # moved=True 触发邻居表重建
# 主循环片段
for step in range(nsteps):
for p in particles:
p.x, moved = wrap(p.x, xmin, L)
if moved:
mark_for_rebuild(p)
if any_moved:
rebuild_neighbor_list() # 必须在力计算之前
compute_forces_with_min_image()
验收:周期槽道三查
m、 m、 m/s、 的算例,检查三项。第一, 与 的相对差小于 2%。第二,粒子总数在 步内波动小于 0.01%,说明穿越没有丢失或复制粒子。第三,把 从 0.1 m 加倍到 0.2 m, 变化小于 1%,说明盒子长度已足够容纳最长相关尺度。
失败模式
| 现象 | 根因 | 判定试验 |
|---|---|---|
| 密度整体被高估 1%~3% | 盒子尺寸小于 ,出现自相互作用 | 把 加倍,看密度是否回落 |
| 密度沿周期方向出现锯齿 | 穿越后未重建邻居表 | 输出每步穿越粒子数与邻居表重建次数 |
| 通道流出现净动量漂移 | 体积力与壁面剪切不平衡 | 核算 与 |
| 统计量随盒子长度变化 | 不足,相关长度被截断 | 把 加倍重跑,比较 |
| 速度在穿越瞬间跳变 | 穿越时对速度做了错误重置 | 检查穿越前后 $ |
| 壁面剪应力偏高约 50% | 体积力被加到了壁面粒子上 | 统计体积力的作用粒子集合 |
参考文献
- Allen M.P., Tildesley D.J. Computer Simulation of Liquids. Oxford University Press, 1987.
- Monaghan J.J. Smoothed particle hydrodynamics. Annual Review of Astronomy and Astrophysics, 1992, 30: 543–574.
- Violeau D. Fluid Mechanics and the SPH Method: Theory and Applications. Oxford University Press, 2012.
- Morris J.P., Fox P.J., Zhu Y. Modeling low Reynolds number incompressible flows using SPH. Journal of Computational Physics, 1997, 136(1): 214–226.
- Zhu Y., Fox P.J., Morris J.P. A pore-scale numerical model for flow through porous media. International Journal for Numerical and Analytical Methods in Geomechanics, 1999, 23(9): 881–904.
- Crespo A.J.C., Domínguez J.M., Rogers B.D., et al. DualSPHysics: Open-source parallel CFD solver based on SPH. Computer Physics Communications, 2015, 187: 204–216.