找回密码
 注册
查看: 4096|回复: 0

[转载]openfoam 网格类的编程方法

[复制链接]
发表于 2009-2-10 23:36:25 | 显示全部楼层 |阅读模式

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

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

x
openfoam对于读入的网格,会进行一系列严格的检验,所以下面也会写一些它到底检测了写什么东西。

Points:

在Openfoam中,point是用单位为m的3维矢量来定义的。所有的点都被保存在一个list中,用list中的位置标号来代表这个点。
对于点,openfoam检测如下两个方面:
1. 包含points的list中是否有坐标完全相同的点。
2. list中的point是否都至少属于一个面。

Faces:

在openfoam中,包含有序点的一个list(A face is an ordered list of points)。在这个list中,点是用标号来表示的。点标号按照如下要求排列:每两个相邻的点都构成面的一条边。也就是所在这里list中,可以任意选取一个点作为list的第一个元素,然后按照顺时针或者逆时针方向依次找到面上的点,插入到list中。在openfoam中,所有的面都被包含在一个 list中。并且用该面在list中的位置标号来表示这个面。面的法线方向按照该面中包含点走向的右手法则来定。(如果点是按照逆时针方向排列的,则法线方向指向我们自己)。
在openfoam中有如下两种面:
1. 内部面:这些面连接并且只能连接2个cell,对于每个内部面,面中点按照下面的规则来排序:面的法线方向指向cell标号比较大的那个cell。
2.边界面:这些面只属于一个cell。一个边界面is addressed by one cell(only) and a boundary patch。 边界面上点的排序规则如下:面的法线方向point outside 计算区域。

面需要满足如下的条件:
一般来说面应该是凸面,或者至少面的质心应该位于面里面。面可以是弯曲的(所有的点不需要共面)。

Cells:

在openfoam中,cell是faces的一个list。在list中faces可以任意排列。
cell需要满足如下的条件:
1. contiguous
2. convex:Every cell must be convex and its cell centre inside the cell
3. closed:包含两方面的意义:
  (1)几何封闭:当所有的面矢量都指向外法向时,他们的和应该等于0.
   (2)拓扑封闭:在本cell中的所有的线都必须属于两个面。
4. orthogonality:对于所有的内部面,我们把从小标号cell质心指向大标号cell质心的矢量定义为质心-质心矢量。正交限制要求:对于每个内部面,面积矢量与质心-质心矢量的夹角必须小于90度。

boundary:

边界是一系列patches的list,每一个patch都和一个边界条件联系在一起。(A boundary is a list of patches)。
patch是面标号(face labels)的list(实际上边界面标号的list)

边界需要满足的要求:
   边界必须封闭,也就是说所有边界面积矢量应该等于0.


本文摘自http://blog.pfan.cn/bioexplore/33163.html
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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