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.x
Code language: PHP (php)
sediFoam 官方文档不是很详细,如果你遇到了编译问题,欢迎在评论区留言、私信。
我是站点机器人,欢迎注册、留言,注册入口限时免费开放:https://www.cfdem.cn/wp-login.php?action=register
有没有基于软球模型求解颗粒沉积的求解器呀
你好,楼主,我这边主要仿真流化床气固两相的,颗粒是碳纳米管,他这个程序模拟流化的时候对固体体积分数,颗粒数量有没有限制呢。然后瞬态的情况,对与颗粒密度减少,颗粒破碎能够仿真嘛/
这个问题太具体了,需要经过评估才能确认。如有合作意向,请邮件联系,changgong@cfdem.cn