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

[13.脚本命令] COMSOL中用有限差分法求曲率?

[复制链接]
发表于 2010-9-1 17:00:01 | 显示全部楼层 |阅读模式 来自 广东深圳
还是那个曲率问题,问了个文献作者老外,老外回复说:
1. generate the geometry in such a way that the bubble surface contains many points (e.g you can seed the points using comsol GUI, and the decrease the liquid pressure to inflate the bubble to its steady-state spherical shape)

2. specify a separate function written in Matlab to calculate the curvature at a given point with a given set of coordinates of neighbouring points (simplest case - two neighbours)

3. using the above function - calculate the local curvature a the geometry points (using available menu options in COMSOL)

          1、在泡泡壁上种好多点?   我会种了
          2、用MATLAB写一个函数来求解某一个点的曲率? 这个怎么在MATLAB中表示COMSOL中的两个相邻的点呢?
          3、用这个函数来求解各个点的曲率?是把函数写在point expressions中吗?那point expressions似乎不能写在boundary setting中呀?

          我简直要撞死在这个曲率问题上了,哪位高手救救我吧!

评分

1

查看全部评分

发表于 2010-9-1 19:29:32 | 显示全部楼层 来自 湖北武汉
Simdroid开发平台
其实这就是界面跟踪问题啦!在vof,level set,MAC中都有求曲率方法,他给你的方法应该是MAC法。就是通过在界面上设mark点。这些点在速度场作用下移动实现对界面的跟踪,通过这些点从而求曲率。其实你在comsol中不一定要设点的,因为有level set,最后一项不是有一个表面张力嘛。表面张力中有一项是用于求界面曲率的。我想你要做的是通过这个公式如何去提取点处的曲率。我也在考虑这个问题,在机会交流下。

评分

1

查看全部评分

回复 不支持

使用道具 举报

发表于 2010-9-1 23:50:36 | 显示全部楼层 来自 法国
其实这就是界面跟踪问题啦!在vof,level set,MAC中都有求曲率方法,他给你的方法应该是MAC法。就是通过在界面上设mark点。这些点在速度场作用下移动实现对界面的跟踪,通过这些点从而求曲率。其实你在comsol中不一定 ...
zqlgeo 发表于 2010-9-1 19:29
楼主的问题是他不是两相流的模型啊。如果他肯用Level set 做,这个问题肯定可以解决。

不过我也不知道该怎么弄。关注一下。
回复 不支持

使用道具 举报

 楼主| 发表于 2010-9-2 09:27:37 | 显示全部楼层 来自 广东深圳
楼主的问题是他不是两相流的模型啊。如果他肯用Level set 做,这个问题肯定可以解决。

不过我也不知道该怎么弄。关注一下。
soliton 发表于 2010-9-1 23:50


我尝试了一下level set,是不是level set的气液界面不能加载压力呀?我需要在这个界面加载P呢?

本帖子中包含更多资源

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

×
回复 不支持

使用道具 举报

 楼主| 发表于 2010-9-2 09:48:02 | 显示全部楼层 来自 广东深圳
还有kinggun版主说到的用三次样条插值来对离散点求曲率,然后在comsol with matlab 中调用这个脚本。是怎么个调用法呢?
我找到了一篇文献,是用三次样条插值来做的,貌似很复杂,看不大懂呀!

本帖子中包含更多资源

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

×

评分

1

查看全部评分

回复 不支持

使用道具 举报

 楼主| 发表于 2010-9-2 11:16:44 | 显示全部楼层 来自 广东深圳
本帖最后由 hgniang 于 2010-9-2 11:19 编辑
楼主的问题是他不是两相流的模型啊。如果他肯用Level set 做,这个问题肯定可以解决。

不过我也不知道该怎么弄。关注一下。
soliton 发表于 2010-9-1 23:50


我试了一下Level set,建模还是只建了液体部分,就没有interior boundary这个问题了。但是发现它的控制方程和流体navier-stokes方程不一样呀。
level set 的subdomain setting的方程
incompressible navier-stokes的subdomain setting 的方程

用level set 的话,是不是在边界上不用自己加上表面张力的表达式了?它的控制方程最后一项已经有了?

本帖子中包含更多资源

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

×

评分

1

查看全部评分

回复 不支持

使用道具 举报

发表于 2010-9-2 16:02:21 | 显示全部楼层 来自 法国
"level set的气液界面不能加载压力呀?我需要在这个界面加载P呢?"

"用level set 的话,是不是在边界上不用自己加上表面张力的表达式了?它的控制方程最后一项已经有了?"

我的理解不一定对啊:对于第二个问题,确实,控制方程的最后一项就是表面张力,什么曲率,表面张力系数全在这一项里。这是Level set方法的一个最大好处,它不管气体、液体,认为是一个体系,通过额外引入的Level Set 方程来确定哪里是界面(函数phi).

理解这个之后,如果要在界面上施加载荷,应该也是往这个方程中写。通过phi判断哪里是界面,然后只在界面上施加压力。

至于是不是直接写就可以,我也说不好。还请高手来指点一下。

评分

1

查看全部评分

回复 不支持

使用道具 举报

发表于 2010-9-2 16:11:41 | 显示全部楼层 来自 法国
方程中的那个F,是个活口,可以在这把你想加的压力以水平集phi的函数形式加进去。

从方程的本质来讲,这样直接加有没有物理意义,或者说这个力从哪里来的,会不会导致什么“动量”不守恒啊,是一个问题。(因为N-S方程本身是从动量守恒、质量守恒来的)

我最近的一个问题是:level set算出来,一个气泡在流体中上浮,最后到后来,气泡“质量”越来越少了!违背质量守恒啊。该怎么弄?借这个帖子,同时也请教一下。

评分

1

查看全部评分

回复 不支持

使用道具 举报

发表于 2010-9-2 17:07:26 | 显示全部楼层 来自 浙江杭州
level set在physics-properties中,可以选择质量守恒和不守恒的! 8# soliton
回复 不支持

使用道具 举报

发表于 2010-9-2 17:23:53 | 显示全部楼层 来自 浙江杭州
在level set中,后面的向量n就是相界面的法向向量,k就是曲率。
如果想知道曲率,是否可以在后处理的显示中直接将其表达示输入expression中进行显示呢?
回复 不支持

使用道具 举报

发表于 2010-9-2 19:37:35 | 显示全部楼层 来自 法国
level set在physics-properties中,可以选择质量守恒和不守恒的! 8# soliton
水加火花 发表于 2010-9-2 17:07


谢谢提醒!没错,我就选了“守恒”的那个。

但后处理要看气泡的形状,以phi=0.5为界面,发现气泡越来越小了!关键是还有一些phi<0.5的,其实那就是气体的质量,似乎“溶解”到液相中去了。如何来表达这个事情?纠结啊。
回复 不支持

使用道具 举报

 楼主| 发表于 2010-9-3 09:46:16 | 显示全部楼层 来自 广东深圳
在level set中,后面的向量n就是相界面的法向向量,k就是曲率。
如果想知道曲率,是否可以在后处理的显示中直接将其表达示输入expression中进行显示呢?
水加火花 发表于 2010-9-2 17:23



level set后处理中有mean curve这一项可以显示的吧
回复 不支持

使用道具 举报

发表于 2010-9-4 00:26:25 | 显示全部楼层 来自 法国
遇到一个问题和楼主这个问题非常象:有一个类似气泡的东西(金属液,二维,初始形状为圆),由于它内部有个力(满足某函数A分布)导致的流动,这样边界会变化。而边界上的某个函数必须满足特定的一个值(或者某个函数,和A有关)。

这个问题能用水平集来求吗?
思路是这样的:

求解域中心部分是这个圆,外部是空气区域,它们的界面用level set 描述。
先求解和A相关的这个函数(基本PDE里有),然后得到整个求解域中的力(可定义空气区域没有力),再求解流动和界面。

问题是:这个界面处的边界条件,也就是它必须时时满足的那个条件,如何加进去?


也就是说:楼主的那个气泡的边界,如果用level set 来做的话,它要满足的那个压力形式,如何设定。(我自己都有点晕了)
回复 不支持

使用道具 举报

发表于 2010-12-5 15:31:59 | 显示全部楼层 来自 湖北武汉
守恒问题搞了好久,用守恒形式计算,收敛太慢,且经常不收敛,用非守恒形式,质量又减小.真的无语呀.上面哪位对这个有好的办法?求助下.
回复 不支持

使用道具 举报

发表于 2011-5-22 15:26:51 | 显示全部楼层 来自 上海长宁区
lz可以尝试用navier stokes 和convection diffusion 结合的办法自己写水平集方法,表面张力里的项都是自己写进去,当然也包括曲率。在后处理的时候就可以得到
回复 不支持

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-4-20 05:59 , Processed in 0.064092 second(s), 22 queries , Gzip On, MemCache On.

Powered by Discuz! X3.5 Licensed

© 2001-2024 Discuz! Team.

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