1. 程式人生 > >CentOS6.5 安裝 OpenFOAM-2.4.0

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.i
686 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
嚴格按照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
    會出現如下提示:
[[email protected] 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吧。以上個人總結,如果有任何錯誤請指正。