首页 > 系统相关 >超算集群安装OpenFOAM-LIGGGHTS-CFDEM(普通用户权限-以CSU HPC CentOS7.9为例)

超算集群安装OpenFOAM-LIGGGHTS-CFDEM(普通用户权限-以CSU HPC CentOS7.9为例)

时间:2023-12-11 16:25:41浏览次数:40  
标签:LIGGGHTS 为例 OpenFOAM CentOS7.9 CFDEM openmpi HPC vim 安装

普通用户权限超算集群安装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:$PATH
export LD_LIBRARY_PATH=${MPI_HOME}/lib:$LD_LIBRARY_PATH
export 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=<NofProcs>
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 LIGGGHTS
cd CFDEM && unzip CFDEMcoupling-PUBLIC-master.zip
mv CFDEMcoupling-PUBLIC-master CFDEMcoupling-PUBLIC-$WM_PROJECT_VERSION
cd $HOME && cd LIGGGHTS
unzip LIGGGHTS-PUBLIC-master.zip
mv LIGGGHTS-PUBLIC-master LIGGGHTS-PUBLIC
unzip LPP-master.zip
mv LPP-master lpp

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

#================================================# 
#- source cfdem env vars 
export CFDEM_VERSION=PUBLIC
export CFDEM_PROJECT_DIR=$HOME/CFDEM/CFDEMcoupling-$CFDEM_VERSION-$WM_PROJECT_VERSION
export CFDEM_PROJECT_USER_DIR=$HOME/CFDEM/$LOGNAME-$CFDEM_VERSION-$WM_PROJECT_VERSION
export CFDEM_bashrc=$CFDEM_PROJECT_DIR/src/lagrangian/cfdemParticle/etc/bashrc
export CFDEM_LIGGGHTS_SRC_DIR=$HOME/LIGGGHTS/LIGGGHTS-PUBLIC/src
export CFDEM_LIGGGHTS_MAKEFILE_NAME=auto
export 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 运行测试算例,若能够正常运行则表示安装成功





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

标签:LIGGGHTS,为例,OpenFOAM,CentOS7.9,CFDEM,openmpi,HPC,vim,安装
From: https://www.cnblogs.com/JohnnyZ/p/17894421.html

相关文章

  • centos7.9 编译安装redis 6.2.6
    参考地址:https://zhudo.net/server/linux/149.html 1.下载和安装下载redis需要其他版本去官网自行下载wget-chttps://download.redis.io/releases/redis-6.2.6.tar.gz//解压tar-zvxfredis-6.2.6.tar.gz//把安装包移动到安装目录,并且重命名为redismvredis-6.2.6......
  • centos7.9 编译安装cmake 3.23.0
     参考地址:https://www.zhudo.net/server/linux/125.html1、先检查并卸载老版本yumremovecmake2、准备安装好cmake所需的依赖yum-yinstallgccgcc-c++opensslopenssl-develtar3、下载源码官方地址:https://github.com/Kitware/CMake/releases/download/v3.23.0/......
  • 如何利用OPeNDAP快速读取格点数据——以GFS为例
    国内的气象圈子对于OPeNDAP这个单词应该是既熟悉又陌生,熟悉就熟悉在它出现频率很高,感觉好像哪哪儿都提到了它;而陌生就陌生在平时实际工作中好像又很少真正用过它。事实上OPeNDAP是一个可以极大提高格点数据传输和使用效率的“工具”,当初我第一次体验这个东西的时候就发出了“......
  • centos7.9升级内核
    注意安装内核kernel5.4.261版本会与ssh9.4和9.5版本冲突,导致重启之后ssh链接不了1.查看现在的内核uname-r3.10.0-1160.el7.x86_642.下载rpm内核,离线安装下载页面 https://mirrors.coreix.net/elrepo-archive-archive/kernel/el7/x86_64/RPMS/rpm-ivh kernel-lt-5.4.242-......
  • 在.net中通过自定义LoggerProvider将日志保存到数据库方法(以mysql为例)
     在.NET中,Microsoft.Extensions.Logging是一个灵活的日志库,它允许你将日志信息记录到各种不同的目标,包括数据库。在这个示例中,我将详细介绍如何使用Microsoft.Extensions.Logging将日志保存到MySQL数据库。我们将使用EntityFrameworkCore来与MySQL数据库进行交互。步骤一:创......
  • 偿债能力评价指标的缺陷与改进研究——以格力公司为例(文档)
    偿债能力是企业偿还债务的重要保障,同时偿债能力能凸显出企业存在的财务风险,是债权人、投资者、供应商等企业信息使用者做出决策的重要依据。偿债能力能否正确分析影响到企业资金的筹集,直接影响到企业经营资金的充足性;同时也影响到企业能利用商业信用开展自身经营活动的能力,它是企业......
  • centos7.9以docker形式安装redmine,并配置
    一、准备准备服务器联网,并且安装好docker二、安装redmine执行命令拉取docker镜像dockerpullredmine:latestRunRedminewithSQLite3dockerrun-d--nameredmine-p3000:3000redmine:latest启动后访问:http://localhost:3000/,默认账号/密码:admin/admin  进入后......
  • 消息队列入门 —— 以 Kafka 为例(一)
    消息队列入门——以Kafka为例(一)概述当我们的应用逐步变得庞大,各层应用之间调用关系越来越复杂,对系统的可用性以及可扩展性要求也越来越高。消息队列作为分布式系统架构中的一个关键中间件,提供了“消息传递”和“消息排队模型”,可以应用在系统解耦、异步处理、流量削峰等多个......
  • 餐饮企业成本控制研究——以海底捞控股有限公司为例—文档
    摘要:在餐饮企业的管理中,成本控制是一个非常重要的方面,它是影响整个餐饮企业是否能够达到公司利润最大化的一个重要因素,因为它与企业整个经营行为有着密切的关系。然而,在当前的餐饮市场上,很多酒店在重视味道和标新立异的同时,却忽视了在餐饮经营中对成本的控制,过分重视外部顾客的数量......
  • 支持修改键值的优先队列(以C++,Java为例)
    #include<queue>#include<functional>template<typenameT1,typenameT2>classmutable_priority_queue;template<typenameT1,typenameT2>classmutable_priority_queue{private:std::function<bool(conststd::pair<T1,T......