Ansys映射网格划分.doc

  1. 1、本文档共3页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多

一、映射网格划分方法

映射网格划分一直是大家关心的问题,现把自己使用ansys的一些经验及编程的真实体会奉献给大家,希望能达到授之以渔的效果。

ansys执行映射网格划分的条件是:对于面,必须是三角形或四边形,对于体,必须是四面体、五面体或六面体,这是众所周知的,但往往忽略了另一个条件:划分数的匹配问题,对于四边形而言必须满足对边划分数相等的条件,对于三角形,在后面作专门介绍。其实ansys不仅可以对三角形和四边形执行映射网格划分,对任意多边形原则上(划分数匹配)都可以执行影射网格划分,这些方法包括:面的切割、线的合并等,这些方法也可以用在体的映射网格划分上。我今天要介绍的是另一种方法(可能在论坛上已经有类似的介绍,但我还没有看到,如果有,就算重温吧)也即amap命令(基于面的角点的映射网格划分)的使用,它需要指定要划分的面的编号,以及以任意顺序指定该面上的任意4个角点(注意:任意四个角点是有前提的,即划分数的匹配,为了不再罗嗦,以后不在重复强调这个问题)。看一个简单的例子(如图1,尺寸见坐标),这个图形由3个面组成其中A2和A3满足映射网格划分的条件,A1看起来是个矩形但其实由5条边组成,要实现A1的影射网格划分,你可以用工作平面将其沿着L6切开,但这样就会多出一条线,某些情况是不希望有多余元素生成的,比如把图1看成是一块楼板,线就是梁,如果切割后就多出了一条线,对以后定义梁造成不便。这个问题不能用lcomb命令将线2和线4合并(自己可以试一下),另一个方法就是用amap,1,4,7,8,6。理论上amap命令可以用于任何多边形,但往往理论是实际是有差距的,还是刚才那个例子,如果你将线的划分尺寸定义为1(lesize,all,1),则线10的划分数为1,线2和线4各为1,然后你再用同样的命令amap,1,4,7,8,6,看看有什么结果——划分数不匹配,不能进行映射网格划分。相关命令流如下:

/PREP7

k

k,,1

kgen,3,1,2,1,,1

a,1,2,4,3

a,3,4,6,5

et,1,42

wprota,,,90

wpoffs,,,0.5

asbw,1,,dele

amap,2,3,4,5,6

aclear,all

lesize,all,1

amap,2,3,4,5,6

以上命令流所建模型的编号跟图1有些不同。从这个简单的例子大家应该能够体会到划分数匹配的重要性了,实际工程中的图形远比这个复杂得多,要想完全满足划分数匹配的条件是很不容易的,甚至可以说几乎不可能,除非全部分割成4边或3边形,但这样会产生很多小面影响网格划分的质量,这在建筑结构中是很常见的,我做过几个实际工程,深有体会。因此amap命令的使用也有局限性,在实际工程中可以综合使用多种方法以达到最优化。

二、映射网格划分如何用程序实现

下面仅介绍平面四边形(直边)映射网格划分实现的详细过程,其他仅给出思路。

首先将某对边线按划分数N,比例因子R离散为N+1个点,如图2。如果第1个点的x坐标为X1,第N+1个点的x坐标为XN+1,则第i个点的X坐标为:

Xi=X1+(XN+1-X1)*(R^(i-1)-1)/(R^N-1)(R≠1)

Xi=X1+(XN+1-X1)*(i-1)/N(R=1)

Y、Z坐标以此类推,这是递增和递减的情况,由中心向外递增和递减的情况可以自己推导。

离散后的情况如图3,并连接各离散点,得到N+1条线,然后根据这N+1条线的划分数M及比例因子S在这个方向进行离散,结果如图4。在离散的过程中顺便给节点编上号并赋其坐标值,节点编号的原则一般为从左到右,从下往上递增(编号方式与ansys不同)。然后给单元编号赋值(节点、材料等),也是按从左到右,从下往上编号递增。如第5个单元的节点编号为7,8,11,10(一般按顺时针或逆时针的顺序赋节点编号),单元的节点编号是有规律的可以通过程序实现。这样就完成了一个面的四节点映射网格划分,然后再按同样的步骤划第2、3……个面,不过要进行节点重合的检查。

对于三角形单元,可以先划分成四边形单元,然后按单元数循环,将每个四边形单元划分成两个三角形单元。举例如下:

Fori=1:1:en

Nn=elem.node{i};

Elem.nodetri{2*i-1}=[Nn(1)Nn(2)Nn(3)];

Elem.nodetri{2*i}=[Nn(3)Nn(4)Nn(1)];

End

以上是MATLAB语言,进行以上操作以后就可以得到2en个三角形单元,单元的节点编号存放在Elem.nodetri中。

对于8节点等二次单元可以在四节点单元的基础上,在各单元边中分别产生一个节点,节点坐标即两个节点坐标的平均值。

文档评论(0)

Seiryu + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档