文章记录本人安装OpenFOAM的过程,因之前未了解该软件安装方法,依照OpenFOAM官网安装说明也走了不少弯路,在安装成功后即使记录,也方便以后自己或者有需要的同学们作参考。
OpenFOAM(英文 Open Source Field Operation and Manipulation 的缩写,意为开源的场运算和处理软件)是对连续介质力学问题进行数值计算的C++自由软件工具包,其代码遵守GNU通用公共许可证。它可进行数据预处理、后处理和自定义求解器,常用于计算流体力学(CFD)领域。该软件由OpenFOAM基金会维护[1](商标OpenFOAM的拥有者硅谷图形公司(SGI)赞助)。
以上摘自OPENFOAM-Wiki
官方下载链接及安装说明:[http://www.openfoam.org/archive/2.4.0/download/source.php]
软件包分为两部分,openfoam软件包及三方包。依照官网说明,openfoam-2.4.0依赖gcc版本在4.7以上等其他依赖包,三方包内有较高版本的gcc,openmpi,cmake等等,稍后还会讲到通过修改配置文件来选择编译器,MPI等来源,从而安装openfoam。
进入正题,开始介绍安装步骤。
一、安装基础依赖包
yum groupinstall ‘Development Tools’
yum install glibc-devel.i686
yum install zlib.x86_64 zlib-devel.x86_64
cd /opt/OpenFOAM/ThirdParty-2.4.0
二、确定安装路径,解压软件包
默认安装在/home/user下,我是安装在/opt目录下面,安装在其他目录需要修改配置文件,步骤三介绍
mkdir /opt/OpenFOAM
tar -zxf OpenFOAM-2.4.0.tgz -C /opt/OpenFOAM/
tar -zxf ThirdParty-2.4.0.tgz -C /opt/OpenFOAM/
cd /opt/OpenFOAM
三、按需修改配置文件,加入环境变量
需要修改的文件有两个,分别是位于/opt/OpenFOAM/OpenFOAM-2.4.0/etc/bashrc和/opt/OpenFOAM/OpenFOAM-2.4.0/etc/config/settings.sh。
对bashrc文件需要修改三部分:
foamInstall=/opt/$WM_PROJECT
#- Compiler location:
# foamCompiler= system | ThirdParty (OpenFOAM)
foamCompiler=ThirdParty
#- MPI implementation:
# WM_MPLIB = SYSTEMOPENMPI | OPENMPI | SYSTEMMPI | MPICH | MPICH-GM | HPMPI
# | MPI | QSMPI | SGIMPI
export WM_MPLIB=OPENMPI
第一部分,安装目录的选择。
第二部分编译器的选择,system代表是用系统安装的gcc,ThirdParty代表使用三方包里面的gcc,由于CentOS6.5系统gcc版本是4.4.7所以我们使用ThirdParty。
第三部分MPI的选择,SYSTEMOPENMPI代表使用系统安装的openMPI(1.5.4版本),OPENMPI代表使用ThirdParty里面更高版本的openMPI,值得说明的是我一开始用的是ThirdParty里面的openMPI,但是没有编译成功,也没有充分的时间去解决。使用系统的openMPI是好用的,但有一点需要注意,在集群中,如果openFOAM是安装在主节点然后通过共享给子节点用,那么需要在所有子节点安装相同版本的openMPI。
至此bashrc文件修改完毕。
对settings.sh文件需要查看第242–249行,如下图
严格按照settings.sh文件中规定的版本下载相应的包并解压到ThirdParty目录下,解压后的名字和图片中的一致。需要下载的包有gcc-4.8.2,mpfr-3.1.2, gmp-5.1.2, mpc-1.0.1, boost-1.55.0,llvm-3.4.src.tar.gz,qt-everywhere-opensource-src-4.7.3.tar.gz。
至此,编译前的配置工作已经基本完成,下面加入openFOAM的环境变量。
vim /root/.bashrc
####加入
source /opt/OpenFOAM/OpenFOAM-2.4.0/etc/bashrc
export PLATFORM=/opt/OpenFOAM/ThirdParty-2.4.0/platforms
##保存退出
. /root/.bashrc
会出现如下提示:
[root@mgmt ThirdParty-2.4.0]# source /opt/OpenFOAM/OpenFOAM-2.4.0/etc/bashrc
Warning in /opt/OpenFOAM/OpenFOAM-2.4.0/etc/config/settings.sh:
Cannot find /opt/OpenFOAM/ThirdParty-2.4.0/platforms/linux64/gcc-4.8.2 installation.
Please install this compiler version or if you wish to use the system compiler,
change the 'foamCompiler' setting to 'system'
这是正常的,因为使用的三方包中的gcc还没有编译,自然没有提示中找不到的目录。
四、编译三方包中的软件
以下内容就是重复性的按顺序编译了,顺序是Gcc,Cmake,CGAL,LLVM,Qt,ParaView,最后执行Allwmake脚本编译安装openMPI和scotch软件。值得注意的是,在每次执行编译命令之前,进入编译脚本去确认软件包版本号,会有不一致的地方,比如makeCGAL脚本中各软件包的名字和实际解压出的是不一致的,修改使之和实际的一致即可。顺利的话,是不会有问题的,如果脸黑不顺利的话。。呵呵,反正我第一次各种不顺利。
根据官方的提示,可以指定变量WM_NCOMPPROCS来进行并行编译,加快编译速度。
export WM_NCOMPPROCS= ##指定使用服务器用来编译的核数
1)编译Gcc
cd /opt/OpenFOAM/ThirdParty-2.4.0/
./makeGcc > makeGcc.log 2>&1 &
###便于在编译出错是查找问题
编译完成后查看gcc版本,如果版本为4.8.2可以进行下一步
gcc -v
###正确后加入环境变量并source
vim /root/.bashrc
export PATH=$PLATFORM/linux64/gcc-4.8.2/bin:$PATH
LD_LIBRARY_PATH=$PLATFORM/linux64/gcc4.8.2/lib:$PLATFORM/lnux64/gcc4.8.2/lib64:$PLATFORM/linux64/mpc1.0.1/lib:$PLATFORM/linux64/mpfr-3.1.2/lib:$PLATFORM/linux64/gmp5.1.2/lib:$LD_LIBRARY_PATH
export LD_LIBRAYR_PATH
###保存退出
source /root/.bashrc
###查看PATH,确认是否正确(有时候真的会在这个地方出个小问题。。。)
2)编译cmake
./makeCmake > makeCmake.log 2>&1 &
完成后,加入环境变量并source
export PATH=$PLATFORM/linux64Gcc/cmake-2.8.12.1/bin:$PATH
3)编译CGAL
./makeCGAL > makeCGAL 2>&1 &
完成后,加入环境变量并source
export PATH=$PLATFORM/linux64Gcc/CGAL-4.6/bin:$PATH
export LD_LIBRARY_PATH=$PLATFORM/linux64Gcc/CGAL4.6/lib:$LD_LIBRARY_PATH
4)编译LLVM
./makeLLVM > makeLLVM/log 2>&1 &
完成后,加入环境变量并source
export export PATH=$PLATFORM/linux64/llvm-3.4/bin:$PATH
export LD_LIBRARY_PATH=$PLATFORM/linux64/llvm-3.4/lib:$LD_LIBRARY_PATH
5)编译QT
./makeQt > makeQt.log 2>&1 &
完成后,加入环境变量并source
export PATH=$PLATFORM/linux64Gcc/qt-4.7.3/bin:$PATH
export LD_LIBRARY_PATH=$PLATFORM/linux64Gcc/qt-4.7.3/lib:$LD_LIBRARY_PATH
6)编译openmpi和Scotch
./Allwmake > Allwmake.log 2>&1 &
编译完成后,根据目录加入环境变量并source,应该可以使用mpicc等命令了,由于我的openmpi用的系统1.5.4版本的,所以这步自行填写。
ParaView最后在编译
五、openFOAM编译
如果之前的没有问题,那么可以继续了
cd /opt/OpenFOAM/OpenFOAM-2.4.0
./Allwmake > Allwmake.log 2>&1 &
编译完成后应该可以使用icoFoam等命令
加入环境变量,这些就简单了,自行填写。
六、编译ParaView
cd /opt/OpenFOAM/ThirdParty-2.4.0
./makeParaView4
编译完成后加入环境变量
至此,openFOAM及三方软件编译完成,按照以上步骤应该没有问题,出现问题检查bashrc和settings.sh文件,还有用户的.bashrc文件,再有问题就google吧。以上个人总结,如果有任何错误请指正。