工匠笔记Workbench meshing之一
Workbench分网器
写在前面
Workbench致力于打造易于使用的多学科仿真平台,尽力弱化“有限元”概念。实际上,一个完全缺乏有限元基础知识的机械工程师,能够轻而易举地完成仿真任务,因为网格划分自动化程度非常高,甚至无需用户做任何设置。
事实上,我就完全不知Solid186为何物,也不知道要用几毫米的单元尺寸,但是通过coarse,medium,fine这样易于理解的词汇的封装,以及在转角这些复杂外形处使用refinement加密网格也很容易,它们帮助我完成底层设置。我则把关注焦点放在机械系统是否合理,约束是否适当,载荷如何布置等工程问题上。就这样过了若干年,直到有一天我进入了流体领域,自动生成的网格数无比巨大,导致在笔记本电脑上无法运行,发现不得不补上网格这一课。
本系列笔记译自workbench help,v18.2,供有类似困惑的工程师参考,转载请注明出处。由于笔者水平有限,缺点错误在所难免,欢迎指正。
1. 网格概述
1.1. 目标
Workbench的目标,是提供稳健易用的网格工具,简化网格生成过程。这些工具在拥有高度自动化便利的同时,也提供从中度至高度的用户控制权。
1.2. 物理环境
每当启动网格程序,workbench将基于分析类型设置物理环境,确保对于分析系统设定合适的物理偏好;对于机械模型系统mechanical model system,应用机械物理偏好;对于网格系统mesh system,其物理环境基于tools > options > meshing > default physics preference的设定。
2. Workbench网格实现
分网在workbench平台内进行。能否运行特定的程序取决于许可等级。
工匠笔记:在workbench中,划分网格可以通过mechanical或者meshing分网器完成。
Mechanical程序——如果打算使用mechanical程序完成仿真任务,例如模型准备和求解仿真。另外,如果计划一个FSI(流固界面)任务,并希望用一个独立的项目管理仿真数据,也可以用mechanical划分流体网格。在一个独立的程序内完成结构网格和结构求解,为仿真提供了最大的方便。
工匠笔记:mechanical程序可运行以下仿真系统:static structural ; transient structural ; explicit dynamics etc . 即所有机械仿真系统
meshing分网器——如果计划用网格去执行流体仿真如CFX或者Fluent。分网之后如果又打算进行mechanical仿真,可以将其转换为mechanical系统。
注:在18.2版,autodyn在mechanical内运行,建议使用显式分析系统内含的网格单元。另外,也可以用网格程序生成有限元模型,然后传送至autodyn应用程序。独立的autodyn模型,可以使用内置的autodyn传统网格工具。
3. 网格类型
工匠笔记:Workbench基于结构层级,算法和单元形状分类。
3.1. 结构层级
按结构层级有装配级和零件级分网,装配级分网把部件作为一个整体来划分,而零件级网格或者体网格则依次对零件或者体分网。
在零件级,各零件单独完成网格划分,并且零件网格之间没有关联,除非使用网格连接mesh connection或者节点连接node connection。装配级执行布尔运算,就象你在SCDM,DM或者其它cad中手动完成的操作一样。这些操作包括体积填充,相交和组合,以便在固体,流体和虚拟体之间建立协调网格。
也可以基于零件划分装配网格,此时零件是一个个完成分网的,此时不支持虚拟体。
工匠笔记:此节仅对流体网格,结构网格总是不能把零件都合并起来的。
3.2. 分网算法
按边界处理方式,有边界协调patch conforming与边界独立patch independent两种算法,分别简称协调算法,独立算法。算法可以在装配级或者零件级运行。
3.2.1. 协调算法patch conforming
协调算法是一种分网技术,在给定的零件中重视容差范围内所有的面及其边界(边和顶点)[称为patch]。对于更小的特征和脏几何,使用解构(defeaturing)技术克服其带来的分网困难,虚拟拓扑也能达成同样的效果。
协调算法通常会重视所有的拓扑。如果网格已经生成,改变对象(如载荷,边界条件,选择集等)的作用范围,将自动继承关联的网格;即使拓扑检查设置为yes,也不会重新分网。
注:如果进行了大量的解构,而对象作用于小面,需要注意分网器能捕捉到这些边界;在这些特征上设置局部网格尺寸能够很好的解决这一类问题。
细化(mesh refinement)适用于所有的协调算法。
应用
可在以下网格控制设置下使用协调算法,通常在零件级运行除非另外指定。详见方法控制method control。
实体solid:
协调四面体patch conforming tetra
通用扫掠general sweeping
薄体扫掠thin sweeping
六面体主导hex dominant
工匠笔记:协调算法仅适用于实体,但不限于四面体
3.2.2. 独立算法patch independent
独立算法是一种分网技术,不强调面及其边界(边和顶点)[称为patch],除非有载荷,边界条件,接触,选择集,结果或者其它对象作用于该面或边或顶点。当对象作用于几何,导致这些特征被重视,因而,它们称为“保护拓扑”protected topology。独立算法在进行显著解构的同时能检视保护拓扑,所以当需要大量解构或者高度一致性网格的情况下此方法非常有用。
关于保护拓扑:
l 如果面体有不同厚度,这样的两个面之间的边受保护
l 虚拟拓扑仍然可以在独立算法中使用,然而虚拟元的边界不受保护除非有对象作用于该虚拟拓扑。换句话说,虚拟元代替底层几何但保留相同的保护规则
l 拓扑检查确保对于每一段几何拓扑,都有适当的关联网格,例如:
Ø 实体solid body有关联的体网格
Ø 面face有关联的面网格
Ø 边edge有关联的边网格
Ø 顶点vertice有关联的节点
l 关联于未保护的体,面,边和顶点的网格,这种情况下网格和几何之间不必存在一对一的关系。例如下图中,底行块体的高亮边受保护,顶行的块体则不是。右边的两个块体,红色面指示网格关联于左边的三角形,由于块体的尖锐特征,侧面都保持一对一的关系
分网之后,如果一个对象作用于几何,网格关联可能失配,例如右上块体。这种情况下,新对象加入保护列表,但是你可能想或者不想重新分网,因为关联良好;但如果选择其中一个三角面,关联网格可能有问题,可以在高级组advanced中设置拓扑检查,以控制重分网行为。拓扑检查的默认值为no,表示不强制重分网。
工匠笔记:不太懂,似乎上面一排块体分网时忽略了中间那条斜线,不知道怎么做到的。
注:
l 独立算法不支持网格细化mesh refinement
l 装配网格是一种独立算法,但其实现不同于零件网格,如上所述,装配网格把模型当作一个整体进行分网,而零件网格则是一个个零件进行分网。装配体也可以基于零件分网,但此时不能进行虚拟体分网,也不能评估占用相同空间的零件
应用
独立算法可应用于以下设置,在零件级运行除非另有说明。详见方法控制method control节
实体solid body
l 独立四面体patch independent tetra
l 多区multizone
l 切割单元cutcell和四面体算法(装配级)tetrahedrons algorithms
面体surface body
l 四边形主导quad dominant
l 全三角形all triangles
l 多区四边形或三角形multizone quad/tri
注:
l 对于切割单元和四面体算法(装配级)
Ø 面受保护
Ø 接触边受保护
Ø 例外,面的边界不受保护(例如无接触的边和顶点),即使其作用于载荷,边界条件,选择集和其它对象;此外,这些对象不会传送至求解器,因为装配网格不与边或顶点关联。
l 对于多区四边形/三角形:
Ø 不同材料的面体为保护拓扑;
Ø 可变厚度的面体不保护,为防止面及其边界过度分网,可为每个厚度建立单独的选择集
3.3. 单元形状
单元形状有如下种类:
四面体:
l 协调四面体patch conforming tetrahedron mesher
l 独立四面体patch independent tetrahedron mesher
l 四面体算法(装配级)
六面体:
l 扫掠swept mesher
l 六面体主导hex dominant mesher
l 薄实体thin solid mesher
六面体/棱柱/四面体混合:
l 多区分网multizone mesher
笛卡尔:
l 切割单元(装配级)cutcell assembly level
四边形:
l 四边形主导quad dominant
l 多区四边形/三角形multizone quad/tri
三角形:
l 全三角形all triangles
4. 共形与非共形
本节讨论共形conformal和非共形non-conformal分网
l 零件内的共形分网
l 零件间的共形分网
l 连接/界面处理
4.1. 零件内的共形分网
Workbench可以用不同的方法生成共形网格。一般来说,可以规定零件的一个区域生成共形网格。网格总是在零件层级生成,除非指定为装配层级。零件级分网时,只有该零件的几何发送至分网器,因此其它零件的几何不会影响该零件分网;例外情况是有接触尺寸控制contact sizing时。为了在不同区域或体组成的几何中建立共形网格,必须使用多体零件。
下述说明适用于多体零件:
l 多体零件必须用designmodeler或者spaceclaim建立
l 多体零件类别:
Ø 共享拓扑shared topology,把两个体之间的界面合并成一个面,共享面属于两个邻接体,分网时,界面处的网格是共形的
Ø 非共享拓扑,保持两个邻接体之间的面独立,此时分网为非共形,其界面将被接触探测检出
n 压印两个邻接体,通常有助于使一对边界面相同,在非共形界面上建立更一致的网格,designmodeler为共享拓扑提供压印技术,类似于无共享,把多体零件的所有体压印在一起。
n 在某些情况下此选项有助于组织多体零件,但应注意后果。多体零件将在一个流程中完成分网。
n 独立四面体分网有一个选项“尽可能匹配网格”,试图使网格共形,即使没有共享拓扑。
l 一般使用多体零件形成六面体网格,方法是把模型切割成可以扫掠的体,用共享拓扑在这些扫掠体之间得到共形网格
l 通常多体零件全部由实体或者面体或者线体组成
Ø 不允许由实体,面体和线体组成多体零件
Ø 允许由实体和面体组成多体零件,但应注意:
n 默认实体先分网,可通过选择性分网改变次序。
n 在SpaceClaim,共享选项包括共享和合并,两者都可以建立共享拓扑。试图在实体内嵌入一个零厚度面体或挡板时使用合并,其它情况使用共享
n 下图显示实体内嵌入一个挡板,此模型在SpaceClaim中由一个实体和一个面体构成,使用合并选项
n 在DesignModeler中,使用共享拓扑
n 在SpaceClaim中可以建立实体/表皮模型。类似于其它多体零件,共用面共享。
n 实体/表皮模型支持表皮与实体面重叠
Ø 支持面体和梁组成多体零件
l 相关信息,参考mechanical help中的“几何介绍”
4.2. 零件间的共形网格
某些情况下,你可能希望在不共享拓扑的情况下,得到共形网格。
例如,用于建立重复拷贝的网格实例,你希望在这些拷贝之间获得共形网格;又或者,分网速度至关重要,你希望使用并行模式分网,后面再将网格连接起来。有几种基于网格的方法能在零件间实现网格共形,如下所述:
l 装配级分网:把所有的零件一次装入分网器。只要零件够靠近,所有的网格都是共形的
l 网格连接:本法从已有网格开始,压印并连接网格使之共形
l 节点合并:分网之后,插入一个节点合并操作,使同位(节点靠近在公差之内)网格共形。合并节点适用于连接“网格匹配”match mesh或者“接触匹配”contact match mesh网格。
4.3. 连接/界面处理
进入网格/机械程序,默认在彼此接近的零件之间建立接触连接。如若不希望自动建立连接或界面,可以关闭此功能。在workbench主菜单,Tools>Options,在mechanical或者meshing条目下,关闭Auto Detect Contact On Attach。
这些接触区域可用于网格尺寸控制,或定义仿真时如何处理接触/界面的行为。
对于结构求解器见mechanical help connection
对于流体求解器,CFX与Fluent接触区域用法不同:
l CFX基于GGI(General Grid Interface)定义使用接触区域,详见CFX帮助文档
l Fluent把接触区域当作网格界面,详见Special Cases