服务器OpenFOAM第三方ThirdParty安装编译

颛孙钱青
2023-12-01

做CFD工作的想必OpenFOAM软件不必多说,最近要在Linux RedHat服务器上装OpenFOAM但是没有root权限,一般也不能随便装软件到系统,只能源码编译。折腾几天,终于再在服务器上通过ThirdParty5.x安装编译了OpenFOAM5.x。

安装总共分两方面内容,先把ThirdParty5.x安装好,再安装OpenFOAM5.x

第一步:去github上下载OpenFOAM5.x及ThirdParty5.x源码zip压缩文件

https://github.com/OpenFOAM/OpenFOAM-5.x

https://github.com/OpenFOAM/ThirdParty-5.x

第二步:上传到服务器,并在目录下解压文件

使用winSCP工具上传zip文件,在服务器上解压文件

unzip ThirdParty-5.x-master.zip
unzip OpenFOAM-5.x-master.zip

第三步:配置环境变量,准备编译ThirdParty文件

在用户根目录下,vim编辑隐藏文件 .bashrc添加环境变量

vim ~/.bashrc

vim进入插入模式,使用alias命令添加OpenFOAM5.x环境变量,尽量不干扰原来配置

alias of5x='source ~/OpenFOAM/OpenFOAM-5.x/etc/bashrc WM_LABEL_SIZE=64 WM_COMPILER_TYPE=ThirdParty WM_COMPILER=Gcc48  WM_MPLIB=OPENMPI'

这里 of5x变成对OpenFOAM5.x环境变量配置的别名,选择第三方的Gcc编译器以及openmpi库

使得.bashrc配置生效

source ~/.bashrc

此时已经可以用 of5x命令,这样做还有好处是新添加高版本的OpenFOAM可以类似配置环境变量,到时使用 of6...of9就可以使用对于版本OpenFOAM。

注意:此时第三方源码尚未编译,of5x命令并不能找到ThirdParty的环境,需要在ThirdParty编译完后才能正确使用of5x

第四步:编译ThirdPart5.x

在之前环境变量配置中指定了第三方编译,此时主要编译的依赖库有两个,一个是gcc4.8编译器,另一个是openmpi,其中如果系统带有gcc4.8或更高版本,可以修改不编译gcc,直接使用系统提供的gcc编译,需要在以上的环境变量配置的时候指定WM_COMPILER_TYPE=system,这里讨论第三方编译的情景。

首先下载gcc4.8.5编译器以及依赖的库文件,有三个:gmp-5.1.2, mpfr-3.1.2, mpc-1.0.1

http://ftp.gnu.org/gnu/gcc/gcc-4.8.5/gcc-4.8.5.tar.gz

http://ftp.gmplib.org/pub/gmp/gmp-5.1.2.tar.xz

https://www.mpfr.org/mpfr-3.1.2/mpfr-3.1.2.tar.gz

http://ftp.vim.org/ftp/gnu/mpc/mpc-1.0.1.tar.gz

将以上压缩文件解压到ThirdParty5.x的目录下

tar -xvf gcc-4.8.5.tar.gz
tar -xvf gmp-5.1.2.tar.xz
tar -xvf mpfr-3.1.2.tar.gz
tar -xvf mpc-1.0.1.tar.gz

与上述过程类似,下载openmpi-2.1.1压缩文件,解压到 ThirdParty5.x目录下

https://download.open-mpi.org/release/open-mpi/v2.1/openmpi-2.1.1.tar.gz

tar -xvf openmpi-2.1.1.tar.gz

准备好文件以后,可以在当前ThirdParty目录开始编译,编译完gcc后,开始openmpi源码编译,可能持续几个小时, 使用-j 参数 并行编译

./Allmake -j 12

第五步:编译OpenFOAM5.x

首先使用of5x命令配置环量变量,如果无任何警告输出,则第三方环境变量配置成功

of5x

进入OpenFOAM5.x目录进行编译,也许要耗费数小时

./Allwmake

其执行的顺序是,先执行ThirdPart的Allwmake,在执行当前src的Allwmake,application的Allwmake,总之耐心等待。

编译完成后再使用of5x配置一下环境,尝试使用简单命令,看是否有Openfoam的命令候选

of5x

进入tutorials/incompressible/icoFoam/cavity 测试一下

tut
cd incompressible/icoFoam/cavity
blockMesh
icoFoam

恭喜!OpenFOAM5.x已经安装成功。

 类似资料: