流体颗粒耦合(CFD-DEM)求解器 sediFoam 简介和安装步骤

sediFoam 是弗吉尼亚理工学院肖恒团队的杰作,在 OpenFOAM 的框架内实现了 CFD 和 DEM 耦合,在圈子里小有名气。OpenFOAM 自带的欧拉-拉格朗日耦合求解器,比如 MPPICFoam 和 DPMFoam 都无法解析颗粒间的相互作用,不适用于稠密颗粒流体两相流。稠密颗粒一般使用离散单元法求解,该方法可以考虑单个颗粒的形状、尺寸,解析颗粒之间的作用力,甚至是颗粒之间的化学反应。因而,在 OpenFOAM 中植入离散元求解器是个十分现实的需求。

sediFoam 使用 lammps 处理颗粒间的相互作用。使用 OpenFOAM 模拟流体运动。自主开发了拖曳力模型和湍流模型,用于处理颗粒和流体间的相互作用。

sediFoam 的编译过程可以分成1)安装 OpenFOAM,2)安装 lammps,3)编译 sediFoam 这几步。

这个过程中,会有比较严重的版本兼容性问题,小编在第一步就掉进了坑里。sediFoam 是在 OpenFOAM 2.4.0 的基础上开发的,对这个版本的支持也最好。根据小编的经验,这种求解器就应该使用旧版本的 OpenFOAM,不能贸然尝试在新版上编译。但是,OpenFOAM 2.4.0 和 Ubuntu 18.04 自带的 GCC 不兼容,需要修改部分源代码,小编在遇到编译错误后发现了相应的 issue,开发者 Henry 表示放弃在 2.4.x 版本中修改这些 bug,直接转战 3.0 版。好在有热心网友在 openfoamwiki 发布了修正 bug 的方法,http://openfoamwiki.net/index.php/Installation/Linux/OpenFOAM-2.4.0/Ubuntu。按此方法可以顺利编译好 OpenFOAM,小编亲测有效。

第二步是编译 lammps,同样需要特定版本,建议使用 lammps-1Feb14,编译配置建议使用 sediFoam 开发者编写的文件,详见xiaoh/sediFoam。这里需要注意,如果系统上安装有多个版本的 mpi,需要指定编译器使用 openmpi。

接下来按照xiaoh/sediFoam继续编译动态链接库和 lammpsFoam。

编译完成后试一下 lammpsFoam -help,如果能正常运行,说明编译成功。

$ lammpsFoam -help

Usage: lammpsFoam [OPTIONS]
options:
  -case <dir>       specify alternate case directory, default is the cwd
  -noFunctionObjects
                    do not execute functionObjects
  -parallel         run in parallel
  -roots <(dir1 .. dirN)>
                    slave root directories for distributed running
  -srcDoc           display source code in browser
  -doc              display application documentation in browser
  -help             print the usage

Using: OpenFOAM-2.4.x (see www.OpenFOAM.org)
Build: 2.4.xCode language: PHP (php)

sediFoam 官方文档不是很详细,如果你遇到了编译问题,欢迎在评论区留言、私信。

常恭

作者: 常恭

略懂 OpenFOAM

《流体颗粒耦合(CFD-DEM)求解器 sediFoam 简介和安装步骤》有4个想法

  1. 你好,楼主,我这边主要仿真流化床气固两相的,颗粒是碳纳米管,他这个程序模拟流化的时候对固体体积分数,颗粒数量有没有限制呢。然后瞬态的情况,对与颗粒密度减少,颗粒破碎能够仿真嘛/

发表回复