OpenFOAM学习日志——集群安装OpenFOAM-8(Centos-7)

目录

    • 一、安装包的准备(官网下载链接)
    • 二、软件编译
      • 2.1 ThirdParty-8编译
      • 2.2 Boost编译安装
      • 2.3 OpenMpi编译安装
      • 2.4 OpenFOAM-8编译安装
    • 三、并行测试

作为一个OpenFOAM的入门新手,面临的第一个问题即是软件的安装。个人电脑端可以直接参考东岳老师的 网站文章。集群的安装则可以参考 教程1。
但在自己的安装过程中遇到了不少边边角角的小问题,因此写这一篇日志来进行记录,供以后参考。


一、安装包的准备(官网下载链接)

由于集群通常无法联网,因此需要下载OpenFOAM软件主体安装包依赖包上传至集群进行编译安装。
软件主体(下载页面附带官方教程供参考):

1、OpenFOAM-8安装包

2、ThirdParty-8安装包

依赖包(boost、OpenMPI):

1、boost1.75安装包tar.gz

2、OpenMPI安装包tar.gz

在我自己的安装过程中出现了mpirun不运行的问题,具体情况是运行:

mpirun -np 核数 求解器 -parallel > log

虽然会创建log文件,但不进行计算。log文件空白,各个processorN文件夹内只有0文件夹和constant文件夹。该问题目前推测是由于下载了高版本的openmpi导致,在更换为低版本(3.1)之后,问题得到解决。

以上安装包下载完成后,全部上传至集群 /home/xxx/OpenFOAM 文件夹内。(xxx为自己的用户名)。

二、软件编译

2.1 ThirdParty-8编译

进入 /home/xxx/OpenFOAM/ThirdParty文件夹,执行以下两步:

./Allclean
./Allwmake

编译完成。

2.2 Boost编译安装

可参考教程2,非常全面。

大概可以总结为以下几步:

1、解压缩

2、在解压后的文件夹,执行:

./bootstrap.sh --with-libraries=all --with-toolset=gcc

3、在解压后的文件夹,编译,执行:

./b2 toolset=gcc

4、在解压后的文件夹,安装,执行:

./b2 install --prefix=/usr

其他命令则可以省略。如果在第4步中将/usr替换为其他文件夹,则需要注意修改环境变量(语句参考教程1)。

2.3 OpenMpi编译安装

可参考教程1第四部分。

在解压后的文件夹中分别执行以下步骤:

./configure --prefix=/home/xxx/openmpi --disable-getpwuid
make
make install
vi ~/.bashrc #修改环境变量

在~/.bashrc文件中添加以下两行

export PATH=$PATH:/home/xxx/openmpi/bin # xxx为自己的用户名,自行替换,下同
export LD_LIBRARY_PATH=/home/xxx/openmpi/lib:$LD_LIBRARY_PATH

如果安装成功,在*/home/xxx/openmpi*中会出现bin,lib等文件夹。

2.4 OpenFOAM-8编译安装

/home/xxx/OpenFOAM/OpenFOAM-8 文件夹中运行:

./Allwmake

在~/.bashrc文件中添加以下内容:

source $HOME/OpenFOAM/OpenFOAM-8/etc/bashrc

最后要执行:

source ~/.bashrc

如果在打开terminal的时候第一行出现mpicc报错,可检查自己的 ~/.bashrc 文件中 source $HOME/OpenFOAM/OpenFOAM-8/etc/bashrc是否放在了最后,调整后可以得到解决。

三、并行测试

/home/xxx/OpenFOAM 中创建run文件夹。

/home/xxx/OpenFOAM/OpenFOAM-8/tutorials/multiphase/interFoam/laminar/damBreak 拷贝至创建的run文件夹中。

执行:

blockMesh
decomposerPar
mpirun -np 4 interFoam -parallel > log

运行出错时可以将网格划分方法改为scotch。
OpenFOAM学习日志——集群安装OpenFOAM-8(Centos-7)_第1张图片
计算结束后可以看各个processor文件夹中是否有各个时间步的计算结果。有则安装成功。

加油!

你可能感兴趣的:(OpenFOAM,openfoam,linux,centos)