2D欧拉拉格朗日计算



  • 个人经验来看,我对2D欧拉拉格朗日模拟理解存在一些疑惑,考虑相间动量耦合,在欧拉框架下,可以写为:
    \begin{equation}
    A=\frac{\rho}{\tau}(\bfU_\rd-\bfU_\rc)
    \end{equation}
    方程中不存在网格体积,因此个人认为2D欧拉欧拉方法是适用的。但是对于2D欧拉拉格朗日,曳力导致的动量交换计算大体如:
    \begin{equation}
    A=\frac{1}{V_\mathrm{cell}}\sum F_i
    \end{equation}
    其中$F_i$为每个粒子的曳力,$V_\mathrm{cell}$为网格体积。对于2D网格,如果还是按照通常的计算标准,网格厚度应该不对结果有影响,但是很明显,网格越厚,力越小,导致2D欧拉拉格朗日的模拟结果依赖于网格厚度,看起来不是很合理。

    在Kadyrov et al. Impacts of solid stress model on MP-PIC simulation of a CFB riser with EMMS drag的这篇文章中,用的就是2D欧拉拉格朗日模拟,同时,文中还专门讨论了网格厚度对结果的影响,结论是没什么影响。

    Summing up we can say that, change of domain thickness value does not significantly impact the accuracy of 2D simulations

    但是我个人很疑惑,不知道哪位老师可以讨论下


  • Linux讲师 OpenFOAM讲师

    我猜一下。

    如果我写伪2D的求解器,我就把密度设成体积相关。这样就保证质量守恒了。这样体积怎么变,单位网格的质量不变。质量不变,力不变,单位时间内冲量、动量效果就一样。

    比如我认为读入的密度是当厚度为1的密度。具体计算中设定厚度是多少,我再换算成特定厚度时的密度。

    而且这种变化只影响与坐标相关的,比如扩散,但是这种变化只在z轴上,z轴上的变化又是不必关心的。

    兴许扣扣那个求解器的密度当2D的时候怎么定义的能找出答案 :shangxue:



  • 如果我写伪2D的求解器,我就把密度设成体积相关。这样就保证质量守恒了。这样体积怎么变,单位网格的质量不变。质量不变,力不变,单位时间内冲量、动量效果就一样。

    就像你说的。文章做了厚度方向的验证。在增加厚度的时候,同时增加了相分数(类似你说的密度)。但我觉得,应该仅调整一个参数做分析。

    CFD界这几天要推送一个2D/3D模拟的文章,可以关注下


  • Linux讲师 OpenFOAM讲师

    本来第一个想猜的是程序里的“体积”“面积”都是广义的,就是“网格尺寸”和“网格边界”,

    当三维时“网格尺寸”和“网格边界”分别是体积和面积,
    当二维时“网格尺寸”和“网格边界”分别是面积和长度。

    但是太没有依据了
    对着 empty 类型边界条件翻了翻找依据,翻到这翻不下去了 153行读取边界条件类型 ,以后 C++ 知识补上来了再翻。

    如果全是薄3D假装2D,那 empty 这个类型有点多余了。估摸抠出来 empty 会影响什么就知道它2D是怎么被假装出来的了。

    算法上不太懂,代码上挖大概可以这样挖。


    公众号里说 axisymmetric 会丢失信息,我记得 fluent 里也有,同时也有 sxisymmetric swirl。后者好像能捕获前者丢失的信息。OpenFOAM 里也有,不知道一样不。

    :xiezuoye:


Log in to reply
 

CFD中文网 2016 - 2020 | 京ICP备15017992号-2