vmesh,all !划分网格
3.3.3 扫掠生成体网格
对于3D几何体,除采用自由网格划分和映射网格划分外,还可采用“扫掠(sweep)网格划分”,体扫掠网格划分就是从源面(如边界面)网格扫掠整个体生成体单元。如果源面网格由四边形网格组成,则扫掠生成的均为六面体单元;如果源面网格由三角形网格组成,则扫掠生成的均为楔形体单元;如果源面网格由四边形和三角形网格组成,则扫掠生成六面体和楔形体单元。
1. 体扫掠器的激活
命令:VSWEEP,VNUM,SRCA,TRGA,LSMO
VNUM---体的编号,还可取ALL、P及元件名或组件名。
SRCA---源面编号。如果该源面尚未划分网格,则系统自动对其划分网格然后再扫掠。如果不指定SRCA则由系统自动确定源面。
TRGA---目标面编号,即SRCA面的对面。如果不指定该面号,系统自动确定目标面。 LSMO---在扫掠时线光滑处理控制参数。如LSMO=0(缺省)则不进行光滑处理;如LSMO=1则进行光滑处理,
2. 体扫掠的基本步骤与条件
在执行体扫掠之前,应按下述步骤进行操作: ⑴切分体满足扫掠网格划分条件
如果体的拓扑关系属下述情况则不能进行扫掠网格划分: ①有内腔,即体内存在一个连续封闭的边界;
②源面与目标面不是相对面,即SRCA和TRGA不是对应的面;
③体内存在一不穿过源面和目标面的孔洞,例如平行于此两面的孔洞。 ⑵定义合适的2D和3D单元类型 如果对源面进行网格划分,并拟扫掠成六面体单元,则必须定义2D和3D的单元类型,以能够划分相应的单元。并且2D单元和3D的单元类型宜相互协调,例如均为二次单元等。
⑶设置扫掠方向的单元数目或单元尺寸
①用ESIZE命令设置单元尺寸,此为首选控制网格划分方法; ②用EXTOPT命令设置体的侧面线划分数目,可设置间隔比;
③用LESIZE命令设置体的一条或多条侧线的划分数目,也可设置间隔比; ④在一个或多个侧面或相邻的体内或面上生成映射网格; ⑤在一条或多条侧边上生成梁单元网格(LMESH命令); ⑥激活SMRTSIZE命令的设置;
⑦上述均未设定时,则采用DESIZE命令的缺省设置。 ⑷定义源面和目标面
为扫掠网格划分指定源面和目标面。如果不指定源面或目标面,ANSYS将自动确定源面和目标面,如果自动确定失败,将停止扫掠划分。如果有多个体进行扫掠网格划分,多于一个源面或目标面的设置将被忽略。
⑸ 对源面、目标面或侧面进行网格划分
扫掠前面的网格划分不同当然影响到扫掠生成的单元网格。如果不进行任何面的网格划分,系统则自动对其进行面的网格划分,然后再进行扫掠网格划分。
是否在扫掠前划分网格应考虑以下几个因素:
①如不对面划分网格,则ANSYS采用MSHAPE命令的设置对面进行网格划分。但使用一个VSWEEP命令对所有体进行网格划分时,源面总是划分为四边形单元。
②如果用KSCON命令设置源面网格划分,则应对源面先划分网格。 ③如果有硬点存在,且没有划分面网格,则不能进行扫掠网格划分。
④如果源面和目标面都划分了网格,则其必须是匹配的,否则不能进行扫掠网格划分。源面和目标面的网格不必是映射网格。
!EX3.10 设两孔的长方体的扫掠网格划分 finish$/clear$/prep7
a=10$r=2 !定义两个参数,边长和半径
et,1,mesh200,6 !定义2D单元类型为4节点的MESH200,未用PLANE单元 et,2,solid45 !定义3D单元类型为8节点的SOLID单元 blc4,,,2*a,a,a$cyl4,a/2,a/2,r,,,,a !创建长方体和圆柱体1
wprota,,90$cyl4,1.5*a,a/2,r,,,,-a !旋转工作平面,创建圆柱体2
vsbv,1,2$vsbv,4,3 !减去两个圆柱体形成基本模型 wprota,,,90$wpoff,,,a/2$vsbw,all !旋转并移动工作平面,切分体 wpoff,,,a/2$vsbw,all$wpoff,,,a/2$vsbw,all wpcsys$wpoff,,a/2,a/2$vsbw,all
wprota,,90$vsbw,all$wpcsys !将体切分为多个体,以扫掠网格
esize,1 !设置基本单元尺寸 amap,105,15,16,26,63$amap,107,16,13,60,26 !用AMPA生成四边形网格 amap,108,13,14,28,60$amap,103,15,14,28,63
lesize,94,,,4$lesize,79,,,4 !设置扫掠方向的单元尺寸
vsel,s,loc,x,0,a$vsweep,all !扫掠创建一部分体的单元网格 asel,s,loc,y,a$asel,r,loc,x,a,2*a !另一部分体的源面划分用连接线 lccat,2,45$lccat,57,71 !连接所选面的线,便于映射网格划分 lccat,68,78$lccat,65,72
mshape,0,2d$mshkey,1$amesh,all !映射网格划分四个面
vsel,s,loc,x,a,2*a$vsweep,all !扫掠另一部分体生成单元网格 allsel$/view,1,1,2,3$eplot !改变视图并显示单元
3. 体扫掠策略及其注意事项
如果体扫掠网格划分因单元形状差而失败,可考虑如下对策: ①如果没有指定源面和目标面,则指定之并重新执行扫掠划分; ②交换源面和目标面,并重新执行扫掠划分;
③另选一组完全不同的源面和目标面,并重新执行扫掠划分; ④使用单元形状检查工具。
⑤采用光滑处理,并重新执行扫掠划分; 同时,在扫掠网格划分中要注意:
①源面和目标面不必平行或平面,可为曲面或组合面等;
②如果源面和目标面的几何形状不同,但拓扑关系相同时仍可扫掠划分网格; ③可用二次面单元扫掠生成线性体单元或二次体单元.
④如果未指定源面和目标面,则忽略EXTOPT命令定义的单元尺寸设置。
⑤如果对源面、目标面或侧面进行了网格划分,希望在扫掠之后自动删除这些单元,可采用命令EXTOPT设置为EXTopt,aclear,1。
⑥扫掠网格划分不一定为等截面,但当为变截面时,从一端到另一端为线性变化时扫掠效果较好;如为任意变化的,应注意单元网格质量。
⑦可扫掠零半径轴,即源面和目标面相邻。 4. 其它命令生成体单元及其区别
与VSWEEP命令比较,VROTAT、VEXT、VOFFST、VDRAG等拉伸命令也可生成类似于扫掠生成的单元网格,但它们是有区别的。
①VSWEEP是在未划分网格的既有体上,通过扫掠产生单元网格;而上述拉伸命令在生产体的同时生成单元网格。
②VSWEEP可在执行前不划分面的网格,而拉伸命令则必须划分网格否则不生成网格。 ③拉伸命令执行前必须设置ESIZE命令中的NDIV参数。
例如下面为VROTAT、VEXT、VOFFST、VDRAG几个命令生成单元网格。 !EX3.11 拉伸类命令生成体单元网格 finish$/clear$/prep7
et,1,82$et,2,95 !定义2D和3D单元类型 blc4,,,4,4$blc4,6,,4,4 !在不同位置创建4个面 blc4,12,,4,4$blc4,18,,4,4
esize,1$amesh,all !定义单元尺寸并划分所有面的单元网格 esize,,8 !为下面4个命令定义NDIV vrotat,1,,,,,,1,4,90 !旋转面1,生成体和单元 vext,2,,,,,10,0.5,0.5 !延伸面2,生成体和单元 voffst,3,10 !偏移面3,生成体和单元 vdrag,4,,,,,,35 !拖拉面4,生成体和单元
3.3.4 单元有效性检查
不良的单元形状会导致不准确的结果,然而并没有判别单元形状好坏的通用标准,也就是说一种单元形状对一个分析可能导致不准确的结果,但可能对另一种分析的结果又是可接受的。在计算过程中,ANSYS可能不出现单元形状警告信息,也可能会出现很多个单元形状警告信息,这都不能说明单元形状就一定会导致准确或不准确的结果,因此单元形状的好坏和结果的准确性完全依赖用户的判断和分析。
1. 单元形状参数限值设置
命令:SHPP,Lab,VALUE1,VALUE2
ANSYS单元形状检查是缺省的,但控制单元形状检查的参数可以修改。 ⑴ Lab=ON:激活单元形状检查。VALUE1可取: ANGD:SHELL28单元角度检查。
ASPECT:单元纵横比检查。如四边形单元警告限值为20,错误限值为1E6; PARAL:对边平行度检查。如无中间节点的四边形该项的警告限值为70°,如超过150°则给出错误信息。
MAXANG:最大角度检查。无中间节点的四边形单元该项警告限值为155°,而其错误限值为179.9°;
JACRAT:雅可比率检查。简单地说,雅可比率表达了“单元”模拟“实际”的计算可靠性,比率越高越不可靠。如h单元的警告限值为30,超过30单元形状就很不理想(与母单元形状相差甚远)。
WARP:歪曲率检查。对于四边形面单元、壳单元或体单元的面等,当其严重歪曲时造成不好的单元形状,此值越高表示单元歪曲越严重。
也可用ALL关闭或激活所有选项。
⑵ Lab=WARN:仅激活警告模式,对超过错误限制的单元只给出警告信息而不致网格划分失败。而Lab=ON则一旦超过错误限制时将导致网格划分失败.
⑶ Lab=OFF:完全关闭单元形状检查,可通过设置VALUE1的值而关闭个别形状检查。如 VALUE1 可取 ANGD、ASPECT、PARAL、MAXANG、JACRAT、WARP及ALL等。
⑷ Lab=STATUS:列表输出当前形状检查限制参数及检查结果情况。 ⑸ Lab=SUMMARY:列表输出所选择单元的形状检查结果。 ⑹ Lab=DEFAULT:恢复单元形状检查限值的缺省值。 ⑺ Lab=OBJECT:是否将单元形状检查结果保存于内存中的控制参数;如VALUE1=1、YES或ON(缺省)则保存在内存中;如VALUE1=0、NO或OFF则不保存在内存中。
⑻ Lab=LSTET:检查雅可比率时选择在积分点还是角点取样控制;如VALUE= 1、YES或ON则选择积分点;如VALUE1=0、NO或OFF(缺省)则选择角点取样。
⑼ Lab=MODIFY:重新设置一个形状参数检查限值,此时VALUE1为修改的形状参数限值的数据位置,而VALUE2则为修改的新限值。
如拟修改纵横比率检查的警告限值,通过SHPP,STATUS列表可以看出,该数据的位置为1,缺省设置为20.0。可用SHPP,MODIFY,1,1000将此限值修改为1000。
如拟修改h单元的雅可比率警告限值,通过SHPP,STATUS列表查得该数据的位置为31,其缺省设置为30.0。可用SHPP,MODIFY,31,100将此限值修改为100。
使用shpp,defa将恢复系统的缺省限值设置。
⑽ Lab=FLAT:确定显示非零或非常数Z坐标单元的警告和错误限值。 2. 网格检查命令
⑴ 逐个单元数据完整性检查 命令:CHECK,Sele,Levl
Sele---拟检查的单元。如Sele为空,检查所有单元数据; Levl---仅当Sele=ESEL时,其值可取WARN(选择生成警告和错误信息的单元)和ERR(仅检查生成错误信息的单元,这是缺省选项)。
该命令对每个单元的数据完整性和单元形状进行检查,也是在求解之前自动进行的检查。如单元材料、实常数、约束及单元形状等,然后在输出窗口列出结果。
⑵ 网格连通性检查 命令:MCHECK,Lab