工程仿真中一般忽略流体对固体的影响(假定固体为无形变的绝对刚体),但在有些问题中,固体变形不可忽略,流体与固体的相互作用对结果起关键作用,因此需要使用流固耦合的方法分析问题。例如,图 1展示的采用流固耦合方法对带有系泊系统的海洋平台的动态分析,图 2展示的在心血管仿真分析中的应用等。
图 1 流固耦合在海洋工程中的应用
图 2 流固耦合在心血管中的应用
对于不同耦合度的物理问题,可根据图3选用相应的FSI数值模拟方法。例如,可采用单向耦合的方法来处理流固弱耦合问题,双向显式/隐式耦合法处理强耦合问题,双向完全耦合法处理比强耦合更强的问题。
图3 流固耦合分类
其中:
双向显式/隐式法采用分步计算法(Partitioned Method),如图 4所示,流体和固体由各自对应的求解器单独求解,然后通过界面进行信息交换,流体传递给固体压力和粘性力,固体反馈给流体形变和速度。显式计算法中的流体和固体在每个时间步长内只进行一次信息交换,而隐式计算法中的流体和固体在每个时间步长内进行多次交换迭代达到收敛。
完全耦合法则采用整体计算法(Monolithic)将流体和固体的各自的控制方程集成为一组方程进行整体耦合求解。整体计算法相比分步计算法求解准确,但需要开发新的矩阵求解方法且计算量巨大,分布计算法则相对灵活,通过对现有流体和固体求解器进行整合即可使用,因此在工业界应用广泛。
图4 FSI数值计算法
OpenFOAM中的FSI工具包
FSI 工具包的下载安装参考
https://openfoamwiki.net/index.php/Extend-bazaar/Toolkits/Fluid-structure_interaction
以下内容基于foam-extend-4.0版本下的FSI工具包。
FSI工具包在下载解压后会出现FluidSolidInteraction文件夹,其中包含教程run和源代码src子文件夹,如图5所示。
接下来对src文件夹下的fluidSolidInteraction库和fsiFoam求解器进行详细说明,并选取run下的一个算例进行演示。
图5 FSI工具包文件结构
01
fluidSolidInteraction库
fluidSolidInteraction文件夹中含有Make文件夹,编译后会生成libfluidSolidInteraction.so库,库中主要包含三大类(class):
1 | fluidSolidInterface类: 流体和固体的信息交换都通过fluidSolidInterface来实现,如插值计算,流场力和固体形变交换,残差控制等。 |
2 | fluidSolvers内对应的各流体求解器的类:如类比icoFoam的icoFluid,类比pisoFoam的pisoFluid。 |
3 | solidSolvers内对应的各固体求解器的类:如unsTotalLagrangianSolid。 |
02
fsiFoam求解器
fsiFoam是基于双向隐式分步计算法求解强耦合问题的求解器,其fsiFoam.中的主程序部分代码如下:
图6 fsiFoam.中的主程序部分代码
Line 51: 创建了fluidSolidInterface类下的fsi对象
Line 76-97: 隐式分步计算法的计算主程序
Line 80: 根据上一步固体解更新固体形变
Line 82: 根据固体形变,移动流体域网格
Line 84: 调取流体求解器
Line 86: 根据流场解更新施加于固体域的流场力
Line 88: 调取固体求解器
Line 90-91: 计算残差值
Line 95-96: 判断残差值是否在指定迭代次数内收敛到指定大小;
若不满足条件,返回重新执行Line76-97;若满足则进入下一个时间步。
图7 fsiFoam求解流程图
03
算例教程
图 8 beamInCrossFlow几何模型
图 9展示了OpenFOAM中FSI算例的文件结构,可以看出FSI算例区别于非FSI算例,增加了solid文件夹以及几个相关的links。关联后可以看到在solid文件夹下的出现了fluid内的0和system文件夹,见青色部分。
图9 beamInCrossFlow文件结构
fluid/solid文件夹下的constant内新增了fluidProperties和solidProperties字典文件,用户可以在这两个字典文件中分别指定流体求解器和固体求解器,例如该算例选用了consistentIcoFluid作为流体求解器,unsTotalLagrangianSolid作为固体求解器(图 10)。
图 10 流体/固体求解器的设定
图 11 流固耦合控制字典
执行fluid文件夹下的Allrun脚本运行算例,其运行结果为:
图 12 运行结果
扩 展 需 求
下一期将讲解如何添加一个基于interFoam的两相流流体求解器,并结合wave2Foam工具包解决海洋工程问题。
参考文献
[1] Tukovic Z, Cardiff P, Karac A, Jasak H, Ivankovic A. OpenFOAM library for fluid structure interaction. In: 9th OpenFOAM Workshop. vol. 2014; 2014
[2] Li M. Implement interFoam as a fluid solver in the FSI package. CFD with OpenSource software Course; 2016.