CN114820989A - 基于倒排索引的非结构网格共面关系快速建立方法 - Google Patents
基于倒排索引的非结构网格共面关系快速建立方法 Download PDFInfo
- Publication number
- CN114820989A CN114820989A CN202210720454.0A CN202210720454A CN114820989A CN 114820989 A CN114820989 A CN 114820989A CN 202210720454 A CN202210720454 A CN 202210720454A CN 114820989 A CN114820989 A CN 114820989A
- Authority
- CN
- China
- Prior art keywords
- grid
- inverted index
- unstructured
- coplanar
- coplanar relationship
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T17/00—Three dimensional [3D] modelling, e.g. data description of 3D objects
- G06T17/20—Finite element generation, e.g. wire-frame surface description, tesselation
- G06T17/205—Re-meshing
Landscapes
- Physics & Mathematics (AREA)
- Engineering & Computer Science (AREA)
- Computer Graphics (AREA)
- Geometry (AREA)
- Software Systems (AREA)
- General Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明公开了一种基于倒排索引的非结构网格共面关系快速建立方法,属于非结构网格科学计算领域,包括如下步骤:通过预先建立网格点和包含网格点的网格面之间的倒排索引列表,将搜索网格单元间共面关系的范围从全部所有单元缩小到倒排索引列表内部单元;在所建立的倒排索引中进行网格面匹配,将匹配成功的网格面对应的网格单元建立共面关系。本发明可以大大提升网格单元匹配过程中的搜索效率,从而起到实现非结构网络快速建立共面关系的作用;该方法可以为基于非结构网格的科学计算程序提供一种快速网格拓扑关系建立方法,提高计算速度和效率。
Description
技术领域
本发明涉及非结构网格科学计算领域,更为具体的,涉及一种基于倒排索引的非结构网格共面关系快速建立方法。
背景技术
非结构网格由于面对复杂几何外形时具备自动化程度高、生成周期短、分布控制灵活等优点,常用于许多具有不规则几何的相关科学计算领域的工程应用。针对所需要模拟的外形,一般通过网格软件生成非结构网格后,导入到相应的求解器进行计算。但是为了保证通用性,网格生成软件生成的网格文件一般只存储必要的拓扑信息。对于非结构网格,标准的拓扑信息包括网格单元类型和构成每个网格单元的网格点信息。求解器在读入网格后要还需进行二次解析并转换成所需要的数据结构才能计算。其中最重要的一个数据结构是不同网格单元间的共面关系,即两个不同网格单元是否共同拥有由相同网格点构成的网格面,比如计算流体力学(CFD)中的格心型有限体积方法求解器需要利用单元间的共面关系进行通量计算。然而,直接的共面关系建立方法是逐个遍历所有网格单元进行两两搜索匹配,当网格单元总数为N时,时间复杂度为O(N2)。在实际工程中,网格量一般非常大,达到千万甚至上亿量级,所需要的搜素时间是非常巨大的,严重影响计算效率。
发明内容
本发明的目的在于克服现有技术的不足,提供一种基于倒排索引的非结构网格共面关系快速建立方法,可以大大提升网格单元匹配过程中的搜索效率,从而起到实现非结构网络快速建立共面关系的作用;该方法可以为基于非结构网格的科学计算程序提供一种快速网格拓扑关系建立方法,提高计算速度和效率。
本发明的目的是通过以下方案实现的:
一种基于倒排索引的非结构网格共面关系快速建立方法,其特征在于,包括步骤:步骤一,通过预先建立网格点和包含网格点的网格面之间的倒排索引列表,利用拥有相同网格点的面一定落入相同倒排索引列表内的原理,将搜索网格单元间共面关系的范围从全部所有单元缩小到倒排索引列表内部单元,从而能够快速搜索建立非结构网格单元间共面关系;步骤二,在所建立的倒排索引中进行网格面匹配,将匹配成功的网格面对应的网格单元建立共面关系。
进一步地,在步骤一中,包括子步骤:
S1,对给定的三维非结构网格,遍历其所有网格单元,重构出组成这些网格单元的所有网格面信息;
S2,建立网格点到网格面之间的倒排索引;
在步骤二中,包括子步骤:
S3,在所建立的倒排索引中取出映射数据列表,对映射数据列表中存储的所有网格面进行两两匹配。
进一步地,在步骤S2中,所述倒排索引为key-value形式的关系映射,其中key称之为键值,在这里是网格点编号,value为映射数据,在这里是存储网格面编号的列表。
进一步地,在步骤S1中,包括子步骤:针对某个网格单元c,根据其形状构造出c所拥有的网格面,并分别为这些网格面进行编号:f1,f2,…,fn,n是c所拥有的网格面总数,对于每个网格面,记录下构成这些网格面的点,同时标记网格单元c是这些网格面的“拥有者”。
进一步地,在步骤S2中,包括子步骤:遍历所有网格面,对每一个网格面fi,在构成fi的所有网格点中,找到编号最小的网格点n;如果已经存在以n为键值的映射数据列表L,则将fi加入到L中;如果不存在,则创建一个以n为键值的新映射数据列表L,同时将fi加入到L中。
进一步地,在步骤S3中,包括子步骤:分别在所建立的倒排索引中取出映射数据列表L,对L中存储的所有网格面进行两两匹配,即取出L中的任意两个网格面fi、fj,如果构成fi和fj的网格点相同,则匹配成功;对于匹配成功的两个面,它们的“拥有者”网格单元将建立共面关系;重复此匹配过程,直到所有网格单元间的共面关系建立完成。
进一步地,所述形状包括四面体。
进一步地,所述形状包括三棱柱。
进一步地,所述形状包括金字塔。
进一步地,所述形状包括六面体。
本发明的有益效果包括:
本发明通过预先建立网格点和包含网格点的网格面之间的倒排索引列表,将搜索网格单元间共面关系的范围从全部所有单元缩小到倒排索引列表内部单元,从而大大提升搜索效率。该方法可以为基于非结构网格的科学计算程序提供一种快速网格拓扑关系建立方法。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1为一个包含四个网格单元的非结构网格示意图;
图2为对图1中非结构网格重构出的各个网格单元所拥有的网格面信息示意图;图1、图2中, 子图c1表示四面体网格单元, 子图c2表示三棱柱网格单元, 子图c3表示六面体网格单元, 子图c4表示金字塔网格单元;
图3为本发明实施例方法的步骤流程图。
具体实施方式
本说明书中所有实施例公开的所有特征,或隐含公开的所有方法或过程中的步骤,除了互相排斥的特征和/或步骤以外,均可以以任何方式组合和/或扩展、替换。
为了解决背景中提出的问题,本发明实施例提出一种基于倒排索引技术的非结构网格共面关系快速建立新方法,倒排索引(Inverted Index)技术通常用于搜索引擎领域的海量数据搜索中,借助其思想,通过先建立网格点和包含网格点的网格面之间的倒排索引列表,利用拥有相同网格点的面一定落入相同倒排索引列表内的原理缩小搜索范围,从而帮助快速搜索建立非结构网格单元间共面关系,最终达到提升非结构网格科学计算的效率的目的。
本发明实施例通过预先建立网格点和包含网格点的网格面之间的倒排索引列表,将搜索网格单元间共面关系的范围从全部所有单元缩小到倒排索引列表内部单元,从而大大提升搜索效率。该方法可以为基于非结构网格的科学计算程序提供一种快速网格拓扑关系建立方法,在具体实施过程中,包括以下步骤:
步骤一:给定特定的三维非结构网格G,遍历其所有网格单元,重构出组成这些网格单元的所有网格面信息。具体针对某个网格单元c,根据其形状(四面体、三棱柱、金字塔或是六面体),构造出c所拥有的网格面,并分别为这些网格面进行编号:f1,f2,…,fn,n是c所拥有的网格面总数,对于每个网格面,记录下构成这些网格面的点,同时标记网格单元c是这些网格面的“拥有者”。
步骤二:建立网格点到网格面之间的倒排索引,倒排索引为key-value形式的关系映射,其中key称之为键值,在这里是网格点编号,value为映射数据,在这里是存储网格面编号的列表。具体建立步骤如下:遍历所有网格面,对每一个网格面fi,在构成fi的所有网格点中,找到编号最小的网格点n。如果已经存在以n为键值的映射数据列表L,则将fi加入到L中。如果不存在,则创建一个以n为键值的新映射数据列表L,同时将f加入到L中。
步骤三:在步骤二完成后,分别在所建立的倒排索引中取出映射数据列表L,对L中存储的所有网格面进行两两匹配,即取出L中的任意两个网格面fi、fj,如果构成fi和fj的网格点相同,则匹配成功。对于匹配成功的两个面,它们的“拥有者”网格单元将建立共面关系。重复此匹配过程,直到所有网格单元间的共面关系建立完成。
根据上述技术方案的描述,在实际应用过程中,针对某一非结构网格,如图1所示,该网格共有四个网格单元,分别是四面体c1(由网格点1、3、5、6构成),三棱柱c2(由网格点1、2、3、4、6、7构成),六面体c3(由网格点3、6、8、10、11、12、13、14构成),金字塔c4(由网格点3、4、6、7、9构成)。对这四个网格单元建立它们的共面关系。
首先,根据步骤一,重构出组成这些网格单元的所有网格面信息。具体针对每个网格单元,重构出的网格面信息如图2所示。具体为c1拥有的f1(1,3,5)、f2(3,5,6)、f3(1,5,6)、f4(1,3,6),c2拥有的f5(1,3,6)、f6(2,4,7)、f7(1,2,3,4)、f8(3,4,6,7)、f9(1,2,6,7),c3拥有的f10(3,6,12,13)、f11(3,8,13,14)、f12(8,10,11,14)、f13(6,10,11,12)、f14(11,12,13,14)、f15(3,6,8,10),c4拥有的f16(3,4,6,7)、f17(3,6,9)、f18(6,7,9)、f19(4,7,9)、f20(3,4,9),其中括号里的数字为构成网格面的网格点编号。
根据步骤二,建立网格点到网格面之间的倒排索引:
L(1)={ f1,f3,f4,f5,f7,f9},
L(2)={f6},
L(3)={f2,f8,f10,f11,f15,f16,f17,f20},
L(4)={f19},
L(6)={f13,f18},
L(8)={f12},
L(11)={f14}.
其中()里的数字为键值,即网格点编号,{}里的数字为映射列表里的网格面编号。
根据步骤三,分别在倒排索引的映射数据列表L(1)、L(2)、L(3)、L(4)、L(6)、L(8)、L(11)中进行两两面匹配,匹配的结果是L(1)中的f4和f5拥有相同的网格点,那么它们的“拥有者”c1和c2共面;L(3)中的f8和f16拥有相同的网格点,那么它们的“拥有者”c2和c4共面。
实施例1
一种基于倒排索引的非结构网格共面关系快速建立方法,包括步骤:步骤一,通过预先建立网格点和包含网格点的网格面之间的倒排索引列表,利用拥有相同网格点的面一定落入相同倒排索引列表内的原理,将搜索网格单元间共面关系的范围从全部所有单元缩小到倒排索引列表内部单元,从而能够快速搜索建立非结构网格单元间共面关系;步骤二,在所建立的倒排索引中进行网格面匹配,将匹配成功的网格面对应的网格单元建立共面关系。
实施例2
在实施例1的基础上,如图3所示,在步骤一中,包括子步骤:
S1,对给定的三维非结构网格,遍历其所有网格单元,重构出组成这些网格单元的所有网格面信息;
S2,建立网格点到网格面之间的倒排索引;
在步骤二中,包括子步骤:
S3,在所建立的倒排索引中取出映射数据列表,对映射数据列表中存储的所有网格面进行两两匹配。
实施例3
在实施例1的基础上,在步骤S2中,所述倒排索引为key-value形式的关系映射,其中key称之为键值,在这里是网格点编号,value为映射数据,在这里是存储网格面编号的列表。
实施例4
在实施例2的基础上,在步骤S1中,包括子步骤:针对某个网格单元c,根据其形状构造出c所拥有的网格面,并分别为这些网格面进行编号:f1,f2,…,fn,n是c所拥有的网格面总数,对于每个网格面,记录下构成这些网格面的点,同时标记网格单元c是这些网格面的“拥有者”。
实施例5
在实施例2的基础上,在步骤S2中,包括子步骤:遍历所有网格面,对每一个网格面fi,在构成fi的所有网格点中,找到编号最小的网格点n;如果已经存在以n为键值的映射数据列表L,则将fi加入到L中;如果不存在,则创建一个以n为键值的新映射数据列表L,同时将fi加入到L中。
实施例6
在实施例5的基础上,在步骤S3中,包括子步骤:分别在所建立的倒排索引中取出映射数据列表L,对L中存储的所有网格面进行两两匹配,即取出L中的任意两个网格面fi、fj,如果构成fi和fj的网格点相同,则匹配成功;对于匹配成功的两个面,它们的“拥有者”网格单元将建立共面关系;重复此匹配过程,直到所有网格单元间的共面关系建立完成。
实施例7:在实施例4的基础上,所述形状为四面体、三棱柱、金字塔和六面体中任一种或多种。
除以上实例以外,本领域技术人员根据上述公开内容获得启示或利用相关领域的知识或技术进行改动获得其他实施例,各个实施例的特征可以互换或替换,本领域人员所进行的改动和变化不脱离本发明的精神和范围,则都应在本发明所附权利要求的保护范围内。
Claims (10)
1.一种基于倒排索引的非结构网格共面关系快速建立方法,其特征在于,包括步骤:步骤一,通过预先建立网格点和包含网格点的网格面之间的倒排索引列表,将搜索网格单元间共面关系的范围从全部所有单元缩小到倒排索引列表内部单元;步骤二,在所建立的倒排索引中进行网格面匹配,将匹配成功的网格面对应的网格单元建立共面关系。
2.根据权利要求1所述的基于倒排索引的非结构网格共面关系快速建立方法,其特征在于,在步骤一中,包括子步骤:
S1,对给定的三维非结构网格,遍历其所有网格单元,重构出组成这些网格单元的所有网格面信息;
S2,建立网格点到网格面之间的倒排索引;
在步骤二中,包括子步骤:
S3,在所建立的倒排索引中取出映射数据列表,对映射数据列表中存储的所有网格面进行两两匹配。
3.根据权利要求2所述的基于倒排索引的非结构网格共面关系快速建立方法,其特征在于,在步骤S2中,所述倒排索引为key-value形式的关系映射,其中key称之为键值,在这里是网格点编号,value为映射数据,在这里是存储网格面编号的列表。
4.根据权利要求2所述的基于倒排索引的非结构网格共面关系快速建立方法,其特征在于,在步骤S1中,包括子步骤:针对某个网格单元c,根据其形状构造出c所拥有的网格面,并分别为这些网格面进行编号:f1,f2,…,fn,n是c所拥有的网格面总数,对于每个网格面,记录下构成这些网格面的点,同时标记网格单元c是这些网格面的“拥有者”。
5.根据权利要求2所述的基于倒排索引的非结构网格共面关系快速建立方法,其特征在于,在步骤S2中,包括子步骤:遍历所有网格面,对每一个网格面fi,在构成fi的所有网格点中,找到编号最小的网格点n;如果已经存在以n为键值的映射数据列表L,则将fi加入到L中;如果不存在,则创建一个以n为键值的新映射数据列表L,同时将fi加入到L中。
6.根据权利要求5所述的基于倒排索引的非结构网格共面关系快速建立方法,其特征在于,在步骤S3中,包括子步骤:分别在所建立的倒排索引中取出映射数据列表L,对L中存储的所有网格面进行两两匹配,即取出L中的任意两个网格面fi、fj,如果构成fi和fj的网格点相同,则匹配成功;对于匹配成功的两个面,它们的“拥有者”网格单元将建立共面关系;重复此匹配过程,直到所有网格单元间的共面关系建立完成。
7.根据权利要求4所述的基于倒排索引的非结构网格共面关系快速建立方法,其特征在于,所述形状包括四面体。
8.根据权利要求4所述的基于倒排索引的非结构网格共面关系快速建立方法,其特征在于,所述形状包括三棱柱。
9.根据权利要求4所述的基于倒排索引的非结构网格共面关系快速建立方法,其特征在于,所述形状包括金字塔。
10.根据权利要求4所述的基于倒排索引的非结构网格共面关系快速建立方法,其特征在于,所述形状包括六面体。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210720454.0A CN114820989B (zh) | 2022-06-24 | 2022-06-24 | 基于倒排索引的非结构网格共面关系快速建立方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210720454.0A CN114820989B (zh) | 2022-06-24 | 2022-06-24 | 基于倒排索引的非结构网格共面关系快速建立方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN114820989A true CN114820989A (zh) | 2022-07-29 |
CN114820989B CN114820989B (zh) | 2022-10-18 |
Family
ID=82521604
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202210720454.0A Active CN114820989B (zh) | 2022-06-24 | 2022-06-24 | 基于倒排索引的非结构网格共面关系快速建立方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN114820989B (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116522828A (zh) * | 2023-07-04 | 2023-08-01 | 中国空气动力研究与发展中心计算空气动力研究所 | 非结构线性三棱柱网格单元重构方法、系统、设备及介质 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113902872A (zh) * | 2021-10-11 | 2022-01-07 | 中国石油大学(华东) | 非结构基质网格与裂缝连接性的检测方法、装置及介质 |
CN113987610A (zh) * | 2021-10-26 | 2022-01-28 | 上海百琪迈科技(集团)有限公司 | 基于网格映射的不同分辨率服装曲面网格的匹配方法 |
CN114048204A (zh) * | 2021-09-28 | 2022-02-15 | 中科星图股份有限公司 | 基于数据库倒排索引的北斗网格空间索引方法和装置 |
WO2022083436A1 (zh) * | 2020-10-19 | 2022-04-28 | 腾讯科技(深圳)有限公司 | 数据处理方法、装置、设备及可读存储介质 |
CN114494650A (zh) * | 2022-04-06 | 2022-05-13 | 中国空气动力研究与发展中心计算空气动力研究所 | 一种分布式非结构网格跨处理器面对接方法及系统 |
-
2022
- 2022-06-24 CN CN202210720454.0A patent/CN114820989B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2022083436A1 (zh) * | 2020-10-19 | 2022-04-28 | 腾讯科技(深圳)有限公司 | 数据处理方法、装置、设备及可读存储介质 |
CN114048204A (zh) * | 2021-09-28 | 2022-02-15 | 中科星图股份有限公司 | 基于数据库倒排索引的北斗网格空间索引方法和装置 |
CN113902872A (zh) * | 2021-10-11 | 2022-01-07 | 中国石油大学(华东) | 非结构基质网格与裂缝连接性的检测方法、装置及介质 |
CN113987610A (zh) * | 2021-10-26 | 2022-01-28 | 上海百琪迈科技(集团)有限公司 | 基于网格映射的不同分辨率服装曲面网格的匹配方法 |
CN114494650A (zh) * | 2022-04-06 | 2022-05-13 | 中国空气动力研究与发展中心计算空气动力研究所 | 一种分布式非结构网格跨处理器面对接方法及系统 |
Non-Patent Citations (2)
Title |
---|
JIEXIONG DUAN 等: "A Spatial Grid Index Based on Inverted Index and Its Query Method", 《IGARSS 2017 - 2017 IEEE INTERNATIONAL GEOSCIENCE AND REMOTE SENSING SYMPOSIUM》 * |
成毅 等: "分布式倒排索引的地理信息服务搜索方法研究", 《测绘科学技术学报》 * |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116522828A (zh) * | 2023-07-04 | 2023-08-01 | 中国空气动力研究与发展中心计算空气动力研究所 | 非结构线性三棱柱网格单元重构方法、系统、设备及介质 |
CN116522828B (zh) * | 2023-07-04 | 2023-10-20 | 中国空气动力研究与发展中心计算空气动力研究所 | 非结构线性三棱柱网格单元重构方法、系统、设备及介质 |
Also Published As
Publication number | Publication date |
---|---|
CN114820989B (zh) | 2022-10-18 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN107688999B (zh) | 一种基于区块链的并行交易执行方法 | |
CN110222029A (zh) | 一种大数据多维分析计算效率提升方法及系统 | |
CN103995861A (zh) | 一种基于空间关联的分布式数据装置、方法及系统 | |
CN109977505B (zh) | 基于gpu矩阵计算的离散元孔隙系统快速搜索方法 | |
CN113268557B (zh) | 一种适应显示导向型可视化分析的快速的空间索引方法 | |
CN114820989B (zh) | 基于倒排索引的非结构网格共面关系快速建立方法 | |
CN112231961A (zh) | 大规模有限元网格数据存储索引方法 | |
CN108009265B (zh) | 一种云计算环境下的空间数据索引方法 | |
CN111540051A (zh) | 一种基于cim的全要素海量数据轻量化及拓扑分析应用平台 | |
CN114239363A (zh) | 一种基于ABAQUS二次开发Python语言的变密度拓扑优化的方法 | |
CN111414445B (zh) | 一种应用地理信息的地址反解析方法 | |
JP2023543004A (ja) | ヒルベルト曲線に基づくr木インデックスのマージ更新方法、装置及び媒体 | |
CN114139471A (zh) | 适用于cfd的城市街区三维模型构建和网格划分方法及系统 | |
CN113326343A (zh) | 基于多级网格和文件索引的路网数据存储方法及系统 | |
CN102254093B (zh) | 基于泰森多边形的连通域统计相关算法 | |
CN115408427A (zh) | 用于数据搜索的方法、装置及设备 | |
CN110781623B (zh) | 一种用于有限体积法的单元界面生成方法 | |
Rigby | Method of weakest descent for automatic block merging | |
CN109711478A (zh) | 一种基于时序密度聚类的大规模数据群组搜索方法 | |
CN116562065B (zh) | 一种网格拓扑的转换方法、设备及装置 | |
CN115619961B (zh) | 基于矩阵表达式的三维块体切割与搜索方法 | |
CN116755636B (zh) | 一种网格文件的并行读入方法、装置、设备及存储介质 | |
CN103810367A (zh) | 电网模型的拼接方法及装置 | |
CN116383213A (zh) | 一种基于多维张量的数据分析方法、设备及介质 | |
CN116613892B (zh) | 设备增量拓扑分析方法、装置、计算机设备和存储介质 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |