下面我将为您详细讲解如何在服务器上使用 Fluent 进行计算,涵盖从准备工作到提交计算的完整流程。
在服务器上运行 Fluent,主要有两种模式:
1、交互式模式:通过图形界面远程操作服务器上的 Fluent,适合设置模型、检查网格、后处理等需要可视化的步骤。
2、批处理模式:通过脚本向计算队列提交一个计算任务,任务在后台运行,不显示图形界面,这是进行大规模正式计算的标准方式,高效且节省资源。
你需要使用 SSH 客户端工具连接到你的服务器。
Windows使用 PuTTY, MobaXterm, 或 Windows Terminal/CMD/PowerShell 中的ssh
命令。
Linux/macOS直接使用终端里的ssh
命令。
示例命令:
ssh username@server_ip_address ssh user01@192.168.1.100
然后输入密码。
你的计算文件(网格文件.msh
、Fluent 案例文件.cas/.cas.gz
、数据文件.dat
等)需要从本地电脑上传到服务器。
Windows使用 WinSCP, FileZilla, MobaXterm 的内置工具。
Linux/macOS使用scp
命令。
示例命令(在本地电脑终端执行):
scp my_mesh.msh username@server_ip_address:/path/to/your/workdir/
服务器的管理员已经配置好了 Fluent 的环境,你可能需要手动加载 Fluent 模块或设置环境变量。
使用module
命令(如果服务器使用 Lmod 或 Environment Modules)
module load ansys/2024R1 # 版本号可能不同
或者,直接将 Fluent 的路径添加到PATH
环境变量中。
你可以通过运行fluent -help
来测试 Fluent 是否可用。
第二步:运行 Fluent 的两种模式详解
这种方法会将服务器的 Fluent 图形界面显示到你的本地电脑上。
1、启用 X11 转发:
* 在 SSH 连接时,需要加上-X
或-Y
参数。
ssh -X username@server_ip_address
Windows 上的 PuTTY在 Connection -> SSH -> X11 中勾选 "Enable X11 forwarding"。
前提你的本地电脑需要安装 X Server(Windows 上如 Xming, VcXsrv;macOS 上如 XQuartz)。
2、启动 Fluent:
在服务器的终端中,使用fluent
命令启动,并指定求解器精度和并行核数。
# 启动 3D 双精度求解器,使用 16 个核心 fluent 3ddp -t16 -g # 参数说明: # 3d / 2d: 三维/二维 # dp / sp: 双精度/单精度 # -tN: 使用 N 个 CPU 核心进行并行计算 # -g: 不显示图形界面(如果只运行命令流,可以加这个)
启动后,Fluent 的图形界面会出现在你的本地电脑上,你可以像在本地一样进行操作:读入网格、设置模型、计算并查看结果。
注意:这种方式网络延迟会影响图形响应速度,且一旦断开 SSH 连接,Fluent 进程会终止,因此仅推荐用于前期设置和调试,正式计算请用下面的批处理模式。
这是高性能计算的标准做法,你编写一个包含所有操作命令的 Journal 文件,然后让 Fluent 在后台读取并执行这个文件,完成计算。
1、创建 Journal 文件
Journal 文件是一个文本文件,里面包含了在 Fluent 界面中操作时对应的命令,你可以:
在交互式模式下录制在 GUI 中点击File -> Write -> Start Journal
,然后进行你的操作,结束后Stop Journal
。
手动编写对于熟悉 TUI 命令的用户,可以直接编写。
一个简单的 Journal 文件示例 (run.jou
):
; 读取网格文件 /file read-case "my_mesh.msh" ; 设置湍流模型为 k-epsilon /define/models/viscous k-epsilon standard ; 设置边界条件(入口速度为 10 m/s) /define/boundary-conditions/velocity-inlet inlet () yes vmag 10 no no no no no ; 初始化流场 /solve/initialize/hyb-initialization ; 设置迭代步数为 1000 /solve/iterate 1000 ; 保存案例和数据文件 /file write-case-data "my_result.cas.gz" ; 退出 Fluent /exit yes
2、提交批处理作业
在服务器的终端中,使用fluent
命令指定 Journal 文件来运行。
基本命令:
fluent 3ddp -t16 -g -i run.jou
-i run.jou
告诉 Fluent 读取并执行run.jou
文件中的命令。
在作业调度系统(如 Slurm, PBS)中提交:
大多数服务器集群都有作业调度系统,你需要编写一个作业脚本。
Slurm 作业脚本示例 (submit.sh
):
#!/bin/bash #SBATCH -J Fluent_Job # 作业名称 #SBATCH -N 1 # 申请1个计算节点 #SBATCH -n 16 # 总共申请16个核心 #SBATCH -p compute # 提交到计算分区 #SBATCH -o fluent_%j.out # 标准输出文件 #SBATCH -e fluent_%j.err # 标准错误文件 # 加载环境 module load ansys/2024R1 # 进入工作目录 cd /path/to/your/workdir # 运行 Fluent fluent 3ddp -t$SLURM_NTASKS -g -i run.jou
提交作业:
sbatch submit.sh
PBS 作业脚本示例类似。
3、监控作业
Slurm: 使用squeue -u your_username
查看作业状态。
PBS: 使用qstat
查看作业状态。
查看 Fluent 输出的.out
文件,可以实时监视残差曲线和计算进程
tail -f fluent_12345.out
计算完成后,你需要将结果文件从服务器下载到本地进行后处理。
使用 WinSCP, FileZilla 或scp
命令。
# 在本地电脑终端执行 scp username@server_ip_address:/path/to/your/workdir/my_result.cas.gz ./ scp username@server_ip_address:/path/to/your/workdir/my_result.dat.gz ./
然后在你自己电脑上的 Fluent 图形界面中打开这些文件进行后处理。
1、从交互式到批处理:先在交互式模式下用小网格调试好所有设置,确保能正常计算几步,然后再写成 Journal 文件进行大批量计算。
2、核心数选择:不是核心越多越好,核心数增加到一定程度后,通信开销会抵消计算收益,通常根据网格单元数来选择,经验上每5万-20万个网格一个核心是一个不错的起点。
3、资源监控:使用top
,htop
或nvidia-smi
(如果使用GPU)命令监控服务器的资源使用情况。
4、文件路径:在 Journal 文件中使用绝对路径最保险,避免因工作目录问题找不到文件。
5、许可证:确保服务器有足够的 Fluent 许可证,特别是 HPC 并行许可证。
1、本地准备:创建几何和网格。
2、连接与上传:SSH 登录服务器,上传网格文件和 Journal 文件。
3、调试:(可选)使用交互式模式连接服务器,测试设置。
4、提交计算:编写作业脚本,使用sbatch
(Slurm)或qsub
(PBS)提交批处理作业。
5、监控:使用squeue
和tail -f
监控作业状态和计算进度。
6、下载与后处理:计算完成后,将结果文件下载到本地,用 Fluent 进行后处理。
希望这份详细的指南能帮助你顺利地在服务器上使用 Fluent!如有任何具体问题,欢迎继续提问。
文章摘自:https://idc.huochengrm.cn/fwq/17640.html
评论