欧拉-欧拉-VOF混合方法



  • 简要介绍

    工业中存在大量的多相流动。一直以来,欧拉-欧拉方法被用于高相分数的多相问题。欧拉-拉格朗日则大量的用于气固流动。同时,界面捕获类模型,如VOF模型(大家一起念:我夫,不是单独的读字母V O F哦),主要用于界面跟踪。模型的区分导致三种模型适用于不同的工况:

    • DPM模型主要用于相分数较低的气固体系;
    • VOF模型主要用于造波、船舶等波浪问题;
    • 双流体模型主要用于高相分数混合如气液鼓泡反应器;

    0_1542360422105_502px-Two-phase_Flow.svg.png

    上图中,下面的bubbly flow对应于双流体模型,中间的流型可用VOF模拟。那么一些同时存在界面,并且存在较分散的离散相的情况应该如何处理呢?

    E-E-VOF混合模型

    对于同时存在明显的界面(气液界面)以及大量分散的离散相(小气泡)的时候。可以调用E-E-VOF混合模型。E-E-VOF混合模型的思想很简单:在E-E模型的基础上,结合VOF的界面力,使得界面更加尖锐。
    \begin{equation}\label{eq}
    \frac{{\p \left( {{\alpha_\mathrm{k}}{\rho_\mathrm{k}}{\bfU_\mathrm{k}}} \right)}}{{\p t}} + \nabla \cdot \left( {{\alpha_\mathrm{k}}{\rho_\mathrm{k}}\left( {{\bfU_\mathrm{k}} \otimes {\bfU_\mathrm{k}}} \right)} \right) - \nabla \cdot \left( {{\alpha_\mathrm{k}}{\rho_\mathrm{k}}{\bfR_\mathrm{k}}} \right)
    = - {\alpha_\mathrm{k}} \nabla p + {\alpha_\mathrm{k}}{\rho_\mathrm{k}} \bfg + {\bfM_\mathrm{k}}+ {\bfM_\mathrm{s}}
    \end{equation}
    其中的$ {\bfM_\mathrm{s}}$即最终的力源项,其考虑了VOF模型中的表面张力。

    2013年,Wardel and Weller在OpenFOAM中植入了E-E-VOF混合模型(方程\eqref{eq}),同时,在相方程中植入了界面压缩因子。求解器被命名为multiphaseEulerFoam

    E-E-VOF混合模型本质上更靠近E-E模型,其更倾向于是在E-E模型的基础上,添加表面张力模型,同时对界面进行压缩。其不仅能够使得相界面更加尖锐,同时也能对小气泡/液滴进行模化调用曳力/升力等动量交换模型。

    0_1542361085881_捕获.JPG

    上图为使用E-E-VOF混合模型模拟的溃坝。虽然本质上为E-E模型,但可以看出其相界面已经完全的尖锐。

    0_1542361303490_捕获.JPG

    上图为模拟的液液混合器,其为不同时刻下相分数云图。可见,E-E-VOF模型预测的界面充分的尖锐,同时,E-E模型也预测了相间的分散特性。

    感兴趣的下来看看吧:

    Wardle, K. E., & Weller, H. G. (2013). Hybrid multiphase CFD solver for coupled dispersed/segregated flows in liquid-liquid extraction. International Journal of Chemical Engineering, 2013.



  • 东岳老师您好,这里的界面捕捉方法并不是实际意义的VOF,它只不过是将界面压缩,并不是VOF的非零即一对边界重构的理念。不过界面压缩方法的优势在于实施简单,并且能在界面处考虑相间作用力的,比如drag force,这是传统VOF不能做到的,具体可参看:https://www.sciencedirect.com/science/article/pii/S0045793018306947
    还请东岳老师多多指教。



  • 在fluent中就有这么个东西,不过很少看到有人在用,有见到的朋友可以分享分享文献学习学习



  • @liuzh fluent里的跟OF里面的不一样,fluent欧拉欧拉下的VOF是界面重构(可以在离散格式里看到),那么在界面处就是VOF方法(求解单动量方程),非界面处采用欧拉欧拉方法;而OF里面计算域内都是欧拉欧拉方法,所谓的界面也是一个区域,只不过被压缩的锐利了而已。



  • Yes, Fluent里面我也见过这个。另外一直感觉Fluent用户好像不太在意算法 :papa:

    @zwl 恭喜你的大作见刊! 是的,OpenFOAM中的E-E-quasi-VOF(就像你文章里面写的)本质上是E-E,只不过OpenFOAM通过VOF的界面压缩,对相方程压缩了一下,同时在动量源项里面加了个表面张力。

    纯的E-E-VOF还不还做,一方面VOF是直接模拟,要求网格充分小不存在多个动量方程。一方面E-E是宏观模拟,要求网格充分大。这和双曲方程和抛物方程放在一起类似。会产生一些特征的区别。

    同样是因为尺度问题,我意大利导师在VOF里面植入了介尺度模型PBE,本质上VOF和PBE也是冲突的。但通过数学技巧可以实现类似的VOF-quasi-PBE : https://www.sciencedirect.com/science/article/pii/S0010465517300978



  • @zwl 嗯嗯谢谢您的指点,原来真没注意这个东西



  • @zwl 我之前研究了下multiphaseeulerfoam 记忆中发现里面没有耦合升力模型 想用它模拟下喷气的模拟 可以找你交流下吗 qq1277909926 _谢谢



  • @东岳 东岳老师 我发现multiphaseeulerfoam没有植入升力模型 之前用它算过一个喷气算例 结果不理想 我想是因为没有升力模型 想自己加入试试 我看reactingfoam里面模型很多 也有表面张力 我理解的是reactingfoam是不是可以替代multiphaseeulerfoam 如果不考虑热反应模型的话 这样我就不用改变求解器了 想听下你的理解 谢谢老师



  • reactingMultiphaseEulerFOam可以代替multiphaseEulerFoam



  • @金石为开 假期出去了,才看到。我没研究过升力模型,不过我感觉你可以找现成的升力模型加到动量方程里,或者加到压力泊松方程里。



  • @东岳 reactingMultiphaseEulerFoam求解器之前尝试用过,自带的算例全是层流的,没用湍流模型,我添加湍流模型后湍流方程矩阵求解不收敛,尝试多次没成功后,就没用了~如果有哪位用reactingMultiphaseEulerFOam求解器选择LES模型运行成功,请分享下,谢谢~



  • @zwl 加湍流的时候要防止相场接近于0,可以把初始场设置一个小的相场值。LES那面可以试试smagorinsky,不需要求解湍流变量



  • @zwl 你好,我粗略的拜读了一下大作,我想问一下drag force里面的当地离散项的直径是怎么计算的,论文说取为50mm,是没有计算吗?



  • @yfclark 是50微米,根据文献实验数据取值,这个目前我还没见到有做动态直径的,而且这个直径还很少有相应理论计算,如果你见到相关理论,请分享一下~



  • @zwl 我是才接触雾化仿真,我个人有个不成熟的想法,假设离散的液滴和气泡是球形,用曲率转化得到等效直径,这个想法存在一些问题:离散项并非都是球形,特别是在稠密区的液核附近,出现了液核上脱落液丝,液丝破碎为液滴,这些几何结构并不是球形的,即便是在稀疏区,液滴和气泡也有可能震荡变形,这样得到的直径只是等效直径,算得准不准不好说,另外要识别离散项的位置,如果用液核表面的曲率得到一个等效直径是错位的,怎样识别是离散项还是液核表面也是一个问题



  • 曲率转化似乎也不太对:zoule:



  • @东岳 为什么会加湍流时要防止相场接近于0?还请东岳老师明示,这是哪部分数值处理出现的问题?如果物理情况确实是有相场等于零的情况,那这个求解器就不能选择LES/kEqn模型来求解湍流了,对吗?



  • @zwl 防止奇异问题。多相湍流方程和动量方程都是一样的,都需要处理,在我之前那个CES里面讨论过。

    如果物理情况确实是有相场等于零的情况,那这个求解器就不能选择LES/kEqn模型来求解湍流了,对吗?

    可以,需要特殊处理下,OpenFOAM已经给你处理好了啊。只不过Smagorinsky不存在这个问题不需要特殊处理



  • @东岳 那为什么reactingEulerFoam选LES/kEqn还是不能用于有相场为0的条件?您说的of已经给我处理好了是指?我正想去看个究竟,谢谢。



  • @东岳 @zwl 我有个问题,E-E-VOF混合模型里面表面张力不应该是“微观”的力吗,曳力和虚拟质量力应该是积分后的“宏观”的力,那么曳力和虚拟质量力应该包含了表面张力效应吧,把它们写在同一个方程里面,不就相当于表面张力算了两次吗?我没有想明白,请老师解答一下。



  • @东岳 我最近用reactingMultiphaseEulerFoam做算例,也是设置的时候某一相为0,湍流模型一直出现divide by zero,找了半天没发现错误,更改之后搞定了,谢谢东岳老师


Log in to reply