U = fvc::reconstruct(phi);



  • bug report 中,henry 说

    Using

    U = fvc::reconstruct(phi);

    causes a HUGE momentum conservation error but if momentum conservation is not important in your cases then yes it does remove spurious “wiggles” of many kinds.

    为啥会有动量守恒的问题呢?

    还有如何解决上述 bug report 中报告的多孔介质与自由流界面处的速度波动问题? 在相关的 帖子 中,说

    This is not a problem.

    Just change under-relaxation factor to 0.0001, and you will not have this oscillations.

    OpenFOAM software is the best software among all CFD, and being unexperienced in CFD, does not meam that OpenFOAM has bugs, that should be reported like that…

    这到底是bug 吗?解决方案就是小松弛因子?


  • 网格教授 OpenFOAM教授 管理员

    @Wayne hi,

    fvc::reconstruct phi也可以组建出来速度,所以速度最后可以有俩种方法输出来。一个是’u=rau+…’,再一个就是reconstruct.

    之前我在icofoam里面测试过这俩种方法计算出来的速度,监控某一点的速度二者从plot中基本看不出来区别,但是如果对比数据会发现小于5%的差别。

    henry说重组速度的方法会导致动量不守恒,原因我也不是很清楚。在 icofoam解析里面你会看见最后有一段我注明leave ur comments,可以说foam用的是公式19来更新速度,而没有用公式20。有空我再仔细看看这俩种方法的区别,如果你有别的观点也告诉我。

    第二个帖子手机暂时打不开。

    bug里面提及的wiggle是什么wiggle?


  • 网格教授 OpenFOAM教授 管理员

    虽然暂不清楚为什么俩种方法不同,回去我先把henry的回帖更新到icofoam,谢谢。



  • 谢谢回答。wiggle指的是速度波动,如下图:

    alt text

    左半边是自由流,右半边是多孔介质。界面两侧压强的斜率不同,导致了速度在界面处的波动。


  • 网格教授 OpenFOAM教授 管理员

    @Wayne 多谢相关信息。在icofoam解析中已更新。:stuck_out_tongue:



  • @李东岳 这个速度波动的问题,在fluent理论指南中找到如下说法:

    20.4.1.1. 压力插值格式

    注意:

    对于一个包含多孔介质的算例,体积力加权格式只应用在非多孔面上,它考虑了显式体积力(例如,重力,旋转,科里奥利力)的不连续性和密度迅速变化流动(例如,自然对流,VOF)压力梯度的不连续性。所有内部和外部的多孔表面都使用一种特殊的格式处理,尽管阻力是不连续的,这种格式可以保持单元体表面上法向速度的连续性

    但是我没有找到fluent具体采用的到底是哪种特殊的压力插值格式。

    另外OpenFOAM中需要用压力插值格式吗?暂时对不上号。



  • 看了这个,有点懂了,问题应该在于离散格式和梯度限制器啥的。
    Finite Volume Discretisation in OpenFOAM Best Practice Guidelines