普通用户权限超算集群安装OpenFOAM-LIGGGHTS-CFDEM,由于缺少root权限,无法根据CFDEM官方instruction进行安装。
本文以CSU超算平台为例,利用普通用户权限进行编译安装。文章修正了已有教程中部分问题,特别感谢希望先生与记得小蘋初见教程。

1. 安装必要依赖包

此部分在记得小蘋初见中已有详细介绍,不再赘述。需要说明的是,普通用户权限只能自行在网上搜索rpm package(二进制)并使用 rpm -ivh 命令来安装。
(经测试,CSU HPC平台已具备所有必须依赖,无需自行安装)

2. 安装openmpi

安装openmpi为必要环节。此处笔者曾尝试按照希望先生方法调用平台/public/software/目录下已安装的openmpi-3.1.0环境,但由于无法正确加载mpicc环境,而尝试自行安装3.1.0版本,编译安装过程仍存在问题。
但采用记得小蘋初见教程中openmpi-v2.x-201902200241-610e302.tar.gz版本未出现问题,因此推荐自行下载并编译安装该版本openmpi-v2.x,下载链接。

上传文件包并编译安装openmpi:
cd $HOME && mkdir openmpi 创建openmpi安装目标文件夹
tar -zxvf openmpi-v2.x-201902200241-610e302.tar.gz 解压openmpi安装包
cd openmpi-v2.x-201902200241-610e302 进入解压目录
pwd 获取当前所在目录的绝对路径
./configure --prefix=/home/YourOwnPath/openmpi CC=gcc CXX=g++ FC=gfortran 设置openmpi安装路径(重要),将pwd所得绝对路径后加上/openmpi
make && make install 编译安装openmpi

安装完成后,在.bashrc中添加openmpi的环境变量:
vim ~/.bashrc 利用vim编辑器打开文件
添加以下内容至文本末尾,:wq保存并退出

export PATH=${MPI_HOME}/bin:$PATHexport LD_LIBRARY_PATH=${MPI_HOME}/lib:$LD_LIBRARY_PATHexport MANPATH=${MPI_HOME}/share/man:$MANPATH

加载环境并查看是否成功:
source ~/.bahsrc 加载环境
mpirun --version 查看当前openmpi版本
which mpirun 查看运行openmpi路径
which mpicc 查看运行openmpi编译器路径

3. 安装OpenFOAM

根据CFDEM官方文档,在github中对应下载OpenFOAM-5.x和对应ThirdParty-5.x的.zip包,并上传至平台。OpenFOAM下载链接,ThirdParty下载链接(请勿在win平台解压后上传)

创建文件夹后解压文件并重命名:
cd $HOME && mkdir OpenFOAM 创建OpenFOAM安装文件夹
cd OpenFOAM 进入文件夹
unzip OpenFOAM-5.x-master.zip 解压对应文件夹
mv OpenFOAM-5.x-master OpenFOAM-5.x 修改文件夹名称,因为github下载文件多出-master分支解释
unzip ThirdParty-5.x-master.zip 同上
mv ThirdParty-5.x-master ThirdParty-5.x 同上

设置OpenFOAM多核安装所需环境变量:
vim ~/.bashrc 利用vim编辑器打开文件
添加以下内容至文本末尾,:wq保存并退出

export WM_NCOMPPROCS=source $HOME/OpenFOAM/OpenFOAM-5.x/etc/bashrc

如采用4核编译,则为export WM_NCOMPPROCS=4

加载环境并编译安装OpenFOAM:
source ~/.bahsrc 加载环境
cd $WM_PROJECT_DIR 进入安装目录
./Allwmake 执行编译文件

安装完成后测试OpenFOAM是否编译成功:
blockMesh 如出现OpenFOAM文件说明则说明编译安装成功

4. 安装CMake与添加vtk

CentOS 7.9自带的CMake版本为2.8,该版本的CMake无法满足VTK-8.0的编译,因此在编译LIGGGHTS之前需要先升级CMake,下载地址
按照记得小蘋初见教程中选组3.27.4版本进行安装,但是配置过程中存在问题,因此安装过程有所不同

上传下载的安装包并解压安装:
cd $HOME && mkdir cmake 创建cmake文件夹
tar -zxvf cmake-3.27.4.tar.gz 解压上传的代码包
cd cmake-3.27.4 进入解压出的文件夹
./bootstrap --prefix=/home/YourOwnPath/cmake -- -DCMAKE_USE_OPENSSL=OFF 此处需要使用自己的绝对路径,并在末尾加上-DCMAKE_USE_OPENSSL=OFF否则报错
gmake 待配置结束后,执行编译

安装完成后,在.bashrc中添加cmake的环境变量:
vim ~/.bashrc 利用vim编辑器打开文件
添加以下内容至文本末尾,:wq保存并退出

export PATH=/home/YourOwnPath/cmake-3.27.4/bin:$PATH

source ~/.bahsrc 加载环境
cmake --version 查看安装后的CMake版本,确定是否安装成功

因为集群无法执行自行下载安装vtk的命令,因此需要自行上传vtk的文件包并修改相关安装文件,版本采用7.1.1下载链接
tar -xvf VTK-7.1.1.tar.gz 解压上传的代码包
mv VTK-7.1.1 vtk 修改解压出的文件夹名称,方便后续安装

5. 安装LIGGGHTS与CFDEM

自行在github上下载相关文件,但是LPP的文件包似乎被删除,可在另外github库中下载。LIGGGHTS下载链接,LPP下载链接,CFDEM下载链接

上传源代码包后,解压并修改名称:

cd $HOME && mkdir CFDEM LIGGGHTScd CFDEM && unzip CFDEMcoupling-PUBLIC-master.zipmv CFDEMcoupling-PUBLIC-master CFDEMcoupling-PUBLIC-$WM_PROJECT_VERSIONcd $HOME && cd LIGGGHTSunzip LIGGGHTS-PUBLIC-master.zipmv LIGGGHTS-PUBLIC-master LIGGGHTS-PUBLICunzip LPP-master.zipmv LPP-master lpp

.bashrc中添加CFDEM编译安装的环境变量:
vim ~/.bashrc 利用vim编辑器打开文件
添加以下内容至文本末尾,:wq保存并退出

#================================================# #- source cfdem env vars export CFDEM_VERSION=PUBLICexport CFDEM_PROJECT_DIR=$HOME/CFDEM/CFDEMcoupling-$CFDEM_VERSION-$WM_PROJECT_VERSIONexport CFDEM_PROJECT_USER_DIR=$HOME/CFDEM/$LOGNAME-$CFDEM_VERSION-$WM_PROJECT_VERSIONexport CFDEM_bashrc=$CFDEM_PROJECT_DIR/src/lagrangian/cfdemParticle/etc/bashrcexport CFDEM_LIGGGHTS_SRC_DIR=$HOME/LIGGGHTS/LIGGGHTS-PUBLIC/srcexport CFDEM_LIGGGHTS_MAKEFILE_NAME=autoexport CFDEM_LPP_DIR=$HOME/LIGGGHTS/lpp/src. $CFDEM_bashrc#================================================#

source ~/.bahsrc 加载环境

在执行LIGGGHTS编译安装前,因为已自行上传vtk文件包,因此需要修改Makefile.user_default文件中的安装指令
注意,在未进行LIGGGHT编译前,不会存在Makefile.user文件,需要在Makefile.user_default进行修改。
修改Makefile.user_default文件:
cd $HOME/LIGGGHTS/LIGGGHTS-PUBLIC/src/MAKE 进入Makefile.user_default文件存放路径
vim Makefile.user_default 利用vim编辑器打开文件
:set number 在vim编辑器中显示行号,方便查找
将Line22取消注释并修改为AUTOINSTALL_VTK = "ON"
:wq保存并退出

修改Makefile.auto文件:
vim Makefile.auto 利用vim编辑器打开文件
:set number 在vim编辑器中显示行号,方便查找
将Line765修改为TMP := $(shell mkdir -p "$(LIB_PATH)/vtk/src" && echo 0 || echo -1)
将Line769修改为TMP := $(shell cp -ra /public/home/YourOwnPath/vtk/* $(LIB_PATH)/vtk/src/ && echo 0 || echo -1)
:wq保存并退出

加载vtk环境变量:
vim ~/.bashrc 利用vim编辑器打开.bashrc文件
在文件末尾加入vtk环境变量

export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/home/username/LIGGGHTS/LIGGGHTS-PUBLIC/lib/vtk/install/lib

:wq保存并退出
source ~/.bahsrc 加载环境

编译安装LIGGGHTS与CFDEM:
cfdemCompLIG 编译安装LIGGGHTS
cfdemCompCFDEM 编译安装CFDEM

测试安装是否成功:
cd $HOME/CFDEM/CFDEM-PUBLIC-5.x/tutorials/cfdemSolverPiso/voidfractionTest 进入验证算例文件下
./Allrun.sh 运行测试算例,若能够正常运行则表示安装成功

总结不易,转载请注明出处。