做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已经安装成功。