openfoam耦合liggghts安装

 本次安装基于新安装的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目录下,如图

openfoam耦合liggghts安装_第1张图片

 

 

             

(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里添加的信息使之符合

openfoam耦合liggghts安装_第2张图片

(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   开始计算,会出现下图:

 openfoam耦合liggghts安装_第3张图片

        

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

合并后关掉这个终端就可以了

 

你可能感兴趣的:(openfoam耦合liggghts安装)