本次安裝基於新安裝的ubuntu18.04LTS桌面版系統,用戶名為ubuntu,此前未安裝其他軟件(進行了系統提醒的更新),安裝時間為2019年9月。
安裝前需確認需要安裝的OpenFOAM版本,CFDEM coupling對支持的OpenFOAM版本有要求,從CFDEM官網查看而后選擇要安裝的OpenFOAM版本。
以下出現的命令和添加的環境變量可能需要按照自己文件路徑的情況進行調整。
1.openfoam的安裝
基本按照官網(https://openfoam.org/download/source/)的教程進行分為:
(1)安裝編譯所需軟件
先檢查是否安裝gcc,終端輸入 gcc –version ,如未安裝,sudo apt install gcc命令安裝,需要4.8版本及以上,安裝后可再次gcc –version查看版本
Install general packages for OpenFOAM 命令為:
sudo apt-get install build-essential flex bison git-core cmake zlib1g-dev libboost-system-dev libboost-thread-dev libopenmpi-dev openmpi-bin gnuplot libreadline-dev libncurses-dev libxt-dev
Install packages for ParaView命令為:
sudo apt-get install qt4-dev-tools libqt4-dev libqt4-opengl-dev freeglut3-dev libqtwebkit-dev curl
(2)下載OpenFOAM源碼包及第三方軟件thirdparty源碼包
可在以下網址https://github.com/OpenFOAM 找到歷史各個版本,此次將安裝5.x版本,將源碼解壓后去掉master后綴,放在home目錄下,如圖

(3)配置環境變量
終端輸入 gedit $HOME/.bashrc
會打開一個文件,我們在文件的最底部重新取一行添加下述文字:
source $HOME/OpenFOAM-5.x/etc/bashrc
保存並關閉。關閉終端並打開新的終端的時候,環境變量自動生效。
(4)編譯openfoam
終端切換到OpenFOAM-5.x文件夾下,輸入命令
./Allwmake -j 全線程並行編譯或者
./Allwmake
串行編譯,通常並行隨線程增多,編譯速度更快
(5)編譯第三方軟件
終端切到ThirdParty-5.x文件夾下,輸入命令 ./Allwmake
於此處下載paraview源碼包http://www.paraview.org/files/,注意paraview版本要與thirdparty要求符合,本次安裝paraview-5.4.0(http://www.paraview.org/files/v5.4/ParaView-v5.4.0.tar.gz),下載后解壓(注意文件夾命字將v去掉)至ThirdParty-5.x文件夾下
同樣終端切到ThirdParty-5.x文件夾下,輸入命令
./makeParaView 編譯時間稍長,
而后鍵入命令 wmRefresh
再分三次鍵入命令
cd $FOAM_UTILITIES/postProcessing/graphics/PVReaders
./Allwclean
./Allwmake
此時重開終端,輸入命令paraview即可打開paraview,若出現Failed to load module
"canberra-gtk-module",則終端輸入命令
sudo apt install libcanberra-gtk-module
再次打開paraview此情況消失。
2.下載Liggghts和lpp
官網:https://www.cfdem.com/media/DEM/docu/Section_intro.html
官網使用 make auto命令的編譯方式,對耦合分析來說是不足夠的,此處只是先下載到指定位置,之后再編譯
創建LIGGGHTS文件夾 mkdir LIGGGHTS
終端切到LIGGGHTS文件夾下 cd LIGGGHTS
使用git下載將要耦合編譯的liggghts:
git clone https://github.com/CFDEMproject/LIGGGHTS-PUBLIC.git LIGGGHTS-PUBLIC
lpp需要安裝python
sudo apt-get install python-numpy
使用git下載lpp到LIGGGHTS文件夾下:
git clone https://github.com/CFDEMproject/lpp.git
3.下載CFDEM並耦合編譯
(1)下載CFDEM
打開終端分別輸入下列命令
mkdir
CFDEM
cd CFDEM
git clone git://github.com/CFDEMproject/CFDEMcoupling-PUBLIC.git CFDEMcoupling-PUBLIC-$WM_PROJECT_VERSION
(2)路徑的添加
利用終端命令
gedit ~/.bashrc
打開.bashrc文件,在文件末尾添加內容
========================================#
source cfdem env vars
export CFDEM_VERSION=PUBLIC
export CFDEM_PROJECT_DIR=$HOME/CFDEM/CFDEMcoupling-$CFDEM_VERSION-$WM_PROJECT_VERSION
export CFDEM_SRC_DIR=$CFDEM_PROJECT_DIR/src
export CFDEM_SOLVER_DIR=$CFDEM_PROJECT_DIR/applications/solvers
export CFDEM_DOC_DIR=$CFDEM_PROJECT_DIR/doc
export CFDEM_UT_DIR=$CFDEM_PROJECT_DIR/applications/utilities
export CFDEM_TUT_DIR=$CFDEM_PROJECT_DIR/tutorials
export CFDEM_PROJECT_USER_DIR=$HOME/CFDEM/$LOGNAME-$CFDEM_VERSION-$WM_PROJECT_VERSION
export CFDEM_bashrc=$CFDEM_SRC_DIR/lagrangian/cfdemParticle/etc/bashrc
export CFDEM_LIGGGHTS_SRC_DIR=$HOME/LIGGGHTS/LIGGGHTS-PUBLIC/src
export CFDEM_LIGGGHTS_MAKEFILE_NAME=auto
export CFDEM_LPP_DIR=$HOME/LIGGGHTS/lpp/src
export CFDEM_PIZZA_DIR=$HOME/LIGGGHTS/PIZZA/gran_pizza_17Aug10/src
. $CFDEM_bashrc
=======================================#
網上的教程里面
export CFDEM_LIGGGHTS_MAKEFILE_NAME=auto
這句中,auto為fedora_fpic或fedora,導致無法生成lmp_xxx文件,編譯無法繼續,本次安裝進行了修改
利用 cfdem coupling 的系統檢查腳本,檢查系統配置,終端輸入 cfdemSysTest
出現如下圖的信息,critical為yes的項,valid必須為yes,若有不符合的情況,修改前面.bashrc里添加的信息使之符合

(3)耦合編譯
編譯liggghts,直接開終端命令 cfdemCompLIG
編譯cfdem,直接開終端
cfdemCompCFDEMall
出現此錯誤時:
是動態庫鏈接的問題,動態庫位置在:
/home/ubuntu/LIGGGHTS/LIGGGHTS-PUBLIC/lib/vtk/build/lib
打開終端,切換root用戶 sudo su
打開d.so.conf文件 gedit /etc/ld.so.conf
將報錯中缺少的動態庫文件地址加到末尾:
include
/etc/ld.so.conf.d/*.conf
/home/ubuntu(這里是你命名的用戶,根據實際情況修改)/LIGGGHTS/LIGGGHTS-PUBLIC/lib/vtk/build/lib
保存后重新編譯
(4)安裝CFDEM后處理需要的octave
sudo apt-get install octave
4.編譯后查看是否安裝成功
1.試運行
CFDEM/CFDEMcoupling/PUBLIC-5.x/tutorials/cfdemSolverPisoScalar/settingTestMPI這個算例,終端切到該文件夾下,輸入 ./Allrun.sh 開始計算,會出現下圖:

2.運行CFDEM/CFDEMcouplingPUBLIC-3.0.1/tutorials/cfdemSolverPisoScalar/packedBedTemp這個算例,在該算例中有CFD文件夾,有DEM文件夾,有Allrun.sh文件,有parCFDDEMrun.sh文件,有parDEMrun.sh文件。這些都是標准設置,可以進入參考,后面會有詳細介紹。這里,進入parCFDDEMrun.sh文件,將cleanup=”true”
改為cleanup=”false” 將runOctave=”true” 改為runOctave=”false”並保存。修改的目的是保存程序運行過程中的文件,可以后續查看。回到terminal,輸入:
./Allrun.sh
#根據該算例設置,先運行in.liggghts_init文件 150000步,然后在耦合運算 1.5s (參考該算例CFD/system/controlDict文件)。如果算例可以正常運行,說明pisoScalar Solver 也正確安裝
后處理部分
1.顆粒部分
運行算例后,DEM文件夾下的post文件夾下保存的文件為顆粒信息,需要用lpp轉換為vtk格式才能用paraview讀取,用gedit ~/.bashrc命令打開.bashrc,在文件后部添加 alias lpp="python2 $HOME/LIGGGHTS/lpp/src/lpp.py"(根據自己lpp.py的位置來更改),若出現python版本問題導致的錯誤,參考https://www.cnblogs.com/Jay-CFD/p/9872426.html提出的辦法。
post文件夾下終端輸入
lpp dump*.liggghts_run
將顆粒的文件轉換為vtk格式,就可以用paraview打開了
2.流場部分
並行運算得到的流場結果會根據並行線程數分為數個部分n個processor文件夾(processor0~processorn-1),計算完成后需要合並在一起才是完整的流場,理論上應該在CFD文件夾下打開終端
然后命令行分別輸入:
reconstructPar
foamToVTK #(可能不需要)
然后就能在CFD文件夾下生成對應時間的文件夾,而后可以導入case.foam(手動創建的空文件)到paraview中(未嘗試),也可以從processor0文件夾下復制file.foam文件(空文件)到CFD文件夾下,而后用paraview打開file.foam文件即可
但實際試驗后發現reconstructPar運行出現了問題,如圖

openfoam5可能有無法使用reconstructPar的bug,看到有人的解決方案是共存安裝了openfoam4,處理時改變環境變量調用of4的reconstructPar來處理合並問題,對此進行了嘗試,發現of4果然可以解決問題,而安裝of6調用of6的reconstructPar不能解決問題
本次安裝openfoam4.x,過程如前面1中的(1)(2)(3)(4),並不需要(5)編譯第三方軟件,但是要注意仍然要下載解壓ThirdParty-4.x到與of4同一文件夾下,否則of4編譯無法完成,安裝完成后將安裝過程中為of4添加的環境變量用#注釋掉,保留of5的環境變量就好了,同時為了方便調用of4的reconstructPar,添加一個alias:
alias of4x="source $HOME/OpenFOAM-4.x/etc/bashrc"
如圖:

完成后只需在CFD文件夾下開終端依次輸入
of4x
reconstructPar
foamToVTK
合並后關掉這個終端就可以了
