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

[06.对流扩散] 水平集方法

[复制链接]
发表于 2011-5-12 20:03:55 | 显示全部楼层 |阅读模式 来自 重庆沙坪坝区
请问comsol中内置的水平集函数还是距离函数嘛?还是流体体积分数?如果是距离函数的话,为何定义一项为0一项为1,根据水平集函数作为距离函数的定义,应该一项为正一项为负才对啊!请问有哪位大侠用到过这个做多相流模拟!非常感谢!
发表于 2011-5-12 21:08:14 | 显示全部楼层 来自 法国
Simdroid开发平台
这个同问同问。

专门去翻了一下说明书。有一句这个话: In comsol multiphysics, phi is a smooth step function that equals zero in a domain and one in the pther. Across the interface, theree is a smooth transition from zero to one.

我在理解水平集这个方法的过程中,就总是把它当做距离函数来认为的。但为什么不是正负(象相场那样),要取值在【0,1】间,不明白。

我怀疑,在它的后台,它是把这个方程当做Convection diffusion方程来处理的(又内嵌了曲率、和曲率有关的表面张力等函数等等)。最近看到几个比较老一点的例子(大概是3.2时期的),处理这个问题就是直接用Convection diffusion模块来算的(那时候不知道有没有水平集?),所以有这么个主观推测。
回复 不支持

使用道具 举报

发表于 2011-5-12 22:31:58 | 显示全部楼层 来自 美国
水平集函数应该是表示体积分数,0表示某一相,1表示另一相,而0到1表示两相界面
这里的水平集函数是一个smoothed step function
而我们一般在文献中看到的水平集函数是距离函数
回复 不支持

使用道具 举报

 楼主| 发表于 2011-5-15 10:21:50 | 显示全部楼层 来自 重庆沙坪坝区
本帖最后由 sdny7788 于 2011-5-15 10:39 编辑

3# shoney
那这样的话不是可以理解成改进过后的VOF方法,如果这样的话那就不应该存在level set方法固有的质量不守恒的问题啊?而且水平集方程右端的稳定化参数Y说明书中解释为重新初始化参数似乎正好对应很多文献中提到为了解决质量不守恒提到的重新初始化方程,是否comsol中将其糅合在一起?在<multiphysics modeling with finite elements methods>书中的第八章中提到comsol中用相回注方法代替再次初始化,因为用到弱形式所以一直没看懂,找了一些关于弱形式的书看了看,头更大,哪位高手可以指点一二啊,先在此谢过了!
顺便问问水平集那两个参数gamma和epsilon主要影响初始化的效果还是对后来计算都有很大的影响?是怎样的影响呢?

本帖子中包含更多资源

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

×
回复 不支持

使用道具 举报

发表于 2011-5-15 18:56:17 | 显示全部楼层 来自 法国
我最近也在关注这个"相回注的问题",但同样处于一种很模糊的感性认识中。

和楼主一起学习!
回复 不支持

使用道具 举报

 楼主| 发表于 2011-5-16 08:45:39 | 显示全部楼层 来自 重庆沙坪坝区
我也有看到你提到的老版本里用对流扩散模块处理水平集的例子,正是其中提到用“相回注”的方法解决“相泄露”的问题,并且说在两相密度差和粘度差很大的情况下泄露就会更厉害,我很想知道质量损失和“相泄露”什么关系?如果说质量从一相泄露到另一相的话,那么是否另一相的质量会增加呢?很迷惑。 5# soliton
回复 不支持

使用道具 举报

发表于 2011-5-16 14:52:02 | 显示全部楼层 来自 法国
"如果说质量从一相泄露到另一相的话,那么是否另一相的质量会增加呢?很迷惑。"

你那个word文档里面有这么一句话:“相泄漏不是偏微分方程系统固有的特点,而是在有限网格分辨率下通过平滑运算符人为引入的。如果有无穷小分别率和真实分布函数(Dirac delta和Heaviside),水平集方法能保证每相质量守恒。所以最直接,但是成本也高的处理方法就是使用高质量网格和陡峭的Dirac delta和Heaviside平滑函数。”

我的理解也不知道对不对,水平集法,本质上在计算流场的过程中是“模糊”了两相的区别的,只是由那个“额外”引入的“水平集方程”解出phi,再由phi给出和界面有关的“表面张力”以及相应的物性参数,作为体积力和方程系数给N-S方程。

这里有一个问题,就是在相界面上,物性参数有个“跳跃”,在数值计算上是不“好”的。为了计算的进行,就引入了“光滑函数”。但随后带来的问题是相泄露了。(数学上的细节,比如为什么会相泄露,这是我模糊的地方)。

那个弱解进行“相回注”的处理,我的理解是,每计算一个步长,“衡算”一下相的体积,和原来的有个差值,于是把这个差值作为水平集方程的“源项”在界面上某一点给“生成出来”。这个在对流扩散模块里面可以实现,但在化工模块里面的“水平集方法”里面如何实现,怎么把这个源项加进去,我们还没有尝试过。

照道理,comsol应该把这个过程直接做在软件里。但考虑到水平集方法还在发展过程中,一个商业软件要把这么细节的东西做完美,可能也不是当务之急。

如果界面附近的网格能够特别小(也就是专门针对界面附近网格细化,就是界面演化到哪里,就细化哪里的网格。),能部分解决这个问题。我曾经看到有把“水平集”和“动网格”结合起来做的文献,利用动网格的remesh功能专门细化界面处的网格,但那个有点超出我的能力了,搞不定。
回复 不支持

使用道具 举报

 楼主| 发表于 2011-5-16 21:43:17 | 显示全部楼层 来自 重庆沙坪坝区
“那个弱解进行“相回注”的处理,我的理解是,每计算一个步长,“衡算”一下相的体积,和原来的有个差值,于是把这个差值作为水平集方程的“源项”在界面上某一点给“生成出来”。这个在对流扩散模块里面可以实现”
不好意思,请问这个在对流扩散模块里是怎样实现的?可否再解释一下,不是很懂,谢谢soliton!
回复 不支持

使用道具 举报

发表于 2011-5-17 15:00:19 | 显示全部楼层 来自 法国
这个问题说来话长,我也说不的清楚。下面有段话描述了一下它大致的做法。最后通过某个点上的“弱约束”在求解矩阵的过程中满足这个守恒的条件。在方程系统中加了一个“weak form point model”。这个原理上的东西,我需要好好学学。似乎目前我所有的问题都在对这个“weak form”的理解上了。 共同学习!

本帖子中包含更多资源

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

×
回复 不支持

使用道具 举报

 楼主| 发表于 2011-5-17 18:39:49 | 显示全部楼层 来自 重庆沙坪坝区
恩,这个我也看到过,不过就是没搞明白作者到底是怎样实现的,还是有限元的基础理论不够啊。有限元的东西我之前一点都没有接触过,感觉很困难啊。
回复 不支持

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-4-26 14:50 , Processed in 0.039756 second(s), 11 queries , Gzip On, MemCache On.

Powered by Discuz! X3.5 Licensed

© 2001-2024 Discuz! Team.

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