CN117131733A - 一种基于虚拟合并策略的超大规模非结构网格生成方法 - Google Patents
一种基于虚拟合并策略的超大规模非结构网格生成方法 Download PDFInfo
- Publication number
- CN117131733A CN117131733A CN202311059288.5A CN202311059288A CN117131733A CN 117131733 A CN117131733 A CN 117131733A CN 202311059288 A CN202311059288 A CN 202311059288A CN 117131733 A CN117131733 A CN 117131733A
- Authority
- CN
- China
- Prior art keywords
- grid
- sub
- unit
- block
- merging
- 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.)
- Pending
Links
- 238000000034 method Methods 0.000 title claims abstract description 30
- 238000004364 calculation method Methods 0.000 claims description 7
- 238000004088 simulation Methods 0.000 abstract description 8
- 230000008569 process Effects 0.000 abstract description 7
- 239000012530 fluid Substances 0.000 abstract description 4
- 210000004027 cell Anatomy 0.000 description 22
- 230000001174 ascending effect Effects 0.000 description 4
- 230000000694 effects Effects 0.000 description 2
- 238000004458 analytical method Methods 0.000 description 1
- 230000004888 barrier function Effects 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 210000003888 boundary cell Anatomy 0.000 description 1
- 238000004422 calculation algorithm Methods 0.000 description 1
- 230000001419 dependent effect Effects 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 230000006870 function Effects 0.000 description 1
- 230000003993 interaction Effects 0.000 description 1
- 230000004044 response Effects 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
- 230000004382 visual function Effects 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/10—Geometric CAD
- G06F30/15—Vehicle, aircraft or watercraft design
-
- 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
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2111/00—Details relating to CAD techniques
- G06F2111/10—Numerical modelling
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- Geometry (AREA)
- Theoretical Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computer Hardware Design (AREA)
- Evolutionary Computation (AREA)
- General Engineering & Computer Science (AREA)
- Automation & Control Theory (AREA)
- Aviation & Aerospace Engineering (AREA)
- Computational Mathematics (AREA)
- Mathematical Analysis (AREA)
- Mathematical Optimization (AREA)
- Pure & Applied Mathematics (AREA)
- Computer Graphics (AREA)
- Software Systems (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本申请提供了一种基于虚拟合并策略的超大规模非结构网格生成方法,属于计算流体力学数值模拟计算网格生成的技术领域,具体本方法针对传统的商业网格生成软件在生成上亿网格点超大规模非结构网格时的内存瓶颈问题,提出虚拟合并网格生成方法:在采用商业软件分区生成并导出子网格,进而逐块将子网格逐步实现网格合并,在合并过程中不实际生成规模逐步增加的网格文件,而在原子网格数据文件中增加子网格与最终合并后整体网格的对应信息,最终根据这些对应信息分类集成,生成并输出最终合并后整体网格,从而避免了网格合并生成过程中的内存瓶颈,实现上亿网格点超大规模非结构网格的生成。
Description
技术领域
本申请涉及计算流体力学数值模拟计算网格生成的领域,尤其是涉及一种基于虚拟合并策略的超大规模非结构网格生成方法。
背景技术
计算流体力学(Computational Fluid Dynamics,简称为CFD),是利用计算机和数值方法对流体力学问题进行数值模拟和分析的新兴交叉学科,属于典型的计算、访存密集型的科学计算领域,强烈地依赖于高性能计算机的发展。目前,随着计算机硬件和并行计算技术的发展,为适应航空航天等领域大规模数值模拟的需求,超大规模计算网格的网格生成问题成为CFD计算得以执行的必不可少的技术环节,目前非结构网格由于其网格生成自动化程度较高、特别适用于复杂构型的流场数值模拟而日益受到用户重视。
目前主流的计算网格生成方法是通过网格生成商业软件来生成计算网格,这些软件多是运行在单节点的计算机上,在生成超大规模计算网格时不仅运行过程中收到单节点计算机内存瓶颈的影响,这对内存消耗量更大的非结构网格生成是巨大的挑战,该问题若解决不好,直接影响CFD数值模拟的流场解析度。
此外,注意到当前绝大多数网格生成软件都具有强大的可视化功能,方便用户在网格生成过程中不断从不同视角审视所生成的计算网格的品质,但超大规模的计算网格在网格生成过程中用户在交互式审视计算网格时,屏幕响应速度会很慢。
在图形交互软件一次同时生成大规模网格时需要很大的内存,存在内存瓶颈,限制了网格生成规模。
发明内容
有鉴于此,本申请提供一种基于虚拟合并策略的超大规模非结构网格生成方法,解决了现有技术中的问题,消除网格生成的内存瓶颈,生成可用于飞机全机精细流场数值模拟的亿级以上规模的超大规模非结构网格。
本申请提供的一种基于虚拟合并策略的超大规模非结构网格生成方法采用如下的技术方案:
一种基于虚拟合并策略的超大规模非结构网格生成方法,包括:
步骤1,利用商业网格生成软件对计算区域进行分块,并生成全部分块间的内界面网格,再逐块生成子网格并逐块导出形成多个子网格文件;
步骤2,开发网格虚拟合并模块,循环遍历所有的子网格文件,实现子网格的虚拟合并,子网格块的每个网格点具有自然顺序,将每个网格点的自然顺序号作为每个网格点的局部编号,子网格文件包括体网格单元的单元节点编号表、边界单元的单元节点编号表和网格点的坐标,体网格单元的单元节点编号表、边界单元的单元节点编号表和网格点的坐标均按照局部编号组织,依次读取所有子网格文件,记录每个子网格中最大的网格点编号,各种体网格单元类型数目,及内边界面"internal"的面单元的单元节点编号表,确定当前子网格可合并的内边界面"internal"的面单元,以及当前子网格中的待合并的内边界面"internal"的面单元,将待合并的网格点在前一块子网格最大全局网格点编号的基础上进行依次累加得到每个待合并网格点的全局网格点编号;当前子网格中可合并的网格点的全局网格点编号继承自之前所有的子网格中对应的内界面网格点的全局网格编号,生成当前子网格的所有的网格点的局部网格编号和全局网格编号的对照表,将体网格单元的单元节点编号表和边界单元的单元节点编号表中的原有的对应局部网格点编号替换为全局网格点编号,生成新的子网格文件,新的子网格文件包括新的体网格单元的单元节点编号表、新的边界单元的单元节点编号表、网格点的坐标和当前子网格的所有的网格点的局部网格编号和全局网格编号的对照表,新的体网格单元的单元节点编号表和新的边界单元的单元节点编号表均按照全局编号组织;
步骤3,开发整体网格真实合并模块,将步骤2中最后一块子网格的最大的全局网格点编号作为合并后的网格点总数输出到整体网格文件中,将所有网格点坐标数据的汇集与输出至整体网格的文件,将体网格单元类型的分类单元个数输出到整体网格文件中,将体网格单元的单元节点编号表信息汇集与输出到整体网格的文件,将边界面的单元节点编号表信息汇集与输出到整体网格的文件,最终生成合并后的整体网格的网格文件。
可选的,所述步骤1具体包括:
在网格生成软件中将计算区域划分为N个子区域;
在各个子区域之间的内部界面上生成内界面网格;
逐块子区域进行子网格的生成与导出,生成的子网格的体网格与生成的内界面网格相协调,内界面设定相同的标记,并在生成第i块子网格后导出该子网格文件,并在商业软件中删除该子网格的体网格信息,再进行第i+1块子网格的生成,直至生成并导出第N块子网格文件。
可选的,步骤2具体包括:
读入第1块子网格文件,记录其最大的网格点编号、各种体网格单元类型数目及内边界面"internal"的面单元的单元节点编号表,将内边界面"internal"的面单元的单元节点编号表信息保留在虚拟合并程序内存中,第1块子网格的全部内边界“internel”的面单元及其网格点坐标信息也作为待找合并对象的内界面集合A的数据,第1块子网格的所有网格点的局部网格点编号与全局网格点编号一致,留存在虚拟合并程序内存中,随后在虚拟合并程序内存中将第1块子网格的其它信息删除,在虚拟合并程序内存中仅保留第1块子网格的内边界“internel”的面单元的单元节点编号表及网格点坐标信息,并记录第1块网格点总数作为当前合并后的网格点总数;
依次读入第2块及以后的子网格数据,进行虚拟合并处理:给读入的子网格的所有网格点创建全局网格点编号数组,初值赋为0,给本子块内边界面"internal"内界面面单元及虚拟合并程序内存中待找合并对象的内界面集合A中的内界面都创建标志数组,并赋初值为0;
遍历当前本子块内边界面"internal"的各个面单元,依据本内界面单元的中心点坐标与集合A的全部面单元中心点坐标进行比对,依据比对结果给本内界面面单元及集合A中的内界面单元赋予不同的标志:某个本子块"internal"面单元的中心点在待找合并对象的内界面集合A的全部面单元中心点坐标中都没有找到一致的,将当前本字块的面标志改为1,某个本子块"internal"面单元的中心点在待找合并对象的内界面集合A的全部面单元中心点坐标中找到一致的,进行细致对比本子块面单元的所有网格点坐标与集合A中面中心点坐标一致的相应面网格的网格点坐标信息,若全对应上,则将当前本子块的内部面及集合A中面中心点坐标一致的相应面的标志都改为-1,令当前本子块的内部面单元的所有网格点的全局网格点编号为集合A中对应内部面相应网格点编号,若没有全对应上,报错退出,合并终止;
本子块网格点属性数组赋值:完成全部比对标记后,先给本子块网格点创建一个属性数组用于区分新旧网格点,属性值都赋为1;遍历当前本子块内边界面"internal"的各个面单元,标记为“1”的内界面是新出现的待找合并对象的内界面,标记为"-1"的是已找到合并对象的内界面,所属网格点的全局网格点编号值赋为集合A中对应面中匹配点的全局网格编号,且这些网格点的属性值都赋为0;
生成本子块网格点的全局网格点编号:遍历本子块全部网格点,若属性值为0,则跳过;若属性值为1,则网格点的全局网格点编号为在上次合并后的网格点总数基础上依次递增,遍历完成后,将当前合并后的网格点总数更改为目前数值最大的全局网格点编号;
更新内存中的待找合并对象的内界面集合A的信息,删除目前集合A中标志数组值为“-1”的内界面的相关信息,随后依次增加本子块"internal"的标志值仍为1的内界面单元信息;
更新本子块的体网格单元和边界面单元且除过“internal”内边界面的单元节点编号表:将原来单元节点编号表中的网格节点局部编号更换为全局网格点编号;
输出本子块数据到单独的子块网格数据文件,并在内存中删除本子块数据,内存中保留待找合并对象的内界面集合A的数据及当前合并后的网格点总数;
遍历完全部子网格块后,若待找合并对象的内界面集合A仍存有1个以上内界面单元,说明仍有至少1个内界面单元无法找到合并对象,整个虚拟合并失败,报错退出;否则,说明全部的内界面单元都已找到合并对象,虚拟合并成功,合并后的最终网格点总数为当前合并后的网格点总数。
可选的,所述步骤3中网格点坐标数据的汇集与输出的步骤包括:遍历全部新的子网格文件,整体网格真实合并模块依次读取新的子网格文件,将读取新的子网格文件中的相应子网格块的网格坐标数据,将网格坐标数据按照各网格点全局网格编号的顺序依次写入整体网格文件中,删除整体网格真实合并模块中的本子网格的坐标数据的信息,再读入下一块子网格的网格坐标信息。
可选的,所述步骤3中体网格单元分类统计的步骤包括:遍历全部新的子网格文件,通过累加分类统计四面体、金字塔、三棱柱和六面体网格单元四种体网格单元类型的分类单元个数,输出到整体网格文件中。
可选的,所述步骤3中体网格单元的单元节点编号表信息汇集与输出的步骤包括:遍历全部子网格块文件,分类读入各子网格的体网格单元的单元节点编号表信息,并输出到整体网格文件中,输出后及时删除该子网格的信息,再读入下一块子网格的体网格单元的单元节点编号表信息。
可选的,所述步骤3中边界面的单元节点编号表信息汇集与输出的步骤包括:遍历全部子网格块文件,读入各子网格的边界面单元的单元节点编号表信息,输出到整体网格文件中,输出后及时删除该子网格的边界单元的单元节点编号表信息,再读入下一块子网格的边界单元的单元节点编号表。
综上所述,本申请包括以下有益技术效果:
本申请的方法在超大规模非结构网格的生成过程中,网格分块生成并在导出后及时删除,消除了大规模网格生成带来的内存瓶颈;在网格合并过程中,仅仅在模块内存中驻留一个可以不断更新的““待找合并对象的内界面集合”A和一个当前循环读入的子网格块数据,也消除了网格合并阶段的内存瓶颈;且通过在虚拟合并环节中对各类单元节点编码表用新生成的全局网格编号替换原有的局部网格编号,已完成网格合并中必不可少的数据更新;这种设计,使得最终的网格真实合并时只须分块读入子网格数据,并顺序写入合并后的网格数据文件,避免因开辟大型中间数组来处理数据更新而产生的内存瓶颈,为生成超大规模非结构网格扫除了关键障碍,能够生成可用于飞机全机精细流场数值模拟的亿级以上规模的超大规模非结构网格。
附图说明
为了更清楚地说明本申请实施例的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其它的附图。
图1为基于虚拟合并策略的超大规模非结构网格生成方法的流程图。
具体实施方式
下面结合附图对本申请实施例进行详细描述。
以下通过特定的具体实例说明本申请的实施方式,本领域技术人员可由本说明书所揭露的内容轻易地了解本申请的其他优点与功效。显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。本申请还可以通过另外不同的具体实施方式加以实施或应用,本说明书中的各项细节也可以基于不同观点与应用,在没有背离本申请的精神下进行各种修饰或改变。需说明的是,在不冲突的情况下,以下实施例及实施例中的特征可以相互组合。基于本申请中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
要说明的是,下文描述在所附权利要求书的范围内的实施例的各种方面。应显而易见,本文中所描述的方面可体现于广泛多种形式中,且本文中所描述的任何特定结构及/或功能仅为说明性的。基于本申请,所属领域的技术人员应了解,本文中所描述的一个方面可与任何其它方面独立地实施,且可以各种方式组合这些方面中的两者或两者以上。举例来说,可使用本文中所阐述的任何数目个方面来实施设备及/或实践方法。另外,可使用除了本文中所阐述的方面中的一或多者之外的其它结构及/或功能性实施此设备及/或实践此方法。
还需要说明的是,以下实施例中所提供的图示仅以示意方式说明本申请的基本构想,图式中仅显示与本申请中有关的组件而非按照实际实施时的组件数目、形状及尺寸绘制,其实际实施时各组件的型态、数量及比例可为一种随意的改变,且其组件布局型态也可能更为复杂。
另外,在以下描述中,提供具体细节是为了便于透彻理解实例。然而,所属领域的技术人员将理解,可在没有这些特定细节的情况下实践所述方面。
本申请实施例提供一种基于虚拟合并策略的超大规模非结构网格生成方法。
如图1所示,一种基于虚拟合并策略的超大规模非结构网格生成方法,包括如下步骤:
步骤1,利用网格生成软件(如Pointwise)实现网格分块生成并导出:
本发明以利用商业网格生成软件实现网格分块生成并导出,生成一块导出一块,作为本发明具体技术方案的起点,通过,利用商业网格生成软件对计算区域进行分块,并生成全部分块间的内界面网格,再逐块生成子网格并逐块导出形成多个子网格文件,各子网格在体网格生成时应采用能使体网格与事先已生成的内界面网格相协调的网格生成算法,同时应实施如下技术要点:当内界面网格作为子网格的某块界面网格时将此内界面的面网格单元子集统一标注为“internal”(以利后续网格合并环节减少内界面网格合并对象查询操作的查询范围),当每块子网格生成后,须将该新生成的子网格导出为子网格数据文件存储,随后在网格生成软件的内存中删除已导出的子网格(降低内存开销),进而转入下一块子网格的生成步骤中,直至导出最后一块子网格。
开发虚拟网格合并模块
本发明开发网格虚拟合并模块,循环遍历所有的子网格文件,实现子网格的虚拟合并,详细步骤如下:
子网格块的每个网格点具有自然顺序,将每个网格点的自然顺序号作为每个网格点的局部编号;
子网格文件包括体网格单元的单元节点编号表、边界单元的单元节点编号表、网格点的坐标;体网格单元的单元节点编号表、边界单元的单元节点编号表和网格点的坐标均按照局部编号组织。
依次读取所有子网格文件,记录每个子网格中最大的网格点编号,各种体网格单元类型数目,及内边界面"internal"的面单元的单元节点编号表,确定当前子网格可合并的内边界面"internal"的面单元,以及当前子网格中的待合并的内边界面"internal"的面单元;
将待合并的的网格点在前一块子网格最大全局网格点编号的基础上进行依次累加得到每个待合并网格点的全局网格点编号;
当前子网格中可合并的网格点的全局网格点编号继承自之前所有的子网格中对应的内界面网格点的全局网格编号;
生成当前子网格的所有的网格点的局部网格编号和全局网格编号的对照表;
将体网格单元的单元节点编号表和边界单元的单元节点编号表中的原有的对应局部网格点编号替换为全局网格点编号;
生成新的子网格文件,新的子网格文件包括新的体网格单元的单元节点编号表、新的边界单元的单元节点编号表、网格点的坐标和当前子网格的所有的网格点的局部网格编号和全局网格编号的对照表;新的体网格单元的单元节点编号表和新的边界单元的单元节点编号表均按照全局编号组织。
步骤2详细步骤为:
读入第1块子网格文件(可以看做整个步骤2的初始化工作),记录其最大的网格点编号,各种体网格单元类型数目,及内边界面"internal"的面单元的单元节点编号表,将第1块子网格的内边界面"internal"的面单元的单元节点编号表信息保留在虚拟合并程序内存中,第1块子网格的全部内边界“internel”的面单元及其网格点坐标信息也作为“待找合并对象的内界面集合”A的数据,第1块子网格的所有网格点的局部网格点编号与全局网格点编号一致,留存在虚拟合并程序内存中,随后在虚拟合并程序内存中将第1块子网格的其它信息删除,在虚拟合并程序内存中仅保留第1块子网格的内边界“internel”的面单元的单元节点编号表、及网格点坐标信息,并记录第1块网格点总数作为当前合并后的网格点总数;
读入第2块(及以后的)子网格数据,进行虚拟合并处理:给该子网格的所有网格点创建全局网格点编号数组,初值赋为0;给本子块内边界面"internal"内界面面单元及虚拟合并程序内存中“待找合并对象的内界面集合”A中的内界面都创建标志数组,并赋初值为0;
遍历其本子块内边界面"internal"的各个面单元,依据本内界面单元的中心点坐标与集合”A的全部面单元中心点坐标进行比对,依据比对结果给本内界面面单元及集合A中的内界面单元赋予不同的标志:
某个本子块"internal"面单元的中心点在“待找合并对象的内界面集合”A的全部面单元中心点坐标中都没有找到一致的,说明本子块"internal"的该面单元是新出现的待找合并对象的内界面,将该面标志改为1;
某个本子块"internal"面单元的中心点在“待找合并对象的内界面集合”A的全部面单元中心点坐标中找到一致的(下简称面中心点坐标一致的相应面为对应面),说明本子块"internal"的该面单元是旧的待找合并对象A中的对应面互为合并对象,进而细致对比本子块该面单元的所有网格点坐标与集合A中对应面网格的网格点坐标信息,若全对应上,则将该内部面及集合A中对应面的标志都改为-1(虚拟合并成功),令该内部面单元的所有网格点的全局网格点编号为集合A中对应内部面相应网格点编号。若没有全对应上,报错退出,合并终止(说明子网格中有两块内界面单元,面中心点坐标一致但所属面网格点坐标不一致,子网格有错,无法合并);
本子块网格点属性数组赋值:完成全部比对标记后,先给本子块网格点创建一个属性数组(用于区分新旧网格点),属性值都赋为1。遍历其本子块内边界面"internal"的各个面单元,标记为“1”的内界面算是新出现的“待找合并对象的内界面”,标记为"-1"的算是已找到合并对象的内界面,其所属网格点的全局网格点编号值赋为集合A中对应面中匹配点的全局网格编号,且这些网格点的属性值都赋为0;
生成本子块网格点的全局网格点编号:遍历本子块全部网格点,若属性值为0,则跳过(其全局编号已赋值);若其属性值为1,则其全局网格点编号为在上次合并后的网格点总数基础上依次递增,遍历完成后,将当前合并后的网格点总数更改为目前数值最大的全局网格点编号;
更新内存中的“待找合并对象的内界面集合”A的信息,删除目前集合A中标志数组值为“-1”的内界面(已“合并”掉的面)的相关信息,随后依次增加本子块"internal"的标志值仍为1的内界面单元信息(包括内界面各网格点的全局网格点编号、各网格点坐标值);
更新本子块的体网格单元和边界面单元(除过“internal”内边界面)的单元节点编号表:将原来单元节点编号表中的网格节点局部编号更换为其全局网格点编号;
输出本子块数据到单独的子块网格数据文件,并在内存中删除本子块数据,内存中保留“待找合并对象的内界面集合”A的数据及当前合并后的网格点总数;
遍历完全部子网格块后,若“待找合并对象的内界面集合”A仍存有1个以上内界面单元,说明仍有至少1个内界面单元无法找到合并对象,整个虚拟合并失败,报错退出;否则,说明全部的内界面单元都已找到合并对象,虚拟合并成功,合并后的最终网格点总数为当前合并后的网格点总数。
步骤3,开发整体网格真实合并模块,将步骤2中最后一块子网格的最大的全局网格点编号作为合并后的网格点总数输出到整体网格文件中,将所有网格点坐标数据的汇集与输出至整体网格的文件,将体网格单元类型的分类单元个数输出到整体网格文件中,将体网格单元的单元节点编号表信息汇集与输出到整体网格的文件,将边界面的单元节点编号表信息汇集与输出到整体网格的文件,最终生成合并后的整体网格的网格文件。
步骤3具体的,创建一个整体网格的CGNS文件
网格点总数的输出:将合并后的网格点总数输出到整体网格CGNS文件中;
网格点坐标数据的汇集与输出:遍历全部子网格块(块号升序),依次读入各个子网格块的网格坐标数据,按照各网格点全局网格编号的顺序依次写到整体网格CGNS文件中;输出后及时删除该子网格的信息,再读入下一块子网格;
体网格单元分类统计:遍历全部子网格块(块号升序)文件,通过累加分类统计四面体、金字塔、三棱柱和六面体网格单元等四种体网格单元类型的分类单元个数,输出到整体网格CGNS文件中;
体网格单元的单元节点编号表信息汇集与输出:遍历全部子网格块(块号升序)文件,分类读入各子网格的体网格单元的单元节点编号表信息,并输出到整体网格CGNS文件中,输出后及时删除该子网格的体网格单元的单元节点编号表信息,再读入下一块子网格的体网格单元的单元节点编号表信息;
边界面的单元节点编号表信息汇集与输出:遍历全部子网格块(块号升序)文件,读入各子网格的边界面单元的单元节点编号表信息,输出到整体网格CGNS文件中(边界面名称中增加子网格块号以区别合并后各子网格中原同名的边界面片),输出后及时删除该子网格的边界面单元的单元节点编号表信息,再读入下一块子网格的边界面单元的单元节点编号表;
子网格合并循环结束,最终生成合并后的整体网格的网格文件。
以上所述,仅为本申请的具体实施方式,但本申请的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本申请揭露的技术范围内,可轻易想到的变化或替换,都应涵盖在本申请的保护范围之内。因此,本申请的保护范围应以权利要求的保护范围为准。
Claims (7)
1.一种基于虚拟合并策略的超大规模非结构网格生成方法,其特征在于,包括:
步骤1,利用商业网格生成软件对计算区域进行分块,并生成全部分块间的内界面网格,再逐块生成子网格并逐块导出形成多个子网格文件;
步骤2,开发网格虚拟合并模块,循环遍历所有的子网格文件,实现子网格的虚拟合并,子网格块的每个网格点具有自然顺序,将每个网格点的自然顺序号作为每个网格点的局部编号,子网格文件包括体网格单元的单元节点编号表、边界单元的单元节点编号表和网格点的坐标,体网格单元的单元节点编号表、边界单元的单元节点编号表和网格点的坐标均按照局部编号组织,依次读取所有子网格文件,记录每个子网格中最大的网格点编号,各种体网格单元类型数目,及内边界面"internal"的面单元的单元节点编号表,确定当前子网格可合并的内边界面"internal"的面单元,以及当前子网格中的待合并的内边界面"internal"的面单元,将待合并的网格点在前一块子网格最大全局网格点编号的基础上进行依次累加得到每个待合并网格点的全局网格点编号;当前子网格中可合并的网格点的全局网格点编号继承自之前所有的子网格中对应的内界面网格点的全局网格编号,生成当前子网格的所有的网格点的局部网格编号和全局网格编号的对照表,将体网格单元的单元节点编号表和边界单元的单元节点编号表中的原有的对应局部网格点编号替换为全局网格点编号,生成新的子网格文件,新的子网格文件包括新的体网格单元的单元节点编号表、新的边界单元的单元节点编号表、网格点的坐标和当前子网格的所有的网格点的局部网格编号和全局网格编号的对照表,新的体网格单元的单元节点编号表和新的边界单元的单元节点编号表均按照全局编号组织;
步骤3,开发整体网格真实合并模块,将步骤2中最后一块子网格的最大的全局网格点编号作为合并后的网格点总数输出到整体网格文件中,将所有网格点坐标数据的汇集与输出至整体网格的文件,将体网格单元类型的分类单元个数输出到整体网格文件中,将体网格单元的单元节点编号表信息汇集与输出到整体网格的文件,将边界面的单元节点编号表信息汇集与输出到整体网格的文件,最终生成合并后的整体网格的网格文件。
2.根据权利要求1所述的基于虚拟合并策略的超大规模非结构网格生成方法,其特征在于,所述步骤1具体包括:
在网格生成软件中将计算区域划分为N个子区域;
在各个子区域之间的内部界面上生成内界面网格;
逐块子区域进行子网格的生成与导出,生成的子网格的体网格与生成的内界面网格相协调,内界面设定相同的标记,并在生成第i块子网格后导出该子网格文件,并在商业软件中删除该子网格的体网格信息,再进行第i+1块子网格的生成,直至生成并导出第N块子网格文件。
3.根据权利要求1所述的基于虚拟合并策略的超大规模非结构网格生成方法,其特征在于,步骤2具体包括:
读入第1块子网格文件,记录其最大的网格点编号、各种体网格单元类型数目及内边界面"internal"的面单元的单元节点编号表,将内边界面"internal"的面单元的单元节点编号表信息保留在虚拟合并程序内存中,第1块子网格的全部内边界“internel”的面单元及其网格点坐标信息也作为待找合并对象的内界面集合A的数据,第1块子网格的所有网格点的局部网格点编号与全局网格点编号一致,留存在虚拟合并程序内存中,随后在虚拟合并程序内存中将第1块子网格的其它信息删除,在虚拟合并程序内存中仅保留第1块子网格的内边界“internel”的面单元的单元节点编号表及网格点坐标信息,并记录第1块网格点总数作为当前合并后的网格点总数;
依次读入第2块及以后的子网格数据,进行虚拟合并处理:给读入的子网格的所有网格点创建全局网格点编号数组,初值赋为0,给本子块内边界面"internal"内界面面单元及虚拟合并程序内存中待找合并对象的内界面集合A中的内界面都创建标志数组,并赋初值为0;
遍历当前本子块内边界面"internal"的各个面单元,依据本内界面单元的中心点坐标与集合A的全部面单元中心点坐标进行比对,依据比对结果给本内界面面单元及集合A中的内界面单元赋予不同的标志:某个本子块"internal"面单元的中心点在待找合并对象的内界面集合A的全部面单元中心点坐标中都没有找到一致的,将当前本字块的面标志改为1,某个本子块"internal"面单元的中心点在待找合并对象的内界面集合A的全部面单元中心点坐标中找到一致的,进行细致对比本子块面单元的所有网格点坐标与集合A中面中心点坐标一致的相应面网格的网格点坐标信息,若全对应上,则将当前本子块的内部面及集合A中面中心点坐标一致的相应面的标志都改为-1,令当前本子块的内部面单元的所有网格点的全局网格点编号为集合A中对应内部面相应网格点编号,若没有全对应上,报错退出,合并终止;
本子块网格点属性数组赋值:完成全部比对标记后,先给本子块网格点创建一个属性数组用于区分新旧网格点,属性值都赋为1;遍历当前本子块内边界面"internal"的各个面单元,标记为“1”的内界面是新出现的待找合并对象的内界面,标记为"-1"的是已找到合并对象的内界面,所属网格点的全局网格点编号值赋为集合A中对应面中匹配点的全局网格编号,且这些网格点的属性值都赋为0;
生成本子块网格点的全局网格点编号:遍历本子块全部网格点,若属性值为0,则跳过;若属性值为1,则网格点的全局网格点编号为在上次合并后的网格点总数基础上依次递增,遍历完成后,将当前合并后的网格点总数更改为目前数值最大的全局网格点编号;
更新内存中的待找合并对象的内界面集合A的信息,删除目前集合A中标志数组值为“-1”的内界面的相关信息,随后依次增加本子块"internal"的标志值仍为1的内界面单元信息;
更新本子块的体网格单元和边界面单元且除过“internal”内边界面的单元节点编号表:将原来单元节点编号表中的网格节点局部编号更换为全局网格点编号;
输出本子块数据到单独的子块网格数据文件,并在内存中删除本子块数据,内存中保留待找合并对象的内界面集合A的数据及当前合并后的网格点总数;
遍历完全部子网格块后,若待找合并对象的内界面集合A仍存有1个以上内界面单元,说明仍有至少1个内界面单元无法找到合并对象,整个虚拟合并失败,报错退出;否则,说明全部的内界面单元都已找到合并对象,虚拟合并成功,合并后的最终网格点总数为当前合并后的网格点总数。
4.根据权利要求1所述的基于虚拟合并策略的超大规模非结构网格生成方法,其特征在于,所述步骤3中网格点坐标数据的汇集与输出的步骤包括:遍历全部新的子网格文件,整体网格真实合并模块依次读取新的子网格文件,将读取新的子网格文件中的相应子网格块的网格坐标数据,将网格坐标数据按照各网格点全局网格编号的顺序依次写入整体网格文件中,删除整体网格真实合并模块中的本子网格的坐标数据的信息,再读入下一块子网格的网格坐标信息。
5.根据权利要求1所述的基于虚拟合并策略的超大规模非结构网格生成方法,其特征在于,所述步骤3中体网格单元分类统计的步骤包括:遍历全部新的子网格文件,通过累加分类统计四面体、金字塔、三棱柱和六面体网格单元四种体网格单元类型的分类单元个数,输出到整体网格文件中。
6.根据权利要求1所述的基于虚拟合并策略的超大规模非结构网格生成方法,其特征在于,所述步骤3中体网格单元的单元节点编号表信息汇集与输出的步骤包括:遍历全部子网格块文件,分类读入各子网格的体网格单元的单元节点编号表信息,并输出到整体网格文件中,输出后及时删除该子网格的信息,再读入下一块子网格的体网格单元的单元节点编号表信息。
7.根据权利要求1所述的基于虚拟合并策略的超大规模非结构网格生成方法,其特征在于,所述步骤3中边界面的单元节点编号表信息汇集与输出的步骤包括:遍历全部子网格块文件,读入各子网格的边界面单元的单元节点编号表信息,输出到整体网格文件中,输出后及时删除该子网格的边界单元的单元节点编号表信息,再读入下一块子网格的边界面单元节点编号表信息。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311059288.5A CN117131733A (zh) | 2023-08-22 | 2023-08-22 | 一种基于虚拟合并策略的超大规模非结构网格生成方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311059288.5A CN117131733A (zh) | 2023-08-22 | 2023-08-22 | 一种基于虚拟合并策略的超大规模非结构网格生成方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN117131733A true CN117131733A (zh) | 2023-11-28 |
Family
ID=88857712
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202311059288.5A Pending CN117131733A (zh) | 2023-08-22 | 2023-08-22 | 一种基于虚拟合并策略的超大规模非结构网格生成方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN117131733A (zh) |
-
2023
- 2023-08-22 CN CN202311059288.5A patent/CN117131733A/zh active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
Chen et al. | A rough-set-based incremental approach for updating approximations under dynamic maintenance environments | |
CN112231961B (zh) | 大规模有限元网格数据存储索引方法 | |
Tamassia et al. | Parallel transitive closure and point location in planar structures | |
WO2020236754A1 (en) | Classification of patterns in an electronic circuit layout using machine learning based encoding | |
CN109885917A (zh) | 一种并行分子动力学模拟方法及系统 | |
CN113157943A (zh) | 面向大规模金融知识图谱的分布式存储及可视化查询处理方法 | |
CN109325062A (zh) | 一种基于分布式计算的数据依赖挖掘方法及系统 | |
Herholz et al. | Sparse cholesky updates for interactive mesh parameterization | |
Liu et al. | pGRASS-Solver: A Graph Spectral Sparsification-Based Parallel Iterative Solver for Large-Scale Power Grid Analysis | |
Hou et al. | Simulating the dynamics of urban land quantity in China from 2020 to 2070 under the Shared Socioeconomic Pathways | |
Bertolazzi et al. | Parametric graph drawing | |
Navarro et al. | Competitiveness of a non-linear block-space gpu thread map for simplex domains | |
CN117273060A (zh) | 一种基于影响函数的数据优化方法 | |
CN117131733A (zh) | 一种基于虚拟合并策略的超大规模非结构网格生成方法 | |
Cakmak et al. | dg2pix: Pixel-based visual analysis of dynamic graphs | |
Shekhar et al. | An intelligent vehicle highway information management system | |
CN113434540B (zh) | 支持左外连接的应用驱动数据生成中依赖关系生成方法及系统 | |
Wang et al. | GLIN: a lightweight learned indexing mechanism for complex geometries | |
Gou et al. | A Momentum-incorporated Fast Parallelized Stochastic Gradient Descent for Latent Factor Model in Shared Memory Systems | |
JPH03116276A (ja) | 論理シミュレーションの波形データ処理方法 | |
CN114020738B (zh) | 结果数据库快速生成opc测试版图的方法和系统、存储介质 | |
EP4327230A1 (en) | Parallel and scalable computation of strongly connected components in a circuit design | |
Zhao | R Reference Card for Data Mining | |
Tauheed et al. | Computational neuroscience breakthroughs through innovative data management | |
Hu et al. | The Application and Research of Big Data in Internet Learning and Information Processing |
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 |