E-HPC CFD仿真实践
工业流体仿真通过利用数值方法,将连续空间的偏微分方程离散化,得到一系列的线性方程组系统,最后采用数值算法对方程组进行求解。一般分为前处理(离散化)、问题求解(并行求解)、后处理(结果分析)三大步骤,各个步骤包含的操作内容如下图所示:
阿里云E-HPC服务能够自动化的部署工业仿真开源软件栈,加上E-HPC的远程可视化特性和并行处理能力,用户可以直接通过E-HPC Web控制台完成完整的CFD的仿真过程,本文以圆柱绕流的仿真分析为例,演示在E-HPC上的仿真分析处理。
在开始仿真操作之前,需要先创建E-HPC集群,同时在创建过程的“软件配置”中,选择部署helyx-os、paraview以及OpenFOAM软件,在集群进入“运行中”状态后,创建用于提交作业的用户。
1. 前处理
CFD计算需要将连续的计算域离散为一系列的控制体或单元,将连续域的偏微分方程求解变换为离散域的差分方程求解。 这些离散域的单元通常称为网格,网格单元的尺寸一般需要适应流动情况(如存在激波、边界、涡等现象的地方,网格尺寸应该小)。CFD前处理的流程主要是构造对象的几何形状、设置参数并生成所需要的网格、进行边界条件和求解器设置等操作。本例使用开源软件HELYX-OS来完成算例的前处理工作。
1.1 几何建模与网格生成
E-HPC控制台提供了远程可视化界面,可提供图形化的前处理操作。集群创建完成后,可通过“集群”界面或“作业”界面打开远程可视化窗口,通过“作业”界面右上角“可视化窗口”按钮打开如下图所示,进入opt目录下的相关文件夹:
右键打开命令行执行./HELYX-OS.sh,可以打开HELYX-OS的操作界面,创建一个新的算例(可设定算例文件位置以及求解时的并行度)。
首先进行几何建模,以构建基本的几何边界和几何形状。这里BoudingBox类型选择User Defined,宽、高均为10,厚度为1,x方向单元数为100,y方向单元数为80,z方向单元数为0;其中几何形状为一个圆柱,同时设置了边界名称,流体从左侧(Inlet)入从右侧(Outlet)出,最后设置Material Point的位置为(-2,0, 0),表示将针对BoundingBox之内、圆柱之外的空间进行网格划分:
最终可在窗口看到划分后的结果如下图:
此时划分完毕得到的是均匀网格,还需要根据物理特点重新构建生成实际计算使用的贴体网格。点击左上角的Create按钮创建网格,需要花一点时间,创建完毕后,会呈现划分后的贴体网格结果,放大可以看到原有的按单元数均匀划分的网格,在贴体表面进行了分块,以适应圆柱体表面不规则的计算域:
初步划分完毕以后可以对网格进行一定的细化/粗化调整,点击Options按钮,这里将Refinements/Cells Between Levels调整为6,重新Create会发现圆柱周围的网格会细化很多:
网格调整好以后,点击上方的Check,检查有没有负体积等问题,确保计算是可以收敛的。HELYX-OS最终会生成报表:
1.2 参数设置与算例生成
网格完成以后,我们要设置具体的计算参数以生成实际算例供求解器计算使用,图中设置为瞬态计算、不可压缩流、并设置了湍流模型和方程:
接下来设置流场中的介质属性,这里以空气为模板创建一个自己的介质,仅修改了介质密度:
前面提到了流体从Inlet流入从Outlet流出,所以这两个边界就不能是Wall类型了(Wall类型的边界包含网格,会参与计算),因此将其改为Patch类型,入口设置流速为-1,出口设置压力为0,其他四面都设置为对称面symmetry,两侧流场一样。
然后进行计算时间设置,这里的设置和计算量密切相关,计算时间越长,时间步越小,计算量越大:
最后是流场的初始化配置:
全都配好,就可以Decompose(网格分割)了,把配置好的网格、计算参数分解开,便于多个处理器并行执行。分割完毕,可以看到拆分的大致结果,准备提交计算作业了。
2. 提交作业
2.1 创建与提交作业
提交作业可以通过E-HPC的控制台进行,前面的算例已经保存在用户名为alibaba的用户目录下,因此我们只需要使用该用户提交作业即可,在E-HPC控制台的作业界面点击“创建作业”按钮,配置作业如下,分配2个计算节点,每个计算节点2个核进行计算:
点击确认提交,在E-HPC的作业界面可以看到作业正在运行:
查看作业运行
通过E-HPC的“集谛”界面,选择节点和指标,可以实时查看运行负载:
3. 后处理
3.1 计算合并
计算完成后,在E-HPC的作业列表的“已完成”清单中可以看到作业已完成,点击“详情”还可以查看作业详细运行信息:
由于我们是将网格拆分到4个CPU核进行计算的,在算例目录中能够看到多个目录分别保存各个CPU的计算结果:
此时我们需要将多个核的计算结果合并,使用reconstructPar命令,其中冒号后的数字是本次计算的结束时间:
[alibaba@manager newCase001]$ reconsructPar -time :4
3.2 结果可视化
合并完成后,就可以可视化的查看仿真结果了,本例使用ParaView软件进行结果查看,打开算例目录下的.foam文件即可:
打开后选择Mesh Regions为internalMesh、Inlet、Outlet,设置一个Slice,顶部的Time可以选择时间点,以显示不同时间点的仿真速度云图。