Fluent计算怎么用服务器?

下面我将为您详细讲解如何在服务器上使用 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,htopnvidia-smi(如果使用GPU)命令监控服务器的资源使用情况。

4、文件路径:在 Journal 文件中使用绝对路径最保险,避免因工作目录问题找不到文件。

5、许可证:确保服务器有足够的 Fluent 许可证,特别是 HPC 并行许可证。

1、本地准备:创建几何和网格。

2、连接与上传:SSH 登录服务器,上传网格文件和 Journal 文件。

3、调试:(可选)使用交互式模式连接服务器,测试设置。

4、提交计算:编写作业脚本,使用sbatch(Slurm)或qsub(PBS)提交批处理作业。

5、监控:使用squeuetail -f 监控作业状态和计算进度。

6、下载与后处理:计算完成后,将结果文件下载到本地,用 Fluent 进行后处理。

希望这份详细的指南能帮助你顺利地在服务器上使用 Fluent!如有任何具体问题,欢迎继续提问。

文章摘自:https://idc.huochengrm.cn/fwq/17640.html

评论