1
液体粘度
我们都知道液体是有粘度概念的。液体的粘度是液体内部流动时产生的阻力,可以简单理解为“液体的黏稠程度”。比如,蜂蜜的粘度比水大,流动得慢,搅动时也更费力。
那么问题来了:如果流动的不是水、油,而是沙子、谷物、粉末这样的颗粒材料,它们有粘度吗?
答案是:有,而且非常重要。
2
颗粒粘度
虽然颗粒不像液体那样由分子组成,但在颗粒流动的过程中,颗粒之间同样会发生碰撞、摩擦和滑移。这些现象在宏观上表现为颗粒群的“流动阻力”
因此,在Eulerian-Eulerian 多相模型中,引入了一个类似液体粘度的概念—颗粒粘度Granular Viscosity。
3
颗粒体积粘度
你用力压一个装满豆子的塑料袋,是不是感觉很难压缩?这是因为颗粒本身几乎不可压缩,但在袋子里它们会集体调整位置、互相挤压,形成了对压缩的抵抗。
这就类似于颗粒体积粘度(Granular bulk viscosity),颗粒体积粘度描述的是当颗粒群体积被压缩或膨胀时,颗粒之间因碰撞产生的各向同性压力阻力。
在仿真中,如果流场存在收缩区、膨胀区(例如喷嘴、搅拌器附近),颗粒体积粘度的作用就会非常明显。
通常颗粒体积粘度远大于剪切粘度即颗粒粘度
4
颗粒粘度到底是不是“客观存在”?
4.1 简明结论
“颗粒粘度”是一种宏观建模量,是在将颗粒群视作“连续介质”时引入的类流体粘性模型。
它不是客观存在于单个颗粒之间的物理性质(颗粒不像液体分子那样有分子间内摩擦)
它是当我们将颗粒流当作连续介质处理时,用来描述宏观阻力行为的一种有效物理模型
在欧拉-Eulerian 方法中才有“颗粒粘度”“颗粒体积粘度”的概念
在拉格朗日-Lagrangian 方法中,不存在“颗粒粘度”参数 —— 粒子是逐个追踪的点,不是流体,没有粘度
4.2 背后原理
颗粒之间确实有碰撞、摩擦、滑移,这些行为造成了能量耗散与流动阻力,但不像液体那样是分子层面的内摩擦。
所以在建模上:
如果每个颗粒都单独追踪(Lagrangian),我们直接模拟颗粒间的碰撞力或拖曳力,不需要“粘度”概念;
如果把颗粒整体看作流体(Eulerian),就得用类似 Navier-Stokes 的方程来描述运动,就必须构造应力张量,而应力张量就必须包含“粘度”项。
这就是为什么颗粒粘度是颗粒群作为“流体”存在时的一种“有效物性”,而不是颗粒本身的客观固有属性。
比如模拟一小把沙子抛出轨迹,用 DPM(拉格朗日)逐个追踪粒子,不需要“粘度”
模拟一锅搅拌的沙浆,用 Euler 模型把沙子视为“流体”,那就必须赋予它类似“粘度”的宏观参数
欧拉 vs 拉格朗日模型对比
5
颗粒应力张量
在Fluent欧拉多相流模拟中,如果次相勾选了Granular,就会出现这两个参数,需要输入这两个参数的数值。
这两个粘度都是颗粒相本构模型的组成部分,用于构建颗粒应力张量。
颗粒应力张量(solid-phase stress tensor):
μs:Granular shear viscosity(颗粒粘度)
λs:Granular bulk viscosity(颗粒体积粘度)
Ds:颗粒相剪切应变率张量
vs:颗粒相速度
6
如何获得这两个粘度数值?
根据颗粒动力学理论(Kinetic Theory of Granular Flow, KTGF)来自动计算。实际上,勾选Granular,就表示考虑了颗粒动力学理论。
Fluent 提供了几种颗粒粘度模型(例如 Lun et al. 模型)来自动计算。
对于颗粒粘度
对于颗粒体积粘度
常用表达式:
颗粒粘度Granular viscosity:
其中:
μcoll:颗粒碰撞粘度
μkin:动能贡献的粘度
典型表达式(Lun et al., Gidaspow):
颗粒体积粘度Granular bulk viscosity:
其中:
ϕs:固相体积分数
dp:颗粒直径
Ts:颗粒温度(颗粒相速度波动强度)
g0:接触值函数(表示颗粒间接近程度)
比如Lun et al公式
因此我们不需要设置这些参数,只需要选择一个合适的模型就可以了
7
总结
通过“颗粒粘度”与“体积粘度”的引入,我们可以更真实地模拟颗粒流行为,不仅是“颗粒去哪了”,还可以模拟“怎么去的”、“阻力有多大”。