使用OpenFOAM软件进行流体力学仿真计算

更新时间:
复制 MD 格式

本文介绍如何使用E-HPC集群运行OpenFOAM进行流体力学仿真计算。

背景信息

OpenFOAM(Open Source Field Operation and Manipulation)是对连续介质力学问题进行数值计算的软件。可进行数据预处理、后处理和自定义求解器,常用于计算流体力学领域。更多信息,请参见OpenFOAM官网

本文利用OpenFOAM中的simpleFoam求解器计算摩托车外流场,算例路径为$FOAM_TUTORIALS/incompressible/simpleFoam/motorBike/

准备工作

  1. 创建E-HPC集群。具体操作,请参见使用向导创建集群

    配置集群时,软硬件参数配置如下:

    参数

    说明

    硬件参数

    部署方式为标准,包含2个管控节点,1个计算节点和1个登录节点,均采用ecs.c7.large实例规格,配置为2 vCPU,4 GiB内存,Ice Lake处理器,2.7 GHz。

    软件参数

    镜像选择CentOS 7.6公共镜像,调度器选择pbs。

  2. 创建集群用户。具体操作,请参见创建用户

    集群用户用于登录集群,进行编译软件、提交作业等操作。本文创建的用户示例如下:

    • 用户名:foamtest

    • 用户组:sudo权限组

  3. 安装OpenFOAM软件。具体操作,请参见安装软件

    需安装的软件如下:

    • openfoam-openmpi,版本为5.0。

    • openmpi,版本为1.10.7。

步骤一:连接集群

选择以下一种方式连接集群。本文使用的用户名为foamtest,连接集群后会默认登录到/home/foamtest

  • 通过客户端

    该方式仅支持使用PBS调度器的集群。操作前,请确保您已下载安装E-HPC客户端,且已配置客户端所需环境。具体操作,请参见配置客户端所需环境

    1. 打开并登录E-HPC客户端。

    2. 在客户端左侧导航栏,单击会话管理

    3. 会话管理页面的右上角,单击terminal,打开Terminal窗口。

  • 通过控制台

    1. 登录弹性高性能计算控制台

    2. 在顶部菜单栏左上角处,选择地域。

    3. 在左侧导航栏,单击集群

    4. 集群页面,找到目标集群,单击远程连接

    5. 远程连接页面,输入集群用户名、登录密码和端口,单击ssh连接

步骤二:运行算例

  1. 设置环境变量。

    export MODULEPATH=/opt/ehpcmodulefiles/
    module load openfoam-openmpi/5.0
    module load openmpi/1.10.7
  2. 准备算例文件。

    mkdir /home/foamtest/motorBike
    cp -r /opt/OpenFOAM/OpenFOAM-5.0/tutorials/incompressible/simpleFoam/motorBike/* /home/foamtest/motorBike
    说明

    本文使用OpenFOAM中的simpleFoam求解器计算摩托车外流场作为示例,算例路径为$FOAM_TUTORIALS/incompressible/simpleFoam/motorBike/

  3. 运行算例。

    cd /home/foamtest/motorBike
    source /opt/OpenFOAM/OpenFOAM-5.0/etc/bashrc
    ./Allrun 

步骤三:查看结果

执行以下命令,查看结果文件。

cat /home/foamtest/motorBike/log.blockMesh

预期返回如下:

[foamtest@login0 ~]$ cat /home/foamtest/motorBike/log.blockMesh
/*---------------------------------------------------------------------------*\
| =========                 |                                                 |
| \      /  F ield         | OpenFOAM: The Open Source CFD Toolbox           |
|  \    /   O peration     | Version:  5.0                                   |
|   \  /    A nd           | Web:      www.OpenFOAM.org                      |
|    \/     M anipulation  |                                                 |
\*---------------------------------------------------------------------------*/
Build  : 5.0
Exec   : blockMesh
Date   : May 10 2023
Time   : 11:21:03
Host   : "login0"
PID    : 22070
I/O    : uncollated
Case   : /home/foamtest/motorBike
nProcs : 1
sigFpe : Enabling floating point exception trapping (FOAM_SIGFPE).
fileModificationChecking : Monitoring run-time modified files using timeStampMaster (fileModificationSkew 10)
allowSystemOperations : Allowing user-supplied system call operations

// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
Create time

Creating block mesh from
    "/home/foamtest/motorBike/system/blockMeshDict"
Creating block edges
No non-planar block faces defined
Creating topology blocks
Creating topology patches

Creating block mesh topology

Check topology

        Basic statistics
                Number of internal faces : 0
                Number of boundary faces : 6
                Number of defined boundary faces : 6
                Number of undefined boundary faces : 0
        Checking patch -> block consistency

Creating block offsets
Creating merge list .

Creating polyMesh from blockMesh
Creating patches
Creating cells
Creating points with scale 1
    Block 0 cell size :
        i : 1 .. 1
        j : 1 .. 1
        k : 1 .. 1