本发明属于计算流体力学(简称cfd)的网格生成领域,具体涉及一种跨数模缝隙的网格生成方法,采用本发明方法可以实现物面网格线在数模缝隙处不发生沉降,从而保证生成高精度的物面网格。
背景技术:
数模缝隙与曲面的生成和连接之间的数学原理有关,因此数模在生成时候缝隙不能避免。然而在cfd技术领域,由于复杂数模曲面间往往存在缝隙,很多应用(如:网格的生成等)都不能高质量完成。生成物面网格线的时候一部分的投影点会掉入缝隙,这样生成物面网格线的时候在缝隙处会出现沉降现象,网格生成的时候在数模缝隙边界会产生一系列的杂乱的网格,极大影响网格质量。上述应用中希望在数模表面生成的网格都具有较高的质量,而目前尚未有一种有效的方法来消除数模缝隙在网格生成过程中的不良影响,并且由此而获得高质量的网格。
技术实现要素:
为了克服现有技术的上述缺点,本发明提出了一种跨数模缝隙的网格生成方法,用于生成高质量的表面网格,解决目前因数模有缝隙质量低而影响网格生成质量的难题。
本发明解决其技术问题所采用的技术方案是:一种跨数模缝隙的网格生成方法,包括如下步骤:
步骤一、对落入数模缝隙的投影点进行定位,确定投影到数模缝隙里的离散点的个数,同时获得数模缝隙两侧离缝隙边缘最近的两点a和b;
步骤二、利用两点a和b在数模缝隙处生成直线ab;
步骤三、运用线性插值插入新的点代替原来落入数模缝隙中的投影点。
与现有技术相比,本发明的积极效果是:本发明旨在解决目前数模面间缝隙在多个应用领域中产生较大负面影响的技术难题,提供了一种跨数模缝隙以消除消极影响的网格生成方法。本发明实现了对落入数模缝隙的投影点的定位和参数的获取,并以此为基础,给出了基于在缝隙处生成新的直线方法,以及基于在直线上插入新的替代点来保证物面网格线在数模缝隙处不发生沉降现象的实现方法,采用本发明的网格生成方法在有缝隙的数模表面生成了高质量的网格,确保了物面网格线在数模缝隙处不发生沉降,使得物面网格线在数模缝隙处能平滑过渡。本发明方法可广泛用于数模表面高精度网格生成等对网格质量有要求的领域。
附图说明
本发明将通过例子并参照附图的方式说明,其中:
图1为物面网格线的生成示意图;
图2为物面网格线沉降及质量较差网格示意图;
图3为点的检测与判定的一种实施例示意图;
图4为点的检测与判定的另一种实施例示意图;
图5为生成直线并插入新的点示意图;
图6为f6标模算例显示效果示意图。
具体实施方式
本发明根据数模缝隙上方生成物面网格线的离散点投影落入数模缝隙中的特点,检测筛选获得所需要的投影点的参数,找到数模上用来生成物面网格线且离数模缝隙边缘最近的两个投影点,通过这两个点生成直线。然后在上述连接物面网格线上两点而生成的直线上,根据所获得的点的参数,运用线性插值插入新的点代替原来落入数模缝隙中的投影点,新生成的点在数模缝隙之上紧贴数模表面,避免了用来生成物面网格线的投影点落入数模缝隙,由此避免了物面网格线的时候在缝隙处出现沉降现象,从而保证了网格的生成质量。
本发明方法具体包括如下步骤:
步骤一、数模缝隙附近所需投影点的判定及参数获取
物面网格线本质上是一条数模表面的曲线,其具体生成过程首先是在数模上画一条所需直线,其次是将这条直线用离散方程离散成众多的离散点,最后将这些离散点通过射线投影的方法投影到数模表面再彼此连接,从而形成一条紧贴数模表面的物面网格线,如图1所示。
由于有一个将离散点向数模表面投影的过程,所以如果离散点正好处于数模缝隙之上那么就无法投影到数模表面,而是投影到了缝隙之中,这样生成的物面网格线出现沉降,如图2(a)所示,由此导致生成的网格质量差,如图2(b)所示。
在实际操作过程中会遇到两种情况,这两种情况相互耦合分离,可以先后进行判定。一种情况是需要画物面网格线的数模面在投影方向上为单层,数模缝隙上方的离散点在投影的时候不会投影在任何面上。这种情况可将离散点投影到数模表面的点的返回值和投影到缝隙里的点的返回值设为不同值,根据返回值作为判定条件,从而得到投影到缝隙里的离散点的个数d1(与投影到数模表面的点的返回值不同的返回值个数即为投影到缝隙里的离散点的个数d1),图3所示例子中d1的值为2。同时获得数模缝隙两侧离缝隙边缘最近的两点a1,b1如图3所示。
另一种情况则是,需要画物面网格线的数模面在投影方向上不为单层。数模缝隙上方的离散点在投影的时候会投影到缝隙下方的数模面上如图4所示。这种情况下,上述判定方法不能够辨别离散点是否投影到了需要画物面网格线的那层数模面上,因此我们需要找到一种新的判定条件。针对这一情况,可以将离散点在数模表面的相邻投影点之间线段长度比值作为判定的条件。一旦相邻投影点之间线段长度比值大于等于设定值j则开始记点,其中j的取值范围为[2,5],当相邻投影点之间线段长度比值小于等于设定值k则停止记点,其中k的取值范围为[1/5,1/2],从而得到投影到缝隙里的离散点的个数d2,图4所示例子d2的值为2,并获得数模缝隙两侧离缝隙边缘最近的两点a2,b2如图4所示。
步骤二、在缝隙处生成新的直线
在判定点和得到所需点的参数之后,在点a1,b1之间生成直线,和在点a2,b2之间生成直线的方法是一样的。缝隙边界两点用a,b表示,连接两点生成直线ab。如图5所示。三维空间已知两点的直线生成方程为:
方程里x1,y1,z1和x2,y2,z2是a,b两点在三维空间里的坐标,带入方程便可以获得直线。
步骤三、用线性插值插入新的点
根据所获得的参数在直线ab上运用线性插值插入新的点替换原来落入数模缝隙的投影点,如图5所示。线性插值方程为:
方程里x,y,z是点的三维空间坐标,n是投影落入数模缝隙点的个数,m为变量,是投影落入数模缝隙的点的编号,编号取区间为[1,n]的正整数。
由方程得到在直线上需要插入的点的坐标f(x,y,z),根据坐标在直线ab的相应位置插入新的点,新插入的点和原来没有落入缝隙中的投影点配合,避免了物面线在缝隙处发生沉降,由此实现了在有缝隙数模面上生成高质量网格。
有缝隙数模面网格生成实例
在spider软件中,以f6标模算例为例,综合目标为在数模尾部较大缝隙处生成平滑性较好、质量较高的网格,网格类型为结构网格,给定的网格线离散点数为41,得到的物面网格线如图6(a)所示。可以看到,物面网格线在数模缝隙处平滑过渡,没有出现沉降现象。图6(b)为运用本发明方法在数模缝隙处生成的网格,可以看到网格光滑性较好,计算结果未出现非正常抖动。
从上述生成实例可以看出,采用本发明方法,能有效地实现如下设计目标:
能消除投影点落入数模缝隙的影响、使物面网格线在数模缝隙处不发生沉降、能生成光滑性较好的高质量网格。