当前位置: 首页 > news >正文

HPC软件使用之ANSYS Fluent

目录

一、软件介绍

二、脚本编写

2.1 jou文件

2.2 slurm脚本文件

三、作业提交及查看

四、案例演示

4.1 网格模型

4.2 jou脚本

4.3 slurm脚本

4.4 计算

4.5 结果查看


        从本文开始,我们将介绍如何在超级计算机上使用科学计算、工程仿真计算软件开展计算,包括计算流体力学、有限元、热分析、电磁、多物理场耦合、分子动力学等,涵盖流体力学、固体力学、热力学、电磁等领域。各软件内容主要包括软件介绍脚本编写作业提交及查看案例演示等。所有软件均采用命令行的形式进行使用

一、软件介绍

        ANSYS Fluent是全球领先的通用计算流体力学软件,主要用于模拟从不可压缩到高度可压缩范围内的各种复杂流动,它在转捩与湍流、热传递与相变、化学反应、燃烧、多相流等多方面有广泛应用,具有丰富的物理模型、数值方法和非常强大的前后处理功能。Fluent拥有多种多相流模型及传热燃烧模型,可以应用于从可压到不可压、低速到高超音速、单相流到多相流、化学反应、燃烧、气固混合等几乎所有与流体相关的领域。用户可对显式或隐式差分格式进行选择,从而在计算速度、稳定性和精度方面达到最佳。同时,经过大量算例验证,Fluent稳定性好,计算精度高。

        软件主要应用于航空航天、汽车设计、船舶制造、电子电气、化工机械、生物医药等领域。

二、脚本编写

        以命令行模式使用软件,需要编写软件脚本.jou文件、slurm脚本文件。

2.1 jou文件

        jou脚本文件主要用于fluent软件计算流程控制。其中以“;”开头的语句为注释语句,大致的计算流程为:读取case文件→读入data→设置迭代步数→计算结果case保存→退出

        ①稳态计算  run.jou

;算例输入文件
/file/read-case "steady.cas"
;从头开始计算,初始化
/solve/initialize/initialize-flow
;数据输入文件(如果从头开始计算,则无需该语句)
/file/read-data "steady.dat"
;设置迭代步数
/solve/iterate 1000
;保存结果case文件
/file/write-case "results.cas"
;保存结果data文件
/file/write-data "results.dat"
;退出
exit
yes

        ②瞬态计算  run.jou

;算例输入文件
/file/read-case "unsteady.cas"
;从头开始计算,初始化
/solve/initialize/initialize-flow
;数据输入文件(如果从头开始计算,则无需该语句)
/file/read-data "unsteady.dat"
;每迭代100步保存一次
/file/auto-save/data-frequency 100
;时间步长为0.01s
/solve/set/time-step 0.01
;设置总迭代步数10000,每步迭代50次
/solve/dua-time-iterate  10000 50
;保存结果case文件
/file/write-case "results.cas"
;保存结果data文件
/file/write-data "results.dat"
;退出
exit
yes

        ③瞬态计算(包含UDF)  run.jou

;算例输入文件
/file/read-case "unsteady-UDF.cas"
;从头开始计算,初始化
/solve/initialize/initialize-flow
;数据输入文件(如果从头开始计算,则无需该语句)
/file/read-data "unsteady-UDF.dat"
;编译test.c UDF文件,c文件与cas、dat文件放在同一个目录下
/define/user-defined/compiled-function/compiler libudf yes test.c
;每迭代100步保存一次
/file/auto-save/data-frequency 100
;时间步长为0.01s
/solve/set/time-step 0.01
;设置总迭代步数10000,每步迭代50次
/solve/dua-time-iterate  10000 50
;保存结果case文件
/file/write-case "results-UDF.cas"
;保存结果data文件
/file/write-data "results-UDF.dat"
;退出
exit
yes

2.2 slurm脚本文件

        针对采用slurm作业调度系统的超算集群,需要通过编写slurm脚本文件进行作业提交。Fluent.slurm内容如下:

#!/bin/bash
#SBATCH -J Fluent                        #指定作业名称
#SBATCH -p test                          #指定分区队列
#SBATCH -N 2                             #指定节点数
#SBATCH -n 64                            #指定进程数
#SBATCH --ntasks-per-node=32             #指定单个节点使用多少核
#SBATCH --cpus-per-task=1                #指定单个核使用多少线程export PATH=/path/your/fluent:$PATH        #添加Fluent软件路径MACHINEFILE="nodes.$SLURM_JOB_ID"
srun -l /bin/hostname | sort -n | awk '{print $2}' > $MACHINEFILEfluent 3ddp -g -mpi=intel -cnf=$MACHINEFILE -t $SLURM_NTASKS -slurm -i run.jou
#3d为三维单精度   3ddp为三维双精度   2d为二维单精度    2ddp为二维双精度

三、作业提交及查看

        采用sbatch命令提交Fluent作业。

sbatch Fluent.slurm

        使用squeue命令查看作业提交情况。

squeue

四、案例演示

        这里我们使用Fluent 2022R1对鼓风机进行仿真模拟。

4.1 网格模型

        采用双精度计算,总网格数为300万。

        Viscous Model采用Transition SST模型,参数设置如下:

4.2 jou脚本

        算例的run.jou脚本文件如下:

/file set-tui-version "20.1"
/file read-case "./air-blower.cas"
/define named-expressions edit "H" definition "123.9[m]" q
/solve iterate 100
parallel/time/usage
/file/write-case "results.cas"
/file/write-data "results.dat"
exit
yes

4.3 slurm脚本

        算例的Fluent.slurm脚本文件如下:

#!/bin/bash
#SBATCH -J Fluent                        
#SBATCH -p test                          
#SBATCH -N 4                            
#SBATCH -n 64                            
#SBATCH --ntasks-per-node=16             
#SBATCH --cpus-per-task=1                export PATH=/path/your/fluent:$PATH        #添加Fluent软件路径MACHINEFILE="nodes.$SLURM_JOB_ID"
srun -l /bin/hostname | sort -n | awk '{print $2}' > $MACHINEFILEfluent 3ddp -g -mpi=intel -cnf=$MACHINEFILE -t $SLURM_NTASKS -slurm -i run.jou

4.4 计算

        使用sbatch提交作业:

sbatch Fluent.slurm

        迭代计算完成。

4.5 结果查看

        计算结果保存在results.cas文件中,可以将文件下载到本地,使用可视化软件进行结果查看。这里使用Fluent 2022R1进行查看。

湍动强度分布云图

速度分布云图

静压分布云图

速度流线分布

http://www.dtcms.com/a/191612.html

相关文章:

  • 欧拉角 Pitch Roll Yaw 学习笔记
  • RabbitMQ概述
  • 编程日志5.8
  • 如何通过partclone克隆Ubuntu 22系统
  • 【hot100-动态规划-139.单词拆分】
  • 使用 GitDiagram 快速将 GitHub 仓库转换为交互式图表
  • LeetCode 45. 跳跃游戏 II(中等)
  • 120页WORD方案 | 2025企业数字化转型AI大模型数字底座项目设计方案
  • 【LeetCode 热题 100】56. 合并区间 —— 一文弄懂排序+遍历经典解法(附Python代码)
  • IPLOOK | 2025 MVNOs 世界大会:从Wi-Fi通话到卫星覆盖
  • Python爬虫第21节- 基础图形验证码识别实战
  • 使用 `perf` 和火焰图(Flame Graph)进行性能分析
  • 随机森林(Random Forest)
  • 使用GmSSL v3.1.1实现SM2证书认证
  • 编译OpenSSL时报错,Can‘t locate IPC/Cmd.pm in @INC perl环境
  • VSCode CMake Debug
  • 蓝桥杯12届国B 完全日期
  • auto.js面试题及答案
  • 右值引用的学习
  • @Controller 与 @RestController-笔记
  • 斜率变化策略
  • 在星河社区学习PARL使用强化学习来训练AI
  • [python] python静态方法,类方法,实例方法实现及其区别
  • 【嵌入式开发-按键扫描】
  • 某智能家电龙头,社招 校招全面应用 AI 面试的创新实践
  • 【Lua】java 调用redis执行 lua脚本
  • 【证书与信任机制​】自签名证书的风险与适用场景​​
  • 【Python 异常处理】
  • 梯度优化提示词:模型生成精准回答的秘密
  • 青蛙跳杯子--bfs最短路