深入理解数值计算网格(7)–几何与网格

我们知道网格的输入为几何数据,几何数据可以是参数化数据,BREP结构数据,或者其它任意形式定义的数据。

 

1.网格加密和几何

在划分网格的时候,需要将其离散化分成多段。如图,圆被离散成多条直线。如果在网格加密过程中,需要继续对圆弧进行加密时,没有原始几何信息,我们将只能加密在22条直线上,而无法将圆离散成更多的边。实际应用中,对圆弧网格尺寸加密是要求将其离散的更密集,而非在离散的边上加密。

微信图片_20221024231107

微信图片_20221024231112

2. 共形网格与几何

在三维接触碰撞,CFD,复合材料,多物理场耦合领域分析中,需要将不同属性,不同材料对象放在一起分析。在网格上需要将之前对象属性保留。这就会碰到一个难题:如何处理不同对象接触部分的网格。

通常做法有以下几种:

1.将各个对象作为独立个体,将其中一个作为主要分析对象,其它对象简化;

2.各个对象分别划分网格,设置不同属性,将可能接触部分的网格标识出,让求解器去处理;

3.在可能接触部分进行网格平滑,保证点和边能完全重合,但不保证接触对象完全一对一;

4.划分点,边,面完全一对一的网格,也就是通常所说的共形网格

(conformal mesh)

 

其中第四点共性网格由于保留了物体原有属性,且能把所有对象在同一整体刚度矩阵中分析而成为大多数仿真软件的选择。

在几何上,设置不同的材料,属性是很容易的,但在共性网格划分上,由于通常是先生成面网格,在面网格基础上再生成体网格,造成了各种属性的传递困难。

 

以材料为例,当两种不同材料物体接触一起分析时,划分面网格阶段,我们需要区分每个面在哪种材料上,按照一般规则,我们可以定义面的法向量的方向为材料的方向,这也就需要在几何中非常明确规定实体上的面的方向,而不能毫无规律!对于接触部分,需要在几何中明确计算出具体位置,然后传递给网格引擎。

微信图片_20221024231117

3. 几何清理

做一个简单类比,求解器是发动机,网格是汽油,几何则是原油。网格生成则是炼油的过程,高质量的原油可以炼出好的汽油。

为了生成高质量的网格,干净正确的几何输入是必要前提,好的几何也有助于后期网格的调整,编辑和优化。

相信很多工程师有清理几何的痛苦经历。设计生产的CAD几何模型往往不适用直接仿真,比如不必要的文字,几何不连续,细小边,细缝,物体干涉,倒角,圆孔,自由对象,重复对象,不同格式之间的转换带来的几何拓扑错误,容差错误等等。拓扑错误,几何不封闭,方向错误,连接顺序相反也是常见的几何错误。

 

4. 虚拟拓扑

虚拟拓扑是针对几何到网格过程中繁琐的操作进行的一种简化操作。

场景1:需要在实体的一个面上某一小块区域A而非整个面进行边界或荷载设置,通常做法需要创建新的面几何把这一块区域覆盖。另外一种做法可以将区域A设置为虚拟拓扑,直接传给网格引擎,让网格引擎单独处理。

 

场景2:需要在很多个小的面上进行荷载和边界设置,常规做法是需要一个个细小的面选择,然后进行设置,可以将这些面设置成一组,作为一个单独面使用,大大简化操作。 

 

针对虚拟拓扑,可以设置过滤条件,让很多手工操作半自动化或者全自动化,尤其是大模型,能减轻工程师的负担,也减少操作失误的几率。

 

5. 几何曲线曲面处理

曲线曲面的网格划分

在几何中,曲线曲面通常分为三种:参数,显式和隐式。参数形式往往有严格的方程定义;显式几何明确给出点的位置或面片;隐式往往以表达式的显示出现。

 

仍然以圆为例

参数形式为:

x=a+r*cosθ

y=b+r*sinθ

参数表达式很容易满足连续性要求,满足1,2阶偏导要求,在网格端很方便拿到参数。

 

我们可以显式给出圆周上16个点,点顺序相连,给出圆的近似表达。

显式几何的好处是网格无需做过多处理,缺点时需要明确几何的正确性,比如16段圆弧才能满足仿真精度,但几何只给出8段,那么在网格端再如何处理也是无法达到精度要求。

 

隐式形式:类似公式x*x+y*y=A

 

隐式表达的好处是给出任意一点坐标,我们能利用表达式方便判断出它的相对位置。隐式几何精准将几何信息传递给网格,对网格处理上也提出了更多要求,在曲线曲面离散上,要取到几何的本身属性以及控制参数,另外还要考虑网格参数,如果出现冲突,要选择合适的算法处理,实际中只有在特定场合才使用。

 

6. BREP结构和网格

主流的三维几何内核表达为BREP结构,利用这种结构,网格很容易拿到BREP结构中的几何和拓扑信息,方便进行后续网格划分。

为了显示需要,一般几何内核通常也具有三角化的功能,几何离散成的三角形称之为“面片”,非网格,大部分显示引擎底层都使用三角形来渲染对象,因此2维、3维几何都需要三角化(称之为“面片化”),比如一个长方体共有6个面,每个面需要离散成两个三角形,总共12个三角形。这12个三角形我们称之为12个“面片”,而非网格!一般情况下“面片”质量很差。“面片”有两个功能:一是用来做显示渲染数据;二是可以作为网格划分的输入数据,用来生成面网格。

也就是说,网格划分既可以直接拿几何的数据结构,也可以拿三角化之后的数据,可以根据实际需要做选择。

 

7. 变形网格(morphing)+高阶单元

morphing技术是网格划分中的一种常见方法。即初次划分网格后,几何发生变化,网格也跟随发生变化,但网格只是点坐标跟随变动,而拓扑(连接性)不发生变化。morphing在参数化几何设计中非常有用,由于不需要重新划分网格,提高了设计效率。借助于高阶网格单元,可以在几何设计阶段快速完成高精度仿真,也是generative design的基础性技术之一。

© 版权声明
THE END
喜欢就支持一下吧
点赞9140 分享
评论 抢沙发
头像
欢迎您留下宝贵的见解!
提交
头像

昵称

取消
昵称表情代码图片

    暂无评论内容