Andrew Moa Blog Site

ArchLinux下OpenFOAM编译安装与PBS并行化

1. 源代码下载

1.1 下载OpenFOAM源代码

${HOME}目录下新建OpenFOAM目录:

cd ${HOME}
mkdir OpenFOAM && cd OpenFOAM

从github下载OpenFOAM和ThirdParty的源代码,放到${HOME}/OpenFOAM目录中:

git clone https://github.com/OpenFOAM/OpenFOAM-dev --depth=1
git clone https://github.com/OpenFOAM/ThirdParty-dev --depth=1

1.2 下载Torque(PBS)源码包

本文用的是AUR中的Torque,CentOS、Debian和SUSE系的操作系统可以从Github上的OpenPBS下载现成的二进制包。采用OpenPBS或PBS Pro请跳过本文第3节,参照其他文档进行PBS配置。

从AUR上下载Torque(PBS)源文件:

git clone https://aur.archlinux.org/torque.git
cd torque
wget http://wpfilebase.s3.amazonaws.com/torque/torque-6.1.1.1.tar.gz

2. 编译安装OpenFOAM

2.1 设置环境变量

编辑${HOME}/.bashrc文件,添加以下两行:

#OpenFOAM
source ${HOME}/OpenFOAM/OpenFOAM-dev/etc/bashrc WM_MPLIB=OPENMPI

末尾的WM_MPLIB=OPENMPI表示使用重新编译的OpenMPI库。

更新环境变量:

source ${HOME}/.bashrc

验证环境变量是否正确:

echo $WM_PROJECT_DIR
echo $WM_THIRD_PARTY_DIR

可以正确输出OpenFOAM编译目录,则表示环境变量设置正确。

2.2 编译第三方库

进入ThirdParty-dev目录,编译第三方库:

cd $WM_THIRD_PARTY_DIR
wget https://download.open-mpi.org/release/open-mpi/v2.1/openmpi-2.1.1.tar.gz
tar -xvzf openmpi-2.1.1.tar.gz
./Allwmake

由于前面指定了WM_MPLIB=OPENMPI,此处需要手动下载OpenMPI源码文件,使用wget下载OpenMPI源码包并解压。Allwmake后面可以增加-jN选项开启多核并行编译,这里的N应替换成并行数,Allwmake会自动编译OpenMPI。

which mpirun
>${WM_THIRD_PARTY_DIR}/platforms/linux64Gcc/openmpi-2.1.1/bin/mpirun
which mpicc
>${WM_THIRD_PARTY_DIR}/platforms/linux64Gcc/openmpi-2.1.1/bin/mpicc

2.3 编译ParaView

继续在ThirdParty-dev目录里编译ParaView:

cd $WM_THIRD_PARTY_DIR
./makeParaView -mpi
wmRefresh

编译完成后运行wmRefresh刷新环境变量。

2.4 编译OpenFOAM

切换到OpenFOAM-dev目录编译OpenFOAM:

阅读时长3分钟
Andrew Moa