当前位置: 首页 > 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.xdnf.cn/news/472717.html

相关文章:

  • Git-学习笔记(粗略版)
  • SpringBoot中的Lombok库
  • Python模块化编程
  • 俄罗斯方块算法
  • 2025年长三角+山东省赛+ 认证杯二阶段资料助攻说明
  • 简单网络交换、路由-华三MVRP
  • Linux动态库热加载:动态库与主程序符号调用机制总结
  • 6、登录功能后端开发
  • MobaXterm 25.2中文汉化版优秀的远程桌面管理软件
  • vue2 根据不同路由url设置不同的网页背景颜色
  • 企业EcoVadis评估问卷实战指南:步骤拆解与避坑策略
  • centos7 基于yolov10的推理程序环境搭建
  • 多语言支持的常见设计方案
  • C语言-指针函数和函数指针
  • 【Linux】网络基础与socket编程基础
  • 深入理解JavaScript中的闭包:原理、应用与常见问题
  • 【stata】xtreg VS reghdfe
  • 位运算题目:找到最接近目标值的函数值
  • 新手入门系列-springboot项目初体验
  • C盘清理秘籍:快速提升系统性能
  • Python 调试扩展版本兼容问题解决纪实
  • 在自动化脚本中使用找色实现精确定位目标区域
  • docker 学习记录
  • uniapp x
  • 软件安全测试报告:检测商业软件安全性,发现潜在风险点?
  • 修复“ImportError: DLL load failed while importing lib: 找不到指定的程序”笔记
  • MySQL 误删除数据恢复全攻略:基于 Binlog 的实战指南
  • 深度学习入门:深度学习(完结)
  • 张量与Python标量:核心区别与计算图断开解析
  • 白平衡模块中普朗克曲线拟合硬件实现的猜想