CN116484702A - 一种适用于任意单元类型的非结构嵌套网格计算方法 - Google Patents
一种适用于任意单元类型的非结构嵌套网格计算方法 Download PDFInfo
- Publication number
- CN116484702A CN116484702A CN202310752694.3A CN202310752694A CN116484702A CN 116484702 A CN116484702 A CN 116484702A CN 202310752694 A CN202310752694 A CN 202310752694A CN 116484702 A CN116484702 A CN 116484702A
- Authority
- CN
- China
- Prior art keywords
- grid
- local
- units
- unit
- cells
- 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
- 238000004364 calculation method Methods 0.000 title claims abstract description 24
- 238000000034 method Methods 0.000 claims abstract description 76
- 238000000638 solvent extraction Methods 0.000 claims abstract description 10
- 238000013507 mapping Methods 0.000 claims abstract description 7
- 238000012216 screening Methods 0.000 claims description 31
- 239000013598 vector Substances 0.000 claims description 11
- 230000001413 cellular effect Effects 0.000 claims description 2
- 238000010586 diagram Methods 0.000 description 10
- 238000004891 communication Methods 0.000 description 6
- 239000012530 fluid Substances 0.000 description 5
- 230000033001 locomotion Effects 0.000 description 4
- 238000005457 optimization Methods 0.000 description 4
- 238000005192 partition Methods 0.000 description 4
- 238000012545 processing Methods 0.000 description 4
- 230000009286 beneficial effect Effects 0.000 description 3
- 230000000694 effects Effects 0.000 description 2
- 238000011160 research Methods 0.000 description 2
- 238000012935 Averaging Methods 0.000 description 1
- 238000004458 analytical method Methods 0.000 description 1
- 230000000295 complement effect Effects 0.000 description 1
- 230000007812 deficiency Effects 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 230000006870 function Effects 0.000 description 1
- 238000003780 insertion Methods 0.000 description 1
- 230000037431 insertion Effects 0.000 description 1
- 238000000926 separation method Methods 0.000 description 1
- 238000012360 testing method Methods 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F30/00—Computer-aided design [CAD]
- G06F30/20—Design optimisation, verification or simulation
- G06F30/23—Design optimisation, verification or simulation using finite element methods [FEM] or finite difference methods [FDM]
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F30/00—Computer-aided design [CAD]
- G06F30/20—Design optimisation, verification or simulation
- G06F30/28—Design optimisation, verification or simulation using fluid dynamics, e.g. using Navier-Stokes equations or computational fluid dynamics [CFD]
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2113/00—Details relating to the application field
- G06F2113/08—Fluids
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2119/00—Details relating to the type or aim of the analysis or the optimisation
- G06F2119/14—Force analysis or force optimisation, e.g. static or dynamic forces
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02T—CLIMATE CHANGE MITIGATION TECHNOLOGIES RELATED TO TRANSPORTATION
- Y02T10/00—Road transport of goods or passengers
- Y02T10/10—Internal combustion engine [ICE] based vehicles
- Y02T10/40—Engine management systems
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02T—CLIMATE CHANGE MITIGATION TECHNOLOGIES RELATED TO TRANSPORTATION
- Y02T90/00—Enabling technologies or technologies with a potential or indirect contribution to GHG emissions mitigation
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computer Hardware Design (AREA)
- Evolutionary Computation (AREA)
- Geometry (AREA)
- General Engineering & Computer Science (AREA)
- Algebra (AREA)
- Computing Systems (AREA)
- Fluid Mechanics (AREA)
- Mathematical Analysis (AREA)
- Mathematical Optimization (AREA)
- Mathematical Physics (AREA)
- Pure & Applied Mathematics (AREA)
- Image Generation (AREA)
Abstract
本发明提出一种适用于任意单元类型的非结构嵌套网格计算方法,涉及流体力学技术领域,该方法包括多个进程,每个进程执行:获取局部网格,局部网格通过对全局网格分区,基于面的数据结构重构得到;每个进程对应一个局部网格;对局部网格进行初始化,初始化至少包括对局部网格进行三角化,创建局部网格的局部水密挖洞面;获取全局水密挖洞面,全局水密挖洞面包括所有进程创建的局部水密挖洞面;根据全局水密挖洞面,确定局部网格的切割单元、洞内单元和非活动单元;根据切割单元、洞内单元、非活动单元确定局部网格的插值单元;进而建立插值单元和贡献单元的映射关系。本发明可适用于任意类型的多面体单元的计算,提高了计算效率。
Description
技术领域
本发明一般涉及流体力学技术领域,具体涉及一种适用于任意单元类型的非结构嵌套网格计算方法。
背景技术
计算流体力学是一门在经典流体力学、数值计算方法和计算机科学的基础上发展起来的多领域交叉学科。计算流体力学、理论分析、风洞试验研究是空气动力学研究和设计的三大工具,相互补充与验证。得益于计算机硬件的快速发展与迅速普及,计算流体力学在航空航天、兵器、汽车等领域得到了广泛的应用;
对于存在大幅相对运动的流动问题,如火箭级间分离、外挂物投放、直升机旋翼等,需要一种高效的动网格方法来处理多体计算网格的大幅运动。即嵌套网格方法是一种处理多体大幅相对运动的高效高鲁棒性的网格方法;
而目前非结构嵌套网格计算方法计算效率较低,且仅适用于标准单元类型,不支持任意类型的多面体单元。
发明内容
鉴于现有技术中的上述缺陷或不足,期望提供可解决上述技术问题的一种适用于任意单元类型的非结构嵌套网格计算方法。
本发明提供一种适用于任意单元类型的非结构嵌套网格计算方法,包括多个进程,每个进程执行以下步骤:
获取局部网格,所述局部网格通过对全局网格分区,并基于面的数据结构重构得到;每个所述进程唯一对应一个所述局部网格;
对所述局部网格进行初始化,所述初始化至少包括对所述局部网格进行三角化,创建所述局部网格的局部水密挖洞面;
获取全局水密挖洞面,所述全局水密挖洞面包括所有所述进程创建的局部水密挖洞面;
根据所述全局水密挖洞面,确定所述局部网格的切割单元和洞内单元;
根据最小壁面距准则对洞边界进行优化,确定所述局部网格的非活动单元;
根据所述切割单元、洞内单元、非活动单元确定所述局部网格的插值单元;
所述非结构嵌套网格计算方法还包括:获取所有所述进程的插值单元,查找其贡献单元,建立所述插值单元和贡献单元的映射关系。
根据本发明提供的技术方案,对所述局部网格进行三角化,包括:
确定所述局部网格的单元网格面的共面多边形;
判断所述共面多边形为简单多边形时,采用双耳法对所述共面多边形进行三角化;否则,在所述共面多边形内插入面心,并由所述面心以及所述共面多边形的面边对所述共面多边形进行三角化。
根据本发明提供的技术方案,确定所述局部网格的单元网格面的共面多边形,包括:
计算所述单元网格面的面矢量;
以所述单元网格面的顶点以及所述单元网格面的面矢量构造投影平面;
将所述单元网格面投影至所述投影平面内,得到所述共面多边形。
根据本发明提供的技术方案,所述全局网格的网格单元为标准单元类型、蜂窝类型、笛卡尔类型中的至少一种;
所述数据结构包括节点坐标列表、面-节点拓扑信息、面-单元拓扑信息、边界面列表。
根据本发明提供的技术方案,所述初始化还包括:设置所述局部网格的节点属性和单元属性为活动的,创建所述局部网格的网格边列表及边-单元拓扑信息。
根据本发明提供的技术方案,创建所述局部网格的网格边列表及边-单元拓扑信息包括:
建立包含所述局部网格的网格边的第一节点编号和第二节点编号的结构体;所述第一节点编号小于第二节点编号;
以所述结构体为基本元素,将所述局部网格的单元网格面以及由所述面-节点拓扑信息提取的单元网格面的边插入至哈希表中;
保存边-面拓扑信息以及边-单元拓扑信息;所述边-面拓扑信息通过面-节点拓扑信息获取得到;所述边-单元拓扑信息通过所述边-面拓扑信息以及所述面-单元拓扑信息获取得到;
从所述哈希表中提取网格边列表、所述边-单元拓扑信息。
根据本发明提供的技术方案,根据所述全局水密挖洞面,确定所述局部网格的切割单元、洞内单元,包括以下步骤:
将所述局部网格中与所述全局水密挖洞面相交的网格单元标记为切割单元,将所述局部网格中位于所述全局水密挖洞面内部的网格单元标记为洞内单元。
根据本发明提供的技术方案,根据最小壁面距准则对洞边界进行优化,确定所述局部网格的非活动单元包括以下步骤:
确定所述局部网格中的筛选节点,所述筛选节点到所述全局水密挖洞面的最小距离大于第一距离,所述第一距离为所述局部网格中所有节点到所述水密挖洞面的最小距离;
获取筛选节点集合,所述筛选节点集合包括所有所述进程确定的筛选节点;
基于所述筛选节点集合,查找贡献单元,将具有贡献单元的节点加入重叠节点集合;
确定所述局部网格的非活动单元,所述非活动单元的所有节点均位于所述重叠节点集合中。
根据本发明提供的技术方案,基于所述筛选节点集合,查找贡献单元,包括以下步骤:
选取所述筛选节点集合中的一个筛选节点,以所述筛选节点构造射线;
判断所述射线与网格单元的交点个数为奇数时,将所述网格单元作为贡献单元。
根据本发明提供的技术方案,根据所述切割单元、洞内单元、非活动单元,确定所述局部网格的插值单元,包括以下步骤:
将所有所述切割单元、洞内单元、非活动单元标记为非活动区域;
在所述局部网格中活动区域与非活动区域的分界处,向非活动区域生长两层单元,作为插值单元。
本发明的有益效果在于:本发明采用多进程并行处理模式,通过对全局网格分区,并基于面的数据结构重构,使得每个进程都包括全局网格的一部分,通信域包含所有进程,无需创建额外局部通信域,因此降低了并行算法的复杂度,同时能保证负载平衡,提高并行计算的效率;同时,通过对局部网格进行三角化,使得非结构嵌套网格计算方法可适用于任意类型的多面体单元;由此,通过在每个进程中创建与其局部网格对应的局部水密挖洞面,得到全局水密挖洞面;根据全局水密挖洞面,确定各进程中局部网格的切割单元、洞内单元以及非活动单元,进而确定插值单元;最后通过获取所有所述进程的插值单元,查找与所述插值单元对应的贡献单元,即可建立所述插值单元和贡献单元的映射关系。
附图说明
通过阅读参照以下附图所作的对非限制性实施例所作的详细描述,本发明的其它特征、目的和优点将会变得更明显:
图1为本发明提供的一种适用于任意单元类型的非结构嵌套网格计算方法的流程图
图2为简单多边形双耳理论三角化示意图;
图3为非简单多边形通过插入面心进行三角化示意图;
图4为与水密挖洞面相交的切割单元示意图;
图5为切割单元与洞内单元的示意图;
图6为壁面距准则下网格节点属性划分示意图;
图7为壁面距准则下网格单元属性划分示意图;
图8为5球模型挖洞效果图;
图9为5球模型洞边界优化结果示意图。
具体实施方式
下面结合附图和实施例对本发明作进一步的详细说明。可以理解的是,此处所描述的具体实施例仅仅用于解释相关发明,而非对该发明的限定。另外还需要说明的是,为了便于描述,附图中仅示出了与发明相关的部分。
需要说明的是,在不冲突的情况下,本发明中的实施例及实施例中的特征可以相互组合。下面将参考附图并结合实施例来详细说明本发明。
本实施例提供的一种适用于任意单元类型的非结构嵌套网格计算方法,包括多个进程,每个进程执行如图1所示的步骤:
S100:获取局部网格,所述局部网格通过对全局网格分区,并基于面的数据结构重构得到;每个所述进程唯一对应一个所述局部网格;
S200:对所述局部网格进行初始化,所述初始化至少包括对所述局部网格进行三角化,创建所述局部网格的局部水密挖洞面;
S300:获取全局水密挖洞面,所述全局水密挖洞面包括所有所述进程创建的局部水密挖洞面;
S400:根据所述全局水密挖洞面,确定所述局部网格的切割单元和洞内单元;
S500:根据最小壁面距准则对洞边界进行优化,确定所述局部网格的非活动单元;
S600:根据所述切割单元、洞内单元、非活动单元确定所述局部网格的插值单元;
所述非结构嵌套网格计算方法还包括:获取所有所述进程的插值单元,查找其贡献单元,建立所述插值单元和贡献单元的映射关系。
可以理解的,通过标记上述洞内单元、切割单元、非活动单元、插值单元,找到插值单元的贡献单元并建立映射关系,即可完成非结构嵌套网格的计算;
可以理解的,所述进程指的是非结构嵌套网格计算的计算进程;
可以理解的,所述水密挖洞面具体指的是由网格中类型为壁面(Wall)的网格边界面组成的面集合;
进一步的,所述全局网格的网格单元为标准单元类型、蜂窝类型、笛卡尔类型中的至少一种;所述数据结构包括节点坐标列表、面-节点拓扑信息、面-单元拓扑信息、边界面列表。
进一步的,所述初始化还包括:设置所述局部网格的节点属性和单元属性为活动的,创建所述局部网格的网格边列表及边-单元拓扑信息。
进一步的,S100中所述局部网格通过对全局网格分区,并基于面的数据结构重构得到,具体包括:各个所述进程同时从同一个数据文件中依次读取多套非结构网格Mi的坐标及拓扑信息;多套非结构网格例如包括:网格M1、网格M2、……、网格Mn,共n套网格,n为任意正整数;其中,所述的坐标为网格节点的坐标值,拓扑信息指的是网格节点和网格单元的连接关系;按照网格顺序依次进行网格并行分区并重构为m个局部网格,每个进程对应一个局部网格;即对上述n套网格进行分区,得到m个子网格(局部网格);
其中,由于每个进程都包括网格Mi的一部分,因此通信域包含所有进程,无需创建额外局部通信域,有利于降低并行算法的复杂度,同时能保证负载平衡,提高并行计算的效率。
进一步的,上述并行分区采用并行图剖分方法;所述基于面的数据结构由节点坐标列表、面-节点拓扑、面-单元拓扑、边界面列表组成,适用于任意网格单元类型,包括上述的标准单元类型(四面体、金字塔、三棱柱、六面体)、蜂窝类型、笛卡尔类型等。
进一步的,S200中创建所述局部网格的局部水密挖洞面,具体包括:获取所述局部网格中的壁面边界,将所述壁面边界三角化后的三角形加入到局部水密挖洞面中;将所述局部水密挖洞面广播至所有进程,形成全局水密挖洞面。
进一步的,S300中获取全局水密挖洞面,即每个进程都持有所述全局水密挖洞面;在初步挖洞时,每个进程独立进行,无需交换数据,这将极大提高并行效率。
进一步的,获取所有所述进程的插值单元至少包括获取所述插值单元的中心坐标及编号。
进一步的,所述适用于任意单元类型的非结构嵌套网格计算方法还包括:收集各个进程中贡献单元的信息;所述信息包括贡献单元所在进程编号,贡献单元所在网格编号,插值单元所在网格编号,贡献单元编号列表,插值单元编号列表。
工作原理:嵌套网格方法是一种处理多体大幅相对运动的高效高鲁棒性的网格方法;而目前非结构嵌套网格计算方法计算效率较低,且仅适用于标准单元类型,不支持任意类型的多面体单元。
基于上述技术问题,本案发明人提出一种适用于任意单元类型的非结构嵌套网格计算方法,该方法中,采用多进程并行处理模式,通过对全局网格分区,并基于面的数据结构重构,使得每个进程都包括全局网格的一部分,通信域包含所有进程,无需创建额外局部通信域,因此降低了并行算法的复杂度,同时能保证负载平衡,提高并行计算的效率;同时,任意类型多面体单元的多边形表面经三角化后,多面体单元边界描述唯一,降低了点与多面体位置关系判断的难度,同时可保证点与多面体位置关系判断算法的一致性,使得非结构嵌套网格计算方法可适用于任意类型的多面体单元;由此,通过在每个进程中创建与其局部网格对应的局部水密挖洞面,得到全局水密挖洞面;根据全局水密挖洞面,确定各进程中局部网格的切割单元、洞内单元以及非活动单元,进而确定插值单元;最后通过获取所有所述进程的插值单元,查找与所述插值单元对应的贡献单元,即可建立所述插值单元和贡献单元的映射关系。
在一些实施例中,对所述局部网格进行三角化,包括:确定所述局部网格的单元网格面的共面多边形;判断所述共面多边形为简单多边形时,采用双耳法对所述共面多边形进行三角化,如图2所示;否则,在所述共面多边形内插入面心,并由所述面心以及所述共面多边形的面边对所述共面多边形进行三角化,如图3所示。
具体的,根据简单多边形的边与边不相交的特性判断所述共面多边形是否为简单多边形;
具体的,插入面心具体为:将所述共面多边形的各个点进行平均,得到所述共面多边形的中心点,即为所述面心。
具体的,由所述面心以及所述共面多边形的面边对所述共面多边形进行三角化,即所述面心与所述共面多边形的一个面边组合得到一个三角形,如此将所述共面多边形划分为多个三角形。
在一些实施例中,确定所述局部网格的单元网格面的共面多边形,包括:计算所述单元网格面的面矢量;以所述单元网格面的顶点以及所述单元网格面的面矢量构造投影平面;将所述单元网格面投影至所述投影平面内,得到所述共面多边形。
具体的,计算所述单元网格面的面矢量包括:对所述单元网格面进行三角化,得到多个三角形面;计算各所述三角形面的面矢量;对各所述三角形面的面矢量求和,得到所述单元网格面的面矢量。
需要进一步说明的是,上述对所述局部网格进行三角化的方法中,基于判断所述共面多边形是否为简单多边形,从而确定不同三角化方式,使得可将最终得到的三角形的数量最少,有利于减少后续计算的复杂程度,提高计算效率。
在一些实施例中,所述初始化还包括:创建所述局部网格的交替数字二叉树。
具体的,创建所述局部网格的交替数字二叉树包括如下步骤:遍历所述局部网格的所有网格单元,扫描所述网格单元的所有节点坐标,计算所述网格单元的包围盒;遍历所有网格单元的包围盒,建立所述交替数字二叉树。
需要进一步说明的是,所述交替数字二叉树是一种二叉树数据结构,可用来快速查找哪些节点与某个包围盒相交,在实施例中数字交替二叉树主要用于查找贡献单元,通过数字二叉树可以先在局部网格中初步筛选出少量的网格单元,然后通过求交的算法精确判断点在哪个单元内。概括说,数字交替二叉树缩小了搜索范围,大大减小了,点与单元求交运算的计算量,提高计算效率。
在一些实施例中,创建所述局部网格的网格边列表及边-单元拓扑信息包括:
建立包含所述局部网格的网格边的第一节点编号和第二节点编号的结构体;所述第一节点编号小于第二节点编号;以所述结构体为基本元素,将所述局部网格的单元网格面以及由所述面-节点拓扑信息提取的单元网格面的边插入至哈希表中;保存边-面拓扑信息以及边-单元拓扑信息;所述边-面拓扑信息通过面-节点拓扑信息获取得到;所述边-单元拓扑信息通过所述边-面拓扑信息以及所述面-单元拓扑信息获取得到;从所述哈希表中提取网格边列表、所述边-单元拓扑信息。通过采用数组存储,降低了内存占用,提高了遍历所有边的计算效率。
需要进一步说明的是,各网格中的节点编号存储在数据文件中,因此当获取所述局部网格时,同时可得到其各个节点的节点编号。
在一些实施例中,根据所述全局水密挖洞面,确定所述局部网格的切割单元、洞内单元,包括以下步骤:将所述局部网格中与所述全局水密挖洞面相交的网格单元标记为切割单元,如图4所示,图中所指的“挖洞面”即所述全局挖洞面所包含的一个局部挖洞面;将所述局部网格中位于所述全局水密挖洞面内部的网格单元标记为洞内单元,如图5所示。
其中,如图8所示为5球模型(围绕5个球体生成5套非结构网格,组成嵌套网格)挖洞效果图;图中左侧为原始嵌套网格示意图,右侧为挖洞(剔除切割单元和洞内单元)后的嵌套网格示意图。
具体的,将所述局部网格中与所述全局水密挖洞面相交的网格单元标记为切割单元包括:计算所述全局水密挖洞面对应的三角化的网格单元的包围盒;基于所述三角化的网格单元的包围盒创建交替数字二叉树;遍历所述局部网格的所有网格边,通过所述交替数字二叉树快速查找与所述网格边相交的三角形的包围盒,记录其在所述全局水密挖洞面中的编号;将与所述网格边相交的三角形与网格边进行空间线段与三角形精确求交运算;判断运算结果为相交,则将所述网格边相邻的网格单元标记为切割单元。
具体的,将所述局部网格中位于所述全局水密挖洞面内部的网格单元标记为洞内单元包括:判断相交边的端点位于三角形法向量所指向的半空间,则标记所述相交边的端点为洞内点;将所述洞内点相邻的网格单元标记为洞内单元。还包括:
遍历所有所述洞内单元,根据拓扑关系,扫描所述洞内单元的相邻单元,如果相邻单元为非切割单元,则标记为洞内单元;重复此过程,直至没有新增洞内单元;在所述局部网格分区边界上,进行一次单元属性信息交换,遍历分区边界上属性为洞内单元的虚拟单元,根据面-单元拓扑信息,如果相邻内部单元为非切割单元则标记为洞内单元,统计新增洞内单元个数;循环执行上述步骤,直至新增洞内单元个数为零。
在一些实施例中,根据最小壁面距准则对洞边界进行优化,确定所述局部网格的非活动单元包括以下步骤:
确定所述局部网格中的筛选节点,所述筛选节点到所述全局水密挖洞面的最小距离大于第一距离,所述第一距离为所述局部网格中所有节点到所述水密挖洞面的最小距离;
获取筛选节点集合,所述筛选节点集合包括所有所述进程确定的筛选节点;
基于所述筛选节点集合,查找贡献单元,将具有贡献单元的节点加入重叠节点集合;
确定所述局部网格的非活动单元,所述非活动单元的所有节点均位于所述重叠节点集合中。
具体的,所述查找贡献单元具体是指:对于一个待查询点,在网格中找出其位于哪个网格单元内部;且该网格单元即被称为贡献单元。
为了便于理解,以具体实例进行说明,确定所述局部网格的非活动单元包括:
遍历所述局部水密挖洞面,基于节点坐标建立kd-tree树KDT,所述kd-tree树为一种对k维空间中的实例点进行存储以便对其进行快速检索的树形数据结构,用于最临近快速搜索;
计算所述局部网格中节点在KDT中距离最近点Dij;
收集所述局部网格中活动的且自身壁面距非最小的网格节点Dii,即Dii>min(Dij);
将所述网格节点Dii发送至所有进程,查找其是否存在贡献单元,并从所有进程收集查找结果,将能找到的贡献单元的节点标记为非活动节点,如图6所示;如果所有节点都是非活动节点,则标记为非活动单元。根据最小壁面距准则对洞边界进行优化后,壁面距准则下网格单元属性划分示意图如图7所示。
其中,图9为5球模型洞边界优化结果示意图;图中左侧为挖洞后结果示意图,右侧为洞边界优化(剔除非活动单元)后的示意图,显然洞边界优化后5套网格重叠相互重叠的部分最小且远离壁面,这将有利于提高流动计算效率和插值精度。
在一些实施例中,基于所述筛选节点集合,查找贡献单元,包括以下步骤:
选取所述筛选节点集合中的一个筛选节点,以所述筛选节点构造射线;
判断所述射线与网格单元的交点个数为奇数时,将所述网格单元作为贡献单元。
具体的,所述射线的方向可以为任意方向;
具体的,如果射线与三角形的交点在边上,可能是射线与三角形相切的情况,这种情况会导致点与单元关系判断错误;当出现射线与三角形交点在三角形边或顶点上时,将射线方向绕x轴旋转1.1°,绕y轴旋转1.3°,绕z轴旋转1.7°,直至所有交点都在三角形内部,而不出现在三角形的边或顶点上;如此可确保筛选节点与网格单元位置关系判断算法的鲁棒性。
在一些实施例中,根据所述切割单元、洞内单元、非活动单元,确定所述局部网格的插值单元,包括以下步骤:
将所有所述切割单元、洞内单元、非活动单元标记为非活动区域;
在所述局部网格中活动区域与非活动区域的分界处,向非活动区域生长两层单元,作为插值单元。
以上描述仅为本发明的较佳实施例以及对所运用技术原理的说明。本领域技术人员应当理解,本发明中所涉及的发明范围,并不限于上述技术特征的特定组合而成的技术方案,同时也应涵盖在不脱离所述发明构思的情况下,由上述技术特征或其等同特征进行任意组合而形成的其它技术方案。例如上述特征与本发明中公开的(但不限于)具有类似功能的技术特征进行互相替换而形成的技术方案。
Claims (10)
1.一种适用于任意单元类型的非结构嵌套网格计算方法,其特征在于,包括多个进程,每个进程执行以下步骤:
获取局部网格,所述局部网格通过对全局网格分区,并基于面的数据结构重构得到;每个所述进程唯一对应一个所述局部网格;
对所述局部网格进行初始化,所述初始化至少包括对所述局部网格进行三角化,创建所述局部网格的局部水密挖洞面;
获取全局水密挖洞面,所述全局水密挖洞面包括所有所述进程创建的局部水密挖洞面;
根据所述全局水密挖洞面,确定所述局部网格的切割单元和洞内单元;
根据最小壁面距准则对洞边界进行优化,确定所述局部网格的非活动单元;
根据所述切割单元、洞内单元、非活动单元确定所述局部网格的插值单元;
所述非结构嵌套网格计算方法还包括:获取所有所述进程的插值单元,查找其贡献单元,建立所述插值单元和贡献单元的映射关系。
2.根据权利要求1所述的一种适用于任意单元类型的非结构嵌套网格计算方法,其特征在于,对所述局部网格进行三角化,包括:
确定所述局部网格的单元网格面的共面多边形;
判断所述共面多边形为简单多边形时,采用双耳法对所述共面多边形进行三角化;否则,在所述共面多边形内插入面心,并由所述面心以及所述共面多边形的面边对所述共面多边形进行三角化。
3.根据权利要求2所述的一种适用于任意单元类型的非结构嵌套网格计算方法,其特征在于,确定所述局部网格的单元网格面的共面多边形,包括:
计算所述单元网格面的面矢量;
以所述单元网格面的顶点以及所述单元网格面的面矢量构造投影平面;
将所述单元网格面投影至所述投影平面内,得到所述共面多边形。
4.根据权利要求1所述的一种适用于任意单元类型的非结构嵌套网格计算方法,其特征在于,所述全局网格的网格单元为标准单元类型、蜂窝类型、笛卡尔类型中的至少一种;
所述数据结构包括节点坐标列表、面-节点拓扑信息、面-单元拓扑信息、边界面列表。
5.根据权利要求4所述的一种适用于任意单元类型的非结构嵌套网格计算方法,其特征在于,所述初始化还包括:设置所述局部网格的节点属性和单元属性为活动的,创建所述局部网格的网格边列表及边-单元拓扑信息。
6.根据权利要求5所述的一种适用于任意单元类型的非结构嵌套网格计算方法,其特征在于,创建所述局部网格的网格边列表及边-单元拓扑信息包括:
建立包含所述局部网格的网格边的第一节点编号和第二节点编号的结构体;所述第一节点编号小于第二节点编号;
以所述结构体为基本元素,将所述局部网格的单元网格面以及由所述面-节点拓扑信息提取的单元网格面的边插入至哈希表中;
保存边-面拓扑信息以及边-单元拓扑信息;所述边-面拓扑信息通过面-节点拓扑信息获取得到;所述边-单元拓扑信息通过所述边-面拓扑信息以及所述面-单元拓扑信息获取得到;
从所述哈希表中提取网格边列表、所述边-单元拓扑信息。
7.根据权利要求5所述的一种适用于任意单元类型的非结构嵌套网格计算方法,其特征在于,根据所述全局水密挖洞面,确定所述局部网格的切割单元、洞内单元,包括以下步骤:
将所述局部网格中与所述全局水密挖洞面相交的网格单元标记为切割单元,将所述局部网格中位于所述全局水密挖洞面内部的网格单元标记为洞内单元。
8.根据权利要求5所述的一种适用于任意单元类型的非结构嵌套网格计算方法,其特征在于,根据最小壁面距准则对洞边界进行优化,确定所述局部网格的非活动单元包括以下步骤:
确定所述局部网格中的筛选节点,所述筛选节点到所述全局水密挖洞面的最小距离大于第一距离,所述第一距离为所述局部网格中所有节点到所述水密挖洞面的最小距离;
获取筛选节点集合,所述筛选节点集合包括所有所述进程确定的筛选节点;
基于所述筛选节点集合,查找贡献单元,将具有贡献单元的节点加入重叠节点集合;
确定所述局部网格的非活动单元,所述非活动单元的所有节点均位于所述重叠节点集合中。
9.根据权利要求8所述的一种适用于任意单元类型的非结构嵌套网格计算方法,其特征在于,基于所述筛选节点集合,查找贡献单元,包括以下步骤:
选取所述筛选节点集合中的一个筛选节点,以所述筛选节点构造射线;
判断所述射线与网格单元的交点个数为奇数时,将所述网格单元作为贡献单元。
10.根据权利要求8所述的一种适用于任意单元类型的非结构嵌套网格计算方法,其特征在于,根据所述切割单元、洞内单元、非活动单元,确定所述局部网格的插值单元,包括以下步骤:
将所有所述切割单元、洞内单元、非活动单元标记为非活动区域;
在所述局部网格中活动区域与非活动区域的分界处,向非活动区域生长两层单元,作为插值单元。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310752694.3A CN116484702B (zh) | 2023-06-26 | 2023-06-26 | 一种适用于任意单元类型的非结构嵌套网格计算方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310752694.3A CN116484702B (zh) | 2023-06-26 | 2023-06-26 | 一种适用于任意单元类型的非结构嵌套网格计算方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN116484702A true CN116484702A (zh) | 2023-07-25 |
CN116484702B CN116484702B (zh) | 2023-09-12 |
Family
ID=87223582
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202310752694.3A Active CN116484702B (zh) | 2023-06-26 | 2023-06-26 | 一种适用于任意单元类型的非结构嵌套网格计算方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN116484702B (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116522828A (zh) * | 2023-07-04 | 2023-08-01 | 中国空气动力研究与发展中心计算空气动力研究所 | 非结构线性三棱柱网格单元重构方法、系统、设备及介质 |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108459909A (zh) * | 2018-02-27 | 2018-08-28 | 北京临近空间飞行器系统工程研究所 | 一种适于并行处理的多体分离网格重叠方法及系统 |
CN110188424A (zh) * | 2019-05-16 | 2019-08-30 | 浙江大学 | 一种面向动边界流场数值模拟的局部区域网格重构并行方法 |
WO2020097544A1 (en) * | 2018-11-09 | 2020-05-14 | Autodesk, Inc. | Conversion of mesh geometry to watertight boundary representation |
CN114119882A (zh) * | 2022-01-25 | 2022-03-01 | 南京航空航天大学 | 飞行器动态流场分析中高效的嵌套网格宿主单元搜索方法 |
CN114201823A (zh) * | 2021-12-17 | 2022-03-18 | 西安前沿动力软件开发有限责任公司 | 一种显式嵌套网格装配方法、装置及存储介质 |
CN114494650A (zh) * | 2022-04-06 | 2022-05-13 | 中国空气动力研究与发展中心计算空气动力研究所 | 一种分布式非结构网格跨处理器面对接方法及系统 |
-
2023
- 2023-06-26 CN CN202310752694.3A patent/CN116484702B/zh active Active
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108459909A (zh) * | 2018-02-27 | 2018-08-28 | 北京临近空间飞行器系统工程研究所 | 一种适于并行处理的多体分离网格重叠方法及系统 |
WO2020097544A1 (en) * | 2018-11-09 | 2020-05-14 | Autodesk, Inc. | Conversion of mesh geometry to watertight boundary representation |
CN110188424A (zh) * | 2019-05-16 | 2019-08-30 | 浙江大学 | 一种面向动边界流场数值模拟的局部区域网格重构并行方法 |
CN114201823A (zh) * | 2021-12-17 | 2022-03-18 | 西安前沿动力软件开发有限责任公司 | 一种显式嵌套网格装配方法、装置及存储介质 |
CN114119882A (zh) * | 2022-01-25 | 2022-03-01 | 南京航空航天大学 | 飞行器动态流场分析中高效的嵌套网格宿主单元搜索方法 |
CN114494650A (zh) * | 2022-04-06 | 2022-05-13 | 中国空气动力研究与发展中心计算空气动力研究所 | 一种分布式非结构网格跨处理器面对接方法及系统 |
Non-Patent Citations (1)
Title |
---|
王文;阎超;袁武;黄宇;席柯;: "鲁棒的结构网格自动化重叠方法", 航空学报, no. 10, pages 2980 - 2989 * |
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 |
---|---|
CN116484702B (zh) | 2023-09-12 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
Cignoni et al. | Speeding up isosurface extraction using interval trees | |
CN102306396B (zh) | 一种三维实体模型表面有限元网格自动生成方法 | |
CN112100937B (zh) | 基于壁面距的高效重叠网格并行装配方法 | |
CN116484702B (zh) | 一种适用于任意单元类型的非结构嵌套网格计算方法 | |
CN110599506B (zh) | 一种复杂异形曲面机器人三维测量的点云分割方法 | |
CN113610983A (zh) | 一种离散点空间曲面三角网格自动剖分方法 | |
CN104809760A (zh) | 基于深度优先策略的地理空间三维外轮廓自动构建方法 | |
CN112613126A (zh) | 一种应用于飞行器外形的壁面距离计算方法及装置 | |
CN114219899B (zh) | 一种基于改进叉树算法的网格生成方法及装置 | |
CN115758938A (zh) | 面向粘性边界流场数值模拟的附面层网格生成方法 | |
CN106355178B (zh) | 基于分层聚类和拓扑连接模型的海量点云自适应简化方法 | |
CN113808276A (zh) | 一种基于外接球策略区域增长的点云表面重建方法及系统 | |
CN112163384A (zh) | 一种面向自由表面流的固体边界提取方法 | |
CN114119882B (zh) | 飞行器动态流场分析中高效的嵌套网格宿主单元搜索方法 | |
CN115222870B (zh) | 非结构网格隐式lusgs均衡着色方法、设备及介质 | |
CN115346005B (zh) | 基于嵌套包围盒概念用于物面网格的数据结构构建方法 | |
Khamayseh et al. | Use of the spatial kD-tree in computational physics applications | |
CN113763563A (zh) | 一种基于平面识别的三维点云几何网格结构生成方法 | |
Wiemann et al. | Data handling in large-scale surface reconstruction | |
Shen et al. | An adaptive triangulation optimization algorithm based on empty circumcircle | |
Kaleci et al. | Plane segmentation of point cloud data using split and merge based method | |
CN114648618B (zh) | 一种室内空间三维拓扑关系构建方法及系统 | |
Si | TetGen, towards a quality tetrahedral mesh generator | |
CN105989078A (zh) | 一种结构化对等网络构建索引的方法、检索方法、装置及系统 | |
CN114119929B (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 |