一种计算网格生成方法及装置制造方法

文档序号:6544358阅读:335来源:国知局
一种计算网格生成方法及装置制造方法
【专利摘要】本发明提供了一种计算网格生成方法及装置,该方法包括:接收用户输入的待模拟区域的几何信息;根据所述几何信息划分待模拟区域,确定划分的各子区域的几何信息和编号;根据所述各子区域的编号依序选取一当前子区域,对选取的当前子区域进行结构化网格生成和挖洞操作,生成当前子区域的结构化网格和边界信息;根据依序生成的各子区域的网格和边界信息生成洞体空腔数据;根据所述洞体空腔数据生成非结构化网格。本发明将挖洞操作和各个子区域结构化网格生成交替进行,并根据子区域间的相对位置关系确定终止“挖洞”操作的合适位置解决现有技术方案中生成大量不必要网格及冗余重叠区域的问题,提高处理速度。
【专利说明】一种计算网格生成方法及装置
【技术领域】
[0001]本发明涉及计算机数据处理技术,具体的讲是一种计算网格的生成方法及装置。【背景技术】
[0002]网格生成技术是对给定区域进行离散并生成计算网格的方法,而网格的合理设计和高质量生成是进行数值模拟计算的前提条件,也是影响后续数值计算效率和计算结果精度最主要的决定性因素之一。计算网格包括:结构化网格和非结构化网格。结构化网格:排列有序、相邻节点位置关系明确的网格,主要为四边形网格;非结构化网格:排列无序、相邻节点位置关系不明确的网格,主要有非结构化四边形网格、非结构化三角形网格等。同时对网格生成中的基本概念进行解释:挖洞:在结构化网格中通过消除部分重叠网格以制造空白区域的方法;洞体空腔:经过“挖洞”操作后的空白区域,通常用非结构化网格进行填充。
[0003]结构化网格作为最早出现的网格类型,其生成算法简单、生成速度快,同时相邻网格间的拓扑关系明确,在其上能够方便地实施高精度、高效率的数值算法,并且结构化网格很容易生成长宽比很大的粘性网格,可以精确、高效地计算模拟边界层等粘性流动问题,因此一直是离散较规则几何构型的首选网格。但结构化网格自身排列的结构性和有序性大大限制了其对复杂几何构型的适应能力,对这类计算区域进行结构化网格生成通常非常困难,需要进行大量的人工操作,严重影响了数值计算的效率。
[0004]与结构化网格不同,非结构化网格最大优点就是其强大的几何适应能力,由于没有节点结构性的限制,因而非结构化网格对于构型复杂的区域能够灵活地进行网格生成,也更有利于进行网格自适应处理来提高物理量变化剧烈区域的分辨率。但目前对于复杂构型完全自动化的非结构化网格生成和自适应调整技术仍未能真正实现。而且非结构化网格排列的无序性不仅使得高阶精度的数值算法较难在其上构造和实施,同时控制方程的系数矩阵也难以保证对角占优,这无疑会对后续数值计算的收敛性产生不利影响。在同样的物理区域里,非结构化网格需要的网格数也比结构化网格要多,尤其对于粘性流动区域,非结构化网格很难采用类似于结构化网格的大长宽比网格,为了保证计算精度和稳定性必须在各个方向都进行网格加密,大大增加了计算资源的消耗和不必要的计算时间。
[0005]基于充分发挥结构化网格和非结构化网格各自优点的思想,出现了一系列混合网格生成技术,并在复杂流动计算、网格自适应处理等多个研究领域中取得了广泛的应用。这些技术的基本思路是充分利用结构化网格上数值计算高精度、高效率和高稳定性的特点,在流动或传热边界附近等速度、温度梯度大的区域使用简单的结构化网格,然后再利用非结构化网格的几何灵活性把已生成结构化网格的区域连接起来,从根本上保证了不同类型网格交界面处的通量守恒,避免了插值误差。混合网格的生成主要由对几何构型分区生成结构化网格、在已生成的结构化网格中“挖洞”和在洞体中生成非结构化网格等几个关键模块组成,其中结构化网格和非结构化网格的生成相对独立,可各自采用不同方法对相应区域进行网格生成,二者通过“挖洞”模块进行过渡连接,并依靠一系列精细控制的步骤保证计算区域被网格完全覆盖并实现两种不同类型网格间的无缝连接。
[0006]现有技术中,混合网格的生成主要分为三个部分:一、对计算区域进行分区并对各个子区域分别生成结构化网格;二、对子区域结构化网格互相重叠的部分进行挖洞操作;三、在洞体空腔中生成非结构化网格填满整个计算区域。
[0007]对于第一和第三部分,即分区生成结构化网格和生成非结构化网格,现有技术均可以快速地生成高质量的网格,因此作为连接两者的中间环节,第二部分的“挖洞”操作将直接影响计算的效率,在这方面现有技术还存在着一些缺点,由于现有技术方案是在所有子区域结构化网格生成完毕后才进行“挖洞”,并且缺乏有效手段判断何时停止“挖洞”操作,所以势必要产生大量不必要的结构化网格及冗余的重叠区域,这不仅会严重浪费计算机的内存资源,而且由于计算网格数量过多,处理速度会变慢。这就是现有技术存在的最明显缺点。

【发明内容】

[0008]本发明针对现有混合网格生成技术处理速度低的缺点,通过改进挖洞算法来避免产生大量不必要的结构化网格及冗余重叠区域,提高混合网格的生成速度。
[0009]本发明实施例提供了一种计算网格生成方法,包括:
[0010]步骤1,接收用户输入的待模拟区域的几何信息;
[0011 ] 步骤2,根据所述几何信息划分所述待模拟区域,确定划分的各子区域的几何信息和编号;
[0012]步骤3,根据所述各子区域的编号依序选取一当前子区域,对选取的当前子区域进行结构化网格生成和挖洞操作,生成当前子区域的结构化网格和边界信息;
[0013]步骤4,根据依序生成的各子区域的结构化网格和边界信息生成洞体空腔数据;
[0014]步骤5,根据所述洞体空腔数据生成非结构化网格。
[0015]此外,本发明还公开了一种计算网格生成装置,包括:
[0016]接收模块,用于接收用户输入的待模拟区域的几何信息;
[0017]分区模块,用于根据所述几何信息划分所述待模拟区域,确定划分的各子区域的几何信息和编号;
[0018]结构化网格生成及挖洞模块,用于根据所述各子区域的编号依序选取一当前子区域,对选取的当前子区域进行结构化网格生成和挖洞操作,生成当前子区域的网格和边界
信息;
[0019]洞体空腔数据生成模块,用于根据依序生成的各子区域的网格和边界信息生成洞体空腔数据;
[0020]非结构化网格生成模块,用于根据所述洞体空腔数据生成非结构化网格。
[0021]本发明将挖洞操作和各个子区域结构化网格生成交替进行,对洞体空腔进行动态扩展,并根据子区域间的相对位置关系确定终止“挖洞”操作的合适位置,由于单次挖洞操作消除的网格都不计入下次挖洞操作的计算范围内,因而解决了现有技术方案中生成大量不必要网格及冗余重叠区域的问题,同时挖洞操作又能在适当时刻终止,所以本发明能大幅减少计算量,提高处理速度,快速生成高质量的混合网格。
[0022]为让本发明的上述和其他目的、特征和优点能更明显易懂,下文特举较佳实施例,并配合所附图式,作详细说明如下。
【专利附图】

【附图说明】
[0023]为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
[0024]图1为本发明一种计算网格生成方法的流程图;
[0025]图2为本发明一实施例在对选取的当前子区域进行结构化网格生成和挖洞操作的流程图;
[0026]图3为本发明一实施例的流程图;
[0027]图4为本发明实施例中进行挖洞操作的流程图;
[0028]图5为本发明一实施例对一多连通区域进行挖洞操作的各阶段示意图;
[0029]图6为本发明公开的计算网格生成装置的流程图。
【具体实施方式】
[0030]下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
[0031]如图1所示,为本发明一种计算网格生成方法的流程图,包括:
[0032]步骤S101,接收用户输入的待模拟区域的几何信息;
[0033]步骤S102,根据所述几何信息划分所述待模拟区域,确定划分的各子区域的几何信息和编号;几何信息包括:子区域数量,关键节点的坐标信息及关键节点间的连接关系,描述区域边界形状的几何函数等。
[0034]步骤S103,根据所述各子区域的编号依序选取一当前子区域,对选取的当前子区域进行结构化网格生成和挖洞操作,生成当前子区域的结构化网格和边界信息;
[0035]步骤S104,根据依序生成的各子区域的结构化网格和边界信息生成洞体空腔数据;
[0036]步骤S105,根据所述洞体空腔数据生成非结构化网格。本步骤中,根据所述洞体空腔数据确定非结构化网格的初始生成边界;根据确定的初始生成边界生成非结构化网格。
[0037]其中,步骤S102确定划分的各子区域的几何信息和编号后,根据所述各子区域的几何信息和编号确定各子区域相对位置;根据确定的各子区域的相对位置确定挖洞操作的终止位置。
[0038]根据确定的挖洞操作的终止位置,如图2所示,在对选取的当前子区域进行结构化网格生成和挖洞操作中还可以包括:
[0039]步骤S201,生成背景结构化网格;
[0040]步骤S202,根据选取的当前子区域的几何信息进行结构化网格生成,并确定当前子区域网格的边界信息;[0041]步骤S203,对当前子区域的结构化网格和背景网格重叠的网格进行挖洞操作;
[0042]步骤S204,根据所述的终止位置判断当前子区域网格的边界到达终止位置,进行下一子区域的结构化网格生成及挖洞操作。
[0043]本发明公开的方法其具体实现方式通过计算机程序实现,如图3所示,本实施例通过计算机程序中的虚拟模块结合如下步骤实现:
[0044]步骤S301:输入计算区域几何信息并进行分区;通过“输入模块”接收用户输入的计算区域几何信息,并根据这些信息对区域进行划分;根据关键节点及节点间的连接关系确定各个子区域的连通性及其所包含的节点编号,并且根据各个边界形状的几何函数确定后续生成结构化网格的算法,完成区域的划分操作,得到各子区域的编号,将各子区域的几何信息和编号传递给下一个模块。
[0045]步骤S302:确定各子区域间相对位置关系;“确定各子区域间相对位置关系模块”接收“输入模块”传递来的各子区域几何信息和编号,确定各子区域间的相对位置和后续挖洞操作的终止位置,实际上确定各自区域间的相对位置和后续挖洞操作的终止位置是在步骤S303中背景结构化网格生成完毕后进行的,具体操作步骤为:在对各个子区域生成结构化网格前,可以在背景结构化网格上确定包围各个子区域最外边沿的结构化网格列数和行数,对相邻的子区域通常取两者所夹区域中线位置的行数和列数作为后续挖洞操作的终止位置,当进行挖洞操作时如果洞体空腔最外边沿的行数或列数到达终止位置即停止当前子区域的结构化网格生成及挖洞操作,将这些数据传递给“结构化网格生成模块”和“挖洞模块”。
[0046]现有技术方案缺乏有效终止挖洞操作的手段,而本发明则通过步骤2确定后续挖洞操作的终止位置,之后能够在合适的时机终止挖洞操作,减少计算量,提高处理速度。根据各个子区域的相对位置关系,选取中间位置作为后续“挖洞”操作的终止位置。本发明实施例中在对单个子区域进行挖洞时,子区域的结构化网格每生成一层即进行挖洞操作,随着结构化网格的不断推进,逐步扩大洞体的范围,并在推进的过程中随时更新当前洞体的边界,当到达终止位置时即停止当前子区域结构化网格的生成,转而处理下一个内部子区域。这样做能够有效地避免不必要的挖洞操作,及时终止进程,提高处理速度。
[0047]步骤S303:各子区域依次生成结构化网格;“结构化网格生成模块”接收处理后的子区域几何信息,首先生成背景结构化网格,之后按照编号对子区域依次进行结构化网格生成,每生成一层网格就将当前子区域生成的网格及边界信息记录下来,把数据传递给“挖洞模块”;
[0048]步骤S304:依序对生成的各子区域的结构化网格进行挖洞操作;“挖洞模块”接收当前子区域的结构化网格生成信息后进行挖洞操作,如采用隐式挖洞法;
[0049]如图4所示,步骤S304进行挖洞操作具体包括如下步骤:
[0050]步骤S401,消除背景结构化网格中与当前子区域生成网格重叠的网格;
[0051]步骤S402,更新背景结构化网格中剩余网格的数据;
[0052]步骤S403,检测当前网格边界是否到达前述的挖洞操作的终止位置;
[0053]若否,则执行步骤S404,将更新后的背景结构化网格数据返回步骤3中的“结构化网格生成模块”,进行当前子区域的下一层结构化网格的生成;
[0054]若是,则执行步骤S405,转入下一个子区域的结构化网格生成,即返回步骤3中,按编号依序进行下一子区域的结构化网格生成和挖洞操作。
[0055]步骤S305,判断所有子区域结构化网格生成是否完毕;
[0056]判断是,即当所有子区域的结构化网格都生成完毕后,将当前所有的结构化网格信息数据及最终的洞体空腔数据传递给“非结构化网格生成模块”。
[0057]现有技术方案中采用的是等所有子区域结构化网格全部生成完毕后再统一进行挖洞操作,即步骤3和步骤4之间不存在循环交替进行的流程,而本发明是将挖洞操作和各个子区域结构化网格生成交替进行,对洞体空腔进行动态扩展。由于每一个子区域生成完结构化网格后都紧接着进行挖洞操作,每次挖洞都会消除一部分背景结构化网格,而消除的这部分网格将不计入下次挖洞操作的计算范围内,这样就能够最大限度地避免重叠区域带来的重复计算问题,从而提高网格生成时的处理速度。
[0058]步骤S306 非结构化网格生成模块”接收洞体空腔数据后确定非结构化网格的初始生成边界,之后采用合适的方法生成非结构化网格,如前沿推进法、Delaunay法等,直至整个洞体空腔都被非结构化网格填满,完成整个混合网格的生成过程,最后将所有的网格及对应节点的数据传递给“输出模块”;
[0059]步骤S307 输出模块”接收网格及节点数据,按照预设的格式将节点总数、各边界节点数、各节点坐标、网格总数、各网格包含的节点编号以文件形式输出传送给用户。
[0060]此外,在具体实施过程中,本发明实施例的计算网格生成还可以包括如下模块:
[0061]光顺更新模块:光顺非结构化网格初始生成边界。由于挖洞操作是针对结构化网格进行的,所以最终生成的洞体边界形状一般为阶梯状或锯齿状,如果将阶梯状边界直接作为非结构化网格生成的初始边界,在后续非结构化网格的生成过程中有可能出现无法检测到网格间距离过近的情况,这会对网格生成过程造成不利影响。因此,增加的模块会遍历已形成的阶梯状边界,计算边界上每个节点的内角值,当判断某一节点的内角值为90°时即连接其前后两个节点并对生成非结构化网格的初始边界进行光顺更新,避免了对网格间距离过近情况“漏检”现象的发生,提高了算法的通用性和健壮性。
[0062]网格质量优化模块。当混合网格全部生成完毕后,针对其中的非结构化网格还要经过一系列的拓扑优化和光顺优化操作,通过改变网格节点间的拓扑连接关系或者节点的几何位置等方法来提高混合网格的整体质量。
[0063]如图5所示为本发明一实施例对一多连通区域进行挖洞操作的各阶段示意图:其中,(a)所示为待模拟区域的基本几何信息,包括一个扇形区域和其中六个互不连通的圆形子区域;(b)所示为对扇形区域进行结构化网格离散作为背景网格,并在对所有子区域生成结构化网格前,根据子区域最初的边界进行初步挖洞操作,以此确定后续挖洞操作的终止位置,最后按照子区域编号对I号子区域进行了结构化网格生成和挖洞操作;(c)?(g)对2到6号子区域依次进行交替的结构化网格生成和挖洞操作;(h)消除残余的孤立网格,形成洞体空腔;(i)对锯齿状的洞体空腔边界进行光顺处理,形成最终的洞体空腔。
[0064]此外,如图6所示,本发明还公开了 一种计算网格生成装置,装置包括:
[0065]接收模块601,用于接收用户输入的待模拟区域的几何信息;
[0066]分区模块602,用于根据所述几何信息划分所述待模拟区域,确定划分的各子区域的几何信息和编号;
[0067]结构化网格生成及挖洞模块603,用于根据所述各子区域的编号依序选取一当前子区域,对选取的当前子区域进行结构化网格生成和挖洞操作,生成当前子区域的网格和边界信息;
[0068]洞体空腔数据生成模块604,用于根据依序生成的各子区域的网格和边界信息生成洞体空腔数据;
[0069]非结构化网格生成模块605,用于根据所述洞体空腔数据生成非结构化网格。
[0070]此外,该装置还包括:
[0071]相对位置确定模块,用于根据所述各子区域的几何信息和编号确定各子区域相对位置;
[0072]终止位置确定模块,用于根据确定的各子区域的相对位置确定挖洞操作的终止位置。
[0073]优选的,本发明一种计算网格生成装置的非结构化网格生成及挖洞模块包括:
[0074]背景结构化网格生成单元,用于生成背景结构化网格;
[0075]结构化网格生成单元,用于根据选取的当前子区域的几何信息进行结构化网格生成,并确定当前子区域网格的边界信息;
[0076]挖洞单元,用于对当前子区域的结构化网格和背景网格重叠的网格进行挖洞操作;
[0077]判断单元,用于根据所述的终止位置判断当前子区域网格的边界到达终止位置,进行下一子区域的结构化网格生成的挖洞操作。
[0078]优选的,本发明一种计算网格生成装置的非结构化网格生成模块包括:
[0079]初始生成边界确定单元,用于根据所述洞体空腔数据确定非结构化网格的初始生成边界;
[0080]非结构化网格生成单元,用于根据确定的初始生成边界生成非结构化网格。
[0081]本发明针对现有混合网格生成技术处理速度低的缺点,发展了 一种基于改进“挖洞”算法的混合网格快速生成技术,着重解决目前影响网格生成速度最关键的瓶颈环节一连接结构化网格生成和非结构化网格生成的“挖洞”操作,提出了一种新的“挖洞”算法来突破现有技术方案中生成大量不必要网格及冗余重叠区域的问题。这种新的改进算法是将“挖洞”操作和各个子区域结构化网格生成交替进行,对洞体空腔进行动态扩展,并根据子区域间的相对位置关系确定终止“挖洞”操作的合适位置,由于单次“挖洞”操作消除的网格都不计入下次“挖洞”操作的计算范围内,同时“挖洞”操作又能在适当时刻终止,所以本发明能大幅减少计算量,提高处理速度,快速生成高质量的混合网格。
[0082]本发明中应用了具体实施例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及其核心思想;同时,对于本领域的一般技术人员,依据本发明的思想,在【具体实施方式】及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本发明的限制。
【权利要求】
1.一种计算网格生成方法,其特征在于,所述的方法包括: 步骤1,接收用户输入的待模拟区域的几何信息; 步骤2,根据所述几何信息划分所述待模拟区域,确定划分的各子区域的几何信息和编号; 步骤3,根据所述各子区域的编号依序选取一当前子区域,对选取的当前子区域进行结构化网格生成和挖洞操作,生成当前子区域的结构化网格和边界信息; 步骤4,根据依序生成的各子区域的结构化网格和边界信息生成洞体空腔数据; 步骤5,根据所述洞体空腔数据生成非结构化网格。
2.如权利要求1所述的计算网格生成方法,其特征在于,所述的方法还包括: 根据所述各子区域的几何信息和编号确定各子区域相对位置; 根据确定的各子区域的相对位置确定挖洞操作的终止位置。
3.如权利要求2所述的计算网格生成方法,其特征在于,所述的步骤3中对选取的当前子区域进行结构化网 格生成和挖洞操作包括: 生成背景结构化网格; 根据选取的当前子区域的几何信息进行结构化网格生成,并确定当前子区域结构化网格的边界信息; 对当前子区域的结构化网格和背景网格重叠的部分进行挖洞操作; 根据所述的终止位置判断当前子区域网格的边界到达终止位置,进行下一子区域的结构化网格生成及挖洞操作。
4.如权利要求1所述的计算网格生成方法,其特征在于,所述的步骤5中根据所述洞体空腔数据生成非结构化网格包括: 根据所述洞体空腔数据确定非结构化网格的初始生成边界; 根据确定的初始生成边界生成非结构化网格。
5.一种计算网格生成装置,其特征在于,所述的装置包括: 接收模块,用于接收用户输入的待模拟区域的几何信息; 分区模块,用于根据所述几何信息划分所述待模拟区域,确定划分的各子区域的几何信息和编号; 结构化网格生成及挖洞模块,用于根据所述各子区域的编号依序选取一当前子区域,对选取的当前子区域进行结构化网格生成和挖洞操作,生成当前子区域的结构化网格和边界信息; 洞体空腔数据生成模块,用于根据依序生成的各子区域的结构化网格和边界信息生成洞体空腔数据; 非结构化网格生成模块,用于根据所述洞体空腔数据生成非结构化网格。
6.如权利要求5所述的计算网格生成装置,其特征在于,所述的装置还包括: 相对位置确定模块,用于根据所述各子区域的几何信息和编号确定各子区域相对位置; 终止位置确定模块,用于根据确定的各子区域的相对位置确定挖洞操作的终止位置。
7.如权利要求6所述的计算网格生成装置,其特征在于,所述的结构化网格生成及挖洞模块包括:背景结构化网格生成单元,用于生成背景结构化网格; 结构化网格生成单元,用于根据选取的当前子区域的几何信息进行结构化网格生成,并确定当前子区域网格的边界信息; 挖洞单元,用于对当前子区域的结构化网格和背景网格重叠的部分进行挖洞操作; 判断单元,用于根据所述的终止位置判断当前子区域网格的边界到达终止位置,进行下一子区域的结构化网格生成的挖洞操作。
8.如权利要求5所述的计算网格生成装置,其特征在于,所述的非结构化网格生成模块包括: 初始生成边界确定单元,用于根据所述洞体空腔数据确定非结构化网格的初始生成边界; 非结构化网格生成单元,用于根据确定的初始生成边界生成非结构化网格。
【文档编号】G06F17/00GK103970715SQ201410160332
【公开日】2014年8月6日 申请日期:2014年4月21日 优先权日:2014年4月21日
【发明者】宇波, 赵宇, 李敬法 申请人:中国石油大学(北京)
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1