CN112100937B - 基于壁面距的高效重叠网格并行装配方法 - Google Patents
基于壁面距的高效重叠网格并行装配方法 Download PDFInfo
- Publication number
- CN112100937B CN112100937B CN202010951660.3A CN202010951660A CN112100937B CN 112100937 B CN112100937 B CN 112100937B CN 202010951660 A CN202010951660 A CN 202010951660A CN 112100937 B CN112100937 B CN 112100937B
- Authority
- CN
- China
- Prior art keywords
- grid
- node
- nodes
- distance
- wall surface
- 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.)
- Active
Links
- 238000000034 method Methods 0.000 title claims abstract description 132
- 238000004364 calculation method Methods 0.000 claims abstract description 47
- 238000012216 screening Methods 0.000 claims description 9
- 238000010276 construction Methods 0.000 claims description 7
- 238000000605 extraction Methods 0.000 claims description 4
- 238000003491 array Methods 0.000 claims description 2
- 238000005516 engineering process Methods 0.000 description 16
- 238000010586 diagram Methods 0.000 description 7
- 238000005192 partition Methods 0.000 description 4
- 238000009412 basement excavation Methods 0.000 description 3
- 238000012545 processing Methods 0.000 description 3
- 230000007547 defect Effects 0.000 description 2
- 238000011160 research Methods 0.000 description 2
- 238000004458 analytical method Methods 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 230000005540 biological transmission Effects 0.000 description 1
- 239000005018 casein Substances 0.000 description 1
- BECPQYXYKAMYBN-UHFFFAOYSA-N casein, tech. Chemical compound NCCCCC(C(O)=O)N=C(O)C(CC(O)=O)N=C(O)C(CCC(O)=N)N=C(O)C(CC(C)C)N=C(O)C(CCC(O)=O)N=C(O)C(CC(O)=O)N=C(O)C(CCC(O)=O)N=C(O)C(C(C)O)N=C(O)C(CCC(O)=N)N=C(O)C(CCC(O)=N)N=C(O)C(CCC(O)=N)N=C(O)C(CCC(O)=O)N=C(O)C(CCC(O)=O)N=C(O)C(COP(O)(O)=O)N=C(O)C(CCC(O)=N)N=C(O)C(N)CC1=CC=CC=C1 BECPQYXYKAMYBN-UHFFFAOYSA-N 0.000 description 1
- 235000021240 caseins Nutrition 0.000 description 1
- 238000004891 communication Methods 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 239000012530 fluid Substances 0.000 description 1
- 238000013507 mapping Methods 0.000 description 1
- 238000002360 preparation method Methods 0.000 description 1
- 230000000750 progressive effect Effects 0.000 description 1
- 238000000926 separation method Methods 0.000 description 1
- 238000004088 simulation Methods 0.000 description 1
- 238000000638 solvent extraction Methods 0.000 description 1
- 238000012360 testing method Methods 0.000 description 1
- 238000012546 transfer Methods 0.000 description 1
- 230000000007 visual effect Effects 0.000 description 1
Images
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/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
- G06F30/00—Computer-aided design [CAD]
- G06F30/10—Geometric CAD
- G06F30/17—Mechanical parametric or variational design
-
- 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
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- Geometry (AREA)
- Theoretical Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computer Hardware Design (AREA)
- Pure & Applied Mathematics (AREA)
- Mathematical Optimization (AREA)
- Mathematical Analysis (AREA)
- Evolutionary Computation (AREA)
- General Engineering & Computer Science (AREA)
- Computational Mathematics (AREA)
- Algebra (AREA)
- Computing Systems (AREA)
- Fluid Mechanics (AREA)
- Mathematical Physics (AREA)
- Image Analysis (AREA)
Abstract
本发明公开了一种基于壁面距的高效重叠网格并行装配方法。该部件流场计算方法包括:并行读取各部件的网格文件;标记各网格节点的所属部件网格;基于节点所属网格标记数组和预设参考距离计算各网格节点相对于所有部件的壁面距;基于壁面距和节点所属网格标记数组对所有的网格节点进行分类,得到活动节点和非活动节点;基于物面信息和预设参考距离,采用基于辅助网格的方法排除物面内背景网格中的活动节点;构造插值节点并搜索各插值节点的宿主单元;挖去部件网格中的非活动节点得到并行装配重叠网格;基于并行装配重叠网格、更新后的活动节点、插值节点和宿主单元计算各部件的流场。本发明能减少搜索点的数量,提高部件流场计算效率。
Description
技术领域
本发明涉及流场计算领域,特别是涉及一种基于壁面距的高效重叠网格并行装配方法。
背景技术
在计算流体力学中对于复杂外形流场,特别是具有多个运动部件的流场的计算一直是一个难题,重叠网格技术为这一困难提供了一个优雅的解决方案。重叠网格技术首先分别生成各个外形部件的网格,或结构网格、或非结构网格、或笛卡尔网格,且各网格之间存在重叠区域。在此基础上,通过相关的准则将不同网格的重叠部分挖去,并在不同网格交界面构造插值单元进行网格间流场信息的传递。
一般而言,重叠网格技术目前主要分为显式挖洞技术和隐式挖洞技术。显式挖洞技术一般网格挖洞的各步骤均需显式地执行,虽不同方法的重叠网格装配步骤可能不同,但大体上为定义活动节点和非活动节点,定义插值边界以及查询点,对查询点搜索宿主单元,挖掉非活动节点之后便可进行流场求解。
隐式网格挖洞技术主要为对于某网格中的一个网格点,首先搜索该点在不同网格中宿主单元,通过对不同宿主单元与该点所在网格的网格质量进行比较,选取网格质量最好的单元作为流场求解单元。隐式挖洞无需显式地执行网格分类的步骤,通过对网格质量对比的过程,网格分类已经隐式地完成了,并且无需计算显式挖洞中很多挖洞之前的准备工作,如求壁面距等。隐式挖洞技术由于需要对所有的点进行宿主单元的搜索,且宿主单元的搜索本身复杂且较为耗时,并且由于其对活动节点和非活动节点的判断仅仅基于网格质量的对比,因此,在网格挖洞过程中容易形成“孤岛”,这对仿真结果的影响很大,有可能导致计算结果收敛速度降低甚至导致结果发散。
对于不存在部件之间相对运动的外形,挖洞过程只需要执行一次即可,但对于存在相对运动的几何外形,由于几何外形随时间变化,导致不同几何部件网格的重叠范围也在变化,因此计算网格需要随着时间迭代重新挖洞,这就对网格挖洞的效率提出了考验。在重叠网格中,对整个程序执行效率影响较大的部分为宿主单元的搜索以及如何通过相关准则对网格节点进行分类。
目前重叠网格方法已经有了很多软件包,如PUNDIT、overflow、SUGGAR++、CHIMPS等。它们采用的方法可能不尽相同,就目前的软件中显式挖洞和隐式挖洞技术都有采用,它们各自都有各自的优势,但也有缺陷,较为普遍的缺陷是不能并行处理网格挖洞。对于大规模的并行流场求解,串行处理将会导致整体计算效率的直接降低,因此进行并行网格挖洞是非常有必要的。不过就目前而言,针对并行网格挖洞技术的研究仍较少。
PUNDIT为NASA的重叠网格软件包,其采用的网格挖洞技术结合了部分显式挖洞和隐式网格挖洞技术,通过构造辅助网格进行几何外形的近似,以此判断节点是否位于物面内部,PUNDIT利用物面作为挖洞界面,物面内部的点为非活动节点,位于物面外部的点通过隐式挖洞过程进行网格点宿主单元质量的比较,从而找出活动节点,根据对控制方程离散精度的不同确定插值单元的数量,但即便如此,插值单元的数量依然是巨大的。对于宿主单元的搜索,PUNDIT利用精确逆映射(Exact Inverse Map,EIM)方法,以及交替数字树(Alternating Digital Tree,ADT)方法。搜索点的确定,其通过辅助网格的构造找到不同网格的重叠区域,对重叠区域中所有的网格点搜索其宿主单元并判断其点类型,这一方法导致对搜索点宿主单元的寻找的计算量很大,由于宿主单元的寻找起到的作用应为对网格交界处流场进行信息传递,且从网格挖洞的最后结果可看到,不同网格交界处插值点的数量只占了计算网格的一小部分,因此,对所有重叠区域的所有点进行宿主单元搜索效率较低,只需要对插值点搜索宿主单元即可。且PUNDIT中为精确找到网格的重叠部分以降低宿主单元搜索的计算量做了细致的工作。其采用的EIM为针对并行网格分区的宿主单元搜索方法,在此不做介绍。另外,PUNDIT的挖洞方法是将位于物面内部的网格点设为非活动节点挖去,其余的网格重叠区域的点为活动节点或插值节点,这导致的一个问题是对于一个多体分离问题,网格重叠区域可能较大,而且通常没有必要将全部重叠区域的网格点都设为活动节点或插值节点,这也将导致效率的降低。
SUGGAR++利用物面作为洞边界,通过构造笛卡尔辅助网格判断一个网格点是否位于物面内部,宿主单元的搜索其根据网格类型的不同采用了不同的方法,对于笛卡尔网格,由于其网格线完全正交,因此一个点可以直接根据坐标判断是否位于网格单元内,对于结构网格,通过构造物理空间向计算空间的投影形成物理空间坐标和计算空间坐标的映射来求解一个节点是否位于网格内,对于非结构网格,采用相邻单元搜索方法搜索网格节点的宿主单元。且SUGGAR++同样采用了辅助网格的构造进行网格重叠部分的判断,通过尽量精确得到重叠部分以减少需要搜索宿主单元的网格点数量。
并行挖洞技术由于其实现起来难度较大,因此目前研究较少。在串行挖洞中,由于所有挖洞依赖的网格信息都位于同一个进程,因此能够较为容易的获取信息实现挖洞。对于并行处理挖洞,由于所有的网格信息分布在不同进程上,并且每个外形的网格也有可能位于多个进程上,这为网格挖洞的网格信息的获取带来了较大的困难,对于不同进程之间的数据交换提出了较大考验。
为减少进程间数据交换,SUGGAR++采用将不同块网格的重叠部分分配到同一个进程上的策略,即搜索点和它的宿主单元也基本位于同一个进程上,这大大减少了不同进程之间的数据交换,例如对于只做旋转运动的直升机旋翼和机身的重叠网格,由于旋翼只做旋转运动,因此采用环向切割的方式,沿着旋翼展向将网格分配到不同进程。另外PUNDIT也采用了类似的方式处理进程的负载均衡。
采用上述方法进行网格挖洞的技术均较为复杂,且将网格重叠区域的节点均作为查询点搜索宿主单元计算量较大,计算效率低,另外隐式挖洞技术以网格单元质量为依据容易产生“孤岛”现象。
发明内容
基于此,有必要提供一种基于壁面距的高效重叠网格并行装配方法,以减少搜索点的数量,提高部件流场计算效率。
为实现上述目的,本发明提供了如下方案:
一种基于壁面距的高效重叠网格并行装配方法,包括:
并行读取各部件的网格文件,得到各部件的部件网格;
对所述部件网格中的各网格节点的所属部件网格进行标记,得到节点所属网格标记数组;
提取物面信息;
基于所述节点所属网格标记数组和预设参考距离,计算各网格节点相对于所有部件的壁面距;
基于所述壁面距和所述节点所属网格标记数组对所有的网格节点进行分类,得到活动节点和非活动节点;
基于所述物面信息和所述预设参考距离,采用基于辅助网格的方法排除物面内背景网格中的活动节点,得到更新后的活动节点和更新后的非活动节点;
基于所述更新后的活动节点和所述更新后的非活动节点构造插值节点,并搜索各所述插值节点的宿主单元;
将所述部件网格中的更新后的非活动节点挖去得到并行装配重叠网格;
基于所述并行装配重叠网格、所述更新后的活动节点、所述插值节点和所述宿主单元计算各部件的流场。
可选的,所述基于所述网格节点所属网格标记数组和预设参考距离,计算各网格节点相对于所有部件的壁面距,具体包括:
基于所述节点所属网格标记数组,采用K-D树方法计算部件网格中各网格节点相对于所有部件的壁面距和背景网格中各网格节点相对于所有部件的壁面距;
采用预设参考距离对所述背景网格中各网格节点相对于所有部件的壁面距中的自身壁面距进行更新;所述自身壁面距为背景网格中的网格节点相对于自身的壁面距;
采用预设参考距离对所述部件网格中各网格节点相对于所有部件的壁面距中的背景壁面距进行更新;所述背景壁面距为部件网格中的网格节点相对于背景网格的壁面距;
由更新后的部件网格中各网格节点相对于所有部件的壁面距和更新后的背景网格中各网格节点相对于所有部件的壁面距,得到各网格节点相对于所有部件的壁面距。
可选的,所述采用预设参考距离对所述背景网格中各网格节点相对于所有部件的壁面距中的自身壁面距进行更新,具体包括:
当背景网格中存在物面,且所述自身壁面距小于预设参考距离时,则自身壁面距保持不变;
当背景网格中存在物面,且所述自身壁面距大于或等于预设参考距离时,将自身壁面距更新为所述预设参考距离;
当背景网格不存在物面时,将自身壁面距更新为所述预设参考距离。
可选的,所述基于所述壁面距和所述节点所属网格标记数组对所有的网格节点进行分类,得到活动节点和非活动节点,具体包括:
确定各网格节点相对于所有部件的最小壁面距;
判断所述最小壁面距是否与对应的网格节点的所属部件网格的标号相同;
若是,则将所述网格节点确定为活动节点;
若否,则将所述网格节点确定为非活动节点。
可选的,所述基于所述物面信息和所述预设参考距离,采用基于辅助网格的方法排除物面内背景网格中的活动节点,得到更新后的活动节点和更新后的非活动节点,具体包括:
由所述物面信息,构建基于物面物理坐标最大值和物面物理坐标最小值的辅助网格;
根据所述预设参考距离设定所述辅助网格中的辅助单元的步长;
筛选出完全位于物面内的辅助单元,得到目标辅助单元;
将所述目标辅助单元对应的背景网格中的网格节点确定为非活动节点,得到更新后的活动节点和更新后的非活动节点。
本发明还提供了一种基于壁面距的高效重叠网格并行装配系统,包括:
网格读取模块,用于并行读取各部件的网格文件,得到各部件的部件网格;
节点标记模块,用于对所述部件网格中的各网格节点的所属部件网格进行标记,得到节点所属网格标记数组;
物面信息提取模块,用于提取物面信息;
壁面距计算模块,用于基于所述节点所属网格标记数组和预设参考距离,计算各网格节点相对于所有部件的壁面距;
节点分类模块,用于基于所述壁面距和所述节点所属网格标记数组对所有的网格节点进行分类,得到活动节点和非活动节点;
背景节点更新模块,用于基于所述物面信息和所述预设参考距离,采用基于辅助网格的方法排除物面内背景网格中的活动节点,得到更新后的活动节点和更新后的非活动节点;
插值节点构造模块,用于基于所述更新后的活动节点和所述更新后的非活动节点构造插值节点,并搜索各所述插值节点的宿主单元;
重叠网格装配模块,用于将所述部件网格中的更新后的非活动节点挖去得到并行装配重叠网格;
流场计算模块,用于基于所述并行装配重叠网格、所述更新后的活动节点、所述插值节点和所述宿主单元计算各部件的流场。
可选的,所述壁面距计算模块,具体包括:
壁面距计算单元,用于基于所述节点所属网格标记数组,采用K-D树方法计算部件网格中各网格节点相对于所有部件的壁面距和背景网格中各网格节点相对于所有部件的壁面距;
第一壁面距更新单元,用于采用预设参考距离对所述背景网格中各网格节点相对于所有部件的壁面距中的自身壁面距进行更新;所述自身壁面距为背景网格中的网格节点相对于自身的壁面距;
第二壁面距更新单元,用于采用预设参考距离对所述部件网格中各网格节点相对于所有部件的壁面距中的背景壁面距进行更新;所述背景壁面距为部件网格中的网格节点相对于背景网格的壁面距;
壁面距确定单元,用于由更新后的部件网格中各网格节点相对于所有部件的壁面距和更新后的背景网格中各网格节点相对于所有部件的壁面距,得到各网格节点相对于所有部件的壁面距。
可选的,所述第一壁面距更新单元,具体包括:
壁面距更新子单元,用于当背景网格中存在物面,且所述自身壁面距小于预设参考距离时,则自身壁面距保持不变;当背景网格中存在物面,且所述自身壁面距大于或等于预设参考距离时,将自身壁面距更新为所述预设参考距离;当背景网格不存在物面时,将自身壁面距更新为所述预设参考距离。
可选的,所述节点分类模块,具体包括:
最小壁面距确定单元,用于确定各网格节点相对于所有部件的最小壁面距;
判断单元,用于判断所述最小壁面距是否与对应的网格节点的所属部件网格的标号相同;若是,则将所述网格节点确定为活动节点;若否,则将所述网格节点确定为非活动节点。
可选的,所述背景节点更新模块,具体包括:
辅助网格构建单元,用于由所述物面信息,构建基于物面物理坐标最大值和物面物理坐标最小值的辅助网格;
步长设定单元,用于根据所述预设参考距离设定所述辅助网格中的辅助单元的步长;
目标辅助单元筛选单元,用于筛选出完全位于物面内的辅助单元,得到目标辅助单元;
节点更新单元,用于将所述目标辅助单元对应的背景网格中的网格节点确定为非活动节点,得到更新后的活动节点和更新后的非活动节点。
与现有技术相比,本发明的有益效果是:
本发明提出了一种基于壁面距的高效重叠网格并行装配方法,利用壁面距进行节点分类更为直观且简单,并且免去了大部分网格宿主单元的搜索,因此效率明显更高;背景网格除外,如果某个部件的网格节点落到其它部件的物面内将自动被设为非活动节点,而不需要对该节点是否落在其它部件物面内进行判断,因此减小了计算量;对背景网格的挖洞则是借助了预设参考距离,但这可能会使部分位于物面内的背景网格节点被定义为活动节点,将采用物面辅助网格排除这些节点,无需对所有背景网格节点进行是否位于物面内的判断,减小了计算量。该基于壁面距的高效重叠网格并行装配方法形成的插值节点数量相比于传统方法大为减少,并行重叠网格装配过程中搜索宿主单元的速度将大为加快,提高了部件流场的计算效率。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1为本发明实施例提供的基于壁面距的高效重叠网格并行装配方法的流程图;
图2为本发明实施例提供的基于壁面距节点分类的示意图;
图3为本发明实施例提供的背景网格位于物面内的活动节点示意图;
图4为本发明实施例提供的利用Lref恢复物面内活动节点示意图;
图5为本发明实施例提供的网格在不同进程的分布示意图;
图6为本发明实施例提供的母弹及子弹壁面分区情况示意图;
图7为本发明实施例提供的所有子弹装配前重叠情况示意图;
图8为本发明实施例提供的第一排子弹装配后的活动单元的等距视图;
图9为本发明实施例提供的第一排子弹装配后的活动单元的前视图;
图10为本发明实施例提供的所有子弹装配后的活动单元示意图;
图11为本发明实施例提供的基于壁面距的高效重叠网格并行装配系统的结构示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
为使本发明的上述目的、特征和优点能够更加明显易懂,下面结合附图和具体实施方式对本发明作进一步详细的说明。
术语解释:
背景网格:一般为所有网格中范围最大的网格,能够将其他部件网格包围在其中,可有物面,也可没有物面。
部件网格:各个部件单独生成的独立的网格,有物面。
挖洞:将具有重叠部分的两套网格依据相关准则判断出网格是否参与流场计算,将不参与计算的网格点挖去,形成空洞的过程称为挖洞。
活动节点(洞外点):参与流场计算的节点。
活动单元:网格格心节点为活动节点的单元。
非活动节点(洞点):不参与流场计算的节点。
非活动单元:网格格心节点为非活动节点的单元。
插值节点(洞边界点):在不同网格挖洞交界面进行数据插值的节点。
查询点:需要搜索宿主单元的网格节点,在本发明中等价于插值节点。
宿主单元:查询点位于该单元内部,则该单元为该查询点的宿主单元。
壁面距:网格节点到物面的最小距离。
K-D树:K-Dimensional Tree,一种根据物面点云信息计算某个点相对于物面的壁面距的方法。
相邻单元搜索:一种对指定网格点搜索宿主单元的方法。
ADT方法:交替数字树方法(Alternating Digital Tree,ADT),一种对网格点搜索宿主单元的方法。
孤点:在挖洞过程中有可能形成的周围没有相邻单元的一个或多个单元组成的形似“孤岛”的网格块,既不能参与流场计算也不能进行插值,对程序的稳定性会有影响,需尽力避免。
本实施例提供的基于壁面距的高效重叠网格并行装配方法,实现简单,计算量小,效率更高,仅需用户定义一参数(预设参考距离),自动化程度高。另一方面该方法对网格单元类型没有限制,对于结构网格和非结构网格均适用。并且在网格文件读取以及整个装配过程中实现了真正意义上的完全并行,不存在传统意义上的主进程。此外,该方法采用C++语言实现,所以下面涉及的算法中的编号全部从零开始。
该方法基于格心格式进行重叠网格挖洞,除特殊说明,下面提及的网格节点均指网格中心(格心)。另外,本实施例采用格心格式进行装配,但对于格点格式同样适用。用iblk标记网格节点的所属部件网格,节点所属网格标记数组iwd[iblk],iblk=0,1,…,nblk-1,标记节点相对所有部件的壁面距,nblk为部件总数,例如位于部件N的网格中的点i相对于部件K的壁面距为d,那么iblk=N,iwd[K]=d。找出每个节点相对于各部件的最小壁面距iwd[M]之后对比壁面距的标记和所在网格的标记是否一致,即判断M是否等于N,若一致则该节点为活动节点,否则为非活动节点。
下面对本实施例提供的基于壁面距的高效重叠网格并行装配方法进行详细介绍。
图1为本发明实施例提供的基于壁面距的高效重叠网格并行装配方法的流程图。
参见图1,本实施例的基于壁面距的高效重叠网格并行装配方法,包括:
步骤101:并行读取各部件的网格文件,得到各部件的部件网格。
具体的,重叠网格中各部件网格单元的组成信息以及相邻关系均存储于网格文件中,因此,首先利用网格生成软件生成网格文件。为能够进行重叠网格装配,首先读取网格文件。对每个部件,各进程分别读取相应部分网格,但这种网格读取方式各进程中的网格单元在物理上可能是不连续的,需调用网格并行分区软件进行网格分区调整,如ParMetis,在各进程中形成单元连续的网格块。
步骤102:对所述部件网格中的各网格节点的所属部件网格进行标记,得到节点所属网格标记数组。具体的,在读入网格文件的同时将各网格节点的所属部件网格进行标记,写入iblk,得到节点所属网格标记数组。
步骤103:提取物面信息。具体的,将分布在各并行进程中的网格物面信息在所有的并行进程中广播,并在各并行进程中将获取到的网格物面信息进行拼接,得到完整的物面信息。但每个部件的物面信息仍是独立的,并不合并为一个。
步骤104:基于所述节点所属网格标记数组和预设参考距离,计算各网格节点相对于所有部件的壁面距。
具体的,完成网格文件读取以及物面信息提取之后,首先计算壁面距。计算壁面距的步骤中本实施例采用了如下数据结构,对于一网格节点i,其所属于的部件网格编号记为iblk,另定义一数组iwd[blk],iblk=0,1,…,nblk,用于存储节点相对于各部件的壁面距,nblk表示所有部件总数。利用K-D树对各网格节点进行壁面距计算,求得网格节点相对于所有部件的壁面距,例如对属于部件N的网格节点i计算相对于部件K的壁面距为d,则iblk=N,iwd[K]=d。
对于背景网格,需要设置一参考距离Lref(预设参考距离),对于背景网格中存在物面的情况,当网格节点相对于背景网格物面的距离大于Lref时将其壁面距设置为Lref,否则为其本身真实壁面距。对于背景网格中无物面的情况,将全局网格壁面距设置为Lref。对于部件网格,当部件网格的网格节点相对于背景网格的壁面距大于Lref时,则将其更新为Lref,否则为真实值。Lref的选取应小于其余所有部件网格中最外层网格节点相对于自身壁面距最小值,否则可能会导致最终网格出现空腔。
另外,对于除背景网格以外的部件,采用K-D树方法求壁面距并不能排除位于物面内部的点,但是,显然若一个部件A的网格节点位于另一部件B物面内部,那么该网格节点相对于B的壁面距一定小于相对于部件A的壁面距,这也为节点类型判断带来了便利。
所述步骤104,具体包括:
1)基于所述节点所属网格标记数组,采用K-D树方法计算部件网格中各网格节点相对于所有部件的壁面距和背景网格中各网格节点相对于所有部件的壁面距。
2)采用预设参考距离对所述背景网格中各网格节点相对于所有部件的壁面距中的自身壁面距进行更新;所述自身壁面距为背景网格中的网格节点相对于自身的壁面距。更新过程为:当背景网格中存在物面,且所述自身壁面距小于预设参考距离时,则自身壁面距保持不变;当背景网格中存在物面,且所述自身壁面距大于或等于预设参考距离时,将自身壁面距更新为所述预设参考距离;当背景网格不存在物面时,将自身壁面距更新为所述预设参考距离。
3)采用预设参考距离对所述部件网格中各网格节点相对于所有部件的壁面距中的背景壁面距进行更新;所述背景壁面距为部件网格中的网格节点相对于背景网格的壁面距。更新过程为:当所述背景壁面距大于预设参考距离时,将背景壁面距更新为所述预设参考距离。
4)由更新后的部件网格中各网格节点相对于所有部件的壁面距和更新后的背景网格中各网格节点相对于所有部件的壁面距,得到各网格节点相对于所有部件的壁面距。
步骤105:基于所述壁面距和所述节点所属网格标记数组对所有的网格节点进行分类,得到活动节点和非活动节点。
具体的,在所有进程中比较每个网格节点相对于所有部件的壁面距,并找出其中最小壁面距iwd[K],如果最小壁面距的标记与该节点所在网格的标记一致,即K=iblk,那么该节点被定义为活动节点(洞外点),节点所在单元为活动单元,否则被定义为非活动节点(洞点),节点所在单元被定义为非活动单元。即若一个网格节点相对于所有部件的最小壁面距若是其相对于自身部件物面的壁面距,则该网格节点参与流场计算,否则不参与流场计算,如图2所示,图2中grid1表示网格1,grid2表示网格2,i和j节点分别为第i、j个单元的中心,si和sj分别表示i和j节点相对于自身网格的壁面距,sdi和sdj分别表示i和j节点相对于网格2的壁面距,其中,i节点为活动节点,j节点为非活动节点。
所述步骤105,具体包括:
1)确定各网格节点相对于所有部件的最小壁面距。
2)判断所述最小壁面距是否与对应的网格节点的所属部件网格的标号相同;若是,则将所述网格节点确定为活动节点;若否,则将所述网格节点确定为非活动节点。
步骤106:基于所述物面信息和所述预设参考距离,采用基于辅助网格的方法排除物面内背景网格中的活动节点,得到更新后的活动节点和更新后的非活动节点。
具体的,完成全部网格节点的分类后,由于背景网格壁面距采用了预设参考距离Lref进行节点分类,因此背景网格的壁面距不完全是真实壁面距,在位于其他部件物面内部的节点会有壁面距大于Lref的情况出现,即Lref小于该点相对于部件物面的壁面距,因此这些位于物面内的点也会被定义为活动节点。如图3所示,显然这些点本应为非活动节点。
本实施例采用基于辅助网格的方法进行物面内活动节点排除。首先根据部件网格物面信息生成能够完全包围部件物面的笛卡尔网格,笛卡尔网格的网格单元步长设置为0~0.5Lref,首先判断出位于物面内的辅助网格单元,这些辅助单元中完全不存在物面网格节点,后将物面内的所有辅助单元内的背景网格节点全部设置为非活动节点。
这里对辅助单元步长设置进行说明,部件物面网格点若落在辅助网格单元中,那么在该辅助单元中可能的其他网格的网格节点与此部件的壁面距在二维情况最大为在三维情况下最大为均小于Lref。这可保证若物面点落在辅助单元内,那么在该单元内的其他网格的网格节点相对于此物面的壁面距一定小于Lref。这使得排除完全位于物面外和于物面相交的辅助单元之后,与物面相交的辅助单元中不会出现壁面距大于Lref的节点,因此避免了将落在与物面相交的辅助单元中的物面内活动节点错误地排除的可能。将物面内辅助网格内的背景网格点设为非活动节点,相应示意图见4。
所述步骤106,具体包括:
1)由所述物面信息,构建基于物面物理坐标最大值和物面物理坐标最小值的辅助网格。
2)根据所述预设参考距离设定所述辅助网格中的辅助单元的步长。
3)筛选出完全位于物面内的辅助单元,得到目标辅助单元。
4)将所述目标辅助单元对应的背景网格中的网格节点确定为非活动节点,得到更新后的活动节点和更新后的非活动节点。
步骤107:基于所述更新后的活动节点和所述更新后的非活动节点构造插值节点,并搜索各所述插值节点的宿主单元。
具体的,为得到各部件之间的相互影响,需要在各部件网格之间进行流场信息的传递,插值节点的作用为在不同部件网格挖洞边界处进行数据插值,使得不同部件网格之间的流场信息能够进行交换。同时为能够进行数据插值需要搜索在其他部件网格中包含该插值节点的单元,以便利用插值方法得出该插值节点的流场信息。
在将网格点分为活动节点和非活动节点之后(更新后的节点),在两种类型节点交界部分定义网格插值节点。插值边界是在上述两种网格类型交界处向非活动节点(更新后的)方向推进若干层得到,根据数值格式的精度确定推进的层数,插值边界的所有节点均被设为插值节点(查询点)。
采用相邻单元搜索与ADT方法结合的方式搜索查询点在其他部件网格中的宿主单元,对于存在多个宿主单元的情况,将宿主单元中体积最小的单元作为查询点的宿主单元。宿主单元用于为插值节点提供插值区域。
本步骤执行完毕之后,网格系统中节点类型已经分配完毕,即活动节点、非活动节点以及插值节点已经完全分类完毕,可进一步执行步骤108。
步骤108:将所述部件网格中的更新后的非活动节点挖去得到并行装配重叠网格。
具体的,将不参与流场计算的非活动节点挖去完成重叠网格装配。然后通过迭代方法进行并行流场计算,若部件之间存在相对运动则在一个时间步迭代之后计算出各部件的相对位置重新进行装配,若不存在相对运动则迭代至计算结果收敛为止。
步骤109:基于所述并行装配重叠网格、所述更新后的活动节点、所述插值节点和所述宿主单元计算各部件的流场。
重叠网格技术非常适合于处理复杂外形流场求解以及网格系统中存在多个运动部件的情况,将能够大大减少网格处理的复杂程度。将重叠网格技术应用于流场中的流程如下:
1)执行步骤101-步骤108,实现重叠网格装配。
2)对于不存在相对运动的部件,将其进行装配之后即可进行流场求解,对于存在相对运动的部件,则进行网格节点分类。若部件存在相对运动,在进行一次装配之后进行一步时间步计算,对于三维空间通过受力分析,进行六自由度运动计算,得出下一时间步各部件的相对位置,并重新进行装配。
本实施例中的挖洞过程的并行化相比于目前较多采用的串行挖洞显然能够大大提高计算效率。但是挖洞中的并行策略也是影响效率的一个重要因素。较为简单易行的并行方法是直接将所有部件网格每个都平均分配到各个进程中,但是带来的问题是对于网格量较少的部件,将其平均分配会导致不同进程中数据通信的开销巨大,将成为限制效率的主要原因。
因此,本实施例采用的方法是允许各部件网格在各进程中不进行平分,但各进程中的网格数量基本一致,本实施例允许部件网格分配到进程中的网格数为零,但是会在各进程中保留各部件网格的标记,这也为编程实现带来了一定的便利。如图5所示,利用Np个进程对N个部件网格并行挖洞,各部件网格分区在各进程中都有编号,但允许网格数为零。采用这一策略,能够有效避免部件网格很少的情况带来的效率问题,虽然不是最优的策略,但仍能起到较好的效果。
下面结合实际应用,对本实施例的基于壁面距的高效重叠网格并行装配方法进行进一步介绍。
图6到图10为一子母弹重叠网格装配图,其中不同深度色块表示不同进程中的网格分区,整个流场计算包含一个母弹和二十个子弹,子、母弹远场网格均为球面,二十个子弹分四圈等距环绕在母弹周围,每圈五个子弹,采用28线程并行计算,每套网格均分成28份,分到每个线程。图6给出了母弹及子弹壁面分区情况,图7给出了所有子弹装配前重叠情况。图8和图9分别给出了第一排子弹装配后活动单元的等距视图和前视图,给出了所有子弹装配后的活动单元。
以图6至图10为例,网格系统中存在21个部件,各部件无相对运动,各部件网格均存储于对应的网格文件中,为进行流场计算,首先并行读取各部件网格文件,读取完毕后对网格进行装配,完成各部件网格节点分类之后将非活动节点挖去得到参与流场计算的节点,在各部件活动节点边界定义插值节点用于各部件流场信息传递。之后即可进行流场计算。
本实施例中的基于壁面距的高效重叠网格并行装配方法具有以下优点:
(1)本实施例能够实现真正意义上的完全并行,从网格读入到重叠网格装配以及最终结果的输出全部并行进行,不存在传统意义上的主节点,对内存的消耗能够有效降低。
(2)由于利用壁面距可直接判断出网格节点的类型,因此实现起来较为容易且效率高,另外本实施例除了输入的各部件网格信息以外,仅需要一个用户定义的参数Lref,自动化程度高。
(3)由于网格节点宿主单元的搜索时非常耗时的工作,而且理论上只有插值节点才需要进行宿主单元的搜索,目前传统的并行装配方法基本上都是利用宿主单元的搜索来区分网格节点的类型,这也带来了很大的计算开销。本实施例首先利用网格节点的壁面距进行节点类型的判断得到活动节点以及非活动节点,显然插值节点位于活动节点与非活动节点的交界位置,因此,在对插值边界进行一定优化之后只需要对这些插值节点搜索宿主单元即可,这也很大程度上降低了计算量。
(4)目前普遍的方法均会对网格节点是否位于物面内部进行判断,利用笛卡尔辅助网格进行判断首先将笛卡尔网格单元与物面不相交的网格予以排除,后对于存在相交的情况,搜索网格点的宿主单元以判断该点是否落在物面内部。本实施例采用基于壁面距的节点分类方法,对于非背景网格,若一个部件A的网格点位于另一部件B物面内部,那么该节点相对于部件B的壁面距一定小于相对于部件A的壁面距,因此该点可直接定义为非活动节点,因而无需进行网格点是否位于物面内部的判断,节约了计算资源。特别的,对于背景网格,由于采用设置参考距离Lref的方法,该方法在上面的描述中有详细描述,其壁面距不完全是真实壁面距,因此会导致一些背景网格节点位于其他部件内部但是被定义为活动节点,后通过辅助网格的构造并将完全位于物面以外的辅助单元排除,将剩余辅助单元内的背景网格点定义为非活动节点。采用这一方法的好处是无需进行网格点是否位于物面内的判断,降低了计算量。
(5)由于隐式挖洞基于网格单元质量进行节点类型的判断,对网格质量要求较高,对于网格质量较差的情况容易产生“孤点”,本实施例基于壁面距进行分类,对网格单元质量的依赖较小,不容易产生“孤点”。
(6)并行情况下的壁面距计算由于利用了K-D树方法,因此无需收集物面网格节点的连接信息,只需要点云的信息,带来的存储以及数据交换的开销都较小,另外每个进程中都存储着所有部件的物面信息也使得壁面距的计算更为简单,程序实现也较为方便。
(7)目前的方法多采用将网格重叠区域的全部网格点作为查询点搜索其宿主单元,本实施例仅需要在将网格点分为活动节点和非活动节点之后将不同类型节点交界处的节点作为查询点搜索宿主单元,不需要对不同网格重叠区域的所有网格点搜索宿主单元,大大减少了查询点的数量,因此,计算量也显著降低。
(8)在进行并行网格挖洞过程中,较为简单的网格分区方法时直接将每个部件的网格进行均分,但这样带来的影响是对于网格数量差异较大或某个部件的网格单元很少的情况下,各个进程之间的数据交换效率将大幅降低,严重影响计算效率。本实施例中不要求将各部件网格进行均分,但在各进程上都留有各部件网格的网格标记,保证各进程中网格数量基本一致,即允许部件网格在某进程中为零,这样带来的好处是一定程度上缓解了效率降低的问题,另一方面编程实现也较为简单。
此外,本实施例在并行挖洞过程中,如宿主单元的搜索以及插值节点的插值方法均可采用可替代的方法,如采用PUNDIT的宿主单元搜索方法EIM等。不过对于计算壁面距的方法若不采用K-D树方法,而采用另外的方法则可能需要增加对网格节点是否位于物面内的判断。
本发明还提供了一种基于壁面距的高效重叠网格并行装配系统,图11为本发明实施例提供的基于壁面距的高效重叠网格并行装配系统的结构示意图。
参见图11,本实施例的基于壁面距的高效重叠网格并行装配系统包括:
网格读取模块201,用于并行读取各部件的网格文件,得到各部件的部件网格。
节点标记模块202,用于对所述部件网格中的各网格节点的所属部件网格进行标记,得到节点所属网格标记数组。
物面信息提取模块203,用于提取物面信息。
壁面距计算模块204,用于基于所述节点所属网格标记数组和预设参考距离,计算各网格节点相对于所有部件的壁面距。
节点分类模块205,用于基于所述壁面距和所述节点所属网格标记数组对所有的网格节点进行分类,得到活动节点和非活动节点。
背景节点更新模块206,用于基于所述物面信息和所述预设参考距离,采用基于辅助网格的方法排除物面内背景网格中的活动节点,得到更新后的活动节点和更新后的非活动节点。
插值节点构造模块207,用于基于所述更新后的活动节点和所述更新后的非活动节点构造插值节点,并搜索各所述插值节点的宿主单元。
重叠网格装配模块208,用于将所述部件网格中的更新后的非活动节点挖去得到并行装配重叠网格。
流场计算模块209,用于基于所述并行装配重叠网格、所述更新后的活动节点、所述插值节点和所述宿主单元计算各部件的流场。
作为一种可选的实施方式,所述壁面距计算模块204,具体包括:
壁面距计算单元,用于基于所述节点所属网格标记数组,采用K-D树方法计算部件网格中各网格节点相对于所有部件的壁面距和背景网格中各网格节点相对于所有部件的壁面距。
第一壁面距更新单元,用于采用预设参考距离对所述背景网格中各网格节点相对于所有部件的壁面距中的自身壁面距进行更新;所述自身壁面距为背景网格中的网格节点相对于自身的壁面距。
第二壁面距更新单元,用于采用预设参考距离对所述部件网格中各网格节点相对于所有部件的壁面距中的背景壁面距进行更新;所述背景壁面距为部件网格中的网格节点相对于背景网格的壁面距。
壁面距确定单元,用于由更新后的部件网格中各网格节点相对于所有部件的壁面距和更新后的背景网格中各网格节点相对于所有部件的壁面距,得到各网格节点相对于所有部件的壁面距。
作为一种可选的实施方式,所述第一壁面距更新单元,具体包括:
壁面距更新子单元,用于当背景网格中存在物面,且所述自身壁面距小于预设参考距离时,则自身壁面距保持不变;当背景网格中存在物面,且所述自身壁面距大于或等于预设参考距离时,将自身壁面距更新为所述预设参考距离;当背景网格不存在物面时,将自身壁面距更新为所述预设参考距离。
作为一种可选的实施方式,所述节点分类模块205,具体包括:
最小壁面距确定单元,用于确定各网格节点相对于所有部件的最小壁面距。
判断单元,用于判断所述最小壁面距是否与对应的网格节点的所属部件网格的标号相同;若是,则将所述网格节点确定为活动节点;若否,则将所述网格节点确定为非活动节点。
作为一种可选的实施方式,所述背景节点更新模块206,具体包括:
辅助网格构建单元,用于由所述物面信息,构建基于物面物理坐标最大值和物面物理坐标最小值的辅助网格。
步长设定单元,用于根据所述预设参考距离设定所述辅助网格中的辅助单元的步长。
目标辅助单元筛选单元,用于筛选出完全位于物面内的辅助单元,得到目标辅助单元。
节点更新单元,用于将所述目标辅助单元对应的背景网格中的网格节点确定为非活动节点,得到更新后的活动节点和更新后的非活动节点。
本说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似部分互相参见即可。对于实施例公开的系统而言,由于其与实施例公开的方法相对应,所以描述的比较简单,相关之处参见方法部分说明即可。
本文中应用了具体个例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及其核心思想;同时,对于本领域的一般技术人员,依据本发明的思想,在具体实施方式及应用范围上均会有改变之处。综上所述,本说明书内容不应理解为对本发明的限制。
Claims (8)
1.一种基于壁面距的高效重叠网格并行装配方法,其特征在于,包括:
并行读取各部件的网格文件,得到各部件的部件网格;
对所述部件网格中的各网格节点的所属部件网格进行标记,得到节点所属网格标记数组;
提取物面信息;
基于所述节点所属网格标记数组和预设参考距离,计算各网格节点相对于所有部件的壁面距;
基于所述壁面距和所述节点所属网格标记数组对所有的网格节点进行分类,得到活动节点和非活动节点;
基于所述物面信息和所述预设参考距离,采用基于辅助网格的方法排除物面内背景网格中的活动节点,得到更新后的活动节点和更新后的非活动节点;
基于所述更新后的活动节点和所述更新后的非活动节点构造插值节点,并搜索各所述插值节点的宿主单元;
将所述部件网格中的更新后的非活动节点挖去得到并行装配重叠网格;
基于所述并行装配重叠网格、所述更新后的活动节点、所述插值节点和所述宿主单元计算各部件的流场;
所述基于所述网格节点所属网格标记数组和预设参考距离,计算各网格节点相对于所有部件的壁面距,具体包括:
基于所述节点所属网格标记数组,采用K-D树方法计算部件网格中各网格节点相对于所有部件的壁面距和背景网格中各网格节点相对于所有部件的壁面距;
采用预设参考距离对所述背景网格中各网格节点相对于所有部件的壁面距中的自身壁面距进行更新;所述自身壁面距为背景网格中的网格节点相对于自身的壁面距;
采用预设参考距离对所述部件网格中各网格节点相对于所有部件的壁面距中的背景壁面距进行更新;所述背景壁面距为部件网格中的网格节点相对于背景网格的壁面距;
由更新后的部件网格中各网格节点相对于所有部件的壁面距和更新后的背景网格中各网格节点相对于所有部件的壁面距,得到各网格节点相对于所有部件的壁面距。
2.根据权利要求1所述的一种基于壁面距的高效重叠网格并行装配方法,其特征在于,所述采用预设参考距离对所述背景网格中各网格节点相对于所有部件的壁面距中的自身壁面距进行更新,具体包括:
当背景网格中存在物面,且所述自身壁面距小于预设参考距离时,则自身壁面距保持不变;
当背景网格中存在物面,且所述自身壁面距大于或等于预设参考距离时,将自身壁面距更新为所述预设参考距离;
当背景网格不存在物面时,将自身壁面距更新为所述预设参考距离。
3.根据权利要求1所述的一种基于壁面距的高效重叠网格并行装配方法,其特征在于,所述基于所述壁面距和所述节点所属网格标记数组对所有的网格节点进行分类,得到活动节点和非活动节点,具体包括:
确定各网格节点相对于所有部件的最小壁面距;
判断所述最小壁面距是否与对应的网格节点的所属部件网格的标号相同;
若是,则将所述网格节点确定为活动节点;
若否,则将所述网格节点确定为非活动节点。
4.根据权利要求1所述的一种基于壁面距的高效重叠网格并行装配方法,其特征在于,所述基于所述物面信息和所述预设参考距离,采用基于辅助网格的方法排除物面内背景网格中的活动节点,得到更新后的活动节点和更新后的非活动节点,具体包括:
由所述物面信息,构建基于物面物理坐标最大值和物面物理坐标最小值的辅助网格;
根据所述预设参考距离设定所述辅助网格中的辅助单元的步长;
筛选出完全位于物面内的辅助单元,得到目标辅助单元;
将所述目标辅助单元对应的背景网格中的网格节点确定为非活动节点,得到更新后的活动节点和更新后的非活动节点。
5.一种基于壁面距的高效重叠网格并行装配系统,其特征在于,包括:
网格读取模块,用于并行读取各部件的网格文件,得到各部件的部件网格;
节点标记模块,用于对所述部件网格中的各网格节点的所属部件网格进行标记,得到节点所属网格标记数组;
物面信息提取模块,用于提取物面信息;
壁面距计算模块,用于基于所述节点所属网格标记数组和预设参考距离,计算各网格节点相对于所有部件的壁面距;
节点分类模块,用于基于所述壁面距和所述节点所属网格标记数组对所有的网格节点进行分类,得到活动节点和非活动节点;
背景节点更新模块,用于基于所述物面信息和所述预设参考距离,采用基于辅助网格的方法排除物面内背景网格中的活动节点,得到更新后的活动节点和更新后的非活动节点;
插值节点构造模块,用于基于所述更新后的活动节点和所述更新后的非活动节点构造插值节点,并搜索各所述插值节点的宿主单元;
重叠网格装配模块,用于将所述部件网格中的更新后的非活动节点挖去得到并行装配重叠网格;
流场计算模块,用于基于所述并行装配重叠网格、所述更新后的活动节点、所述插值节点和所述宿主单元计算各部件的流场;
所述壁面距计算模块,具体包括:
壁面距计算单元,用于基于所述节点所属网格标记数组,采用K-D树方法计算部件网格中各网格节点相对于所有部件的壁面距和背景网格中各网格节点相对于所有部件的壁面距;
第一壁面距更新单元,用于采用预设参考距离对所述背景网格中各网格节点相对于所有部件的壁面距中的自身壁面距进行更新;所述自身壁面距为背景网格中的网格节点相对于自身的壁面距;
第二壁面距更新单元,用于采用预设参考距离对所述部件网格中各网格节点相对于所有部件的壁面距中的背景壁面距进行更新;所述背景壁面距为部件网格中的网格节点相对于背景网格的壁面距;
壁面距确定单元,用于由更新后的部件网格中各网格节点相对于所有部件的壁面距和更新后的背景网格中各网格节点相对于所有部件的壁面距,得到各网格节点相对于所有部件的壁面距。
6.根据权利要求5所述的一种基于壁面距的高效重叠网格并行装配系统,其特征在于,所述壁面距更新单元,具体包括:
壁面距更新子单元,用于当背景网格中存在物面,且所述自身壁面距小于预设参考距离时,则自身壁面距保持不变;当背景网格中存在物面,且所述自身壁面距大于或等于预设参考距离时,将自身壁面距更新为所述预设参考距离;当背景网格不存在物面时,将自身壁面距更新为所述预设参考距离。
7.根据权利要求5所述的一种基于壁面距的高效重叠网格并行装配系统,其特征在于,所述节点分类模块,具体包括:
最小壁面距确定单元,用于确定各网格节点相对于所有部件的最小壁面距;
判断单元,用于判断所述最小壁面距是否与对应的网格节点的所属部件网格的标号相同;若是,则将所述网格节点确定为活动节点;若否,则将所述网格节点确定为非活动节点。
8.根据权利要求5所述的一种基于壁面距的高效重叠网格并行装配系统,其特征在于,所述背景节点更新模块,具体包括:
辅助网格构建单元,用于由所述物面信息,构建基于物面物理坐标最大值和物面物理坐标最小值的辅助网格;
步长设定单元,用于根据所述预设参考距离设定所述辅助网格中的辅助单元的步长;
目标辅助单元筛选单元,用于筛选出完全位于物面内的辅助单元,得到目标辅助单元;
节点更新单元,用于将所述目标辅助单元对应的背景网格中的网格节点确定为非活动节点,得到更新后的活动节点和更新后的非活动节点。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010951660.3A CN112100937B (zh) | 2020-09-11 | 2020-09-11 | 基于壁面距的高效重叠网格并行装配方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010951660.3A CN112100937B (zh) | 2020-09-11 | 2020-09-11 | 基于壁面距的高效重叠网格并行装配方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN112100937A CN112100937A (zh) | 2020-12-18 |
CN112100937B true CN112100937B (zh) | 2021-05-28 |
Family
ID=73752073
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010951660.3A Active CN112100937B (zh) | 2020-09-11 | 2020-09-11 | 基于壁面距的高效重叠网格并行装配方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112100937B (zh) |
Families Citing this family (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114004174B (zh) * | 2021-10-29 | 2023-08-25 | 中船奥蓝托无锡软件技术有限公司 | 适用多套复杂网格耦合cfd计算的高效宿主单元搜索方法 |
CN114386344B (zh) * | 2022-03-24 | 2022-06-07 | 中国空气动力研究与发展中心计算空气动力研究所 | 基于单元切割的重叠网格尺寸动态匹配方法、设备及介质 |
CN114692470B (zh) * | 2022-05-31 | 2022-09-06 | 中国空气动力研究与发展中心计算空气动力研究所 | 一种重叠网格的装配方法和系统 |
CN114722745B (zh) * | 2022-06-10 | 2022-08-26 | 中国空气动力研究与发展中心计算空气动力研究所 | 湍流壁面距离计算方法、装置、计算机设备和存储介质 |
CN117540507A (zh) * | 2024-01-08 | 2024-02-09 | 中国空气动力研究与发展中心计算空气动力研究所 | 全环网格壁面距离的计算方法及装置 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109920059A (zh) * | 2019-03-14 | 2019-06-21 | 空气动力学国家重点实验室 | 基于辅助网格的超大规模重叠网格并行装配方法 |
CN110110446A (zh) * | 2019-05-09 | 2019-08-09 | 中国航空工业集团公司西安航空计算技术研究所 | 一种可实现重叠区快速优化的并行嵌套网格方法及装置 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108459909B (zh) * | 2018-02-27 | 2021-02-09 | 北京临近空间飞行器系统工程研究所 | 一种适于并行处理的多体分离网格重叠方法及系统 |
-
2020
- 2020-09-11 CN CN202010951660.3A patent/CN112100937B/zh active Active
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109920059A (zh) * | 2019-03-14 | 2019-06-21 | 空气动力学国家重点实验室 | 基于辅助网格的超大规模重叠网格并行装配方法 |
CN110110446A (zh) * | 2019-05-09 | 2019-08-09 | 中国航空工业集团公司西安航空计算技术研究所 | 一种可实现重叠区快速优化的并行嵌套网格方法及装置 |
Also Published As
Publication number | Publication date |
---|---|
CN112100937A (zh) | 2020-12-18 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN112100937B (zh) | 基于壁面距的高效重叠网格并行装配方法 | |
CN113689556B (zh) | 一种块自适应型笛卡尔网格快速图映射方法及系统 | |
CN102490909B (zh) | 一种飞行器多体分离模拟方法 | |
CN102609982B (zh) | 空间地质数据非结构化模式的拓扑发现方法 | |
US9971335B2 (en) | Hybrid dynamic tree data structure and accessibility mapping for computer numerical controlled machining path planning | |
CN112613126B (zh) | 一种应用于飞行器外形的壁面距离计算方法及装置 | |
CN116258042B (zh) | 一种基于ddm的大规模传热异构并行仿真方法 | |
CN105118091A (zh) | 一种构建多精度非均匀地质网格曲面模型的方法和系统 | |
CN103778191A (zh) | 一种顾及空间邻近关系的矢量等高线数据划分方法 | |
Wang et al. | Efficient visibility analysis for massive observers | |
CN113902872A (zh) | 非结构基质网格与裂缝连接性的检测方法、装置及介质 | |
Chang et al. | Parallel implicit hole-cutting method for unstructured Chimera Grid | |
CN116484702B (zh) | 一种适用于任意单元类型的非结构嵌套网格计算方法 | |
Aykanat et al. | Adaptive decomposition and remapping algorithms for object-space-parallel direct volume rendering of unstructured grids | |
Xia et al. | Highly efficient wall-distance-based parallel unstructured overset grid assembly | |
CN110955934A (zh) | 面向加工实时监控的切削仿真实现方法 | |
CN100492371C (zh) | 分布型cad装置 | |
CN114119882B (zh) | 飞行器动态流场分析中高效的嵌套网格宿主单元搜索方法 | |
Tremel et al. | Parallel remeshing of unstructured volume grids for CFD applications | |
CN102254093A (zh) | 基于泰森多边形的连通域统计相关算法 | |
CN104897176A (zh) | 一种多核并行摄影测量区域网平差方法 | |
CN113095012B (zh) | 风电场流场分区数值仿真计算结果拼接融合方法 | |
CN115658809A (zh) | 一种基于局部方向中心性的数据分布式聚类方法及装置 | |
CN113806951A (zh) | 一种基于半边数据结构的自然邻近点搜索的弹性仿真方法 | |
Shen et al. | An adaptive triangulation optimization algorithm based on empty circumcircle |
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 |