1-1. 简介:开发团队与目标
1-2. 模型:颗粒接触模型,传热模型,SPH,多球元模型
1-3. CAD交互能力:网格引入,颗粒引入,网格区域和磨损预测
1-4. 特点和编码概念:计算负荷的平衡,单颗粒属性,输运方程
1-5. 与连续介质方法的耦合
团队名:CD Lab Particulate Flow Modelling(Stefan Pirker)
成员:6博士后,7博士生,5硕士生
目标:颗粒流的建模,包含以下研究点
流体的流动:计算流体力学(CFD),格子波尔兹曼(LB),光滑粒子流体动力学(SPH)
颗粒流动:计算流体力学(CFD),离散单元模型(DEM/MD)
传热,实验的验证
将以上运用与相关的工业过程:煤粉炉,旋风分离器,流化床等等
LIGGGHTS是一套开源的C++,MPI并行架构DEM代码。
是LAMMPS Improved for General Granular and Granular Heat Transfer Simulation的缩写。
而CFDEM指的是将LIGGGHTS与CFD开源库OpenFOAM相耦合,即CFD-DEM的特殊缩写。
由于LIGGGHTS是基于LAMMPS开发的,所以两者代码的版本上具有一定的相互联系(可见PDF文件)。
光滑粒子流体动力学(SPH)非常适合具有复杂几何形状的系统,以及那些在运用有限体积方法时数值扩散过于剧烈而不能满足要求的情况下。
在LIGGGHTS 1.4中发布,相关的指令:
pair sph, fix sph/density/continuity, fix sph/density/corr, fix sph/pressure/summation, fix wall/sph, fix wall/region/sph
颗粒的粘结指的是颗粒间用以承受张力/压力,切向力,扭转力和弯曲力的连接。当达到某个破裂极限的时候,一旦破裂,那么连接就永久性的市区。与颗粒粘结相关的模型可用于模拟土壤,粘结的颗粒,颗粒破碎和梁破碎形式等。目前该团队还在寻求开发该类模型的合作者。
这方面不太了解,有兴趣的可参见PDF文件
报告中提出了一个方案:首先运用激光三维扫描的方法获得目标物体的三维外形,再用不同尺度的球元来模拟目标物体,最后引入到LIGGGHTS中进行模拟。
在实际中,没有任何两个颗粒是完全一样的,LIGGGHTS提供了三种命令:
Fix particledistribution/discrete
Fix particletemplate/sphere
Fix particletemplate/multisphere
其中Fix particledistribution/discrete使用particletemplate作为输入,其输出的结果怎是作为颗粒引入指令的输入。
工业尺度的颗粒问题需要CAD/网格接口。
(1)旋转干燥器,1M数量的颗粒
(2)使用命令fix mesh/gran从STL或VTK格式中读取三角形网格
(3)使用命令fix move/mesh/gran来平移/转动网格
对图片的说明:
(1)在四面体网格中组装
(2)使用命令region tetmesh从VTK文件中读取四面体网格,并将其用作一个区域(region)使用
(3)使用命令fix insert/pack(工作过程类似于fix pour),可以对任意区域(包括四面体区域)进行组装
对图片的说明:
(1)颗粒在表面引入,使用fix insert/stream指令
(2)挤压三角表面网格?(这里以下都不明白说的是什么)
这一段涉及到的知识不太了解。
主要简略介绍了的了LIGGGHTS在多个处理器并行条件下的计算负荷平衡策略,还有测试的效果。
使用LAMMPS作为基础进行开发的优点:
(1)代码易读易懂易修改
(2)对很多模型有较好的封装
缺点:
需要补充很多底层代码(易出错),有些代码还是多余的。
为此,LIGGGHTS在LAMMPS上进行了两层抽象:
(1)单颗粒属性抽象
(2)输运方程抽象
单颗粒抽象的主要动机是因为LIGGGHTS需要解决的问题与LAMMPS不同,针对LIGGGHTS需要解决的问题,需要补充很多属性用以描述单颗粒行为。例如:
(1)温度,热流,热源(用来解决化学反应耦合问题)
(2)水分,流体表面薄膜厚度
(3)颗粒雷若数
(4)周围流体施加的曳力,马格努斯(Magnus)力,萨夫曼(Saffman)力
(5)表面尘含量,向流体中释放的尘含量
(6)弹性形变的能量储存,接触造成能量损耗
。。。。。。。
LIGGGHTS并不修改LAMMPS的Atom类是出于以下考虑:
(1)需要在新的AtomVec类中实现大量的底层代码(组装/解组装......)
(2)必须修改很多类(至少包括Atom,AtomVec,Dump,Set.......),来使新的属性发挥作用
(3)很多工作本质上属于重复性的任务(代码可以重用?),可以提取一个
解决方法:将这些属性存储在一个新的fix property/peratom类中
(1)很多底层代码只需要实现一次
(2)通过修改类实现Look-up机制,让所有的类都可以使用它(这句话不明白什么意思)
(3)每个类(fix)都可以要求存储一个新的单颗粒属性,只在模型需要的时候才存储相应的属性
(4)每次为新的属性只需要touch一个类
另外一个在实际运用中重复的任务:为每个颗粒解算关于某个标量的ODE方程(基于流和源的方程),例如传热,水分等等。
解决方法:
(1)每个模型都可以要求求解一个标量输运方程
(2)The transportequation makes use of multiple fixes of type property/peratom(不明白什么意思)
主要介绍OpenFOAM,然后大概介绍了一下运用OpenFOAM的优点,内容不多。
部分实例
鉴于报告的性质,所涉及到的具体细节并不多,但确实LIGGGHTS和CFDEM可以实现了以下我所关心的功能:
(1)非常规形状颗粒的组装
(2)颗粒间相互作用
(3)与OpenFOAM的结合