找回密码
 注册
查看: 11070|回复: 37

基于paramesh三维并行自适应code的开发及其在MHD模拟中的应用

[复制链接]
发表于 2009-3-17 16:30:12 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

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

x
我们在并行自适应工具包PARAMESH的基础上实现磁流体并行自适应计算(二维、三维)。
实现了中心迎风差分的CT格式、相应的插值算法和误差控制等功能模块。
特别采用CT算法满足了磁流体计算所要求的磁场散度为零的限制。
算例表明,我们的计算能自动地捕捉磁流体模型的奇性变化,并可保持磁场散度在10的-12量级左右。

附件展示的是两个MHD算例的结果:一个是二维的结果,一个三维的初步结果。

我的所学专业是空间天气学,所以下一步打算优化代码,
并推广到三维太阳风模拟和CME传播事件研究。
目前还有许多困难,特别是太阳内边界的处理,因为太阳表面是球面,
而代码中采用的是规则的笛卡尔坐标,自适应网格在太阳边界如何运作的,
边界差值如何实现等等?还有待做细致深入的调研工作。
深知自己目前无论在知识储备或是经验方面都有许多欠缺,只希望在此起到抛砖引玉作用。

因为国外已经发展了很多成熟的空间天气软件,国内目前做MHD并行自适应研究的还不是很多。
希望有这方面经验或者兴趣的前辈和朋友多多指教。
您的意见对我会有很大启发和帮助,您的参与讨论也是对我的莫大鼓舞。

谢谢 ^^

[ 本帖最后由 shzhang 于 2010-3-8 20:24 编辑 ]

二维MHD算例:激波磁云相互作用—密度contour图和磁力线

二维MHD算例:激波磁云相互作用—密度contour图和磁力线

自适应(AMR)blocks

自适应(AMR)blocks

三维vortex问题:AMR blocks

三维vortex问题:AMR blocks
 楼主| 发表于 2009-3-18 09:18:37 | 显示全部楼层

回复 1# shzhang 的帖子

引用:【原创】并行自适应MHD模式,两维vortex问题动画
[这个贴子最后由zzuhuyan在 2007/12/25 05:36pm 第 1 次编辑]

http://www.cfluid.com/bbs/viewthread.php?tid=37085

目前的工作是在zzuhuyan的基础上做的。吃水不忘挖井人啊,正是他前面的良好的程序框架,为我开发三维代码扫除了许多障碍!
在浏览网页中看到了版主Merryfish对此贴的留言,才知道原来一年前就在此讨论过啊...

里面也有Merryfish贴的自适应方面非常漂亮的结果,大家有兴趣可以看看!

里面的讨论我现在看了还受益不少。

[ 本帖最后由 shzhang 于 2010-3-16 16:55 编辑 ]
 楼主| 发表于 2009-3-24 09:29:10 | 显示全部楼层

推荐一个网站:空间天气模拟中心(CSEM)

推荐一个不错的网站:

密西根空间天气模拟中心(CSEM)

http://csem.engin.umich.edu/

"The overall goal of CSEM is to develop high-performance, first-principles based computational models to describe and predict hazardous conditions in the near-earth space environment extending from the sun to the ionosphere, called space weather.“

”In order to achieve predictive capability, the models must run considerably faster than real time on mid-size parallel computers. ”

描述中提到为了达到预报的要求,并行、自适应算法是该模型的基本要素之一。

附件说明:
这是文献中的一幅图例,展示了自适应技术可以自动捕捉需要加密的或者特别关注的计算区域,同时节省了大量的计算资源。
该网站中有一些很精彩的动画展示。

我目前在调研一些国外成熟的空间天气软件中,并行自适应技术扮演的角色,及发展趋势。要对此有一个整体上有一个概念。
下一步目标是把并行自适应技术引入到太阳风的模拟和日冕物质喷发(CME)的扰动传播中,首先要能够正确运行,出合理的结果。

[ 本帖最后由 shzhang 于 2009-6-15 08:32 编辑 ]

太阳风及自适应blocks—CSWM

太阳风及自适应blocks—CSWM
 楼主| 发表于 2009-3-29 22:09:11 | 显示全部楼层

回复 3# shzhang 的帖子

———关于压强出现负值的讨论———

在用该代码(二维\三维)计算扰动很强烈的问题时,个别计算时间步发现了压强出现负值,尤其是刚开始间断最强烈的时间段内,这个问题困扰了很久,曾经尝试在压强出现负值的时候改用压强方程替代能量方程计算,问题有所缓解,但是不能从根本解决,所以一直没有找到合适的解决方案。
这是代码本身的小小缺陷,所以很想突破。

也许这是和算法相关的问题,不知道谁遇到类似问题没有?
你是怎么考虑的?请多提宝贵意见。在此首先对你表示感谢了^^

[ 本帖最后由 shzhang 于 2009-6-1 11:40 编辑 ]
发表于 2009-3-30 08:47:09 | 显示全部楼层
非常不错。假如你想用规则网格,又想应用复杂边界,一个可能的方法之一就是IBM方法。至于说太阳附近加密搞自适应,应该和别的地方没有本质区别吧?自适应加密不就根据某个量的梯度来的吗?
发表于 2009-3-30 17:18:14 | 显示全部楼层

浸入式边界条件

IBM浸入式边界应该可以的,我们这有人用他(RANS方程)。
发表于 2009-3-31 00:14:21 | 显示全部楼层
RANS方程 三维的还是二维的?边界运动么?
发表于 2009-3-31 03:58:04 | 显示全部楼层
给个链接凑热闹

http://www.ae.gatech.edu/people/sruffin/nascart/index.htm

paramesh的要求太高,很多功能也没有,整体上还是research code, 不是一个engineering code。当然在天体方面问题足够了,
在实际流动模拟的时候,复杂几何形状如何处理? 多重网格实现? 多相流动的Lagrangian算法怎么整合进去?

有朋友用过IBM,但是都放弃了:还是同样的问题,算research的低Re数流动很好,但是高Re数好像就不行了,网格数上去优点就不够明显了。看文章的时候只要是IBM的文章就看是否有高Re算例,否则意义不大。(朋友的观点,我没有实战经验)

楼主为什么没有考虑 SAMRAI 呢?
发表于 2009-3-31 07:50:53 | 显示全部楼层
S-IBM 大概能算10^4~10^5的Re量级。

楼上推荐的连接只有简单介绍嘛

[ 本帖最后由 onesupeng 于 2009-3-31 00:09 编辑 ]
 楼主| 发表于 2009-4-17 18:08:10 | 显示全部楼层

贴球体自适应cut cell的网格划分

这是最近实现的贴球体自适应cut cell的网格划分及动画。

调研发现cut cell 方法(或者Embeded Boundary method)还是比较适合并行自适应的。

“...... In conclusion, embedde dboundary methods are a fast, efficient and simple technology
for handling grid generation forcomplex geometry and, when combined with adaptive mesh refinement,
provide a powerful high-resolution tool for modeling multi-scale fluid dynamics in complex geometry.”

参考文献:《Performance of Embedded Boundary Methods for CFD with Complex Geometry》
                                                            ----- Phil Colella et.al 2008

目前遇到的问题:
1、与球面相接的非均匀结构的cut cell 需要标记和计算通量特殊处理。我想主要是数学方面的,还没找到有具体的方案。
2、Paramesh 内部有些通信函数也需要修改,来适应这种要求。特别是内边界"ghost cell"的处理问题。

    感谢楼上几位朋友的留言和讨论.

[ 本帖最后由 shzhang 于 2009-4-28 11:17 编辑 ]

贴球体的cut cell

贴球体的cut cell

贴球体的自适应网格的block是

贴球体的自适应网格的block是
 楼主| 发表于 2009-4-17 19:15:43 | 显示全部楼层

gif 动画附件太大 不能上传

球面自适应网格生成的gif 动画附件太大不能上传。

而通过转换软件,变小之后的动态效果不好。

请您见谅 !

[ 本帖最后由 shzhang 于 2009-4-28 11:18 编辑 ]
 楼主| 发表于 2009-4-28 11:29:07 | 显示全部楼层

overlapping (重叠网格/网格耦合) 也是不错的选择

调研发现网格耦合也是一个可行的选择。But neither cut-cell nor over-lapping is easy to overcome.

下面是一个关于over-lapping grid 并行自适应计算的链接。
有开源的代码及使用说明,还有相关的papers......

https://computation.llnl.gov/casc/Overture/

May it be helpfull to you toooo  ^^

[ 本帖最后由 shzhang 于 2009-4-28 11:39 编辑 ]
发表于 2009-5-1 04:55:21 | 显示全部楼层
Your picture looks nice. Can you tell me which version of PARAMESH you use?
 楼主| 发表于 2009-5-3 21:58:10 | 显示全部楼层

回复 13# merryfish 的帖子

merryfish 您好!我现在用的是Paramesh4.0
 楼主| 发表于 2009-5-12 20:46:57 | 显示全部楼层

尝试挖洞计算--cut cell

在处理太阳风模拟中,太阳内边界的处理是很关键的。
若想用规则的长方体网格逼近太阳球体,需要用到cut cell method or Embeded Boundary(EB).
这里用简单的扩散问题,尝试了“挖洞技术”即cut cell。其中也改动了Paramesh的源代码。
这是一个小小的突破;相信从简单的开始尝试,对于具体物理内边界问题的解决会有帮助。

---------------------------------------------------------------------------------------------------------------------
雄关漫道真如铁,
而今迈步从头越。
从头越,
苍山如海,
残阳如血。

[ 本帖最后由 shzhang 于 2009-5-12 20:48 编辑 ]

中间最深色的是空洞区域

中间最深色的是空洞区域

其中红色块代表挖洞区域

其中红色块代表挖洞区域
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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