一种快速查找多块结构化网格对接关系的方法

文档序号:6540403阅读:343来源:国知局
一种快速查找多块结构化网格对接关系的方法
【专利摘要】本发明公开了一种快速查找多块结构化网格对接关系的方法,包括以下步骤:(1)针对计算机几何模型划分的两块以上结构网格的每个网格块,提取所有六个边界面网格的几何特征,生成待查找关系边界面网格对的队列;(2)在待查找对接关系的两个不同边界面网格中,查找并生成搜索种子;(3)以步骤(2)得到的搜索种子为起点,在搜索种子所在的两个边界面网格内各自进行连续扩张,找出两个对应边界面网格内最大的单连通对接区域;(4)保存已查找出的对接区域信息,更新待查找关系边界面网格对的队列;(5)重复第(2)至(4)步,直至待查找关系边界面网格对的队列为空;(6)输出所有三维网格模型网格块的边界面网格对接区域信息。
【专利说明】一种快速查找多块结构化网格对接关系的方法
【技术领域】
[0001]本发明涉及一种计算机辅助工程(CAE)、计算流体力学(CFD)、计算结构力学(CSD)及数值仿真软件技术,具体涉及基于网格节点信息的网格拓扑重构技术,是一种快速查找多块结构化网格对接关系的方法。
【背景技术】
[0002]随着计算机硬件技术和数值分析技术的快速发展,以计算流体力学(Computational Fluid Dynamics, CFD)软件、计算结构力学(Computational StructureDynami cs, CSD )软件为代表的计算机辅助工程软件及数值仿真技术正越来越广泛地应用于各种工程【技术领域】中,成为重要的产品研发与技术创新平台。例如,航空飞行器的空气动力学与结构力学设计、汽车热舒适性与结构动力学设计、发动机热力学与动力学设计、船舶水动力学设计等,都离不开大量基于CFD/CSD软件的仿真计算与数值优化工作。
[0003]以CFD分析为例,我们通常需要将研究对象所在的连续物理空间以网格的形式,剖分成离散空间。CR)软件就是以离散的网格系统为基础进行数值迭代和物理分析的。目前广泛使用的网格可以分为两大类:多块结构化网格(mult1-block structured mesh)和非结构网格(unstructured mesh)。其中,多块结构化网格由于数据结构简单、数值迭代收敛速度快、计算结果光滑等优势而备受CFD工程师的青睐。
[0004]在多块结构化网格中,每个网格块(block)的节点信息都是各自独立排序的;两个相邻网格块之间通过公共分界面(网格块的边界面之一)进行对接,并传递彼此之间的数据信息,但两个网格块对该分界面都有各自独立的排序、编号和存储(图1,G、H:网格块(block) ;g、h:相互对接的网格节点)。因此,CFD软件在进行数值计算之前,首先应根据已读入的多块结构化网格的节点信息,重新建立相邻网格块之间的对接关系,也即重构网格拓扑。
[0005]目前针对多块结构化网格的拓扑重构技术主要有两大类:
[0006]一种方案是“暴力算法”(brute-force),即针对每个网格块边界面上的任意一点g,对其他网格块边界面上的所有节点进行遍历搜索,在误差范围内得到与点g位置完全重合的另一点h,也即h及其所在的网格块就是点g的对接点及对接网格块(图1)。这种方法构造简单、可靠性高,但搜索时间非常长。通过对网格块边界面的节点数据进行预处理,如采用k-d树(k-维树)数据结构来存储和管理网格块的节点数据,可以大幅减少查询次数。但即便如此,“暴力算法”的搜索时间仍比较长,且算法实现非常复杂。
[0007]另一种方案是“分治法”(divide and conquer),即人为地将网格块的边界面划分成一系列更小的子面,将两个相邻网格块的边界面对接问题转化为一系列子面的对接面,并且整个计算过程可以递归地进行下去。其具体实施过程包括如下步骤:(I)计算网格块边界面的几何特征,包括边界面中心C和包络半径r (三维空间中为球半径),如图3所示;
(2)从待查找队列中取出两个边界面,如G、H,计算其面中心距离d,判断d是否大于其包络半径之和(rl+r2);(3)若d> (rl+r2),则表明G、H不可能相交,此时应更换其中一个边界面(如H),再重复比较;(4)若G与所有其他边界面均不相交,则表明G为计算域的物理边界,可以从查找队列中剔除;(5)若d〈(rl+r2),则对G、H进行细分,如分别切割成m和η个子面,即G={G1,G2,...,Gm}、H={H1,H2,...,Hn} ; (6)依次计算各子面的几何特征(图3),并类似第(2)步,判断任意两个子面间的相交特性;(7)若G上某个子面Gi与H面上所有子面均不相交,则将Gi从当前队列中剔除;(8)若Gi与H面上的某个子面Hj相交,则可以参照第(5)步对二者继续细分,直至每个子面的点数小于一定值后不再细分,而改对两个子面直接逐点循环判断是否存在节点重合及对接范围。相对于第一种方案来说,“分治法”可以利用子面之间的位置关系排除一部分遍历搜索量,但在CFD分析中,由于网格节点大都集中在分析对象表面的附近区域,因此即使在子面的包络半径范围内,仍然存在大量与该子面并无对接关系的子面。因此“分治法”的计算量仍十分可观。
[0008]随着相关硬件技术的发展,当前的计算机辅助设计对数值仿真结果的精细化程度要求已经越来越高,这导致数值计算所采用的网格量(网格节点总数)也越来越大,通常都在千万量级以上。对于多块结构化网格来说,当网格块数和节点总数较大时,采用“分治法”查找网格对接关系的时间过长,基于遍历搜索的“暴力算法”的运行时间更是无法接受。例如,针对一个由347块网格块(block)拼接而成的计算网格,其网格节点总数约为1450万个、边界面上的节点数约为200万个,此时采用分治法在3.4GHz主频的CPU上计算,大约需要50分钟才能获得所有网格块边界面之间的对接关系,查找效率非常低。

【发明内容】

[0009]发明目的:本发明所要解决的技术问题是针对现有技术的不足,提供一种快速查找多块结构化网格对接关系的方法。
[0010]为了解决上述技术问题,本发明公开了一种快速查找多块结构化网格对接关系的方法,包括以下步骤:
[0011](I)针对计算机几何模型划分的两块以上结构网络三维网格模型的每个网格块,提取每个网格块中所有六个边界面网格的几何特征,生成待查找关系边界面网格对的队列;
[0012](2)在待查找对接关系的两个不同边界面网格中,查找并生成搜索种子,搜索种子是一对分别位于所述两个不同边界面网格上的完全重合的网格节点;网格节点是指结构网格内网格线的交点;结构网格的网格节点在边界面网格内可以通过两个下标值唯一确定;
[0013](3)以步骤(2)得到的搜索种子为起点,在搜索种子所在的两个边界面网格内各自进行连续扩张,找出两个对应边界面网格内最大的单连通对接区域;
[0014](4)保存已查找出的对接区域信息,更新待查找关系边界面网格对的队列;
[0015](5)重复第(2)至(4)步,直至待查找关系边界面网格对的队列为空;
[0016](6)输出所有三维网格模型网格块的边界面网格对接区域信息。
[0017]步骤(I)中,提取边界面几何特征包括以下步骤:
[0018](Ia)提取边界面网格中心p、包络半径r、边界面网格角点eg及该边界面网格角点eg的对角点eg’;边界面网格中心P坐标为该边界面网格上所有节点坐标的算术平均,包络半径r指边界面内其他网格节点到边界面网格中心P的最大距离;其中边界面网格的角点指的是边界面网格的边界线相交处的网格节点,边界面网格角点的对角点指的是索引的两个下标值与该边界面网格角点索引的两个下标值均相差I的网格节点,每个边界面网格的角点均对应唯—个对角点;
[0019](Ib)按顺时针方向生成边界面网格角点Cg及其对应对角点eg’的列表;
[0020](Ic)提取所有边界面网格的几何特征后,将未确定对接关系的边界面网格放入待查找关系边界面网格对的队列中。
[0021]在待查找关系边界面网格对的队列中,查找并生成从两个相异边界面网格上各取一个网格节点组成的搜索种子,包括以下步骤:
[0022](2a)从待查找关系边界面网格对的队列中取出队首两个边界面网格,分别记为边界面网格G和边界面网格H,计算两者边界面网格中心的距离d ;若边界面中心距离小于两者包络半径之和,则执行第(2d)至(2h)步,否则,执行第(2b )至(2c )步;
[0023](2b)标记边界面网格G和边界面网格H不相交;
[0024](2c)若边界面网格G与待查找关系边界面对的队列中其他所有边界面网格均不相交,则将面网格G标记为计算域的物理边界;
[0025](2d)针对边界面网格G的角点和对角点组合,在边界面网格H中查找是否存在一组边界面角点和对角点组合,使得边界面网格G的角点与边界面网格H的角点重合,并且边界面网格G角点对应的对角点与边界面网格H的角点对应的对角点也重合;所述两个网格节点重合指的是两个网格节点小于预设的容许误差,预设的容许误差取值为全部三维网格模型区域中最小网格节点间距的一半;
[0026](2e)若存在,则将面网格G上的该边界面网格角点和边界面网格H上与所述边界面网格G的角点重合的点作为搜索种子;
[0027](2f)若不存在,则记录边界面网格G的角点和边界面网格H的角点中距离最近的一对角点,以这对角点为初值,在边界面网格G和边界面网格H面内搜索两个角点所在的连通区域之间的最小距离值d’ ;
[0028](2g)若最小距离值d’大于容许误差,则边界面网格G和边界面网格H不相交,更换边界面网格H,返回步骤(2a)
[0029](2h)若最小距离值d’小于容许误差,则达到最小距离值d’的边界面网格G和边界面网格H上的网格节点对就是所需的搜索种子。
[0030]步骤(3)中以步骤(2h)得到的搜索种子为起点,进行连续扩张,查找出边界面网格G和边界面网格H内与两个搜索种子连通的最大对接区域,包括以下步骤:
[0031](3a)将边界面网格G中所有网格节点标记为未访问状态;
[0032](3b)将搜索种子,即边界面网格G中网格节点g以及边界面网格H中与之重合的网格节点h形成的网格节点对g〈_>h放入查找队列Q中;
[0033](3c)若查找队列Q为空集,表明连续扩张已完成,输出面网格G和面网格H面内对接区域的网格节点标号;步骤3结束;
[0034](3d)若查找队列Q非空,取出队首元素q,q为网格节点对,由边界面网格G中网格节点g以及边界面网格H中的网格节点h形成,标记边界面网格G中网格节点g为已访问;
[0035](3e)测试步骤(3d)边界面网格H中的网格节点h以及网格节点h的相邻网格节点中,是否存在与步骤(3d)中的边界面网格G的网格节点g重合的网格节点h’ ;[0036](3f)若步骤(3e)中边界面网格H存在网格节点h’与边界面网格G中网格节点g重合,遍历边界面网格G中所有与网格节点g相邻且未访问过的网格节点g’,将形成的所有网格节点对g’ <_>h’加入查找队列Q中;
[0037](3g)返回步骤(3c)。
[0038]有益效果:本发明可以大幅提高搜索效率,快速查找出多块结构化网格的对接关系;并且,本发明构造的搜索方法计算流程简单,容易实现。以一个1450万节点、由347块网格块拼接而成的计算网格为例,其边界面的节点总数约为200万个,在3.4GHz主频的CPU上查找网格块对接关系:采用“暴力算法”进行搜索需要6小时;采用“分治法”进行搜索需要52分钟;而采用本发明给出的快速搜索方法仅需I分21秒,用户体验非常好。
【专利附图】

【附图说明】
[0039]下面结合附图和【具体实施方式】对本发明做更进一步的具体说明,本发明的上述和/或其他方面的优点将会变得更加清楚。
[0040]图1为多块结构化网格对接示意图。
[0041]图2为“分治法”对网格块边界面进行预处理:划分子面,计算其中心及包络半径示意图。
[0042]图3为本发明流程图。
[0043]图4为网格边界面的角点g及其所在网格单元的对角点g’示意图。
[0044]图5为本发明中生成“搜索种子”的流程图。
[0045]图6为本发明计算G、H边界面之间最小间距的流程图。
[0046]图7为本发明中边界面内连续扩张的计算流程图。
【具体实施方式】
[0047]如图3所示,本发明包括如下步骤:
[0048](I)针对所有网格块的所有边界面,提取其几何特征,包括面中心、包络半径、面角点及其对角点。
[0049](2)在带查找对接关系的边界面队列中,首先查找并生成搜索种子。搜索种子是一对分别位于两个不同边界面网格(如G、H)上的重合的网格节点(如g、h)。
[0050](3)以上述种子为起点,在其所在的边界面内进行连续扩张,可以找出两个对应边界面网格(如G、H)内最大的单连通对接区域。
[0051](4)保存已查找出的对接信息,更新待查边界面网格队列。
[0052](5)重复第(2)至(4)步,直至待查边界面网格队列为空。
[0053](6)输出所有网格块的边界面对接信息,结束。
[0054]步骤(I)中:提取网格块边界面网格的几何特征。
[0055](Ia)如图4所示,p为边界面网格中心,r为包络半径,在多块结构化网格中,网格块每个边界面网格包含4个角点(如g等)及其所在网格单元的对角点(如g’)。边界面网格中心可以是其几何中心,也可以在面内任取一个节点作为其中心,包络半径r指边界面网格内其他网格节点到边界面网格中心P的最大距离。
[0056](Ib)得到边界面几何特征后,按顺时针方向存储4个角点及其对角点的列表。[0057](Ic)提取所有边界面的几何特征后,将未确定对接关系的边界面放入待查找关系边界面对的队列中,以执行下一步操作。
[0058]本发明在充分分析并提取网格块边界面一般特征的基础上,构造出一种快速查找多块结构化网格对接关系的方法。针对上述347块网格,采用本发明方法查找出该网格对接关系的时间仅为“分治法”的1/40。图2为“分治法”对网格块边界面进行预处理:划分子面,计算其中心及包络半径示意图。
[0059]步骤(2)中:生成搜索种子,具体计算流程如图5所示。
[0060](2a)从待查找关系边界面对的队列中取出队首两个面网格,分别记为G和H。计算二者面中心的距离d。若面中心距离小于二者包络半径之和(rl+r2,可以乘以某个大于I的安全系数后再作比较),则执行第(d)至(h)步;否则,执行第(b)至(c)步。
[0061](2b)若d>rl+r2,表明G、H不相交。此时,可更换H,并重复第(a)步操作。
[0062](2c)若G与边界面队列中其他所有边界面均不相交,则将G标记为计算域的物理边界,并将其从待查队列中剔除。
[0063](2d)针对G的4个角点-对角点组合,在H面网格中查找是否存在一个与之完全重合的角点-对角点组合,即二者间距d小于预设的容许误差。
[0064](2e)若存在,则G面上的该角点(如g)和H面上与之重合的角点(如h)就是所需的搜索种子。“生成搜索种子”步骤结束。
[0065](2f)若不存在,则记录上述间距最近的一对角点(如g’ -h’),以此为初值,在G、H面内分别搜索g’连通区域和h’连通区域之间的最小距离值d’。
[0066](2g)若最小距离值d’大于容许误差,则G、H不相交。此时,可更换H,并重复第Ca)步操作。
[0067](2h)若最小距离值d’小于容许误差,则其所对应的一对网格节点(如g’、h’)就是所需的搜索种子。“生成搜索种子”步骤结束。
[0068]其中,给定边界面网格H上一个网格节点h和边界面网格G上一个网格节点g,计算H上与网格节点h连通区域的网格节点中与网格节点g的最小间距d的计算流程如图6所示:
[0069](3a)初始时将网格节点h放入优先队列Q中,将最小间距d初始化为网格节点g和网格节点h之间的距离;H中的所有节点标记为未访问状态;
[0070](3b)测试队列Q是否非空。若队列已空,此时记录的最小距离d和达到该距离的边界面网格中H中的节点即为所求,步骤(3)结束。
[0071](3c)若队列Q非空,取出队首元素网格节点h’,标记该网格节点为已访问;计算网格节点h’与网格节点g之间的距离d’ ;若(1’比当前记录的d小,则将d用d’替换,并记录对应的网格节点h’ ;
[0072](3c)访问网格节点h’周围所有未访问的点q,计算q与g点的距离I I q, g I I ;
[0073](3d)若q与g点的距离I |q,g| |比网格节点h’与网格节点g之间的距离小,则将q点放入队列Q ;重复执行(b)到(d)步。
[0074]步骤(4)中:以边界面网格G上网格节点g以及与之重合的边界面网格H上的网格节点h构成的搜索种子g、h为起点,进行连续扩张,可以查找出G、H边界面网格内与g、h连通的最大对接区域,具体计算流程如图7所示。匕网格对接关系的方法,具体实现该技术方选实施方式,应当指出,对于本【技术领域】的:下,还可以做出若干改进和润饰,这些改进1未明确的各组成部分均可用现有技术加以
【权利要求】
1.一种快速查找多块结构化网格对接关系的方法,其特征在于,包括以下步骤: (1)针对计算机三维几何模型划分的两块以上结构网络的每个网格块,提取每个网格块所有六个边界面网格的几何特征,生成待查找关系边界面网格对的队列; (2)在待查找对接关系的两个不同边界面网格中,查找并生成搜索种子,搜索种子是一对分别位于所述两个不同边界面网格上的重合的网格节点;网格节点是指结构网络内网格线的交点;结构网格的网格节点在面网格内可以通过两个下标值唯一确定; (3)以步骤(2)得到的搜索种子为起点,在搜索种子所在的两个边界面网格内各自进行连续扩张,找出两个对应边界面网格内最大的单连通对接区域; (4)保存已查找出的对接区域信息,更新待查找关系边界面网格对的队列; (5)重复第(2)至(4)步,直至待查找关系边界面网格对的队列为空; (6)输出所有网格块的边界面网格对接区域信息。
2.根据权利要求1所述的一种快速查找两块及以上结构化网格对接关系的方法,其特征在于,步骤(1)中,提取边界面几何特征,包括以下步骤: (Ia)提取边界面网格中心P、包络半径r、边界面网格角点eg及该边界面网格角点eg的对角点eg’ ;边界面网格中心P的坐标为边界面网格上所有网格节点坐标的算术平均,包络半径r指边界面网格内其他网格节点到边界面网格中心P的最大距离;边界面网格的角点指的是边界面网格的边界线相交处的网格节点,边界面网格角点的对角点指的是索引的两个下标值与该边界面网格角点索引的两个下标值均相差I的网格节点,每个边界面网格角点均对应唯--个对角点; (Ib)按顺时针方向生成边界面网格角点eg及其对应对角点eg’的列表; (Ic)提取所有边界面网格的几何特征后,将未确定对接关系的边界面网格放入待查找关系边界面网格对的队列中。
3.根据权利要求2所述的一种快速查找多块结构化网格对接关系的方法,其特征在于,在待查找关系边界面网格对的队列中,查找并生成从两个相异边界网格面上各取一个网格节点组成的搜索种子,包括以下步骤: (2a)从待查找关系边界面网格对的队列中取出队首两个边界面网格,分别记为边界面网格G和边界面网格H,计算两者面网格中心的距离d ;若面网格中心距离小于两者包络半径之和,则执行第(2d)至(2h)步,否则,执行第(2b )至(2c )步; (2b)标记边界面网格G和边界面网格H不相交; (2c)若边界面网格G与待查找关系边界面网格对的队列中其他所有边界面网格均不相交,则将边界面网格G标记为计算域的物理边界,并将其从待查找关系边界面网格对的队列中剔除; (2d)针对边界面网格G的角点和对角点组合,在边界面网格H中查找是否存在一组边界面网格角点和对角点组合,使得边界面网格G的角点与边界面网格H的角点重合,并且边界面网格G角点对应的对角点与边界面网格H的角点对应的对角点也重合;所述两个网格节点重合指的是两个网格节点小于预设的容许误差,预设的容许误差取值为全部三维网格模型区域中最小网格节点间距的一半; (2e)若存在,则将边界面网格G上的该边界面网格角点和边界面网格H面上与所述边界面网格G的角点重合的角点作为搜索种子;(2f)若不存在,则记录边界面网格G的角点和边界面网格H的角点中距离最近的一对角点,以这对角点为初值,在边界面网格G和边界面网格H内搜索两个角点所在的连通区域之间的最小距离值d’ ; (2g)若最小距离值d’大于容许误差,则边界面网格G和边界面网格H不相交,更换边界面网格H,返回步骤(2a) (2h)若最小距离值d’小于容许误差,则达到最小距离值d’的边界面网格G和边界面网格H上的网格节点对就是所需的搜索种子。
4.根据权利要求3所述的一种快速查找多块结构化网格对接关系的方法,其特征在于,步骤(3)中以步骤(2h)得到的搜索种子为起点,进行连续扩张,查找出边界面网格G和边界面网格H内与两个搜索种子连通的最大对接区域,包括以下步骤: (3a)将边界 面网格G中所有网格节点标记为未访问状态; (3b)将搜索种子,即边界面网格G中网格节点g以及边界面网格H中与之重合的网格节点h形成的网格节点对g〈_>h放入查找队列Q中; (3c)若查找队列Q为空集,表明连续扩张已完成,输出边界面网格G和边界面网格H对接区域的网格节点索引;步骤3结束; (3d)若查找队列Q非空,取出队首元素q,q为网格节点对,由边界面网格G中网格节点g以及边界面网格H中的网格节点h形成,标记边界面网格G中网格节点g为已访问;(3e)测试步骤(3d)边界面网格H中的网格节点h以及网格节点h的相邻网格节点中,是否存在与步骤(3d)中的边界面网格G的网格节点g重合的网格节点h’ ; (3f)若步骤(3e)中边界面网格H存在网格节点h’与边界面网格G中网格节点g重合,对边界面网格G中所有与网格节点g相邻且未访问过的网格节点g’,形成的所有网格节点对g’ <_>h’加入查找队列Q中; (3g)返回步骤(3c)。
【文档编号】G06F17/50GK103838852SQ201410093541
【公开日】2014年6月4日 申请日期:2014年3月13日 优先权日:2014年3月13日
【发明者】毛峰, 丁可琦, 张日葵 申请人:北京大学工学院南京研究院, 南京北大工道软件技术有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1