System.ArgumentOutOfRangeException: 索引和长度必须引用该字符串内的位置。 参数名: length 在 System.String.Substring(Int32 startIndex, Int32 length) 在 zhuanliShow.Bind()
【技术实现步骤摘要】
本专利技术属于数值仿真领域,具体涉及一种基于环切割与体细分的等几何高阶网格生成方法。
技术介绍
1、网格生成是数值仿真的前一步,网格质量的好坏直接影响数值仿真的精度和效率,因此网格的自动生成方法一直备受工业界和学术界关注。体网格比表面网格有着更加丰富的表示,常用的网格单元有六面体网格单元和四面体网格单元。相对于四面体网格,六面体网格在数值仿真中求解精度更高,所需单元更少,主要应用于工业和生物医学行业。但是符合目标几何形状的高质量六面体网格生成仍然是一个挑战,尚未提供完全令人满意的解决方案。因此,研究适应复杂几何外形的六面体网格全自动生成方法很有必要。
2、目前,六面体网格生成方法主要有前沿推进法、对偶法、块分解、体素生成法等。对于复杂的几何模型,纯六面体网格生成较为困难,因此,还有六面体网格单元和四面体网格单元混合的六面体占优方法。
3、块分解技术的目的是将物体切割成不同的部分,然后使用现有的算法进行网格划分。一旦计算出合适的分解,子映射或扫掠方法可能会生成质量令人满意的六面体网格。但是,块分解方法严重依赖于模型表面上的尖锐特征网络,不能处理不规则或者具有光滑和圆润特征的形状。如何将三维模型鲁棒地分解为可利用扫掠法生成六面体网格,同时保证不同部分的接口处满足一致性和特征保留,仍然是目前研究的关键问题。
4、loopycuts(环切割)通过表面标架场在模型表面生成一组分布良好的loop(在模型表面的环曲线),通过使用hermite径向基函数对这些loop进行插值得到等值面,并适应输入模型的形状,
5、六面体网格生成后,因为经过大量处理,可能会存在与原三角形表面网格相差较大的情况,可以将六面体网格通过等几何分析体参数化转换成b样条体,然后与三角形表面网格进行拟合,减少其误差。
技术实现思路
1、鉴于loopycuts保留特征、生成六面体质量高等优势,针对上述问题,本专利技术提出一种基于环切割与体细分的等几何高阶网格生成方法。该方法能够高效地生成单元个数较少的六面体网格,再通过样条拟合,得到与原三角形表面网格相近的样条体,为提高等几何分析的仿真精度,降低其网格规模的需求做出了一定贡献。
2、本专利技术采用的技术方案是:先对输入三角形表面网格计算二面角信息标记模型的特征边,然后基于特征边计算标架场。使用loopycuts的开源代码根据特征边信息和标架场计算得到元网格——混合体网格(拥有六面体、四面体等多种单元),接着对元网格进行catmull-clark体细分得到六面体网格,再将六面体网格转换成b样条体,与初始表面网格进行拟合,直到拟合误差符合要求。
3、步骤1、计算表面三角形网格二面角信息,根据二面角标注特征边,将其分为凹凸特征。具体如下:
4、通过计算二面角的大小实现凹凸特征的识别,二面角α计算公式为:
5、
6、其中,n1,n2为某一条边的两个面对应的法向量。
7、遍历三角形网格表面所有的边,计算每一条边的二面角,根据下式对边进行判定:
8、si=sign(α>x) (2)
9、其中,si表示第i条边是否为特征边,si=1表示第i条边为特征边,否则不是特征边。sign为指示函数,内部为真则为1,内部为假则为0。x为用户设定的特征二面角下限。
10、然后根据下式判断边的凹凸特征:
11、n1*(v1+(v2-v1)*((v4-v1)*((v2-v1)/|v2-v1|))-v4)≥0 (3)
12、其中v1,v2是公共边的两个顶点,v1v2是两个面(即模型表面的两个面)的公共边,n1为第一个面的法线。v1,v2,v4是边的另一个面上的三个顶点。
13、若该式大于等于0,则v1v2为凸特征边;若该式小于0,则v1v2为凹特征边。
14、步骤2、根据凹凸特征边信息和标架场,计算得到元网格。
15、步骤3、对元网格进行catmull-clark体细分得到六面体网格,具体如下:
16、3.1、对于每一个元网格单元插入一个体点c,体点的计算方式为对应体单元的重心。
17、3.2、对于体网格内部的每个面插入面点f,其计算方式如下公式所示::
18、
19、其中c1和c2分别为对应面的两个相邻多面体单元在3.1中所求出的体点。a为对应面顶点的平均值。
20、3.3、对于体网格内部的每一条边插入一个边点e,其计算方式如下公式所示:
21、
22、其中cavg表示该边的邻接多面体单元与邻接面在3.1中所得的体点平均值,favg分别表示该边的邻接多面体单元与邻接面在3.2中所得的面点的平均值,m为对应边的中点。
23、3.4、全部需要添加的点计算完成后,对于每一个初始模型中的每一个多面体单元,将其体点与该多面体的全部面点相连,其中的面点与对应面中的各个边点相连,每一个开始细分前的初始点与其邻接边的边点相连,这样就可以将一个多面体单元分裂成多个六面体单元,其数量跟原始多面体的拓扑结构有关。
24、3.5、最后对当前元网格中每一个原始点v按照以下公式进行更新为点v′,得到:
25、
26、其中,eavg为对应点的全部邻接边在3.3中计算得到的边点的平均值。
27、经过上述完整步骤既为一次catmull-clark体细分,然后通过一次或多次迭代细分即可得到全六面体网格。
28、步骤4、将六面体网格转换成b样条体。
29、步骤5、使用b样条体与原三角形表面网格进行拟合,具体如下:
30、根据步长对每一个样条体的表面进行采样点,计算出得到每一个点的法线,再根据样条面片上的采样点构建三角形面片。计算离三角形网格每一个点最近的三角形面片,记录面片上三个顶点中离该点最近的点,用来检测法向量投影的正确性。
31、对每一个样条体表面上的采样点计算出与其最近的三角形网格的面以及最近的点,根据三角形网格上的面的朝向和最近点的法向量判断其正确性,如果三角形网格面上法线与该样条体面上法线的夹角小于预设角度阈值则记录样条体表面上的采样点与其最近的三角形网格上点所连成的线段,然后根据所有线段的平均长度的倍数对线段进行过滤。
32、根据线段计算出采样点所要进行移动的方向以及距离。然后根据采样点计算出四个点即原六面体网格的表面四边形网格面片的四个顶点所要移动方向和距离,并映射回六面体网格表面,对网格的表面顶点进行调整,然后重新转换成样条体,进行拟合,重复本文档来自技高网...
【技术保护点】
1.一种基于环切割与体细分的等几何高阶网格生成方法,其特征在于,包括以下步骤:
2.根据权利要求1所述的基于环切割与体细分的等几何高阶网格生成方法,其特征在于,步骤1具体过程如下:
3.根据权利要求1所述的基于环切割与体细分的等几何高阶网格生成方法,其特征在于,步骤2所述元网格为混合体网格,拥有六面体单元和四面体单元。
4.根据权利要求1所述的基于环切割与体细分的等几何高阶网格生成方法,其特征在于,步骤3具体过程如下:
5.根据权利要求4所述的基于环切割与体细分的等几何高阶网格生成方法,其特征在于,步骤5具体过程如下:
6.根据权利要求5所述的基于环切割与体细分的等几何高阶网格生成方法,其特征在于,所述步长分为UVW三个方向,等于三角形表面网格的平均边长与样条体UVW三个方向上曲线长度的比值。
【技术特征摘要】
1.一种基于环切割与体细分的等几何高阶网格生成方法,其特征在于,包括以下步骤:
2.根据权利要求1所述的基于环切割与体细分的等几何高阶网格生成方法,其特征在于,步骤1具体过程如下:
3.根据权利要求1所述的基于环切割与体细分的等几何高阶网格生成方法,其特征在于,步骤2所述元网格为混合体网格,拥有六面体单元和四面体单元。
4.根据权利要求1所述的...
【专利技术属性】
技术研发人员:徐岗,计耀辉,许金兰,凌然,吴海燕,顾人舒,
申请(专利权)人:杭州电子科技大学,
类型:发明
国别省市:
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。