- 1、本文档共29页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
有限元设计软件生成网格的PAVING算法
一、简介
使用有限元软件分析计算几何体的物理性质,其计算的过程可以划分为几个大的模块, 输入几何体区域一为该区域生成一个网格一对生成的网格施加一个干扰一从受到干扰的网 格开发分析数据一确定几何体的物理行为。分析计算流程图如图1所示。
Input thegeometric region
*
Genereate a meshfor the region
Apply a stimulusTo the generatedmesh
Analyse thestimulated mesh
Develop analysisdata from thestimulated mesh
Determine the
physicalbehavior of thegeometric region
图1有限元分析的模块
在有限元分析的前处理模块中,网格生成时很重要的一个步骤。生成网格的质量会影响 后处理计算结果的精度。当前,行业内流行多种网格生成的算法,各有各自的特点,该部分 内容在本文国内外研究现状一节中已经详细阐述。其中paving算法健壮性良好,计算速度 快,而且生成的网格质量好。本节主要阐述采用C++语言实现paving算法的实现过程。如图 2所示,采用paving算法生成网格的算法流程图,从输入边界数据到最后输出划分好的网格, 其中主要有生成新行,平滑处理,缝合处理,边界相交处理等几个子模块。
1/25
图 2 Flow chart of paving algorithm
为了清晰理解上述paving算法的流程,以图3所示为例,图a当中为输入的原始外边界数 据,围成待划分网格的区域。选择边界上的一行节点为基础,添加生成一行新的浮动节点, 生成顺序为沿着外边界按逆时针方向进行。对新生成的浮动节点进行平滑处理,使节点围成 的单元的internal angle以及aspect ratio变得更为合理,单元更趋近于规则四边形。对剩余 的待划分网格区域进行缝合,检查单元是否相交,对相交的单元进行处理,对单元进行调整, 直到整个区域生成高质量的网格为止。
图3 paving算法铺筑单元示意图
依据图2所示流程图,生成相应的伪代码:
Do
Row choise
While add row is not plete
优选
Add row portion
Smooth row portion
Seam boundary
If intersection occurs then
Connect overlaps
Seam boundary
End if
Row adjustment
If intersection occurs
Connect overlaps
Seam boundary
End if
While (closure check is negative)
Clean-up mesh
二、分部详细说明
输入边界数据
根据算法的流程图中,首先要输入待划分网格的边界数据,确定区域的内边界和外边界。 明确得到边界节点数据之后,逐个对每个节点进行分析对对其进行分类,计算流程如图7 所示。对节点分类的依据是该节点的内角,如图6所示。根据节点内角的大小,将其划分为 四类,分别为边节点,角节点,回转节点和端节点。
EXTERJOR PERMANENT BOUNDARY
h
lNTERIQR PERMANENT SOUMDARY
图5平面区域的内边界和外边界
图6节点相关的几个概念
Repeat for each nodenode
Repeat for each node
node
Determine whether asimple or primitiveshape exists
Propagatesuccessively inwardfrom the permanent boundaries 图7获取边界节点信息计算流程
依据上图所示流程图,可以得到获取边界节点信息的伪代码: fstream fread(boundary.txt);
do
{
Get node inner angle
Input angle tolerance al a2 a3 a4 a4 a6
Classify the node3
} While (node classify is not pleted)
Determine whether a simple or primitive shape exist
Propagate successively inward from the permanent boundaries
闭合检查
每次确定待划分的面域之后都要对该面域进行一次闭合检查。检查区域边界上的节点总数;
边界节点总数
文档评论(0)