铺砌法生成有限元网格模型.docx
- 文档编号:1929650
- 上传时间:2022-10-25
- 格式:DOCX
- 页数:20
- 大小:597.35KB
铺砌法生成有限元网格模型.docx
《铺砌法生成有限元网格模型.docx》由会员分享,可在线阅读,更多相关《铺砌法生成有限元网格模型.docx(20页珍藏版)》请在冰豆网上搜索。
铺砌法生成有限元网格模型
铺砌法生成网格模型
一、网格模型在有限元分析计算中的作用
在工程设计中大量使用到有限元法进行计算分析.随着计算机辅助设计的开展,很多公司推出有限元软件.这些有限元软件分析计算几何体的物理性质,其计算的过程可以划分为几个大的模块,输入几何体区域、对该区域生成网格、对生成的网格施加一个干扰、从受到干扰的网格开发分析数据、确定几何体的物理行为。
有限元软件的分析计算流程图如图1所示。
图1有限元软件分析计算流程图
从有限元软件的分析计算流程图当中,我们可以看出,在有限元分析的前处理模块中,网格生成时很重要的一个步骤。
生成网格的质量会影响后处理计算结果的效率和精度。
因此,市场上流行的有限元软件都提供有强大的模型建立和网格划分功能。
网格划分功能的实现可以采用不同的算法,比方自由网格划分、映射法网格划分、铺砌法网格划分等等。
其中铺砌法具有良好的健壮性、高效率等特点,本文对铺砌法网格划分进行详细介绍。
二、铺砌法网格划分的总体计算流程
采用铺砌法从模型建立到生成网格,其计算流程如图2所示。
该算法生成网格的算法流程图,从输入边界数据到最后输出划分好的网格,其中主要有生成新行,平滑处理,缝合处理,边界相交处理等几个子模块。
图2铺砌法生成网格模型的计算流程图
为了清晰阐述上述铺砌法的计算流程,以图3所示为例进行详细说明,图a当中为输入的原始外边界数据,围成待划分网格的区域。
选择边界上的一行节点为根底,添加生成一行新的浮动节点,生成顺序为沿着外边界按逆时针方向进行。
对新生成的浮动节点进行平滑处理,使节点围成的单元的internalangle以及aspectratio变得更为合理,单元更趋近于规那么四边形。
对剩余的待划分网格区域进行缝合,检查单元是否相交,对相交的单元进行处理,对单元进行调整,直到整个区域生成高质量的网格为止。
图3paving算法铺筑单元示意图
依据图2所示计算流程图,生成相应铺砌法的伪代码:
Do
Rowchoise
Whileaddrowisnotcomplete
Addrowportion
Smoothrowportion
Seamboundary
Ifintersectionoccursthen
Connectoverlaps
Seamboundary
Endif
Rowadjustment
Ifintersectionoccurs
Connectoverlaps
Seamboundary
Endif
While(closurecheckisnegative)
Clean-upmesh
三、分部详细说明铺砌法
1.输入边界数据
根据算法的流程图中,首先要输入待划分网格的边界数据,确定区域的内边界和外边界。
明确得到边界节点数据之后,逐个对每个节点进行分析对对其进行分类,计算流程如图7所示。
对节点分类的依据是该节点的内角,如图6所示。
根据节点内角的大小,将其划分为四类,分别为边节点,角节点,回转节点和端节点。
图5平面区域的内边界和外边界
图6节点相关的几个概念
图7获取边界节点信息计算流程
依据上图所示流程图,可以得到获取边界节点信息的伪代码:
fstream
fread(boundary.txt);
do
{
Getnodeinnerangle
Inputangletolerancea1a2a3a4a4a6
Classifythenode3
}While(nodeclassifyisnotcompleted)
Determinewhetherasimpleorprimitiveshapeexist
Propagatesuccessivelyinwardfromthepermanentboundaries
2.闭合检查
每次确定待划分的面域之后都要对该面域进行一次闭合检查。
检查区域边界上的节点总数;
边界节点总数是否大于6,
如果大于6,那么选择一行节点,分别对每一行边界接点进行生成新节点;
如果等于6,那么对面域进行闭合,根据待闭合面域的形状形成两个、三个或者四个四边形单元;如图8所示;
如果等于4,那么插入一个四边形单元对面域进行闭合
如果等于2,进行一次缝合,即可将面域闭合
如果等于0,铺筑工作结束
图8六个节点面域的闭合方法
闭合检查的计算流程图如下图:
图9检查闭合的计算流程
根据图9所示的计算流程图,可以生成闭合检查的伪代码:
Getthenumberofnodesremaininginthepavingboundary
Switchnodenumber
{
Case0
Pavingiscomplete
Break
Case2
Seamtheboundary
Break
Case4
Insertaquadrilateralelement
break
Case6
Form2,3,4newquadrilateralelements
Break
}
3.新增行接口:
上面一步进行闭合检查,如果待划分的面域,边界上的节点数大于6,那么进行生成新行节点。
首先选定的一行固定边界节点,根据该行节点分类,生成新的一行节点。
具体生成新行节点的计算流程图如图10所示.
图10生成新的浮动边界节点的计算流程
根据生成新的浮动边界节点的计算流程图,可以生成相应的伪代码为:
选择一行的内边界或者外边界,该行以两个端节点结束
确定一个端节点作为起始点,
Do
{
选中下一个节点,判断节点类型
Case2
调用矢量对象的生成矢量方法生成一个矢量;如图11所示;
矢量长度为||=;
调用矢量对象的求解矢量端点方法,求解出该矢量的箭尾端点;
调用节点对象的生成节点方法,将箭尾端点生成节点;
将新生成的节点编号;
将新生成的节点标志为浮动节点;
Break;
图11由边节点生成一个新节点
Case3
调用矢量对象的生成矢量方法生成三个矢量,,;如图12所示;
矢量长度分别为||=;
;
;
调用矢量对象的求解矢量端点方法,求解出该矢量的箭尾端点;
调用节点对象的生成节点方法,将箭尾端点生成节点;
将新生成的节点编号;
将新生成的节点标志为浮动节点;
Break;
图12由角节点生成三个浮动节点
Case4
调用矢量对象的生成矢量方法生成五个矢量,,,,;如图13所示;
矢量长度分别为||=;
;
;
;
;
调用矢量对象的求解矢量端点方法,求解出该矢量的箭尾端点;
调用节点对象的生成节点方法,将箭尾端点生成节点;
将新生成的节点编号;
将新生成的节点标志为浮动节点;
Break;
图13由转角节点生成五个浮动节点
Case1
不再生成新节点
连接两个相邻节点即可,如图14所示
该行结束
Break;
图14端节点不生成新的浮动节点
}while(该行下一个节点不为空)
新的一行边界生成完毕,新生成的节点都是浮动节点,需要进行平滑处理。
4.平滑
铺砌法网格生成中要保证新生成的单元的质量,单元的好坏从几个指标进行衡量,单元的内角没有过大或者过小的现象,单元边长的长宽比不宜过大。
如果单元有角度大小不适宜或者单元尺寸相差悬殊等情况,那么需要进行平滑。
平滑就是要恢复和维持单元的单元的尺寸、垂直度和总的铺筑边界和网格的平滑。
平滑类型,可以分为三类,他们分别是:
〔1〕boundaryNodeSmoothing〔2〕InteriorNodeSmoothing〔3〕Localizationofsmoothing;三个平滑类型分别对应三个平滑器。
Smoother的三个平滑器分别为:
amodifiedisoparametricsmoother;modifiedlength-weightLaplatiansmoother;以及Localizedsmoother。
首先modifiedisoparametricsmoother的具体计算步骤:
进行矢量的加减运算,如下式:
如果该节点不是连接两个单元,那么该修正到处结束;如图15所示。
图15新生成边界上节点长度调整示意图
如果该节点仅连接两个单元,那么要继续进行角度的调整,如图16所示,调用矢量对象的加减方法进行如下各式的计算:
if>
otherwise
图16行节点上角度调整示意图
其次对于InteriorNodeSmoothing采用modifiedlength-weightLaplatiansmoother方法,如图17所示,其具体步骤是:
调用矢量对象的加减运算,求模运算方法,进行如下各式的计算:
图17内部浮动节点的调整示意图
通过以上计算得到的修正矢量,对原来的定位矢量进行修正,生成新的节点坐标,用新的节点坐标替代原来的节点坐标。
根据以上表达,节点平滑的计算流程图如图18所示。
图18节点平滑的计算流程图
依据节点平滑的方法和计算流程图,可以生成节点平滑的伪代码:
Do
{
Identifyanode
Gettheinteriorangleofthenode
Getthenumberofattachedelementstothenode
Judgewhetherthenodeisafixednode
}
While(thenewrowis!
NULL)
Foreverynodeonthenewrow
{
CalculateitsΔa
Ifthenumberofattachedelementstothenodeisnot2
Adjustthenode’spositionaccordingtoΔa
Elseifthenumberequals2
CalculateΔb
CalculateΔc
CalculateΔi
Adjustthenode’spositionaccordingtoΔi
Endif
}
Foreveryinteriorfloatingnode
{
CalculateΔi
Adjustthenode’spositionaccordingtoΔi
}
5.缝合
在区域边界上,如果某个顶点的两条网格线的夹角过小,那么对该节点的网格进行缝合。
按照待缝合的节点类型不同(节点全部是浮动节点、要缝合的节点中涉及到固定节点),缝合可分为InteriorNodeSeams和FixedNodeSeams以及TransitionSeams;
首先介绍InteriorNodeSeams
是否需要缝合的判断条件:
根据节点的内角α的大小和节点连接的单元数量来判断:
当连接到节点的单元边界数量>=5时,其内角α<ε1时需要缝合
当连接到节点的单元边界数量<=4时,其内角α<ε2时需要缝合
如果某个节点需要缝合,缝合的方法:
combinethenodeandintoasingleNode
删除两个节点,生成一个新节点,新节点的位置位于两个原来节点的中心
其次介绍FixedNodeSeams
当外边界形成较小的夹角时候,要进行该种类型的缝合。
解决方法:
仅仅是通过延迟裂缝的缝合。
如果右边需要缝合,但它是固定边界,那么分两种情况:
(1)左端点是固定点,忽略缝合
(2)左端点是浮动点,那么又可分三种情况
(1)下一边界点
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 铺砌 生成 有限元 网格 模型