作为一个OpenFOAM的入门新手,面临的第一个问题即是软件的安装。个人电脑端可以直接参考东岳老师的 网站文章。集群的安装则可以参考 教程1。
但在自己的安装过程中遇到了不少边边角角的小问题,因此写这一篇日志来进行记录,供以后参考。
一、安装包的准备(官网下载链接)
由于集群通常无法联网,因此需要下载OpenFOAM软件主体安装包与依赖包上传至集群进行编译安装。
软件主体(下载页面附带官方教程供参考):
依赖包(boost、OpenMPI):
在我自己的安装过程中出现了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。
计算结束后可以看各个processor文件夹中是否有各个时间步的计算结果。有则安装成功。
加油!