天天看點

CentOS6.5 安裝 OpenFOAM-2.4.0

文章記錄本人安裝OpenFOAM的過程,因之前未了解該軟體安裝方法,依照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-
           
二、确定安裝路徑,解壓軟體包
           

預設安裝在/home/user下,我是安裝在/opt目錄下面,安裝在其他目錄需要修改配置檔案,步驟三介紹

mkdir /opt/OpenFOAM
tar -zxf OpenFOAM-.tgz -C /opt/OpenFOAM/
tar -zxf ThirdParty-.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行,如下圖

CentOS6.5 安裝 OpenFOAM-2.4.0

嚴格按照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-./etc/bashrc
export PLATFORM=/opt/OpenFOAM/ThirdParty-./platforms
##儲存退出
. /root/.bashrc
           
會出現如下提示:
           
[[email protected] ThirdParty-]# source /opt/OpenFOAM/OpenFOAM-2.4.0/etc/bashrc 

Warning in /opt/OpenFOAM/OpenFOAM-/etc/config/settings.sh:
    Cannot find /opt/OpenFOAM/ThirdParty-/platforms/linux64/gcc- 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來進行并行編譯,加快編譯速度。

1)編譯Gcc
           
cd /opt/OpenFOAM/ThirdParty-./
./makeGcc > makeGcc.log >& &
###便于在編譯出錯是查找問題
           
編譯完成後檢視gcc版本,如果版本為4.8.2可以進行下一步
           
gcc -v
###正确後加入環境變量并source
vim /root/.bashrc
export PATH=$PLATFORM/linux64/gcc-./bin:$PATH
LD_LIBRARY_PATH=$PLATFORM/linux64/gcc4./lib:$PLATFORM/lnux64/gcc4./lib64:$PLATFORM/linux64/mpc1./lib:$PLATFORM/linux64/mpfr-./lib:$PLATFORM/linux64/gmp5./lib:$LD_LIBRARY_PATH
export LD_LIBRAYR_PATH
###儲存退出
source /root/.bashrc
###檢視PATH,确認是否正确(有時候真的會在這個地方出個小問題。。。)
           
2)編譯cmake
           
./makeCmake > makeCmake.log >& &
           
完成後,加入環境變量并source
           
3)編譯CGAL
           
./makeCGAL > makeCGAL 2>&1 &
           
完成後,加入環境變量并source
           
export PATH=$PLATFORM/linux64Gcc/CGAL-/bin:$PATH
export LD_LIBRARY_PATH=$PLATFORM/linux64Gcc/CGAL4./lib:$LD_LIBRARY_PATH
           
4)編譯LLVM
           
./makeLLVM > makeLLVM/log >& &
           
完成後,加入環境變量并source
           
export export PATH=$PLATFORM/linux64/llvm-/bin:$PATH
export LD_LIBRARY_PATH=$PLATFORM/linux64/llvm-/lib:$LD_LIBRARY_PATH
           
5)編譯QT
           
./makeQt > makeQt.log >& &
           
完成後,加入環境變量并source
           
export PATH=$PLATFORM/linux64Gcc/qt-./bin:$PATH
export LD_LIBRARY_PATH=$PLATFORM/linux64Gcc/qt-./lib:$LD_LIBRARY_PATH
           
6)編譯openmpi和Scotch
           
./Allwmake > Allwmake.log >& &
           

編譯完成後,根據目錄加入環境變量并source,應該可以使用mpicc等指令了,由于我的openmpi用的系統1.5.4版本的,是以這步自行填寫。

ParaView最後在編譯

五、openFOAM編譯

如果之前的沒有問題,那麼可以繼續了

cd /opt/OpenFOAM/OpenFOAM-.
./Allwmake > Allwmake.log >& &
           
編譯完成後應該可以使用icoFoam等指令
加入環境變量,這些就簡單了,自行填寫。
           

六、編譯ParaView

cd /opt/OpenFOAM/ThirdParty-.
./makeParaView4
           
編譯完成後加入環境變量
           

至此,openFOAM及三方軟體編譯完成,按照以上步驟應該沒有問題,出現問題檢查bashrc和settings.sh檔案,還有使用者的.bashrc檔案,再有問題就google吧。以上個人總結,如果有任何錯誤請指正。

繼續閱讀