铺砌法生成有限元网格模型_第1页
铺砌法生成有限元网格模型_第2页
铺砌法生成有限元网格模型_第3页
铺砌法生成有限元网格模型_第4页
铺砌法生成有限元网格模型_第5页
已阅读5页,还剩4页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、.铺砌法生成网格模型一、网格模型在有限元分析计算中的作用在工程设计中大量使用到有限元法进行计算分析.随着计算机辅助设计的发展,很多公司推出有限元软件.这些有限元软件分析计算几何体的物理性质,其计算的过程可以划分为几个大的模块,输入几何体区域、对该区域生成网格、对生成的网格施加一个干扰、从受到干扰的网格开发分析数据、确定几何体的物理行为。有限元软件的分析计算流程图如图1所示。图1 有限元软件分析计算流程图从有限元软件的分析计算流程图当中,我们可以看出,在有限元分析的前处理模块中,网格生成时很重要的一个步骤。生成网格的质量会影响后处理计算结果的效率和精度。因此,市场上流行的有限元软件都提供有强大的

2、模型建立和网格划分功能。网格划分功能的实现可以采用不同的算法,比如自由网格划分、映射法网格划分、铺砌法网格划分等等。其中铺砌法具有良好的健壮性、高效率等特点,本文对铺砌法网格划分进行详细介绍。二、铺砌法网格划分的总体计算流程采用铺砌法从模型建立到生成网格,其计算流程如图2所示。该算法生成网格的算法流程图,从输入边界数据到最后输出划分好的网格,其中主要有生成新行,平滑处理,缝合处理,边界相交处理等几个子模块。图2 铺砌法生成网格模型的计算流程图为了清晰阐述上述铺砌法的计算流程,以图3所示为例进行详细说明,图a当中为输入的原始外边界数据,围成待划分网格的区域。选择边界上的一行节点为基础,添加生成一

3、行新的浮动节点,生成顺序为沿着外边界按逆时针方向进行。对新生成的浮动节点进行平滑处理,使节点围成的单元的internal angle以及aspect ratio变得更为合理,单元更趋近于规则四边形。对剩余的待划分网格区域进行缝合,检查单元是否相交,对相交的单元进行处理,对单元进行调整,直到整个区域生成高质量的网格为止。图3 paving算法铺筑单元示意图依据图2所示计算流程图,生成相应铺砌法的伪代码:DoRow choiseWhile add row is not pleteAdd row portionSmooth row portionSeam boundaryIf intersectio

4、n occurs thenConnect overlapsSeam boundaryEnd ifRow adjustmentIf intersection occursConnect overlapsSeam boundaryEnd ifWhile (closure check is negative)Clean-up mesh三、分部详细说明铺砌法1.输入边界数据根据算法的流程图中,首先要输入待划分网格的边界数据,确定区域的内边界和外边界。明确得到边界节点数据之后,逐个对每个节点进行分析对对其进行分类,计算流程如图7所示。对节点分类的依据是该节点的内角,如图6所示。根据节点内角的大小,将其划

5、分为四类,分别为边节点,角节点,回转节点和端节点。图5平面区域的内边界和外边界图6节点相关的几个概念图7获取边界节点信息计算流程依据上图所示流程图,可以得到获取边界节点信息的伪代码:fstreamfread(boundary.txt);do Get node inner angleInput angle tolerance a1 a2 a3 a4 a4 a6 Classify the node3 While(node classify is not pleted)Determine whether a simple or primitive shape existPropagate succe

6、ssively inward from the permanent boundaries2.闭合检查每次确定待划分的面域之后都要对该面域进行一次闭合检查。检查区域边界上的节点总数;边界节点总数是否大于6,如果大于6,则选择一行节点,分别对每一行边界接点进行生成新节点;如果等于6,则对面域进行闭合,根据待闭合面域的形状形成两个、三个或者四个四边形单元;如图8所示;如果等于4,则插入一个四边形单元对面域进行闭合如果等于2,进行一次缝合,即可将面域闭合如果等于0,铺筑工作结束图8 六个节点面域的闭合方法闭合检查的计算流程图如图所示:图9检查闭合的计算流程根据图9所示的计算流程图,可以生成闭合检查的伪

7、代码:Get the number of nodes remaining in the paving boundarySwitch node numberCase 0Paving is pleteBreakCase 2Seam the boundaryBreakCase 4Insert a quadrilateral elementbreakCase 6Form 2,3,4 new quadrilateral elementsBreak3.新增行接口:上面一步进行闭合检查,如果待划分的面域,边界上的节点数大于6,则进行生成新行节点。首先选定的一行固定边界节点,根据该行节点分类,生成新的一行节点

8、。具体生成新行节点的计算流程图如图10所示.图10生成新的浮动边界节点的计算流程根据生成新的浮动边界节点的计算流程图,可以生成相应的伪代码为:选择一行已知的内边界或者外边界,该行以两个端节点结束确定一个端节点作为起始点,Do选中下一个节点,判断节点类型Case 2调用矢量对象的生成矢量方法生成一个矢量;如图11所示;矢量长度为|=;调用矢量对象的求解矢量端点方法,求解出该矢量的箭尾端点;调用节点对象的生成节点方法,将箭尾端点生成节点;将新生成的节点编号;将新生成的节点标志为浮动节点;Break;图11由边节点生成一个新节点Case 3调用矢量对象的生成矢量方法生成三个矢量,;如图12所示;矢量

9、长度分别为|=;调用矢量对象的求解矢量端点方法,求解出该矢量的箭尾端点;调用节点对象的生成节点方法,将箭尾端点生成节点;将新生成的节点编号;将新生成的节点标志为浮动节点;Break;图12由角节点生成三个浮动节点Case 4调用矢量对象的生成矢量方法生成五个矢量,;如图13所示;矢量长度分别为|=;调用矢量对象的求解矢量端点方法,求解出该矢量的箭尾端点;调用节点对象的生成节点方法,将箭尾端点生成节点;将新生成的节点编号;将新生成的节点标志为浮动节点;Break;图13由转角节点生成五个浮动节点Case 1不再生成新节点连接两个相邻节点即可,如图14所示该行结束Break;图14端节点不生成新的

10、浮动节点while(该行下一个节点不为空)新的一行边界生成完毕,新生成的节点都是浮动节点,需要进行平滑处理。4.平滑铺砌法网格生成中要保证新生成的单元的质量,单元的好坏从几个指标进行衡量,单元的内角没有过大或者过小的现象,单元边长的长宽比不宜过大。如果单元有角度大小不合适或者单元尺寸相差悬殊等情况,则需要进行平滑。平滑就是要恢复和维持单元的单元的尺寸、垂直度和总的铺筑边界和网格的平滑。平滑类型,可以分为三类,他们分别是:(1)boundary Node Smoothing (2)Interior Node Smoothing(3) Localization of smoothing ;三个平滑

11、类型分别对应三个平滑器。Smoother的三个平滑器分别为: a modified isoparametric smoother; modified length-weight Laplatian smoother; 以及Localized smoother。首先 modified isoparametric smoother的具体计算步骤:进行矢量的加减运算,如下式:如果该节点不是连接两个单元,则该修正到处结束;如图15所示。图15 新生成边界上节点长度调整示意图如果该节点仅连接两个单元,则要继续进行角度的调整,如图16所示,调用矢量对象的加减方法进行如下各式的计算:ifotherwise图

12、 16 行节点上角度调整示意图其次对于Interior Node Smoothing 采用modified length-weight Laplatian smoother方法,如图17所示,其具体步骤是:调用矢量对象的加减运算,求模运算方法,进行如下各式的计算:图17 内部浮动节点的调整示意图通过以上计算得到的修正矢量,对原来的定位矢量进行修正,生成新的节点坐标,用新的节点坐标替代原来的节点坐标。根据以上叙述,节点平滑的计算流程图如图18所示。图18节点平滑的计算流程图依据节点平滑的方法和计算流程图,可以生成节点平滑的伪代码:DoIdentify a nodeGet the interior

13、 angle of the nodeGet the number of attached elements to the nodeJudge whether the node is a fixed node While (the new row is !NULL)For every node on the new row Calculate its aIf the number of attached elements to the node is not 2Adjust the nodes position according toaElse if the number equals 2Ca

14、lculatebCalculatecCalculateiAdjust the nodes position according to iEnd ifFor every interior floating node CalculateiAdjust the nodes position according to i5.缝合在区域边界上,如果某个顶点的两条网格线的夹角过小,则对该节点的网格进行缝合。按照待缝合的节点类型不同(节点全部是浮动节点、要缝合的节点中涉及到固定节点),缝合可分为InteriorNodeSeams和FixedNodeSeams以及TransitionSeams;首先介绍Int

15、eriorNodeSeams是否需要缝合的判断条件:根据节点的内角的大小和节点连接的单元数量来判断:当连接到节点的单元边界数量=5时,其内角1 时需要缝合当连接到节点的单元边界数量=4时,其内角ThresholdValue时,需要进行过渡缝合Transition Seam方法:在长边内insert a wedge element ,插入长边的三分之一处,采用定比分点的方法定位该点,插入一个楔形单元之后,对新插入的楔形单元进行平滑。采用线段的定比分点方法确定位置且则,Double ratioNode(Node p1,Node p2,intra) Node p;p.x=(p1.x+ra*p2.x)

16、/(1+ra);p.y=(p1.y+ra*p2.y)/(1+ra);return(p); 6.调整行生成新行之后,如果一行单元有较大的凸起或者凹曲,如图19所示,则需要对行进行调整。进行行调整的方法有两种:InsertionOfWedges和FormationOfTucks形状呈现很大凸起的行,调整方法是首先插入一个楔形体,然后进行平滑,对于形状有很大凹曲的行,调整方法是FormationOfTucks图19需要进行调整的行判断单元是expansion还是contraction的方法:采用两个评价指标Expansion Ratio()是否超过了给定的expansion ratio thresh

17、old(1.25)Interior angle of the node 是否超过了给定的interior angle threshold value183对于expansion的单元插入wedge,方法步骤是:首先,确定wedge的插入位置,其插入位置是在At the midpoint of every Pi/2 portion of the total angle,如图20所示。图20在凸起行内插入wedge的步骤示意图对于contraction的单元形成tucks,方法步骤是:是否需要形成折叠采用两个评价指标:Reduction ratio是否小于reduction ratio thres

18、hold(0.8)Interior angle of the node 是否小于interior angle threshold (177)Tucks的位置At the midpoint of every Pi/2 portion of the total angle找到刚刚确定的Tucks的位置的单元,删去该单元的内侧网格线,superimposing两对相对应的边,之后进行平滑。如图21所示。图21形成TUCK的过程步骤示意图以上详细说明了行调整的方法步骤,其计算流程图如图22所示。图22 调整行的计算流程图7.边界相交的处理在插入新行之后,需要判断新插入的行形成的边界是否相交。边界相交可

19、以分为两种情况,分别是:边界自身相交和两条边界相交两种情况。相交的示例图如图23所示图23铺筑边界相交的两种情况边界相交的判断方法:首先说明Single paving boundary intersection的情况判断边界相交的方法原理:点在坐标系中对应有自己的位置矢量,不同的点其位置矢量不一样,如果两条线有一个交点,则这两条直线上的所有点,只有交点的位置矢量相等。即:位置矢量表达式,采用解析法表达为:x,y轴上两个分量形式:即:如果该二元一次方程组无解,则没有交点如果有一组解,则有一个交点如果有很多组解,则两个重合。判断结果有交点的话,则处理方法是:Connecting the overl

20、apping portions 即:连接相交的两条线对相交的两条线相毗邻的线进行合并之后进行缝合。判断结果如果无交点,则继续下一步。根据以上介绍,边界相交的判断和处理计算流程图如图24所示。图24处理边界相交的计算流程图其次说明Multiple boundary intersection判断边界相交的方法原理:点在坐标系中对应有自己的位置矢量,不同的点其位置矢量不一样,如果两条线有一个交点,则这两条直线上的所有点,只有交点的位置矢量相等。即:位置矢量表达式,采用解析法表达为:x,y轴上两个分量形式:即:如果该二元一次方程组无解,则没有交点如果有一组解,则有一个交点如果有很多组解,则两个重合。判断结果有交点的话,则处理方法是:Connecting the overlapping portions 即:连接相交的两条线对相交的两条线相毗邻的线进行合并之后进行缝合。8. 网格划分完成之后的清理Cleanup of pleted mesh网格划分完成之后,要对不规则的网格进行清理,以保证整个网格划分结果的

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论