声振论坛

 找回密码
 我要加入

QQ登录

只需一步,快速开始

查看: 2384|回复: 11

复杂几何模型的系列网格划分技术

[复制链接]
发表于 2005-10-12 07:59 | 显示全部楼层 |阅读模式

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

您需要 登录 才可以下载或查看,没有账号?我要加入

x
众所周知,对于有限元分析来说,网格划分是其中最关键的一个步骤,网格划分的好坏直接影响到解算的精度和速度。在ANSYS中,大家知道,网格划分有三个步骤:定义单元属性(包括实常数)、在几何模型上定义网格属性、划分网格。在这里,我们仅对网格划分这个步骤所涉及到的一些问题,尤其是与复杂模型相关的一些问题作简要阐述。 <BR><BR>一、 自由网格划分 <BR>    自由网格划分是自动化程度最高的网格划分技术之一,它在面上(平面、曲面)可以自动生成三角形或四边形网格,在体上自动生成四面体网格。通常情况下,可利用ANSYS的智能尺寸控制技术(SMARTSIZE命令)来自动控制网格的大小和疏密分布,也可进行人工设置网格的大小(AESIZE、LESIZE、KESIZE、ESIZE等系列命令)并控制疏密分布以及选择分网算法等(MOPT命令)。对于复杂几何模型而言,这种分网方法省时省力,但缺点是单元数量通常会很大,计算效率降低。同时,由于这种方法对于三维复杂模型只能生成四面体单元,为了获得较好的计算精度,建议采用二次四面体单元(92号单元)。如果选用的是六面体单元,则此方法自动将六面体单元退化为阶次一致的四面体单元,因此,最好不要选用线性的六面体单元(没有中间节点,比如45号单元),因为该单元退化后为线性的四面体单元,具有过刚的刚度,计算精度较差;如果选用二次的六面体单元(比如95号单元),由于其是退化形式,节点数与其六面体原型单元一致,只是有多个节点在同一位置而已,因此,可以利用TCHG命令将模型中的退化形式的四面体单元变化为非退化的四面体单元,减少每个单元的节点数量,提高求解效率。在有些情况下,必须要用六面体单元的退化形式来进行自由网格划分,比如,在进行混合网格划分(后面详述)时,只有用六面体单元才能形成金字塔过渡单元。对于计算流体力学和考虑集肤效应的电磁场分析而言,自由网格划分中的层网格功能(由LESIZE命令的LAYER1和LAYER2域控制)是非常有用的。 <BR><BR>二、 映射网格划分 <BR>    映射网格划分是对规整模型的一种规整网格划分方法,其原始概念是:对于面,只能是四边形面,网格划分数需在对边上保持一致,形成的单元全部为四边形;对于体,只能是六面体,对应线和面的网格划分数保持一致;形成的单元全部为六面体。在ANSYS中,这些条件有了很大的放宽,包括: <BR>1 面可以是三角形、四边形、或其它任意多边形。对于四边以上的多边形,必须用LCCAT命令将某些边联成一条边,以使得对于网格划分而言,仍然是三角形或四边形;或者用AMAP命令定义3到4个顶点(程序自动将两个顶点之间的所有线段联成一条)来进行映射划分。 <BR>2 面上对边的网格划分数可以不同,但有一些限制条件。 <BR>3 面上可以形成全三角形的映射网格。 <BR>4 体可以是四面体、五面体、六面体或其它任意多面体。对于六面以上的多面体,必须用ACCAT命令将某些面联成一个面,以使得对于网格划分而言,仍然是四、五或六面体。 <BR>5 体上对应线和面的网格划分数可以不同,但有一些限制条件。 <BR>对于三维复杂几何模型而言,通常的做法是利用ANSYS布尔运算功能,将其切割成一系列四、五或六面体,然后对这些切割好的体进行映射网格划分。当然,这种纯粹的映射划分方式比较烦琐,需要的时间和精力较多。 <BR>    面的三角形映射网格划分往往可以为体的自由网格划分服务,以使体的自由网格划分满足一些特定的要求,比如:体的某个狭长面的短边方向上要求一定要有一定层数的单元、某些位置的节点必须在一条直线上、等等。这种在进行体网格划分前在其面上先划分网格的方式对很多复杂模型可以进行良好的控制,但别忘了在体网格划分完毕后清除面网格(也可用专门用于辅助网格划分的虚拟单元类型-MESH200-来划分面网格,之后不用清除)。 <BR><BR>三、 拖拉、扫略网格划分 <BR>    对于由面经过拖拉、旋转、偏移(VDRAG、VROTAT、VOFFST、VEXT等系列命令)等方式生成的复杂三维实体而言,可先在原始面上生成壳(或MESH200)单元形式的面网格,然后在生成体的同时自动形成三维实体网格;对于已经形成好了的三维复杂实体,如果其在某个方向上的拓扑形式始终保持一致,则可用(人工或全自动)扫略网格划分(VSWEEP命令)功能来划分网格;这两种方式形成的单元几乎都是六面体单元。通常,采用扫略方式形成网格是一种非常好的方式,对于复杂几何实体,经过一些简单的切分处理,就可以自动形成规整的六面体网格,它比映射网格划分方式具有更大的优势和灵活性。 <BR><BR>四、 混合网格划分 <BR>    混合网格划分即在几何模型上,根据各部位的特点,分别采用自由、映射、扫略等多种网格划分方式,以形成综合效果尽量好的有限元模型。混合网格划分方式要在计算精度、计算时间、建模工作量等方面进行综合考虑。通常,为了提高计算精度和减少计算时间,应首先考虑对适合于扫略和映射网格划分的区域先划分六面体网格,这种网格既可以是线性的(无中节点)、也可以是二次的(有中节点),如果无合适的区域,应尽量通过切分等多种布尔运算手段来创建合适的区域(尤其是对所关心的区域或部位);其次,对实在无法再切分而必须用四面体自由网格划分的区域,采用带中节点的六面体单元进行自由分网(自动退化成适合于自由划分形式的单元),此时,在该区域与已进行扫略或映射网格划分的区域的交界面上,会自动形成金字塔过渡单元(无中节点的六面体单元没有金字塔退化形式)。ANSYS中的这种金字塔过渡单元具有很大的灵活性:如果其邻接的六面体单元无中节点,则在金字塔单元四边形面的四条单元边上,自动取消中间节点,以保证网格的协调性。同时,应采用前面描述的TCHG命令来将退化形式的四面体单元自动转换成非退化的四面体单元,提高求解效率。如果对整个分析模型的计算精度要求不高、或对进行自由网格划分区域的计算精度要求不高,则可在自由网格划分区采用无中节点的六面体单元来分网(自动退化成无中节点的四面体单元),此时,虽然在六面体单元划分区和四面体单元划分区之间无金字塔过渡单元,但如果六面体单元区的单元也无中节点,则由于都是线性单元,亦可保证单元的协调性。 <BR><BR>五、 利用自由度耦合和约束方程 <BR>    对于某些形式的复杂几何模型,可以利用ANSYS的约束方程和自由度耦合功能来促成划分出优良的网格并降低计算规模。比如,利用CEINTF命令可以将相邻的体在进行独立的网格划分(通常是采用映射或扫略方式)后再"粘结"起来,由于各个体之间在几何上没有联系,因此不用费劲地考虑相互之间网格的影响,所以可以自由地采用多种手段划分出良好的网格,而体之间的网格"粘结"是通过形函数差值来进行自由度耦合的,因此连接位置处的位移连续性可以得到绝对保证,如果非常关注连接处的应力,可以如下面所述再在该局部位置建立子区模型予以分析。再如,对于循环对称模型(如旋转机械等),可仅建立一个扇区作为分析模型,利用CPCYC命令可自动对扇区的两个切面上的所有对应节点建立自由度耦合条件(用MSHCOPY命令可非常方便地在两个切面上生成对应网格)。 <BR><BR>六、 利用子区模型等其它手段 <BR>     子区模型是一种先总体、后局部的分析技术(也称为切割边界条件方法),对于只关心局部区域准确结果的复杂几何模型,可采用此手段,以尽量小的工作量来获得想要的结果。其过程是:先建立总体分析模型,并忽略模型中的一系列细小的特征,如导角、开孔、开槽等(因为根据圣维南原理,模型的局部细小改动并不特别影响模型总的分析结果),同时在该大模型上划分较粗的网格(计算和建模的工作量都很小),施加载荷并完成分析;其次,(在与总体模型相同的坐标系下)建立局部模型,此时将前面忽略的细小特征加上,并划分精细网格(模型的切割边界应离关心的区域尽量远),用CBDOF等系列命令自动将前面总体模型的计算结果插值作为该细模型的边界条件,进行求解计算。该方法的另外好处是:可以在小模型的基础上优化(或任意改变)所关心的细小特征,如改变圆角半径、缝的宽度等;总体模型和局部模型可以采用不同的单元类型,比如,总体模型采用板壳单元,局部模型采用实体单元等。 <BR>    子结构(也称超单元)也是一种解决大型问题的有效手段,并且在ANSYS中,超单元可以用于诸如各种非线性以及装配件之间的接触分析等,有效地降低大型模型的求解规模。 <BR>    巧妙地利用结构的对称性对实际工作也大有帮助,对于常规的结构和载荷都是轴对称或平面对称的问题,毫无疑问应该利用其对称性,对于一些特殊情况,也可以加以利用,比如:如果结构轴对称而载荷非轴对称,则可用ANSYS专门用于处理此类问题的25、83和61号单元;对于由多个部件构成装配件,如果其每个零件都满足平面对称性,但各对称平面又不是同一个的情况下,则可用多个对称面来处理模型(或至少可用此方法来减少建模工作量:各零件只需处理一半的模型然后拷贝或映射即可生成总体模型)。 <BR><BR>    总之,对于复杂几何模型,综合运用多种手段建立起高质量、高计算效率的有限元模型是极其重要的一个步骤,这里介绍的注意事项仅仅是很少一部分,用户自己通过许多工程问题的不断摸索、总结和验证才是最能保证有效而高效地处理复杂模型的手段。 <BR>
回复
分享到:

使用道具 举报

发表于 2006-4-27 16:09 | 显示全部楼层
应该来个例子就好了
发表于 2006-5-26 02:59 | 显示全部楼层
恩!!有道理!<BR>整个例子吧!楼主!
发表于 2006-5-27 11:48 | 显示全部楼层
我现在有一个长方体和圆柱体连一块的构件<BR>不是整体<BR>如何划分网格呢?<BR>而且要使得两者的网格节点耦合!
发表于 2006-5-27 11:55 | 显示全部楼层
学习一下,
发表于 2006-5-31 09:58 | 显示全部楼层
<P>事例一下啊,楼主!</P>
发表于 2006-5-31 10:38 | 显示全部楼层
好东西,谢谢楼主的无私奉献!
发表于 2006-5-31 10:56 | 显示全部楼层
看了后觉得正如大家所说,每种附个例子,的确是很不错的指导资料。
发表于 2006-6-5 22:08 | 显示全部楼层
我想问一下<BR>我的模型圆柱厚度只有3微米<BR>而半径0.03m<BR>应该怎样划分网格阿<BR>急求啊
发表于 2006-6-7 18:00 | 显示全部楼层
<P>好帖!<BR>楼主,我现在有一个壳和体 需要将两者耦合在一起 怎么划分网格和粘贴呀?</P>[em06]
发表于 2006-6-7 19:34 | 显示全部楼层
是啊,能给个例子就好了。
发表于 2006-6-7 21:20 | 显示全部楼层
这些总结真的很好,大家要是想了解例子,我在一本书上看过,但解释没有这么清楚<BR>那本书被同学借走了,名字好像是“ANSYS7.0高级分析”<BR>非常感谢楼主!
您需要登录后才可以回帖 登录 | 我要加入

本版积分规则

QQ|小黑屋|Archiver|手机版|联系我们|声振论坛

GMT+8, 2024-11-29 00:56 , Processed in 0.067727 second(s), 18 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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