找回密码
 注册
查看: 3478|回复: 25

非结构网格编程的兄弟帮个忙

[复制链接]
发表于 2005-11-5 08:13:00 | 显示全部楼层 |阅读模式

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

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

x
[这个贴子最后由harry在 2005/11/06 07:16am 第 4 次编辑]

非结构网格中,控制体之间是怎么排序的,我应该看那本书
发表于 2005-11-6 15:21:37 | 显示全部楼层

非结构网格编程的兄弟帮个忙

控制体之间顺序是任意的. 点和面/面和体之间的关系要专门记录.
发表于 2005-11-10 02:45:37 | 显示全部楼层

非结构网格编程的兄弟帮个忙

along the flow direction, from lower to upper and left to right. This
kind of sorting can help accelerating convergence for some cases if you use implicit method.
 楼主| 发表于 2005-11-11 12:02:04 | 显示全部楼层

非结构网格编程的兄弟帮个忙

在非机构网格中,我知道一个网格的标号,我能取出与这个cell共点,共线,共面的cells的网格数据吗,这在结构网格是非常容易的一件事,比如说,我从gambit读出网格数据,我能根据这些数据得出每个网格(六面体)的27个邻近网格吗?
发表于 2005-11-11 13:01:18 | 显示全部楼层

非结构网格编程的兄弟帮个忙

一般只记共面的. 对一般有限体积法就够了. 共线/共点也能找到, 但要多花点功夫.
发表于 2005-11-11 16:02:43 | 显示全部楼层

非结构网格编程的兄弟帮个忙

呵呵,你可以看陶文全老师的《计算传热学的近代进展》,上面附有非结构化网格程序,你也可以跟我联系,我可以给你一个生成非结构化网格的程序,sun_2001_2000@tom.com
 楼主| 发表于 2005-11-13 08:24:54 | 显示全部楼层

非结构网格编程的兄弟帮个忙

我主要要用这些东西进行气固耦合,我现在采用的跟踪颗粒方法需要这些信息,虽然有其它的颗粒跟踪方法不要这些信息,但那些方法不是搜索速度慢,就是计算颗粒的信息不准确,我现在的方法在单块结构网格上用起来效果很好,但用到多块,需要处理块与块之间的信息,非常麻烦,最主要还要知道网格复杂的拓扑结构,用到任意复杂几何体难度太大,所以我想用非结构网格,因为它不用特殊处理块与块的信息。但我又不知道能不能从gambit的网格信息弄出这些邻点信息。
发表于 2005-11-15 02:45:03 | 显示全部楼层

非结构网格编程的兄弟帮个忙

[这个贴子最后由anyone在 2005/11/15 06:08am 第 1 次编辑]

你用LAGRANGIAN方法做颗粒?
跟踪颗粒在CFD中是经常碰到的. 比如SPARY里面也用这些. 附体网格下就不是太好做了. 特别是找颗粒初始位置所在的网格, 用树的算法有一些,不知道有什么其他好方法了.
 楼主| 发表于 2005-11-15 06:51:57 | 显示全部楼层

非结构网格编程的兄弟帮个忙

你说的树的算法是quadtree/octree吧,我用的不是这个方法,找初始位我就直接全部搜索,一般10万颗粒,5000个网格不到1分钟搜索完,但这在计算中只需执行一次,以后就搜索附近颗粒,颗粒跟踪所用时间不多,主要还是在于颗粒间的碰撞。由于我判断颗粒碰撞方法用的不是quadtree/octree,所以track颗粒就没用这个,打算以后有时间用这个方法看看(但一直没想通怎么用来track颗粒,你能说说?),感觉用quadtree/octree也要网格不少信息。我的方法就是必需要邻点网格信息。
 楼主| 发表于 2005-11-15 07:10:49 | 显示全部楼层

非结构网格编程的兄弟帮个忙

mfix是用octree/quadtree搜索颗粒碰撞,但跟踪颗粒在网格的位置,它的方法太笨了。有个norway的也用这个搜索颗粒碰撞,他在文章中提到用这个方法来跟踪颗粒,但具体怎么做没说,你说"spary"? 用到这个方法,能详细说说吗?octree一般用来生成网格的文献很多,我没找到用来跟踪颗粒的,你能给推荐几篇文章?我现在就是想找到一种适合任意复杂拓扑结构的搜索方法,但方法要不被网格结构所限制。
发表于 2005-11-15 07:29:05 | 显示全部楼层

非结构网格编程的兄弟帮个忙

打错了. 我想说"SPRAY"也就是液体喷雾.
SPRAY我知道的多一点. 固体的没做过. SPARY里面碰撞都是近似在做, 固体的应该要求高一点.
已知初始位置后,搜索附近颗粒我觉的是不错的方法.
你的背景网格只是为了搜索颗粒位置用的吗?
我用过BOUNDING BOX TREE做初始位置搜索. 这些(包括SPRAY)都是很久前做的, 文献恐怕一时找不到了.
 楼主| 发表于 2005-11-15 07:49:50 | 显示全部楼层

非结构网格编程的兄弟帮个忙

[这个贴子最后由harry在 2005/11/15 07:59am 第 1 次编辑]

网格用途也不仅用来搜索颗粒,在气固耦合是到处都要用,但只要能确定颗粒在什么网格后,这些问题都解决了。
 楼主| 发表于 2005-11-15 08:01:56 | 显示全部楼层

非结构网格编程的兄弟帮个忙

BOUNDING BOX TREE是什么概念,能说说吗?
发表于 2005-11-16 01:21:04 | 显示全部楼层

非结构网格编程的兄弟帮个忙

BOUNDING BOX 其实概念很简单.
我们所要解决的是2个几何体相交的问题. 对2个任意形状的几何体, 检测它们是否相交的算法是比较复杂的. 如果有很多几何体要检测就会花很长时间.
加速的方法之一就是对相交用简单方法进行一次预选. BOUNDING BOX就是干这件事的.
所谓BOUNDING BOX就是一个能把几何体包起来的最小的长方体. 因为BOUNDING BOX都是长方体, 检测它们是否相交就很容易. 通过BOUNDING BOX从大量几何体中筛选出一些有可能相交的几何体, 然后再用更准确的方法确定它们是否真的相交.
即使用穷尽法, 合理使用BOUNDING BOX也可能节约大量时间.
BOUNDING BOX也可以做成搜索树以提高效率. 有类似OCTREE的, 也有用ADT TREE的. 具体做法还是有些复杂, 不是几句话说得清的.
 楼主| 发表于 2005-11-17 10:29:48 | 显示全部楼层

非结构网格编程的兄弟帮个忙

跟踪颗粒主要难点确实在于颗粒与颗粒单元的位置关系,尤其做密相的时候,如果要准确考虑就需要考虑颗粒与流体计算单元的交集,搜索树主要是把这些计算限制在一个局部范围内,以提高计算速度。要判断一个颗粒在不在一个网格内完全可以根据单元的顶点信息得到,但要计算交集就麻烦了,比如当颗粒被任意形状的六面条分割成几部分,要算出这个体积很难(有点向布尔运算的感觉),我现在做不到这步,只能近似处理,然后加点其它方法来缩小误差。
anyone,实际我现在想不通的是为什么要用BOUNDING BOX来判断颗粒与cell的关系,难到你截球了?颗粒与cell的关系可以直接通过cell的顶点关系得出呀。BOUNDING BOX好像在模拟不同形状物体碰撞用得比较多?你搜索每一个液滴,是采用局部搜索还是其它的?你解释的BOUNDING BOX在计算中的作用我有点想不通,要判断颗粒与单位的位置关系(就是看球在不在单元内),直接用单位的顶点信息和球的位置就行,为什么还要用BOX,如果box大小一样,明显能加快计算,但根据你上边说法,box大小好像不一样呀(与网格有关),并且如果得出了box与球的关系,但还确定不了球得位置,所以在处理过程中感觉还需要把box与cell的关系搞出来,弄这个关系和确定颗粒位置关系差不多麻烦。(我原来自己想过这种方法,当时没有BOUNDING BOX概念,后来越考虑越复杂,就放弃了)。
希望赐教
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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