Skip to content
  • 最新
  • 版块
  • 东岳流体
  • 随机看[请狂点我]
皮肤
  • Light
  • Cerulean
  • Cosmo
  • Flatly
  • Journal
  • Litera
  • Lumen
  • Lux
  • Materia
  • Minty
  • Morph
  • Pulse
  • Sandstone
  • Simplex
  • Sketchy
  • Spacelab
  • United
  • Yeti
  • Zephyr
  • Dark
  • Cyborg
  • Darkly
  • Quartz
  • Slate
  • Solar
  • Superhero
  • Vapor

  • 默认(不使用皮肤)
  • 不使用皮肤
折叠
CFD中文网

CFD中文网

  1. CFD中文网
  2. Fluent
  3. Fluent VOF 耦合Level-Set方法时的Density correction 抑制虚拟流动

Fluent VOF 耦合Level-Set方法时的Density correction 抑制虚拟流动

已定时 已固定 已锁定 已移动 Fluent
18 帖子 6 发布者 13.8k 浏览
  • 从旧到新
  • 从新到旧
  • 最多赞同
回复
  • 在新帖中回复
登录后回复
此主题已被删除。只有拥有主题管理权限的用户可以查看。
  • 李东岳李 在线
    李东岳李 在线
    李东岳 管理员
    写于 最后由 编辑
    #2

    @Albert-Lee 在 Fluent VOF 耦合Level-Set方法时的Density correction 抑制虚拟流动 中说:

    我用来验证虚拟流动的模型是:2D方形计算域,里面填充了一圆形气相区域来验证虚拟流速大小,里面填充一个小方形气相区来验证特征时间。整场无重力(相当于计算域内只有表面张力源项)。介质为水和空气。

    没太看懂,你可以把你openfoam的算例清理干净后上传一下

    http://dyfluid.com/index.html
    需要帮助debug算例的看这个 https://cfd-china.com/topic/8018

    1 条回复 最后回复
  • A 离线
    A 离线
    Albert Lee
    写于 最后由 编辑
    #3

    @东岳 谢谢东岳老师的回复!
    0.1sV.png

    如上图所示,我在这样的举行计算域里面(蓝色为液相,红色为气相,水),初始化的时候气相即为圆,没有重力及其他体积力,0速度场,0相对压力场。界面用CFS模型平衡。这样的话,理论上,计算一段时间之后,流场的速度应该为0(在数值收敛精度以下)。但是一开始算,界面上就会出现这种虚拟速度,速度适量如图所示。该结果实在确保网格无关、时间步长无关的情况下。(有关虚拟流动的研究已经有很多论文,检索 spurious/parasitic currents 即可)。而且,这种速度会导致界面变形,例如在本例中,无法维持为圆形。上图是FLuent 中VOF方法的0.1s计算结果。

    以下是相同条件下中 interFoam的模拟结果结果前两幅图是0.1s的相分布和速度云图,后两幅是5s的相分布和速度云图。
    0.1vof.png o.1V.png 5vof.png 5v.png

    可以看到,在0.1s时,由于虚拟流动的存在,圆形的气相区域已经变得有些“方”。在5s时气相直接跑到了一角。
    这样比较下来,Fluent中利用PLIC方法捕捉的界面更准确一点。但影响还是很大。

    因此,我试图利用FLuent中的coupled level set 方法,其帮助文件里面有降到到我在前一问中提到的 density correction 和heaviside correction 。结果发现利用heaviside correction 方法抑制虚拟流动的效果和VOF方法相比差别不大。但是利用density correction效果就很好。
    为了确保其准确性,我在上述的计算域中初始化气相区域时将圆形改为正方形,让它来通过计算恢复为圆形。在这一过程中,发现利用density correction计算时,气相区从方形到圆形恢复得特别慢。
    我们知道,该过程为毛细力主导,特征时间是 $t=\sqrt{\rho_l R^3 / \sigma}$,在0.01s量级,二利用 density correction计算的结果在1s量级,显然不对。而用其他方法包括 heaviside correction 算的结果在时间量级上正确。
    因此,我才在最初的问题中说“严重怀疑fluent中coupled level set 方法中的density-correction有误”。

    (模拟算例是改的Dam的那个例子,只改了计算域和相分布、物性)折腾了半天还没弄好打包的,Linux盲,请见谅。:baobao:

    在这里是想请教一下您/各位有没有这方面的经验、方法?面临毕业,自己编程序有点来不及。谢谢各位了。

    1 条回复 最后回复
  • Y 离线
    Y 离线
    yfclark 神
    写于 最后由 编辑
    #4

    特征时间尺度,一般用在时间尺度分析上,实际的时间尺度和特征时间尺度之间还差一个系数,这么分析能行吗?

    A 1 条回复 最后回复
  • A 离线
    A 离线
    Albert Lee
    在 中回复了 yfclark 最后由 编辑
    #5

    @yfclark 这只是时间尺度的估计,能得到一个基本的数量级,具体问题的话还要看条件。在这种毛细力主导的流动中,该特征时间与毛细波的振荡频率相对应,至少保持在同一数量级。

    1 条回复 最后回复
  • Y 离线
    Y 离线
    yfclark 神
    写于 最后由 编辑
    #6

    fluent的东西不太懂,level-set和vof耦合有专门的算法,要保证level set估算的网格体积分数和vof基本一致,不知道fluent是如何实现的,另外你给出的图的虚假流动太大了,把计算域扩大,边界条件用一对平行的wall,一对平行的slipwall试一下

    A 1 条回复 最后回复
  • 李东岳李 在线
    李东岳李 在线
    李东岳 管理员
    写于 最后由 编辑
    #7

    我在出差,回去用openfoam测试下给你反馈

    http://dyfluid.com/index.html
    需要帮助debug算例的看这个 https://cfd-china.com/topic/8018

    A 1 条回复 最后回复
  • A 离线
    A 离线
    Albert Lee
    在 中回复了 yfclark 最后由 编辑
    #8

    @yfclark 谢谢!我也试过了将计算域从原来的1cm x 1cm 扩大到1m x 1m,虚拟流动比原来的略有减小,但是没有量级上的变化。fluent中耦合level-set的方法只是用来计算相界面法向量和曲率,体积分数仍然由vof方法确定。

    1 条回复 最后回复
  • A 离线
    A 离线
    Albert Lee
    在 中回复了 李东岳 最后由 编辑
    #9

    @东岳 真的十分感谢!算例上传上来了,见附件。spuriousCurrentArc4-1.zip

    1 条回复 最后回复
  • 刘 离线
    刘 离线
    刘晓刚
    写于 最后由 编辑
    #10

    @Albert-Lee 请问您知道fluent中Vof耦合level set如何进行初始化吗?简单液滴撞平壁算例,初始化时要对液滴区域给定level set function函数值吗? 我用的是heaviside方法。

    麻烦看一下这个提问,http://www.cfd-china.com/topic/3500/fluent-vof-和level-set-耦合

    A 1 条回复 最后回复
  • A 离线
    A 离线
    Albert Lee
    在 中回复了 刘晓刚 最后由 编辑
    #11

    @刘晓刚 直接全场给0或者1皆可,一个迭代之后自然会算出相应的levelset值。

    1 条回复 最后回复
  • 刘 离线
    刘 离线
    刘晓刚
    写于 最后由 编辑
    #12

    @Albert-Lee 那您看我这个level set function算的是不是不对啊?
    http://www.cfd-china.com/topic/3500/fluent-vof-和level-set-耦合

    1 条回复 最后回复
  • 刘 离线
    刘 离线
    刘晓刚
    写于 最后由 编辑
    #13

    正常level set function=0 时不应该为两相界面吗?

    A 1 条回复 最后回复
  • A 离线
    A 离线
    Albert Lee
    在 中回复了 刘晓刚 最后由 编辑
    #14

    @刘晓刚 这个耦合了vof,即使你初始化levelset为0,后面计算会结合vof自动赋值的

    1 条回复 最后回复
  • 刘 离线
    刘 离线
    刘晓刚
    写于 最后由 编辑
    #15

    再麻烦问一下,您知道我这个计算大概哪出问题了吗?vof 单算和vof+level set的结果不一样啊,明显vof的交界面更加光滑。现在通过level set function=0 也判断不了相界面啊?

    A 1 条回复 最后回复
  • A 离线
    A 离线
    Albert Lee
    在 中回复了 刘晓刚 最后由 编辑
    #16

    @刘晓刚 我回复至你那个问题里面了。单个因素试着来,逐一排查,应该会找到原因的

    1 条回复 最后回复
  • A 离线
    A 离线
    anubis
    写于 最后由 编辑
    #17

    你现在解决虚拟流动的问题了吗?

    1 条回复 最后回复
  • M 离线
    M 离线
    martinliu
    写于 最后由 编辑
    #18

    @Albert-Lee 我跟你遇到了相同的问题,你的测试和我的结果也相差不大。目前我也在寻找一个解决方法,我看到的在UDF中获取Level set function 是使用 C_LSF(c,t)宏,其中c = cell index, t = mixture phase thread,原链接:https://www.cfd-online.com/Forums/fluent/144991-access-level-set-function-udf.html

    注意:需要额外include "sg_ls.h" 因为他没有包含在udf.h里面

    1 条回复 最后回复

  • 登录

  • 登录或注册以进行搜索。
  • 第一个帖子
    最后一个帖子
0
  • 最新
  • 版块
  • 东岳流体
  • 随机看[请狂点我]