6.7.2. OpenFOAM

OpenFOAMの概要#

本サービスにプリインストールされたOpenFOAMの利用に関する情報を記述します。下記のジョブスクリプト例では、入力データとしてOpenFOAMのインストールディレクトリにあるtutorials/incompressible/icoFoam/cavity/cavity/を使用しています。

  • 入力ファイルの配備手順を以下に示します。
    $ cp -rp /fefs1/app/x86/OpenFOAM/v2212/OpenFOAM-v2212/tutorials/incompressible/icoFoam/cavity/cavity/* (JOBを実行するディレクトリ)/
    

Armシステムのジョブスクリプト例#

  • 環境設定

    計算ノードで対話的に実行する場合、spackコマンドで必要な環境設定を行ないます。

$ . /fefs1/app/spack/spack-0.18.0/share/spack/setup-env.sh
$ spack load openfoam /q4vc5fz
  • バッチジョブのスクリプト記述例

    9MPIプロセス並列のバッチジョブのスクリプト例を以下に示します。

#!/bin/sh
#PJM -L "node=1"
#PJM -L "rscunit=rscunit_ft01"
#PJM -L "rscgrp=arm-small"
#PJM -L "elapse=1:00:00"
#PJM --mpi "proc=9"
#PJM -j

# Setting of SPACK
. /fefs1/app/spack/spack-0.18.0/share/spack/setup-env.sh
spack load openfoam /q4vc5fz

# Setting of OpenFOAM
. ${WM_PROJECT_DIR}/bin/tools/RunFunctions

# Setting for A64FX
export FOAM_SIGFPE=false

# RUN OpenFOAM
runApplication blockMesh
runApplication decomposePar
runParallel $(getApplication)
runApplication reconstructPar

x86システムのジョブスクリプト例#

  • 環境設定

    計算ノードで対話的に実行する場合、moduleコマンドで必要な環境設定を行ないます。

module load compiler/2023.0.0
module load mpi/2021.8.0
module load openfoam/v2212
  • バッチジョブのスクリプト記述例

    9MPIプロセス並列のバッチジョブのスクリプト例を以下に示します。

#!/bin/sh -xe
#PJM -L "node=1"
#PJM -L "rscunit=rscunit_pg01"
#PJM -L "rscgrp=x86-small"
#PJM -L "elapse=1:00:00"
#PJM -j

# Setting of module
module load compiler/2023.0.0
module load mpi/2021.8.0
module load openfoam/v2212

# Setting of OpenFOAM
. ${WM_PROJECT_DIR}/bin/tools/RunFunctions

# MPI settings
export I_MPI_HYDRA_HOST_FILE=${PJM_O_NODEINF}
export I_MPI_PERHOST=9
export I_MPI_HYDRA_BOOTSTRAP=rsh
export I_MPI_HYDRA_BOOTSTRAP_EXEC=/bin/pjrsh
export I_MPI_PIN_DOMAIN=omp
export I_MPI_PIN_CELL=core

# RUN OpenFOAM
runApplication blockMesh
runApplication decomposePar
runParallel $(getApplication)
runApplication reconstructPar