阿里云E-HPC CFD仿真实践

简介: 阿里云E-HPC服务能够自动化的部署工业仿真开源软件栈,加上E-HPC的远程可视化特性和并行处理能力,用户可以直接通过E-HPC Web控制台完成完整的CFD的仿真过程,本文以圆柱绕流的仿真分析为例,演示在E-HPC上的仿真分析处理。

E-HPC CFD仿真实践

工业流体仿真通过利用数值方法,将连续空间的偏微分方程离散化,得到一系列的线性方程组系统,最后采用数值算法对方程组进行求解。一般分为前处理(离散化)、问题求解(并行求解)、后处理(结果分析)三大步骤,各个步骤包含的操作内容如下图所示:
image.png
阿里云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目录下的相关文件夹:
image.png
右键打开命令行执行./HELYX-OS.sh,可以打开HELYX-OS的操作界面,创建一个新的算例(可设定算例文件位置以及求解时的并行度)。
image.png
首先进行几何建模,以构建基本的几何边界和几何形状。这里BoudingBox类型选择User Defined,宽、高均为10,厚度为1,x方向单元数为100,y方向单元数为80,z方向单元数为0;其中几何形状为一个圆柱,同时设置了边界名称,流体从左侧(Inlet)入从右侧(Outlet)出,最后设置Material Point的位置为(-2,0, 0),表示将针对BoundingBox之内、圆柱之外的空间进行网格划分:
image.pngimage.png
最终可在窗口看到划分后的结果如下图:
image.png
此时划分完毕得到的是均匀网格,还需要根据物理特点重新构建生成实际计算使用的贴体网格。点击左上角的Create按钮创建网格,需要花一点时间,创建完毕后,会呈现划分后的贴体网格结果,放大可以看到原有的按单元数均匀划分的网格,在贴体表面进行了分块,以适应圆柱体表面不规则的计算域:
image.png
初步划分完毕以后可以对网格进行一定的细化/粗化调整,点击Options按钮,这里将Refinements/Cells Between Levels调整为6,重新Create会发现圆柱周围的网格会细化很多:
image.png

网格调整好以后,点击上方的Check,检查有没有负体积等问题,确保计算是可以收敛的。HELYX-OS最终会生成报表:

image.png

1.2 参数设置与算例生成

网格完成以后,我们要设置具体的计算参数以生成实际算例供求解器计算使用,图中设置为瞬态计算、不可压缩流、并设置了湍流模型和方程:
image.png
接下来设置流场中的介质属性,这里以空气为模板创建一个自己的介质,仅修改了介质密度:
image.png
前面提到了流体从Inlet流入从Outlet流出,所以这两个边界就不能是Wall类型了(Wall类型的边界包含网格,会参与计算),因此将其改为Patch类型,入口设置流速为-1,出口设置压力为0,其他四面都设置为对称面symmetry,两侧流场一样。
image.png
然后进行计算时间设置,这里的设置和计算量密切相关,计算时间越长,时间步越小,计算量越大:
image.png
最后是流场的初始化配置:
image.png
全都配好,就可以Decompose(网格分割)了,把配置好的网格、计算参数分解开,便于多个处理器并行执行。分割完毕,可以看到拆分的大致结果,准备提交计算作业了。
image.png

2. 提交作业

2.1 创建与提交作业

提交作业可以通过E-HPC的控制台进行,前面的算例已经保存在用户名为alibaba的用户目录下,因此我们只需要使用该用户提交作业即可,在E-HPC控制台的作业界面点击“创建作业”按钮,配置作业如下,分配2个计算节点,每个计算节点2个核进行计算:

image.png
点击确认提交,在E-HPC的作业界面可以看到作业正在运行:
image.png

查看作业运行

通过E-HPC的“集谛”界面,选择节点和指标,可以实时查看运行负载:

image.png

3. 后处理

3.1 计算合并

计算完成后,在E-HPC的作业列表的“已完成”清单中可以看到作业已完成,点击“详情”还可以查看作业详细运行信息:
image.png
由于我们是将网格拆分到4个CPU核进行计算的,在算例目录中能够看到多个目录分别保存各个CPU的计算结果:
image.png
此时我们需要将多个核的计算结果合并,使用reconstructPar命令,其中冒号后的数字是本次计算的结束时间:

[alibaba@manager newCase001]$ reconsructPar -time :4

3.2 结果可视化

合并完成后,就可以可视化的查看仿真结果了,本例使用ParaView软件进行结果查看,打开算例目录下的.foam文件即可:
image.png
打开后选择Mesh Regions为internalMesh、Inlet、Outlet,设置一个Slice,顶部的Time可以选择时间点,以显示不同时间点的仿真速度云图。
paraview.gif

目录
相关文章
|
机器学习/深度学习 人工智能 算法
一文归纳Ai调参炼丹之法
一文归纳Ai调参炼丹之法
|
9月前
|
存储 安全 Ubuntu
搭建属于你的家庭/办公网络存储中心(手把手教你用Linux搭建Samba文件服务器)
利用旧电脑安装Linux,通过Samba搭建安全免费的文件服务器,实现多设备间高效共享照片、电影、文档。支持Windows、macOS等系统访问,内含详细配置步骤与安全建议,新手也能轻松上手。
双层优化入门(1)—基本原理与求解方法(附matlab代码)
双层优化问题(Bilevel Programming Problems),也被称为双层规划,最早由Stackelberg与1934年在经济学相关研究中提出,因此也被称为Stackelberg问题。双层规划问题一般具有层次性、独立性、冲突性、优先性和自主性等特点。 本文介绍了双层优化的原理与求解方法,并提供了相应的matlab代码供参考学习。
|
1月前
|
人工智能 自然语言处理 API
给 Claude Code 省 97% Token 是真的吗?我把 caveman 装上跑了一周
caveman 是一款专为 Claude Code 等 AI 编码助手设计的省 token 插件,通过强制 AI 以极简“原始人式”语言输出(砍客套、留代码),平均压缩输出 token 65%。但它不省输入 token,甚至每轮多耗1–1.5k输入token,故短问答任务可能反增费用。实测显示:长文档/解释类任务真省钱,调试类任务慎用。省 token 的关键,在于上下文压缩+模型分级+输出优化三者协同,而非单靠插件。(239字)
269 1
|
存储 机器学习/深度学习 自然语言处理
专访李飞飞 :从清华附中高材生到阿里飞刀,一口井钻出「云原生」
他初三上清华,如今是达摩院数据库首席科学家。李飞飞从学术界走向工业界,带领阿里云技术团队一手打造了云原生分布式数据库,让阿里「全面上云」的战役再下一城。今天,他用一口水井为我们道出了云原生!
18176 0
专访李飞飞 :从清华附中高材生到阿里飞刀,一口井钻出「云原生」
|
存储 SQL 监控
InfluxDB有哪些新特性?
【5月更文挑战第13天】InfluxDB有哪些新特性?
714 8
shared_ptr循环引用问题以及解决方法
shared_ptr循环引用问题以及解决方法
782 0
|
人工智能 物联网 数据处理
C语言在嵌入式系统中的应用
该文探讨了C语言在嵌入式系统中的应用,强调其优势,如可移植性、高效性、灵活性及社区支持,并列举了在RTOS开发、驱动程序、通信协议实现和简单GUI开发中的应用场景。文中通过LED闪烁程序示例展示了C语言如何控制硬件。结论指出,C语言在嵌入式系统中扮演重要角色,随着技术发展,开发者需不断学习以适应新需求。

热门文章

最新文章