一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

一种基于标架场的复杂多约束结构网格生成方法与流程

2022-02-22 03:28:59 来源:中国专利 TAG:


1.本发明属于计算机辅助设计领域,具体涉及一种针对cad模型的准结构化四边形网格生成方法。


背景技术:

2.关于结构化四边形网格的生成,大体上有两个主要的领域在进行研究,其一:工程仿真分析,四边形网格相较于三角网格在在有限元和有限体积方法方面有着更加良好的几何支持,其二:计算机图形领域,除了数值仿真方面,四边形网格在曲面建模和纹理中也有很好的用途。
3.近几十年来,工程分析领域一直致力于四边网格的生成,产生了两大类工业技术,其一:利用一些半自动辅助的方式手动划分四边形区域,然后根据用户需要生成规范的四边形网格填充区域,这样的方式非常耗时,主要用于苛刻的数值模拟,如cfd。其二:有一些全自动的方式如基于标架场的前沿推进法生成直角三角网格,再进行合并细分等操作生成全四边形网格,然而这样的方法存在大量的不规则顶点,缺乏用户控制。
4.另一方面,计算机图形学领域彻底开发和探索了基于标架场的四边形网格划分技术,核心是自动生成四边形拓扑分区,然而这样的拓扑分区并不一定确保能够提取出来,这样的技术应用于工程分析方面缺乏足够的鲁棒性和稳定性。
5.本文提出的准四边形网格划分基于标架场划分出拓扑分区,却又不要求其一定是四边形的拓扑分区,在这样的拓扑分区中应用模板方法对每个分区生成网格,鲁棒性得到了一定的保证,经测试,也基本可以满足用户的指定尺寸场需求,且生成的网格奇异点少,质量较高。


技术实现要素:

6.本发明的目的是针对现有技术的不足,提出一种针对cad模型的基于有限元标架场计算的复杂多约束四边形网格结构生成方法,根据复杂几何特征约束及尺寸约束情况,对网格中的标架场进行拓扑提取,进行合理的拓扑简化,使用模板法对拓扑生成网格。
7.本发明具体如下:
8.步骤1、首先将输入的背景三角网格及对应的尺寸约束与几何特征约束中的尺寸约束转化为相应的几何约束;
9.1.1对每个三角形面使用marching triangle法提取等值线;
10.1.2连接提取的等值线,并进行一定的光滑;
11.1.3过滤数量少的等值线;
12.1.4再等值线处进行重新网格化,并将等值线作为几何特征约束存储;
13.步骤2、使用有限元方法计算背景网格的标架场并提取其中的奇异点;
14.交叉表示:
15.使用标准单位向量表示u=(cos(4θ),sin(4θ))=(u1,u2),其中θ是四个分支之一
的角度与局部参考范围。与一般的角度表示θ相反,向量表示u对四边形对称性是不变的,适用于线性有限元插值。由于单位向量的线性组合通常不是单位向量,三角形内的插值并不是严格的十字表示,但是通过投影到单位圆上可以很容易地恢复十字,即对向量表示进行归一化。
16.有限元离散化:
17.为了离散交叉场的矢量场表示,在三角剖分的每条边上定义一个交叉,并使用crouzeix-raviart插值,如中所示。交叉域问题的未知数是每条边eij处的表示向量场分量u1、u2。由于希望交叉场与表面边界及特征线对齐,因此dirichlet边界条件在每个边界与特征线处为u=(cos(0),sin(0))=(1,0)。
18.利用热传导方程对标架场进行平滑
19.为了在域内有一个平滑的交叉场,一个自然的方法是最小化狄利克雷能量:
[0020][0021]
由于这个目标函数是非线性的。通过直接求解向量表示的拉普拉斯算子(即)来最小化狄利克雷能量显然是不合适的,因为这些值可能会在远离边界的地方坍缩为0。这个问题的解决方案是求解一个ginzburg-landau非线性方程来惩罚离开交叉流形的值,但该方法对于复杂问题来说过于耗时。一种有效的替代方法是mbo方法,其中交替进行热扩散(方程1)和投影(方程2)步骤。本方法使用递减扩散时间步长,并根据网格大小的考虑选择它们,并且将它们重新分组以允许重新使用由直接线性求解器计算的矩阵分解。
[0022]
扩散:
[0023]
投影:
[0024]
检测奇异点:
[0025]
对于表面上的每个点x,通过计算沿以x为中心的小闭合圆γ的角度差来检测交叉场奇点。这定义了一个奇点指数:
[0026][0027]
根据定义,交叉场奇点的索引an为-1时,它对应于四边形网格中索引k=-1的不规则顶点,即价五。
[0028]
在离散设置中,提取顶点i周围的定向边缘单环(ei1,...,ein)并计算角度差的总和。在实践中存在三种情况:和为零且顶点是规则的或和为一或负一且顶点为标架场域的奇点。由于对标架场的crouzeix-raviart离散化(每条边一个角度),交叉场奇点可能位于网格的顶点、边或三角形上。当奇点位于边上时,它的两个相邻顶点的索引都不为零,而当奇点位于三角形上时,三个相邻顶点的索引都不为零。
[0029]
步骤3、在奇异点处及计算出的部分边界点处实行龙格库塔法进行流线的延伸;
[0030]
3.1、首先在上述点处的一领域及二领域处计算起始点的第一个离散点:
[0031]

首先在边界奇异点的相关领域计算出第一个离散点
[0032]

在边界奇异点处计算是否存在内部的奇异点,如有执行

,否则跳至


[0033]

如果奇异点在面内,将此离散点延伸至三角形的边/点上,否则直接作为一个离散点,而后删除此奇异点;
[0034]

将上述得到的所有与边界奇异点相关的离散点进行筛选,去除方向接近的离散点
[0035]

计算剩下的内部奇异点的相关领域的第一个离散点
[0036]

如果存在奇异点的二领域内有其他奇异点,如有执行

,否则跳至


[0037]

挑选一个奇异点,将另一奇异点作为此奇异点的一个离散点,如果此离散点在面内,延伸至三角形的边/点,否则直接作为一个离散点,而后删除另一个奇异点;
[0038]

将上述得到的所有与内部奇异点相关的离散点进行筛选,去除方向接近的离散点
[0039]
3.2、根据龙格库塔方法将得到的奇异点与相应的第一个离散点进行流线的延伸,终止条件如下所述:
[0040]

直到奇异点的一领域,以奇异点终止
[0041]

以约束边/边界边的终止处的最近的三角网格点终止;
[0042]

同一条流线以同样的方向经过同一个背景网格三角形,终止。
[0043]
步骤4、简化流线并构造拓扑关系:
[0044]
4.1对于步骤3中得到的流线结构,检测其流线情况,针对不同的情况进行不同的简化,直到没有一种可简化的情况出现,所有简化情况大致分为三种情形:
[0045]

两条流线起止点相同,分别记为a,b,且长度相差较大,改长的流线为a-》a,短流线不变
[0046]

两条流线起止点相同,且长度相差不大,去除其中一条流线
[0047]

两条流线起止点有一个相同记为a,额外的点分别为b,c,不失一般性,设a-》b,长于a-》c,改长流线为b-》c;
[0048]
4.2根据最终的流线结构构造拓扑分区关。
[0049]
步骤5、弦折叠的拓扑简化,基于四边形网格对偶结构以及保持网格中奇异点的数量和基本拓扑关系不变从而设计一种四边形网格拓扑简化操作与优化框架,算法执行效率高,简化效果好,可适用于各类四边形网格的简化。
[0050]
弦、横边、纵边的定义如下:
[0051]
弦:在四边形区域的拓扑划分中根据每条边所相对的对边的集合构成的四边区域。
[0052]
横边:弦内从边界开始到另一条边界对边中所有的对边。
[0053]
纵边:弦内除横边外的其余边(连接横边顶点的边)。
[0054]
弦的折叠操作:
[0055]
从模型的对偶表示中删掉一整条弦,意味着删除这根弦所经过的所有四边形面片。具体的删除操作是通过折叠弦经过的所有横边完成,也就是说将弦横边的顶点进行两两合并,对应的纵边上的区域线两两合并。四边形网格中的对偶弦折叠不会影响网格的连通性,并且可以保证折叠得到的网格依然是纯四边形网格。
[0056]
四边形区域的折叠操作:
[0057]
四边形区域的折叠就是把弦内部分四边形区域组合而成的多块区域相对的两个顶点进行合并而实现的拓扑区域删除操作。相对于对偶弦的折叠来说,这是个局部性的网格简化操作。可以将将四边区域想象而成两个三角形,要合并的顶点之间的边是公共边,而四边形的折叠可以看成是三角形的边折叠。然而这条公共边由弦的两条纵边进行线性插值合成。由于纵边不是简单一条直线,是由多条区域线组合而成并且边上的点的数量不一致,因此插值的过程还需要对每条区域线取相同点的数量进行拟合,对应计算公式如下:
[0058]
qi=(1-ti)
×ai
ti×bi
,q
i 1
=(1-t
i 1
)
×ai 1
t
i 1
×bi 1
[0059][0060][0061]
式中i表示区域线的序号,a
iai 1
,b
ibi 1
为弦内纵边上的区域线,a
ibi
为弦内的横边,区域线由许多折线构成,j表示区域线上的折线序号,ti为x
i,j
为纵边区域线上的点
[0062]
四边形区域的折叠操作影响范围仅仅是于被折叠四边形相连的区域,并且整个操作满足不引入非四边区域的限制。
[0063]
步骤5包括如下子步骤:
[0064]

:在四边形区域的拓扑划分中根据对边划分弦(从边界边一直找对边直至另一条边界边或者从该边出发绕一圈回到该边)
[0065]

:将弦按类型分类:
[0066]
(1)无奇异点存在或者奇异点存在于同一条纵边
[0067]
(2)同一条横边上存在两个奇异点
[0068]
(3)两条纵边均存在奇异点并且不在同一条横边上
[0069]

:对3类弦进行检查:
[0070]
(1)如果存在被合并的纵边为边界边或者约束边时,抛弃该弦。
[0071]
(2)第一类的弦不需进行处理,第二、三类的弦转至步骤四。
[0072]

:根据优先级度量的能量公式对选取的弦进行排序,选择能量最大且大于0的的弦进行拓扑区域简化。如果不存在能量大于0的弦,则结束简化。
[0073]
优先级度量包括:
[0074]
使用能量公式选择删除那些狭长且不规整的四边区域,将一个四边区域拓扑剖分结构简化为奇异点最少的最优拓扑结构;能量公式如下:
[0075][0076]
式中k控制弦能量比值;
[0077]

:检查弦的类型进行区域简化:
[0078]
(1)第二类型的弦,直接进行四边形区域的折叠操作;
[0079]
(2)第三类型的弦将根据奇异点的位置划分为non-zip-patch区域与zip-patch区域(zip-patch为相邻相对角的奇异点之间的区域)
[0080]
non-zip-patch区域删除离其最近的奇异点的弦内对边纵边和点,然后与该纵边外的四边区域合并zip-patch区域根据原来的横边和纵边线性插值拟合出一条新的纵边,删除原先两条纵边,再将横边根据新点一分为二与弦外边进行合并。
[0081]
(3)返回


[0082]
步骤6、针对上述得到的区域划分,以背景尺寸长计算每个区域边的分段数,并对此段数进行一定的优化:
[0083]
由于使用模板法生成网格依赖于每条边的段数设置,因此区域线量化很重要。首先对模型区域线进行网格剖分,然后对模型区域面进行模板生成,受限于曲线离散化,这对于生成三角剖分(或四面体剖分)效果很好,但对于四边形剖分(或六面体剖分)作为四边形拓扑约束(弦)是全局的并通过模型曲线。
[0084]
对区域线的量化非常简单。使用通过整合全局尺寸场计算的理想边数的整数舍入值,除了四边形区域的区域线,在对边施加相等性。这种非最佳量化会导致不同区域面的最终四边形网格中出现许多必要的偶极子。
[0085]
步骤6包括如下子步骤:
[0086]
子步骤1,使用量化计算方式,对所有的区域线结合尺寸场计算理想边数的整数舍入值;所述的区域线上的分段数量化计算方式:
[0087]
子步骤2,使用四边区域量化的拓扑约束,将一些四边区域的分段数施加相等性;
[0088]
子步骤3,得到的最终的理想边数对所有的区域线进行二次量化。
[0089]
区域线上的分段数量化计算
[0090]
考虑一条区域线c,该区域线c由从a到b变化的t参数化。曲线上根据尺寸图的浮点边数为:为了得到整数个边ne,使用一个简单的舍入:
[0091]
与区域线的第i个内点相关联的参数ti,i∈[1,n
e-1]是这样的:
[0092][0093]
这个积分方程可以通过数值积分求解,通过沿区域线添加值直到总和等于在样本之间进行线性插值。为了对区域线c进行网格划分,通过使用(等式11)计算参数ti并评估区域线参数化:xi=f(ti)来计算顶点位置xi,i∈[1,n
e-1]。使用这种方法,根据尺寸图将点很好地放置在曲线上,从较小的特征区域平滑过渡到较粗的区域。
[0094]
四边形区域的拓扑约束
[0095]
整合尺寸场没有考虑四边形网格拓扑的特殊性,这样四边形被组织成拓扑和弦(相邻元素的双环)。在这项工作中,调整了四边形区域面相对两侧的边数ne。考虑一个边界由四条区域线(c1、c2、c3、c4)组成的区域面,强制对边上的点数相等,即n
e1
=n
e3
和n
e2
=n
e4
,除非积分值非常不同。当两个相邻的四边形区域面共享一条区域线cc时,两个面上的n
ec

必须相同。这意味着等式约束在传播。为了解决传播问题,构建了与四边形区域面相关的拓扑弦。弦由拓扑平行的区域线组成,它们都接收相同的固定点数,并通过对先前在每条曲线上计算的理想值求平均值来计算这些点。通过这种简单的传播,弦仅在两个相邻的四边形面共享一条曲线时才传播,该曲线是它们的四个边之一。
[0096]
步骤7、使用模板法对每个分区进行网格生成,步骤:
[0097]
1)按照顺/逆时针输入多边形区域角点坐标和相应边的细分数。
[0098]
2)根据输入的细分数选择符合的拓扑模板,通过计算相应参数确定patch的拓扑结构。
[0099]
3)计算边界上点的坐标,使用拉普拉斯光顺确定patch的几何位置。
[0100][0101]
subject to vi=ωi,i∈c
[0102]
其中,ε为网格的边集,c为边界点集,ωi∈r2为输入第i个固定边界点坐标。
[0103]
简化输入:
[0104]
由于考虑所有可能的输入情况是一项挑战,所以可以考虑将问题简化到一个等效的,更容易解决的子问题,此操作大大减少了需要考虑的情况,以此确保算法具有通用性。
[0105]
对于输入(l0,...,l
n-1
),其对于某些k,l
k-1
和l
k 1
均大于1,定义d=min(l
k-1
,l
k 1
)-1,由此输入可以简化为(l0,...,l
n-1
),其中
[0106][0107]
可以重复上述的简化操作,直到无法再进行简化为止,从而获得了最大程度简化的输入。
[0108]
模板选择公式化为ilp:
[0109]
每个拓扑模板都定义了输入(l0,...,l
n-1
)与参数之间的线性关系,这些参数包含第i条边的填充量pi、边缘流个数x和y。
[0110]
上述的通用形式记为:
[0111]
ax=b
[0112]
其中,a是一个n
×
m的矩阵,其中m为该模板的参数个数,x表示模板参数的m维向量(待求解),b是由输入(l0,...,l
n-1
)和模板共同决定的n维向量,并要求为非负整数,可以将其表达为整数线性规划(ilp):
[0113]
argmax c
t
x
[0114]
subject to ax=b
[0115]
x≥0,x∈zm[0116]
其中,c代表希望最大化的目标的m维向量,只要该ilp有解,则意味着该模板对于输入而言是可行的。由于m即某个模板的参数个数很少(最多为10个),因此可以很快求解。由于n≤m,所以上述ilp通常有多解,这就意味着,对于同一个拓扑模板,有多种参数组合满足输入要求,将目标设为最大化在此目标下,当对应的变量代表边界填充量时,cj=1;否则,cj=0,此时的拓扑生成包含的奇异点个数是最少的。
[0117]
给定问题域的区域划分结果以及各个子区域相应边的细分数,各个子区域四边形网格生成使用上述算法求得,然后将其拼接为最终的网格效果。
[0118]
步骤8、网格光顺:
[0119]

规则顶点:给定一个固定的边界,求解winslow非线性椭圆pdeδ
x
u=0,其中u(x)是某个坐标计算空间,x是物理空间中的坐标。这样做的好处是两个坐标分量是耦合的,结果四边形形状很好,即使在大的扭曲下也能强制执行一些正交性。通过应用有限差分(fdm)离散化到winslow方程,可以推导出局部平滑四边形网格中规则顶点的核。假设(x1,...,x8)是有序的围绕规则顶点x的模板的顶点,其新位置由下式给出:
[0120][0121]
其中α0=(x
3-x7)
·
(x
3-x7),α1=(x
1-x5)
·
(x
1-x5),β=(x
1-x5)
·
(x
3-x7)
[0122]

不规则顶点:使用基于角度的平滑方法,其想法是移动单环平分线上的顶点。作为上面的winslow内核,它在网格不太受限制的情况下效果很好,但可能会在复杂配置中创建翻转单元。
[0123]
本发明的实质性效果在于:鲁棒性得到了保证,满足用户的指定尺寸场需求,且生成的网格奇异点少,质量较高。
附图说明
[0124]
图1为本发明的流程图;
[0125]
图2-1为一个模型的三角性背景网格图;
[0126]
图2-2为图2-1模型几何特征线约束图;
[0127]
图2-3为图2-1模型背景尺寸约束图;
[0128]
图3为标架场计算结果及奇异点分布示意图;
[0129]
图4为初始流线结果示意图;
[0130]
图5为简化流线后的拓扑构造示意图;
[0131]
图6为简化后的拓扑结构示意图;
[0132]
图7为根据最终拓扑生成的初始的背景四边形网格示意图;
[0133]
图8为网格几何优化后的最终四边网格示意图。
具体实施方式
[0134]
下面结合附图对本发明进一步说明。
[0135]
如图1所示,针对复杂约束模型的四边形网格生成方法,具体步骤如下:
[0136]
步骤1、首先将输入的背景三角网格及对应的尺寸约束与几何特征约束中的尺寸约束转化为相应的几何约束;
[0137]
1.1对每个三角形面使用marching triangle法提取等值线;
[0138]
1.2连接提取的等值线,并进行一定的光滑;
[0139]
1.3过滤数量少的等值线;
[0140]
1.4再等值线处进行重新网格化,并将等值线作为几何特征约束存储;
[0141]
值得一提的是,此步骤在几何特征约束能够将网格尺寸变化大的地方包括的话,
并不需要特地再加这样的等值线,在此例子中,未加入等值线。图2-1为背景三角网格示意图,图2-2为几何特征线约束示意图,图2-3为背景尺寸场约束。
[0142]
步骤2、使用有限元方法计算背景网格的标架场并提取其中的奇异点;
[0143]
交叉表示:
[0144]
使用标准单位向量表示u=(cos(4θ),sin(4θ))=(u1,u2),其中θ是四个分支之一的角度与局部参考范围。与一般的角度表示θ相反,向量表示u对四边形对称性是不变的,适用于线性有限元插值。由于单位向量的线性组合通常不是单位向量,三角形内的插值并不是严格的十字表示,但是通过投影到单位圆上可以很容易地恢复十字,即对向量表示进行归一化。由于希望交叉场与表面边界及特征线对齐,因此dirichlet边界条件在每个边界与特征线处为u=(cos(0),sin(0))=(1,0)。
[0145]
用热方程平滑
[0146]
为了在域内有一个平滑的交叉场,自然的方法是最小化狄利克雷能量:
[0147][0148]
在这项工作中,使用递减扩散时间步长,根据网格大小的考虑选择它们,并且将它们重新分组以允许重新使用由直接线性求解器计算的矩阵分解。
[0149]
扩散:
[0150]
投影:
[0151]
检测奇异点:
[0152]
对于表面上的每个点x,通过计算沿以x为中心的小闭合圆γ的角度差来检测交叉场奇点。这定义了一个奇点指数:
[0153][0154]
根据定义,交叉场奇点的索引an为-1时,它对应于四边形网格中索引k=-1的不规则顶点,即价五。
[0155]
在离散设置中,提取顶点i周围的定向边缘单环(ei1,...,ein)并计算角度差的总和。在实践中存在三种情况:和为零且顶点是规则的或和为一或负一且顶点为标架场域的奇点。由于对标架场的crouzeix-raviart离散化(每条边一个角度),交叉场奇点可能位于网格的顶点、边或三角形上。当奇点位于边上时,它的两个相邻顶点的索引都不为零,而当奇点位于三角形上时,三个相邻顶点的索引都不为零。
[0156]
如图3,为从图2-1的背景网格及2-2中的几何特征约束计算出的标架场及奇异点信息。
[0157]
步骤3、在奇异点处及计算出的部分边界点处实行龙格库塔法进行流线的延伸;
[0158]
3.1、首先在上述点处的一领域及二领域处计算起始点的第一个离散点:
[0159]

首先在边界奇异点的相关领域计算出第一个离散点
[0160]

在边界奇异点处计算是否存在内部的奇异点,如有执行

,否则跳至


[0161]

如果奇异点在面内,将此离散点延伸至三角形的边/点上,否则直接作为一个离
散点,而后删除此奇异点;
[0162]

将上述得到的所有与边界奇异点相关的离散点进行筛选,去除方向接近的离散点
[0163]

计算剩下的内部奇异点的相关领域的第一个离散点
[0164]

如果存在奇异点的二领域内有其他奇异点,如有执行

,否则跳至


[0165]

挑选一个奇异点,将另一奇异点作为此奇异点的一个离散点,如果此离散点在面内,延伸至三角形的边/点,否则直接作为一个离散点,而后删除另一个奇异点;
[0166]

将上述得到的所有与内部奇异点相关的离散点进行筛选,去除方向接近的离散点
[0167]
3.2、根据龙格库塔方法将得到的奇异点与相应的第一个离散点进行流线的延伸,终止条件如下所述:
[0168]

直到奇异点的一领域,以奇异点终止
[0169]

以约束边/边界边的终止处的最近的三角网格点终止;
[0170]

同一条流线以同样的方向经过同一个背景网格三角形,终止;
[0171]
图4为初始流线的示意图。
[0172]
步骤4、简化流线结构,构造拓扑分区
[0173]
4.1对于步骤3中得到的流线结构,检测其流线情况,针对不同的情况进行不同的简化,直到没有一种可简化的情况出现,所有简化情况大致分为三种情形:
[0174]

两条流线起止点相同,分别记为a,b,且长度相差较大,改长的流线为a-》a,短流线不变
[0175]

两条流线起止点相同,且长度相差不大,去除其中一条流线
[0176]

两条流线起止点有一个相同记为a,额外的点分别为b,c,不失一般性,设a-》b,长于a-》c,改长流线为b-》c;
[0177]
4.2求出流线与流线之间的交点,并构造拓扑关系。
[0178]
图5为初始拓扑分区的示意图。
[0179]
步骤5、弦折叠的拓扑简化,基于四边形网格对偶结构以及保持网格中奇异点的数量和基本拓扑关系不变从而设计一种四边形网格拓扑简化操作与优化框架,算法执行效率高,简化效果好,可适用于各类四边形网格的简化。
[0180]
弦、横边、纵边的定义如下:
[0181]
弦:在四边形区域的拓扑划分中根据每条边所相对的对边的集合构成的四边区域。
[0182]
横边:弦内从边界开始到另一条边界对边中所有的对边。
[0183]
纵边:弦内除横边外的其余边(连接横边顶点的边)。
[0184]
弦的折叠操作:
[0185]
从模型的对偶表示中删掉一整条弦,意味着删除这根弦所经过的所有四边形面片。具体的删除操作是通过折叠弦经过的所有横边完成,也就是说将弦横边的顶点进行两两合并,对应的纵边上的区域线两两合并。四边形网格中的对偶弦折叠不会影响网格的连通性,并且可以保证折叠得到的网格依然是纯四边形网格。
[0186]
四边形区域的折叠操作:
[0187]
四边形区域的折叠就是把弦内部分四边形区域组合而成的多块区域相对的两个顶点进行合并而实现的拓扑区域删除操作。相对于对偶弦的折叠来说,这是个局部性的网格简化操作。可以将将四边区域想象而成两个三角形,要合并的顶点之间的边是公共边,而四边形的折叠可以看成是三角形的边折叠。然而这条公共边由弦的两条纵边进行线性插值合成。由于纵边不是简单一条直线,是由多条区域线组合而成并且边上的点的数量不一致,因此插值的过程还需要对每条区域线取相同点的数量进行拟合,对应计算公式如下:
[0188]
qi=(1-ti)
×ai
ti×bi
,q
i 1
=(1-t
i 1
)
×ai 1
t
i 1
×bi 1
[0189][0190][0191]
式中i表示区域线的序号,a
iai 1
,b
ibi 1
为弦内纵边上的区域线,a
ibi
为弦内的横边,区域线由许多折线构成,j表示区域线上的折线序号,ti为x
i,j
为纵边区域线上的点
[0192]
四边形区域的折叠操作影响范围仅仅是于被折叠四边形相连的区域,并且整个操作满足不引入非四边区域的限制。
[0193]
优先级度量:
[0194]
为了提高模型的连接性,保证其几何保真度,使用一个可以智能选择删除元素的算法尤其重要。折叠操作的优先级是通过对原始拓扑区域中的弦进行能量公式计算来排序得到的,尽可能的删除那些狭长且不规整的四边区域,将一个四边区域拓扑剖分结构简化为奇异点最少的最优拓扑结构。能量公式如下:
[0195][0196]
式中k控制弦能量比值,本算法例子中设置为4。
[0197]
算法具体步骤如下:
[0198]

:在四边形区域的拓扑划分中根据对边划分弦(从边界边一直找对边直至另一条边界边或者从该边出发绕一圈回到该边)
[0199]

:将弦按类型分类:
[0200]
(1)无奇异点存在或者奇异点存在于同一条纵边
[0201]
(2)同一条横边上存在两个奇异点
[0202]
(3)两条纵边均存在奇异点并且不在同一条横边上
[0203]

:对3类弦进行检查:
[0204]
(1)如果存在被合并的纵边为边界边或者约束边时,抛弃该弦。
[0205]
(2)第一类的弦不需进行处理,第二、三类的弦转至步骤四。
[0206]

:根据优先级度量的能量公式对选取的弦进行排序,选择能量最大且大于0的的弦进行拓扑区域简化。如果不存在能量大于0的弦,则结束简化。
[0207]

:检查弦的类型进行区域简化:
[0208]
(1)第二类型的弦,直接进行四边形区域的折叠操作
[0209]
(2)第三类型的弦将根据奇异点的位置划分为non-zip-patch区域与zip-patch区域(zip-patch为相邻相对角的奇异点之间的区域)
[0210]
non-zip-patch区域删除离其最近的奇异点的弦内对边纵边和点,然后与该纵边外的四边区域合并zip-patch区域根据原来的横边和纵边线性插值拟合出一条新的纵边,删除原先两条纵边,再将横边根据新点一分为二与弦外边进行合并。
[0211]
(3)返回

[0212]
图6为简化后的拓扑分区示意图。
[0213]
步骤6、针对上述得到的区域划分,以背景尺寸长计算每个区域边的分段数,并对此段数进行一定的优化:
[0214]
由于使用模板法生成网格依赖于每条边的段数设置,因此区域线量化很重要。首先对模型区域线进行网格剖分,然后对模型区域面进行模板生成,受限于曲线离散化,这对于生成三角剖分(或四面体剖分)效果很好,但对于四边形剖分(或六面体剖分)作为四边形拓扑约束(弦)是全局的并通过模型曲线。例如,想象一个简单的矩形区域,根据连续尺寸场,其四边的理想边缘数为[9.4,4.1,10.6,3.9]。通过整数舍入的简单量化将分别选择[9,4,11,4]边。虽然存在具有这种量化的四边形网格,但它不是结构化的,因为它必须包括一对 1/

1不规则顶点,以便从一侧的9个边过渡到另一侧的11个边。
[0215]
对区域线的量化非常简单。使用通过整合全局尺寸场计算的理想边数的整数舍入值,除了四边形区域的区域线,在对边施加相等性。这种非最佳量化会导致不同区域面的最终四边形网格中出现许多必要的偶极子(一对 1/

1不规则顶点)。
[0216]
区域线上的分段数量化计算
[0217]
考虑一条区域线c,该区域线c由从a到b变化的t参数化。曲线上根据尺寸图的浮点边数为:其中dl=||x'(t)||dt。为了得到整数个边ne,使用一个简单的舍入:
[0218]
与区域线的第i个内点相关联的参数ti,i∈[1,n
e-1]是这样的:
[0219][0220]
这个积分方程可以通过数值积分求解,通过沿区域线添加值直到总和等于在样本之间进行线性插值。为了对区域线c进行网格划分,通过使用(等式11)计算参数ti并评估区域线参数化:xi=f(ti)来计算顶点位置xi,i∈[1,n
e-1]。使用这种方法,根据尺寸图将点很好地放置在曲线上,从较小的特征区域平滑过渡到较粗的区域。
[0221]
四边形区域的拓扑约束
[0222]
整合尺寸场没有考虑四边形网格拓扑的特殊性,这样四边形被组织成拓扑和弦(相邻元素的双环)。在这项工作中,调整了四边形区域面相对两侧的边数ne。考虑一个边界由四条区域线(c1、c2、c3、c4)组成的区域面,强制对边上的点数相等,即n
e1
=n
e3
和n
e2
=n
e4
,除非积分值非常不同。当两个相邻的四边形区域面共享一条区域线cc时,两个面上的n
ec

必须相同。这意味着等式约束在传播。为了解决传播问题,构建了与四边形区域面相关的拓扑弦。弦由拓扑平行的区域线组成,它们都接收相同的固定点数,通过对先前在每条曲线上计算的理想值求平均值来计算这些点。通过这种简单的传播,弦仅在两个相邻的四边形面共享一条曲线时才传播,该曲线是它们的四个边之一。
[0223]
步骤7、使用模板法对每个分区进行网格生成
[0224]
步骤:
[0225]
1)按照顺/逆时针输入多边形区域角点坐标和相应边的细分数。
[0226]
2)根据输入的细分数选择符合的拓扑模板,通过计算相应参数确定patch的拓扑结构。
[0227]
3)计算边界上点的坐标,使用拉普拉斯光顺确定patch的几何位置。
[0228][0229]
subject to vi=ωi,i∈c
[0230]
其中,ε为网格的边集,c为边界点集,ωi∈r2为输入第i个固定边界点坐标。
[0231]
简化输入
[0232]
由于考虑所有可能的输入情况是一项挑战,所以可考虑将问题简化到一个等效的,更容易解决的子问题,此操作大大减少了需要考虑的情况,以此确保算法具有通用性。
[0233]
对于输入(l0,...,l
n-1
),其对于某些k,l
k-1
和l
k 1
均大于1,定义d=min(l
k-1
,l
k 1
)-1,由此输入可以简化为(l0,...,l
n-1
),其中
[0234][0235]
可以重复上述的简化操作,直到无法再进行简化为止,从而获得了最大程度简化的输入。
[0236]
模板选择公式化为ilp
[0237]
每个拓扑模板都定义了输入(l0,...,l
n-1
)与参数之间的线性关系,这些参数包含第i条边的填充量pi、边缘流个数x和y。
[0238]
上述的通用形式记为:
[0239]
ax=b
[0240]
其中,a是一个n
×
m的矩阵,其中m为该模板的参数个数,x表示模板参数的m维向量(待求解),b是由输入(l0,...,l
n-1
)和模板共同决定的n维向量,并要求为非负整数,可以将其表达为整数线性规划(ilp):
[0241]
argmax c
t
x
[0242]
subject to ax=b
[0243]
x≥0,x∈zm[0244]
其中,c代表希望最大化的目标的m维向量,只要该ilp有解,则意味着该模板对于输入而言是可行的。由于m即某个模板的参数个数很少(最多为10个),因此可以很快求解。由于n≤m,所以上述ilp通常有多解,这就意味着,对于同一个拓扑模板,有多种参数组合满足输入要求,将目标设为最大化在此目标下,当对应的变量代表边界填充量时,cj=1;否则,cj=0,此时的拓扑生成包含的奇异点个数是最少的。
[0245]
给定问题域的区域划分结果以及各个子区域相应边的细分数,各个子区域四边形网格生成使用上述算法求得,然后将其拼接为最终的网格效果。
[0246]
图7为根据步骤7所计算的分区点进行模板法生成网格的结果示意图。
[0247]
步骤8、网格光顺
[0248]

规则顶点:给定一个固定的边界,求解winslow非线性椭圆pdeδ
x
u=0,其中u(x)是某个坐标计算空间,x是物理空间中的坐标。这样做的好处是两个坐标分量是耦合的,结果四边形形状很好,即使在大的扭曲下也能强制执行一些正交性。通过应用有限差分(fdm)离散化到winslow方程,可以推导出局部平滑四边形网格中规则顶点的核。假设(x1,...,x8)是有序的围绕规则顶点x的模板的顶点,其新位置由下式给出:
[0249][0250]
其中α0=(x
3-x7)
·
(x
3-x7),α1=(x
1-x5)
·
(x
1-x5),β=(x
1-x5)
·
(x
3-x7)
[0251]

不规则顶点:使用基于角度的平滑方法,其想法是移动单环平分线上的顶点。作为上面的winslow内核,它在网格不太受限制的情况下效果很好,但可能会在复杂配置中创建翻转单元。
[0252]
图8为对步骤7的网格结果进行几何优化的最终网格示意图。
[0253]
综上,本发明通过将标架场提取简单拓扑与模板生成网格相结合,得到了满足复杂几何特征约束及尺寸约束的高精度、高质量以及有效性要求的四边形网格,从而可以应用到高层次cad、cae模型的网格化研究设计中。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献