找回密码
 注册
Simdroid-非首页
查看: 285|回复: 14

[12.前后处理] 水平集法中气泡体积守恒问题请教

[复制链接]
发表于 2010-9-3 19:19:09 | 显示全部楼层 |阅读模式 来自 法国
我最近在做二维的气泡上浮问题。发现,对于气泡有破碎的情况,气泡的面积会越来越小(如下面的图)。后处理中,Post processingSubdomain Integrate,选下面的液体域和初始气泡两个域,在Expression中输入(phi>=0.5,得到的气泡面积急剧减小。但如果采用后处理程序中那个缺省的,即“Predifined quantities: volume fraction of fluid 2", "expression: phi",气泡的面积却保持不变。(在开始那一段几乎为直线)
这两者是积分变量不同。似乎第二个中,气泡的“质量”(面积)是不变的,也就是说,我采用phi>=0.5来判断气-液界面,一定忽略了phi<0.5中也有气体的“质量”啊。
同时,在气泡(看起来)没有破碎时,做上述过程,质量的波动基本上在可以接受的范围内。
要确认的是,在帖子http://forum.simwe.com/thread-947331-1-1.html 中水加火花指出,“level setphysics-properties中,可以选择质量守恒和不守恒的!”我的计算都是选择“守恒”的来进行的。
我想请教大家的问题是:如何改进参数设计和算法,使气泡的体积或者质量尽可能地保证守恒?

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?注册

×

评分

1

查看全部评分

 楼主| 发表于 2010-9-3 19:27:31 | 显示全部楼层 来自 法国
Simdroid开发平台
2/3两个图贴的顺序有点问题。

由于那个气泡上浮的动画比较大,没能贴上来。


大侠abubob在这个帖子(http://forum.simwe.com/thread-936078-1-6.html)中提到:“初始条件中,界面过渡区的厚度帮助文件说取最大网格的一半,重构参数取最大速度。但它给的几个例子中,有些并不是遵循这个,我也正在学习中,如果这个参数设置不合理,一般都不会收敛(我尝试改了参数)。大家是怎么看这个问题的呢?”

过渡区按照我不成熟的理解,是为了防止有些参数在界面上有“跃迁”而设置的的一个光滑函数,以保证计算时的收敛性。而重构参数到底是什么物理意义?似乎是每一步计算结束后,按照phi的值重新寻找界面,并定义。那它的值决定什么,在计算中是怎么起作用的?


我感觉上述质量不守恒的问题和过渡区的厚度有点关系。所谓过渡区,直觉认为是气体和液体“相互扩散”的那一层。这一层内0<phi<1,我们取phi=0.5作为界面,应该是对的。

但从计算结果观察,气泡浮过之后,在其尾迹中有些phi<0.5的类似小气泡产生,但我们数据后处理的时候,这部分气泡是“溶解”在液相中了,所以有质量的损失!物理上讲,过渡区应该越小越好?但为了保证计算的收敛性,还是得有一定的厚度。

这个还真是纠结。
回复 不支持

使用道具 举报

 楼主| 发表于 2010-9-3 20:11:58 | 显示全部楼层 来自 法国
顺便在这里请教一个问题。

在模型库里的那个例子中,水/油的界面张力为0.02N/m。

直觉上讲,如果增加此界面张力,应该更有助于保持界面的形状,不会发生大的变化。这样更容易计算才对啊。但就在这个例子中,发现,界面张力的值改为0.2N/m后,计算就不收敛。细化网格后,后面还是不收敛。

这个界面张力的问题,也比较严重。
回复 不支持

使用道具 举报

发表于 2010-9-3 22:09:30 | 显示全部楼层 来自 英国
会不会和artificial diffusion的设置有关系,楼主试试只用那个初始值是0.5的(忘记名字了)
回复 不支持

使用道具 举报

发表于 2010-9-4 12:08:02 | 显示全部楼层 来自 黑龙江哈尔滨
表面张力与电磁力也许有冲突
回复 不支持

使用道具 举报

 楼主| 发表于 2010-9-4 15:57:30 | 显示全部楼层 来自 法国
表面张力与电磁力也许有冲突
facklaoer 发表于 2010-9-4 12:08


这个怎么知道什么叫冲突,还是不冲突啊?

我也试了模型库中的RISING BUBBLE例子,将界面张力调大,同样的程序也运行不下去。那么是不是可以这样说:因为界面张力太小,导致N-S方程中的那一项事实上作用不大啊?如果这一项变得相对大起来,反而给计算带来麻烦了?
回复 不支持

使用道具 举报

 楼主| 发表于 2010-9-4 15:58:46 | 显示全部楼层 来自 法国
会不会和artificial diffusion的设置有关系,楼主试试只用那个初始值是0.5的(忘记名字了)
浪客星魂 发表于 2010-9-3 22:09


这个在哪里设置啊?找了半天没找到。多谢指教了!
回复 不支持

使用道具 举报

发表于 2010-9-4 20:33:09 | 显示全部楼层 来自 黑龙江哈尔滨
楼主可以寻求下表面张力变大计算不收敛的原因。
我有一点这么想的,把气泡简化成2d本身就是一种错误,因为气泡是三维的,或者2d轴对称的
而包括楼主和RISING BUBBLE的例子对于气泡仿真是不正确的,气泡实际成了Z方向无限长的桶装。
也许这与表面张力计算有误有关?
如果计算机速度允许的话,不妨用3d计算试试。
回复 不支持

使用道具 举报

 楼主| 发表于 2010-9-5 03:05:43 | 显示全部楼层 来自 法国
谢谢指教!

RISING BUBBLE的例子是2d轴对称的。气泡假设为2d的是和真实的不一样,其实质如楼上所说,的确是成了z方向无限长的柱状。

模型库中有水平集法做3d的例子,好像以前论坛版主也做过一个3d的例子,但没有看到具体的描述。我还没有尝试过,不知道在3d的情况下,怎么设置。要好好琢磨了。
回复 不支持

使用道具 举报

发表于 2010-9-19 18:57:06 | 显示全部楼层 来自 上海
3# soliton

案例库做的事油泡在水中靠浮力作用上升,油水界面张力设0.02是完全合理的,你改为0.2就不对了吧,毕竟常温下水的表面张力才是0.072N/m!
回复 不支持

使用道具 举报

发表于 2010-9-19 19:03:25 | 显示全部楼层 来自 上海
你做的这个例子,我也遇到过类似的,在level-set里面这个叫做相泄露,也就是说质量从一相泄露到另一相,当流体密度和粘度相差较大时比较明显,由于你做的是水-气泡的,密度和粘度差都很大,产生相泄露就可以理解了。一般处理方法是使用陡峭的Diracdelta、Heaviside平滑函数可以减小相泄露。
回复 不支持

使用道具 举报

发表于 2010-11-5 16:47:22 | 显示全部楼层 来自 西安交通大学
11# sea-wave007

我在做水和空气顺流流动的模拟,也遇到了上面的问题。
使用水平集两相流应用模式模拟时,如果指定表面张力为0,则能算出结果;在其他任何参数都不变的情况下,如果指定表面张力为0.075N/m,计算就不收敛。
看论坛了很多人建议不收敛时使用平滑函数试试,但是一直不知道该怎么使用平滑函数,想请教一下楼上,能不能指导一下,或者给一些3.5a模型库里使用平滑函数的例子。
回复 不支持

使用道具 举报

发表于 2010-11-5 16:49:22 | 显示全部楼层 来自 西安交通大学
11# sea-wave007

我在做水和空气顺流流动的模拟,也遇到了上面的问题。
使用水平集两相流应用模式模拟时,如果指定表面张力为0,则能算出结果;在其他任何参数都不变的情况下,如果指定表面张力为0.075N/m,计算就不收敛。
看论坛了很多人建议不收敛时使用平滑函数试试,但是一直不知道该怎么使用平滑函数,想请教一下楼上,能不能指导一下,或者给一些3.5a模型库里使用平滑函数的例子。
回复 不支持

使用道具 举报

 楼主| 发表于 2010-11-5 17:23:09 | 显示全部楼层 来自 法国
光滑函数:flc1hs, flc2hs.

在帮助文件reference guide中的p210页有详细的说明。记得论坛上也有帖子讨论过。这个平滑函数确实有助于计算收敛,但是体积守恒的问题某种程度上感觉就是这个引起的。

是收敛出计算结果?还是结果正确性?这两者之间有个微妙的平衡。艺术啊。我一直为此困惑。
回复 不支持

使用道具 举报

发表于 2011-5-22 15:32:02 | 显示全部楼层 来自 上海长宁区
需要一个真实的平滑函数,现有的平滑函数还是存在一定的阶跃,从而造成不守恒。
一个极端精细的网格可能也可以做到。

现在有一个通过施加弱形式的方法帮助守恒,进行相回注。
回复 不支持

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

Archiver|小黑屋|联系我们|仿真互动网 ( 京ICP备15048925号-7 )

GMT+8, 2024-4-24 03:55 , Processed in 0.056218 second(s), 13 queries , Gzip On, MemCache On.

Powered by Discuz! X3.5 Licensed

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表