SPH方法的特点是采用粒子求和来近似场变量。有效的粒子求和近似依赖空间划分、邻近粒子搜索等算法,如前文介绍。本文主要学习SPHysics中的浮体处理方法。
首先需要了解SPH与结构的耦合(刚体、弹性体)都是通过界面粒子实现的。界面粒子当然也属于一类边界粒子,文献中称为“free moving boundary particles”(FM)。相对于固定在壁面上为防止流体粒子四处乱跑而设计的Monaghan repulsive边界粒子(固定边界粒子),FMBP具有双重作用,既约束流体粒子“四处乱跑”又能将流体对结构的力传递到结构求解器(刚体求解器或有限元求解器)。故程序中作为两类不同的粒子,通过内存位置区别,各自需要的计算自然就不同,详细如下:
Interaction pairs
1 流体粒子-固定边界粒子 将边界粒子对流体粒子的斥力加入流体粒子加速度,更新流体粒子;固定边界粒子不做更新;
2 流体粒子-自由边界粒子 同上完成流体粒子更新后,将边界对流体的反力加入(自由)边界粒子的加速度,(之后由外部结构求解器调用)
3 自由边界粒子-自由边界粒子 两粒子不属于同一浮体的话,类似2分别更新这两个自由边界粒子
4 自由边界粒子-固定边界粒子 类似1, 只更新自由边界粒子
!"碰撞对“为流体粒子-固定边界粒子
if(i.gt.nb.and.j.le.nb) then
ax(i)=ax(i)+fxbMON
if(j.gt.nbfm) then ! "碰撞对"是