Skip to content
  • 最新
  • 版块
  • 东岳流体
  • 随机看[请狂点我]
皮肤
  • Light
  • Cerulean
  • Cosmo
  • Flatly
  • Journal
  • Litera
  • Lumen
  • Lux
  • Materia
  • Minty
  • Morph
  • Pulse
  • Sandstone
  • Simplex
  • Sketchy
  • Spacelab
  • United
  • Yeti
  • Zephyr
  • Dark
  • Cyborg
  • Darkly
  • Quartz
  • Slate
  • Solar
  • Superhero
  • Vapor

  • 默认(不使用皮肤)
  • 不使用皮肤
折叠
CFD中文网

CFD中文网

  1. CFD中文网
  2. OpenFOAM
  3. 分享CFDEM+OpenFOAM+LIGGGHTS初次编译安装过程

分享CFDEM+OpenFOAM+LIGGGHTS初次编译安装过程

已定时 已固定 已锁定 已移动 OpenFOAM
26 帖子 10 发布者 20.7k 浏览
  • 从旧到新
  • 从新到旧
  • 最多赞同
回复
  • 在新帖中回复
登录后回复
此主题已被删除。只有拥有主题管理权限的用户可以查看。
  • T 离线
    T 离线
    true
    写于 最后由 李东岳 编辑
    #1

    详细记录CFDEM+OpenFOAM+LIGGGHTS初次编译安装过程

    时间:

    2021/5/31

    计算机平台:

    ​ 普通AMD/Intel x64台式机

    软件:

    • VMware虚拟机版本:16 Pro

    • Ubuntu版本:20.04(focal)

    • OpenFoam:5.x

    • ParaView:5.4.0

    • LIGGGHTS: 3.8.0

    • QT:qt4

    1. 更换下载源

    sudo gedit /etc/apt/sources.list
    

    ​ 打开文本,并用下面内容替换(对应ubuntu20.04–focal,若为其他版本ubuntu,修改focal为其它名称,如18.04→bionic,16.04→xenial,14.04→trusty)

    deb http://mirrors.aliyun.com/ubuntu/ focal main restricted universe multiverse
    deb-src http://mirrors.aliyun.com/ubuntu/ focal main restricted universe multiverse
    deb http://mirrors.aliyun.com/ubuntu/ focal-security main restricted universe multiverse
    deb-src http://mirrors.aliyun.com/ubuntu/ focal-security main restricted universe multiverse
    deb http://mirrors.aliyun.com/ubuntu/ focal-updates main restricted universe multiverse
    deb-src http://mirrors.aliyun.com/ubuntu/ focal-updates main restricted universe multiverse
    deb http://mirrors.aliyun.com/ubuntu/ focal-proposed main restricted universe multiverse
    deb-src http://mirrors.aliyun.com/ubuntu/ focal-proposed main restricted universe multiverse
    deb http://mirrors.aliyun.com/ubuntu/ focal-backports main restricted universe multiverse
    deb-src http://mirrors.aliyun.com/ubuntu/ focal-backports main restricted universe multiverse
    

    2. 安装编译所需其它文件

    sudo apt update 
    sudo apt-get install -y build-essential flex bison git cmake zlib1g-dev libboost-system-dev libboost-thread-dev libopenmpi-dev openmpi-bin gnuplot libreadline-dev libncurses-dev libxt-dev libscotch-dev libptscotch-dev libvtk6-dev python-numpy ffmpeg octave curl
    

    ​ 确保安装无异常。若出现could not get lock /var/...类似的错误,重新启动客户端一次,并重复该步骤,直到运行到如下图状态——0 upgraded, 0 newly installed, 0 to remove。

    2

    sudo可让用户以其他的身份来执行指定的指令,apt-get 后的命令参数有install 安装、 update 更新、 remove 移除 、check 检查、clean清除缓存。

    -y表示跳过确认步骤,直接安装。

    &&命令表示顺序执行由它连接的命令,但是只有它之前的命令成功执行完成了之后才可以继续执行它后面的命令。

    3. 下载CFDEM、LIGGGHTS和OpenFOAM-5.x源文件,并建立对应文件夹

    cd $HOME &&
    mkdir -p OpenFOAM &&
    cd OpenFOAM &&
    git clone git://github.com/OpenFOAM/OpenFOAM-5.x.git &&
    git clone git://github.com/OpenFOAM/ThirdParty-5.x.git &&
    
    cd $HOME &&
    mkdir -p CFDEM  &&
    cd CFDEM  &&
    git clone git://github.com/CFDEMproject/CFDEMcoupling-PUBLIC.git &&
    
    cd $HOME &&
    mkdir -p LIGGGHTS &&
    cd LIGGGHTS &&
    git clone git://github.com/CFDEMproject/LIGGGHTS-PUBLIC.git &&
    git clone git://github.com/CFDEMproject/LPP.git lpp
    

    4. 下载完整编译版qt4和qtcreator

    sudo add-apt-repository ppa:rock-core/qt4 &&
    sudo apt update &&
    sudo apt-get install qt4* &&
    sudo apt-get install qtcreator 
    

    5. 配置OpenFOAM环境变量及路径

    • 直接在Terminal输入

      sed -i '$a export WM_NCOMPPROCS=12' $HOME/.bashrc
      sed -i '$a source $HOME/OpenFOAM/OpenFOAM-5.x/etc/bashrc' $HOME/.bashrc
      source ~/.bashrc  
      

    sed是一个以行为单位文件处理工具,可以将数据行进行替换、删除、新增、选取等特定工作。

    sed -i '$a bye' ab → 在文件ab中最后一行直接输入"bye"

    sed '1,2c Hi' ab → 第一行到第二行代替为Hi

    (-i:直接修改读取的档案内容,而不是由荧幕输出)

    • 或者:

      • 在Terminal输入

        gedit ~/.bashrc
        
      • 打开.bashrc文件,在.bashrc文件最后添加下列代码

        export WM_NCOMPPROCS=12
        source $HOME/OpenFOAM/OpenFOAM-5.x/etc/bashrc
        
      • 之后再在Terminal中输入

        source ~/.bashrc
        

    6. 编译OpenFOAM

    cd $HOME/OpenFOAM/OpenFOAM-5.x &&./Allwmake -j
    

    -j 表示可以启用并行编译指令

    7. 编译paraFoam(paraView)

    cd $HOME/OpenFOAM/ThirdParty-5.x &&  
    export QT_SELECT=qt4  
    sudo apt install libqt5x11extras5-dev libxt-dev qt5-default qttools5-dev curl &&
    ./makeParaView 
    

    ​ 会出现安装paraView5.4.0的bug,如下图

    1

    解决方法:

    ——在文件夹:OpenFOAM/ThirdParty-5.x/ParaView-5.4.0/Plugins/StreamLinesRepresentation
    下手动创建doc文件夹,并重新运行./makeParaView。

    ​ 之后,

    wmRefresh &&
    cd $FOAM_UTILITIES/postProcessing/graphics/PVReaders &&
    ./Allwclean &&
    ./Allwmake
    

    7. 配置CFDEM环境变量和路径

    cd $HOME/CFDEM 
    mv CFDEMcoupling-PUBLIC CFDEMcoupling-PUBLIC-$WM_PROJECT_VERSION 
    gedit ~/.bashrc
    

    在.bashrc文件最后添加下列代码

    #================================================# 
    #- source cfdem env vars 
    export CFDEM_VERSION=PUBLIC 
    export CFDEM_PROJECT_DIR=$HOME/CFDEM/CFDEMcoupling-$CFDEM_VERSION-$WM_PROJECT_VERSI ON 
    export CFDEM_PROJECT_USER_DIR=$HOME/CFDEM/$LOGNAME-$CFDEM_VERSION-$WM_PROJECT_VERSI ON 
    export CFDEM_bashrc=$CFDEM_PROJECT_DIR/src/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
    . $CFDEM_bashrc
    #================================================#
    

    ​ 之后,

    source ~/.bashrc 
    

    8.编译CFDEM(同时编译了LIGGGHTS)

    cfdemCompCFDEMall
    

    ​ 安装完成。

    2

    9.建立软连接

    ​ 建立LIGGGHTS的软连接(相当于快捷方式,输入liggghts即可单独启动LIGGGHTS运算程序lmp_auto)

    sudo  ln -s $HOME/LIGGGHTS/LIGGGHTS-PUBLIC/src/lmp_auto /usr/bin/liggghts
    

    10.案例运行

    将OpenFOAM、LIGGGHTS、CFDEM中的tutorials文件夹拷贝到自定义的文件夹中

    mkdir -p $HOME/JOBS/OF_JOB/tutorials &&
    mkdir -p $HOME/JOBS/LG_JOB/tutorials &&
    mkdir -p $HOME/JOBS/CFDEM_JOB/tutorials &&
    cp -r $FOAM_TUTORIALS $HOME/JOBS/OF_JOB &&
    cp -r $HOME/LIGGGHTS/LIGGGHTS-PUBLIC/examples/LIGGGHTS/Tutorials_public $HOME/JOBS/LG_JOB/tutorials &&
    cp -r $HOME/LIGGGHTS/LIGGGHTS-PUBLIC/examples/LIGGGHTS/SPH $HOME/JOBS/LG_JOB/tutorials &&cp -r $HOME/CFDEM/CFDEMcoupling-PUBLIC-5.x/tutorials $HOME/JOBS/CFDEM_JOB
    
    • 单独运行OpenFOAM

      cd $HOME/JOBS/OF_JOB/tutorials/incompressible/icoFoam/cavity/cavity blockMeshicoFoamparaFoam
      

      3

    • 单独运行LIGGGHTS

      cd ~/JOBS/LG_JOB/tutorials/Tutorials_public/chute_wearliggghts -in in.chute_wearparaview
      

      4

    • 运行CFDEM

    cd ~/JOBS/CFDEM_JOB/tutorials/cfdemPostproc/fillCylinder./Allrun.sh
    

    运行错误,修改案例的Allrun.sh文件81行为

    $HOME/OpenFOAM/ThirdParty-5.x/build/linux64Gcc/ParaView-5.4.0/bin/paraview
    

    重新运行./Allrun.sh,获得结果

    2
    2

    李东岳李 1 条回复 最后回复
  • 李东岳李 离线
    李东岳李 离线
    李东岳 管理员
    在 中回复了 true 最后由 李东岳 编辑
    #2

    @true 大作,排版满分,我把里面$这东西处理下。markdown跟公式的输入渲染有冲突,一直没处理好

    处理好了,大作非常好

    http://dyfluid.com/index.html
    需要帮助debug算例的看这个 https://cfd-china.com/topic/8018

    李东岳李 T 2 条回复 最后回复
  • 李东岳李 离线
    李东岳李 离线
    李东岳 管理员
    在 中回复了 李东岳 最后由 编辑
    #3

    @李东岳 收录在这里 https://www.cfd-china.com/topic/4192/合集-openfoam安装准备工作贴

    http://dyfluid.com/index.html
    需要帮助debug算例的看这个 https://cfd-china.com/topic/8018

    1 条回复 最后回复
  • T 离线
    T 离线
    true
    在 中回复了 李东岳 最后由 编辑
    #4

    @李东岳 确实有一些冲突,修改很麻烦,我上传一个PDF版本吧。
    https://www.jianguoyun.com/p/DS8jNUkQrou6Bxj1ofoD

    D 1 条回复 最后回复
  • D 离线
    D 离线
    dxf9082
    在 中回复了 true 最后由 编辑
    #5

    @true 你好,我在试着运行CFDEM这个案例,你说的“运行错误,修改案例的Allrun.sh文件81行为”这个确实会报错,但是我的paraview安装位置可能和您不一样,所以你提供的路径修改也不行。我想请问,你是否知道如何查找paraview的路径以更正我代码中的81行,以使我的案例顺利运行?

    D 1 条回复 最后回复
  • D 离线
    D 离线
    dxf9082
    在 中回复了 dxf9082 最后由 编辑
    #6

    @dxf9082 直接把81行修改为“paraview”就可以了

    1 条回复 最后回复
  • 李东岳李 李东岳 被引用 于这个主题
  • 李东岳李 李东岳 被引用 于这个主题
  • L 离线
    L 离线
    lyc
    写于 最后由 编辑
    #7

    向你们学习

    1 条回复 最后回复
  • J 离线
    J 离线
    JokerZhu
    写于 最后由 编辑
    #8

    您好,安装编译所需文件时报错:Package libvtk6-dev is not available, but is referred to by another package.
    This may mean that the package is missing, has been obsoleted, or
    is only available from another source

    E: Package 'libvtk6-dev' has no installation candidate
    E: Unable to locate package python-numpy
    怎么解决呢

    L 1 条回复 最后回复
  • L 离线
    L 离线
    lixin19981013
    在 中回复了 JokerZhu 最后由 编辑
    #9

    @JokerZhu
    将“libvtk6-dev”修改成“libvtk9-dev”

    J 小 2 条回复 最后回复
  • J 离线
    J 离线
    JokerZhu
    在 中回复了 lixin19981013 最后由 编辑
    #10

    @lixin19981013 感谢

    1 条回复 最后回复
  • 小 离线
    小 离线
    小刘lyw
    在 中回复了 lixin19981013 最后由 编辑
    #11

    @lixin19981013 您好,我按照您的回复将“libvtk6-dev”修改成“libvtk9-dev”,但仍出现以下报错:
    E: 无法定位软件包 python-numpy
    请问是什么原因呢

    小 1 条回复 最后回复
  • 小 离线
    小 离线
    小刘lyw
    在 中回复了 小刘lyw 最后由 编辑
    #12

    @小刘lyw 已经成功解决了,将“python-numpy”修改为“python3-numpy”

    1 条回复 最后回复
  • 李东岳李 离线
    李东岳李 离线
    李东岳 管理员
    写于 最后由 编辑
    #13

    感谢分享

    http://dyfluid.com/index.html
    需要帮助debug算例的看这个 https://cfd-china.com/topic/8018

    1 条回复 最后回复
  • C 在线
    C 在线
    capillaryFix
    写于 最后由 编辑
    #14

    之前用过公开版的CFDEM,目前在尝试将OpenFOAM esi 版本(v2312)跟LIGGGHTS耦合,有感兴趣的同学嘛,一起研究!

    Mina LeeM L 2 条回复 最后回复
  • Mina LeeM 离线
    Mina LeeM 离线
    Mina Lee
    在 中回复了 capillaryFix 最后由 编辑
    #15

    @capillaryFix 我之前想干的事,是把openfoam和liggghts通过precice耦合起来,但是这个工作量太大了,一个人很难完成。
    现在的OF和liggghts是通过侵入式的耦合,导致了升级OF版本,就需要重新修改求解器。

    微信截图_20241207104846.png
    这是我之前的设想,这个设想,不需要修改liggghts源代码,但是,因为现在苦于毕业没文章,所以这个想法只能暂时搁置了。

    1 条回复 最后回复
  • 李东岳李 离线
    李东岳李 离线
    李东岳 管理员
    写于 最后由 李东岳 编辑
    #16

    我不太懂liggghts,但我对耦合比较感兴趣。liggghts那面计算颗粒DEM,有没有输出力的接口?老铁能把github上的这一块代码发个链接么

    OpenFOAM跟别的软件耦合都是一个路子。只要外挂软件有接口,在OpenFOAM里面调用就行。数据驱动LES是用libtorch计算湍流粘度,然后再OpenFOAM里面调用。那CFDEM就是liggghts算颗粒,然后在openfoam里面调用。要做到这个耦合,要懂liggghts的代码。

    http://dyfluid.com/index.html
    需要帮助debug算例的看这个 https://cfd-china.com/topic/8018

    Mina LeeM 1 条回复 最后回复
  • Mina LeeM 离线
    Mina LeeM 离线
    Mina Lee
    在 中回复了 李东岳 最后由 编辑
    #17

    @李东岳 DEM软件是没有网格的概念的,因为DEM软件就是对每个颗粒求解牛顿第二定律,计算得到每个颗粒的运动。

    所以OF耦合liggghts,OF是提取liggghts颗粒的位置、速度......,然后OF识别颗粒所在网格,最后计算拖曳力、体积分数......。反之,根据OF传递进来对每个颗粒的力,liggghts计算牛顿第二定律,得到颗粒位置。

    换而言之,CFD-DEM耦合,大多数的活都需要CFD软件干。

    所以我觉得,要做这个耦合,OF的代码修改量可能会远远大于liggghts的代码修改量。

    C 1 条回复 最后回复
  • C 在线
    C 在线
    capillaryFix
    写于 最后由 capillaryFix 编辑
    #18

    @Mina-Lee 感谢回复,我的开发基于CFDEMcoupling-PUBLIC(https://github.com/CFDEMproject/CFDEMcoupling-PUBLIC),没有使用您提到的preCICE,我对该程序进行了适当的修改,让其识别OpenFOAM v2312的环境,此后基于OpenFOAM v2312再编译CFDEMcoupling这个库,根据每次的报错,修改相应的位置;主要原因是从OpenFOAM5.x版本到v2312版本,部分函数的定义有所不同。目前已经实现了两者的耦合,也进行了验证,还有部分程序目前无法兼容,但是不影响自己的工作,就暂时先放在To Do里。

    1 条回复 最后回复
  • C 在线
    C 在线
    capillaryFix
    在 中回复了 Mina Lee 最后由 capillaryFix 编辑
    #19

    @Mina-Lee Lee博士的回复很有道理,我此前的开发也是一直在OpenFOAM里,只在LIGGGHTS里植入了一些接触模型之类的。我的浅显理解是,当时DCS computing开的CFDEMcoupling,其实可以理解成是一个OpenFOAM的求解器,该求解器可以跟LIGGGHTS进行数据互换,计算void fraction, drag forces等等。

    @李东岳 李导,代码在这里:https://github.com/CFDEMproject/CFDEMcoupling-PUBLIC

    1 条回复 最后回复
  • 小 离线
    小 离线
    小刘lyw
    写于 最后由 编辑
    #20

    @true 老师您好,我在进行这一步“7. 配置CFDEM环境变量和路径”的时候提示
    image.png
    请问可能是什么原因导致的呢

    C 1 条回复 最后回复

  • 登录

  • 登录或注册以进行搜索。
  • 第一个帖子
    最后一个帖子
0
  • 最新
  • 版块
  • 东岳流体
  • 随机看[请狂点我]