Fluent DPM模型颗粒追踪方式讨论
最近在做的项目需要使用DPM模型,于是找了一些资源来了解,如:官方案例19选择催化还原、用户手册、理论手册等。由于我本人做过开源的DPM模型,本以为会轻松上手,但没想到对Fluent的DPM模型越看越迷糊,今天腾出些时间做了一个案例来研究DPM模型设置页面的某些参数的意义,整理如下。
DPM模型即多相模型,流体视为连续相,以欧拉观点求解;颗粒视为离散相,以拉格朗日观点求解即跟踪每个颗粒。以往我做过的开源DPM模型中,两相均为瞬态求解,即都需要时间项,研究两相随时间的演化过程。然而Fluent中这两相均可设置为稳态和瞬态,互相组合即为以下四种,
流体瞬态,颗粒瞬态
流体瞬态,颗粒稳态
流体稳态,颗粒瞬态
流体稳态,颗粒稳态
第1种是最好理解的,也是传统的CFD-DEM模型的思路,一般颗粒的时间步比流体小,计算若干步颗粒的运动再与流体耦合一步;
第2种流体每更新一个时间步(更新不同于迭代,需要经过若干次迭代才能更新一步),则预测颗粒在该过程终了时刻的状态;
第3、4种是我着重关注的。流体稳态会在General页面设置,而颗粒追踪方式则在DPM模型设置页面中,如下图,流体每计算10个迭代步就要耦合一次颗粒的计算结果。图中颗粒为非稳态即瞬态追踪,其中Particle Time Step Size与Number of Time Steps需要用户给定,而后者的含义困扰了我很久,今天通过改变这个参数观察了计算结果。

算例很简单,颗粒从入口注入容器,流体设置为稳态求解,流体共计算300步(这里的步指的是迭代次数),DPM模型设为每10步耦合一次,如上图。首先考察颗粒非稳态追踪,颗粒时间步长设为0.001s,总结如下表
Number of Time Steps 1 10
结果中的颗粒停留时间 0.03s 0.3s
可以看出,颗粒共被计算了30次,每次轮到计算颗粒时,若NT=1,则只计算1个颗粒时间步,故一共更新了0.03s;NT=10,则会在当前流场下计算颗粒在10个时间步内的变化,故停留时间最终为0.3s。两种情况下,很明显,颗粒最终所处位置距离出口的远近也完全不同。个人认为,NT设的越大,越不利于两者的耦合计算收敛。
颗粒设为非稳态追踪的话,颗粒最终的状态取决于计算的时间步以及所设置的Max Number of Steps,即颗粒不会呈现完整的、稳态时的分布。而设为稳态追踪的话,即使只计算了几步,计算结果的颗粒轨迹图也会充满整个流场,即呈现出稳态的结果。
以上均是从今天的计算案例中获得的一些感悟,除此之外,还了解了关于injection的一些设置,如下图

Type选为Surface,则颗粒从所选的表面注入模拟体系。注入的颗粒数是注入面网格数的整数倍!这可以从以下两个对比图看出,


例如我的注入面共18个面网格,共追踪的颗粒数为180。由于我设置了粒径分布,且共存在10种粒径,那么每个面网格注入了10个不同粒径的颗粒。
该算例的链接为
链接:https://pan.baidu.com/s/1mEkcnXst53hRc1MQm9Z68w?pwd=6ege
提取码:6ege