最近总有人留言询问流固耦合的问题,懒得一一回复,干脆来篇总结性的文章一起回复了。
所谓流固耦合计算,通常指的是同时利用流体求解器和固体结构求解器计算流体和固体相互作用问题。流体求解器主要负责流场压力、速度、温度、组分等物理量的计算,而固体结构求解器则负责位移、应力、应变等计算。在这些求解变量中,同时存在于流体和固体求解中的物理量是压力和位移。
在流体求解器中,压力是直接解出量,而在固体求解器中,压力可作为载荷。
在固体求解器中,位移是直接解出量,而在流体求解器中,位移可作为载荷,表现为计算域运动或变形。
如下图所示。
因此,流固耦合问题的核心是在于共同变量的求解计算或传递问题。
1 求解方式
流固耦合问题求解计算方式主要有两种:
-
分离求解。采用不同的求解器计算各自的物理变量,其中共同变量采用异步传递的方式进行更新。
-
联合求解。构建一个大型物理系统将流体和固体部分全部考虑进去,然后所有的物理场变量一起求解。
目前商用软件基本上采用分离求解的方式。
2 数据传递方式
分离求解方式的核心在于数据传递。目前主要有两种传递方式:
-
单向传递。例如流体求解器解算出压力,然后将压力数据作为载荷传递给固体结构求解器。如下图所示。在单向耦合计算中,物理量的作用是单方面的,如下图中所示,只考虑流体对固体的作用,而固体对流体的影响被忽略。
那么存不存在固体求解器向流体求解器传递位移的情况呢?当然也是存在的,但实际上这类问题通常被归类到动网格问题中,不作为流固耦合问题处理。
-
双向传递。例如流体求解器发送压力数据至固体求解器,同时接收固体求解器计算得到的位移数据。如下图所示。
通常情况下,单向传递用于稳态计算,双向数据传递一般用于计算瞬态问题。
在ANSYS CFD中,流体求解器可使用ANSYS Fluent或CFX,固体求解器通常采用Mechanical或APDL。常见的软件组合形式:
-
Fluent + Mechanical:单向耦合
-
Fluent + Mechanical + System Coupling:双向耦合
-
CFX + Mechanical:单向耦合或双向耦合
3 数据同步
流固耦合计算由于同时涉及到固体求解器与流体求解器,因此需要考虑数据同步问题。在ANSYS Workbench中,数据同步工作是由System Coupling来完成的。
System Coupling(后面简称SC)是一个通讯模块,用于Fluent+Mechanical双向耦合中。其作用包括:
-
收集并转发物理量。上图中的压力和位移数据均通过SC中转,流体求解器与固体求解器之间没有任何信息交互。
-
协调计算时间。流体计算和固体计算时间通过SC统一协调控制。因此在Fluent中设置时间步长及步数实质上是无效的,在Mechanical中设置的时间步长和步数同样无效。真正的计算时间在SC中设置。
-
指定数据交换的边界。需要在SC中指定Fluent中压力输出及唯一接收的边界(一般为wall边界),指定Mechanical中的Fluid Solid Interface,并指定他们之间的数据传递形式。
注:数据同步工作事实上也不一定非要采用SC,用户也可以自己编制进程通讯程序来实现数据同步工作。此类程序比较典型的如MPCCI。在Ansys Workbench中,CFX的流固耦合计算不需要使用SC。
4 常见的数据流程
下面是几种常用的流固耦合计算流程。
4.1 单向耦合流程
-
Fluent + Static Structural
这是最典型的单向流固耦合流程,流体求解器计算得到各壁面上压力分布,之后将压力值作为载荷导入至静力学求解器中计算结构应力。
-
Geometry + Fluent + Static Structural
另一种流程方案,和上一种流程实质上相同,只不过将几何单独拿出来处理,流程上要更加灵活一些。
-
CFX + Static Structural
与方案1相同,只不过流体求解器换成CFX。
-
Geometry + CFX + Static Structural
与方案2相同,只不过流体求解器换成CFX。
单向流固耦合问题,常采用流体求解器配合静力学结构求解器完成,一般为稳态计算。
4.2 双向耦合流程
-
Fluent + Transient Structural + System Coupling
这是最典型的双向流固耦流程,中间数据通过System Coupling转发。
-
CFX + Transient Structural
利用CFX与Transient Structural耦合计算,不需要采用System Coupling进行数据转发。然而CFX的网格处理能力有限,通常不适合大变形情况的计算。
与前面类似还可以将几何与网格独立出来,搭建更加灵活的流程。如下图所示。
利用ICEM CFD为Fluent准备网格,而结构求解器的网格在Mesh中生成。
相同方式也可以构造出CFX的耦合流程。
5 网格更新
双向流固耦合计算时,会涉及到网格的更新。在Fluent中,网格更新是通过动网格来实现。
单向耦合问题并不涉及到流体域的变化,因此无需采用动网格。
双向耦合计算中,流体求解器接收固体求解器计算得到的网格节点位移,从而更新流体计算域,因此需要利用动网格技术来应对网格节点的变化。通常情况下需要使用Remeshing + Smooth更新网格,较少采用Layering。
6 需注意的问题
需要注意的问题包括:
-
不管是单向耦合还是双向耦合,尽量保持流固交界面上网格尺寸接近。(这点非常重要,网格尺寸差异较大的话,轻则影响精度,重则导致出错。)
-
双向耦合计算时,若出现收敛困难,尝试在SC中减小时间步长再重新计算
-
双向耦合计算时,时刻注意求解器收敛信息以及数据映射信息,如果出错,大概原因也是这两个。
-
不是有固体和流体就是流固耦合计算,共轭传热也有固体参与计算,但一般不当做流固耦合问题来处理。6DOF刚体运动问题也有固体参与计算,但一般用动网格直接处理。
本篇文章来源于微信公众号: CFD之道
评论前必须登录!
注册