CN109948002A - 基于平衡kd树的非结构网格最近壁面距离求解方法 - Google Patents
基于平衡kd树的非结构网格最近壁面距离求解方法 Download PDFInfo
- Publication number
- CN109948002A CN109948002A CN201910191580.XA CN201910191580A CN109948002A CN 109948002 A CN109948002 A CN 109948002A CN 201910191580 A CN201910191580 A CN 201910191580A CN 109948002 A CN109948002 A CN 109948002A
- Authority
- CN
- China
- Prior art keywords
- wall surface
- target point
- tree
- point
- distance
- 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 45
- 238000010276 construction Methods 0.000 claims abstract description 7
- 238000004364 calculation method Methods 0.000 abstract description 4
- 238000004422 calculation algorithm Methods 0.000 abstract description 3
- 238000009795 derivation Methods 0.000 abstract description 3
- 238000005457 optimization Methods 0.000 abstract 1
- 238000004904 shortening Methods 0.000 abstract 1
- 239000000243 solution Substances 0.000 description 5
- 230000000694 effects Effects 0.000 description 3
- 239000012530 fluid Substances 0.000 description 3
- 238000012986 modification Methods 0.000 description 3
- 230000004048 modification Effects 0.000 description 3
- 238000012876 topography Methods 0.000 description 2
- 230000009286 beneficial effect Effects 0.000 description 1
- 238000010586 diagram Methods 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 230000007717 exclusion Effects 0.000 description 1
- 238000004088 simulation Methods 0.000 description 1
- 239000012086 standard solution Substances 0.000 description 1
Landscapes
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
Abstract
本发明公开了一种基于平衡KD树的非结构网格最近壁面距离求解方法,包括以下步骤:1)根据壁面单元的中心点建立平衡的KD树结构;2)对于空间某目标点,以其到壁面单元中心点的距离作为近似的最近距离,从KD树结构中查找k个最近的壁面单元;3)针对该k个壁面单元,精确计算目标点到其最近距离,并选择其中的最小值作为计算结果。本发明通过建立物面单元的KD树数据结构,并采用一种优化的查寻路径和壁面距离求解算法,从而极大的降低了查询的时间复杂度和计算量。本发明可以在充分保证计算精度的前提下大幅提高计算效率,且易于实现并行化计算。针对数千万量级计算网格的测试结果表明,和直接方法相比,本方法能够将计算时间缩短两个量级以上。
Description
技术领域
本发明涉及计算流体动力学和应用数学领域,具体涉及一种基于平衡KD树的非结构网格最近壁面距离求解方法。
背景技术
在CFD(Computational Fluid Dynamics,计算流体动力学)数值模拟中,往往需要求解空间网格点或网格单元到壁面的最近距离。当计算网格规模较小时,可以采用循环遍历的直接搜索方法进行计算;对于中等规模的计算网格,通过并行计算技术也能够得到令人满意的求解效率。但是随着网格规模的进一步增加,采用直接搜索方法或者单纯的采用并行计算技术求解壁面距离将变得十分耗时,因此需要探索更为高效的求解算法。
除了直接方法之外,常见的最近壁面距离求解算法主要有如下几类:
(1)利用网格的连接关系分层求解壁面距离。在求出第一层网格的壁面距离之后,下一层网格的壁面距离在前一层结果的基础上进行计算。这种技术比较依赖网格的拓扑关系,难以实现并行化。
(2)物面网格分组的模式。将壁面网格点进行分组,先查询距离空间点最近的网格组,然后在该组网格内进行遍历查询。由于距离最近的壁面网格点不一定在最近的网格组内,因此该方法求出的壁面距离不一定是最小值。
(3)基于求解偏微分方程的方法。通过计算和壁面距离相关的偏微分方程得到距离场。然而此类方法对求解格式、边界条件的要求较高,且需要通过多步迭代才能得到准确的计算结果。
(4)基于ADT树的查询方法。首先建立物面点的ADT数据结构,对于某空间点,找到落在围绕空间点的“盒子”内的物面点,然后在这些物面点中采用直接方法搜索。此类方法中“盒子”的大小选择具有较强的经验性,取的较大时,远场区域查询效率会变差,取得较小时,距离最近的壁面点有可能不落在盒子内,从而导致求解的最近壁面距离误差较大。此外,当物面网格分布不均匀时,会导致ADT树的不平衡从而严重影响查询效率。
发明内容
在处理大规模计算网格时,现有最近壁面距离求解方法难以兼顾计算精度和计算效率。本发明提出了一种基于平衡KD树的最近壁面距离快速求解方法,可以在保证求解准确度的前提下大幅提高求解效率,且易于实现并行化。数千万量级的大规模网格测试结果表明该方法具有良好的实用性。
本发明的技术方案是:
一种基于平衡KD树的非结构网格最近壁面距离求解方法,包括以下步骤:
S1.根据壁面单元的中心点建立平衡的KD树结构;
S2.对于空间某目标点,以其到壁面单元中心点的距离作为近似的最近距离,从KD树结构中查找k个最近的壁面单元;
S3.针对该k个壁面单元,精确计算目标点到其最近距离,并选择其中的最小值作为计算结果。
作为优选实施方式,在步骤S1中,分别以壁面单元中心点的x、y、z坐标为维度建立KD树结构,通过在当前维度进行排序,选择中位数的点作为当前的节点。
作为优选实施方式,在步骤S2中,以当前计算得到的近似的最近壁面距离为半径,以目标点为中心绘制一个圆形或者圆球,根据圆形或圆球与KD树超平面的相对位置选择查找路径。
作为优选实施方式,所述查找路径具体为:
a)如果目标点位于当前KD树超平面的左边,且其外接圆和超平面不相交,则直接进入左子树,而不再进入右子树进行查询;所述外接圆为以该目标点为圆心,以当前最小距离为半径的圆形或圆球;
b)如果目标点位于当前KD树超平面的右边,且其外接圆和超平面不相交,则不用进入左子树,直接进入右子树;
c)如果目标点的外接圆和超平面相交,则当目标点位于该层节点的左侧时,按照先左后右的顺序遍历左右子树,当目标点位于该层节点的右侧时,按照先右后左的顺序遍历左右子树。
作为优选实施方式,在步骤S3中,目标点到壁面单元精确的最近距离计算过程如下:
S31.计算目标点到壁面单元的投影点,如果投影点位于壁面单元内部,则该投影距离即为目标点到壁面单元的最近距离;否则,则执行步骤S32;
S32.依次判断壁面单元边界的棱线,求目标点到每条棱线上的投影点,如果投影点位于棱线上,则计算目标点到棱线的投影距离;否则,计算目标点到棱线两端点的距离;
S33.以计算出的目标点到棱线的投影距离和/或棱线两端点的距离中的最小值作为目标点到壁面单元的最近距离。
本发明的有益效果在于:
(1)将查询的时间复杂度降低为壁面单元数的对数量级,从而显著提高了查询效率;
(2)查询过程中以点到壁面单元中心的距离作为近似的“最近距离”,从而极大地减少了计算量;
(3)针对m6机翼外形130万规模计算网格的测试结果表明,直接计算耗时2584.28秒,而本方法仅需24.38秒,查询加速比为106倍;
(4)本方法可以方便实现并行化,针对客机标模外形的5306万规模计算网格的测试结果表明,采用256个进程计算总时间为33.61秒。而如果选择直接法,采用256个进程计算耗时约3.3个小时。
附图说明
图1是本发明的技术方案流程;
图2是查询过程中路径选择方法的示例图;
图3是目标点到某壁面单元最近距离的精确计算方法;
图4是针对5千万计算网格的测试结果。
具体实施方式
为了对本发明的技术特征、目的和效果有更加清楚的理解,现对照附图说明本发明的具体实施方式。应当理解,此处所描述的具体实施例仅用以解释本发明,并不用于限定本发明,即所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。通常在此处附图中描述和示出的本发明实施例的组件可以以各种不同的配置来布置和设计。因此,以下对在附图中提供的本发明的实施例的详细描述并非旨在限制要求保护的本发明的范围,而是仅仅表示本发明的选定实施例。基于本发明的实施例,本领域技术人员在没有做出创造性劳动的前提下所获得的所有其他实施例,都属于本发明保护的范围。
实施例1
如图1所示,一种基于平衡KD树的非结构网格壁面距离求解方法,包括以下步骤:
S1.以壁面单元中心点的坐标为维度,建立平衡的KD树数据结构;
S2.对于空间某目标点,以其到壁面单元中心点的距离作为近似的最近距离,从KD树的根节点出发逐级进行查询,选择k个距离最近的物面单元;
S3.以物面单元中心点为依据找到k个最近的物面单元之后,再精确计算目标点到这k个物面单元的最近距离,并选择其中的最小值作为最终结果。
实施例2
本实施例在实施例1的基础上:
在步骤S1中,以二维空间点集{1,2,……N}为例,其KD树的建立流程如下:
S11.首先针对点的x坐标进行排序,取第Floor(N/2)个点作为根节点;
S12.对于排序后的子集(1~Floor(N/2)-1),针对点的y坐标进行排序,取中值点作为根节点的左子节点;
S13.对于排序后的子集(Floor(N/2)+1~N),针对点的y坐标进行排序,取中值点作为根节点的右子节点;
S14.递归执行S11~S13,并依次从x、y坐标出发进行判断,直到子集内没有点为止。
实施例3
本实施例在实施例2的基础上:
在选择查询路径时,以当前计算得到的最近壁面距离为半径,以目标点为中心绘制一个圆(二维)或者圆球(三维),并根据圆(或圆球)、目标点、超平面的相对位置确定下一个待查询的子节点。以二维情况下的维度x为例,其查询方法如图2所示,描述如下:
a)如果目标点位于当前KD树超平面的左边,且其外接圆和超平面不相交,则直接进入左子树,而不再进入右子树进行查询,其中,外接圆为以该目标点为圆心,以当前最小距离为半径的圆球;
b)如果目标点位于当前KD树超平面的右边,且其外接圆和超平面不相交,则不用进入左子树,直接进入右子树;
c)如果目标点的外接圆和超平面相交,则当目标点位于该层节点的左侧时,按照先左后右的顺序遍历左右子树,当目标点位于该层节点的右侧时,按照先右后左的顺序遍历左右子树。
实施例4
本实施例在实施例3的基础上:
精确的壁面距离计算过程如图3所示,描述如下:
S31.计算目标点到物面单元的投影点,如果投影点位于物面单元内部,则该投影距离即为目标点到物面单元的最近距离;否则,则执行步骤S32;
S32.依次判断物面单元边界的棱线,求目标点到每条棱线上的投影点,如果投影点位于棱线上,则计算目标点到棱线的投影距离;否则,计算目标点到棱线两端点的距离;
S33.以计算出的目标点到棱线的投影距离和/或棱线两端点的距离中的最小值作为目标点到物面单元的最近距离。
此外,本实施例的应用效果如图4所示,本实施例中的计算网格为客机标模外形的非结构网格,网格单元数5306万,物面单元数97.7万,分别采用8~256个进程进行了并行计算。在256个进程情况下,最近壁面距离计算总时间为33.61秒,相对于直接方法(256个进程情况下直接方法计算耗时3.3小时)效率大幅提升。
以上所述仅是本发明的优选实施方式,应当理解本发明并非局限于本文所披露的形式,不应看作是对其他实施例的排除,而可用于各种其他组合、修改和环境,并能够在本文所述构想范围内,通过上述教导或相关领域的技术或知识进行改动。而本领域人员所进行的改动和变化不脱离本发明的精神和范围,则都应在本发明所附权利要求的保护范围内。
Claims (5)
1.一种基于平衡KD树的非结构网格最近壁面距离求解方法,其特征在于,包括以下步骤:
S1.根据壁面单元的中心点建立平衡的KD树结构;
S2.对于空间某目标点,以其到壁面单元中心点的距离作为近似的最近距离,从KD树结构中查找k个最近的壁面单元;
S3.针对该k个壁面单元,精确计算目标点到其最近距离,并选择其中的最小值作为计算结果。
2.根据权利要求1所述的一种基于平衡KD树的非结构网格最近壁面距离求解方法,其特征在于,在步骤S1中,分别以壁面单元中心点的x、y、z坐标为维度建立KD树结构,通过在当前维度进行排序,选择中位数的点作为当前的节点。
3.根据权利要求1所述的一种基于平衡KD树的非结构网格最近壁面距离求解方法,其特征在于,在步骤S2中,以当前计算得到的近似的最近壁面距离为半径,以目标点为中心绘制一个圆形或者圆球,根据圆形或圆球与KD树超平面的相对位置选择查找路径。
4.根据权利要求3所述的一种基于平衡KD树的非结构网格最近壁面距离求解方法,其特征在于,所述查找路径具体为:
a)如果目标点位于当前KD树超平面的左边,且其外接圆和超平面不相交,则直接进入左子树,而不再进入右子树进行查询;所述外接圆为以该目标点为圆心,以当前最小距离为半径的圆形或圆球;
b)如果目标点位于当前KD树超平面的右边,且其外接圆和超平面不相交,则不用进入左子树,直接进入右子树;
c)如果目标点的外接圆和超平面相交,则当目标点位于该层节点的左侧时,按照先左后右的顺序遍历左右子树,当目标点位于该层节点的右侧时,按照先右后左的顺序遍历左右子树。
5.根据权利要求1所述的一种基于平衡KD树的非结构网格最近壁面距离求解方法,其特征在于,在步骤S3中,目标点到壁面单元精确的最近距离计算过程如下:
S31.计算目标点到壁面单元的投影点,如果投影点位于壁面单元内部,则该投影距离即为目标点到壁面单元的最近距离;否则,则执行步骤S32;
S32.依次判断壁面单元边界的棱线,求目标点到每条棱线上的投影点,如果投影点位于棱线上,则计算目标点到棱线的投影距离;否则,计算目标点到棱线两端点的距离;
S33.以计算出的目标点到棱线的投影距离和/或棱线两端点的距离中的最小值作为目标点到壁面单元的最近距离。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910191580.XA CN109948002A (zh) | 2019-03-14 | 2019-03-14 | 基于平衡kd树的非结构网格最近壁面距离求解方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910191580.XA CN109948002A (zh) | 2019-03-14 | 2019-03-14 | 基于平衡kd树的非结构网格最近壁面距离求解方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN109948002A true CN109948002A (zh) | 2019-06-28 |
Family
ID=67009973
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910191580.XA Pending CN109948002A (zh) | 2019-03-14 | 2019-03-14 | 基于平衡kd树的非结构网格最近壁面距离求解方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN109948002A (zh) |
Cited By (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112613126A (zh) * | 2020-12-29 | 2021-04-06 | 中国航天空气动力技术研究院 | 一种应用于飞行器外形的壁面距离计算方法及装置 |
CN113609599A (zh) * | 2021-10-09 | 2021-11-05 | 北京航空航天大学 | 一种飞行器湍流绕流模拟的壁面距有效单元计算方法 |
CN114004175A (zh) * | 2021-10-29 | 2022-02-01 | 中船重工奥蓝托无锡软件技术有限公司 | 一种快速查找全域壁面距离和无量纲壁面距离的方法 |
CN114722745A (zh) * | 2022-06-10 | 2022-07-08 | 中国空气动力研究与发展中心计算空气动力研究所 | 湍流壁面距离计算方法、装置、计算机设备和存储介质 |
CN114861444A (zh) * | 2022-05-12 | 2022-08-05 | 中国人民解放军国防科技大学 | 基于kd树的非结构网格地球系统模式观测稀疏化方法 |
CN114943167A (zh) * | 2022-05-31 | 2022-08-26 | 中国空气动力研究与发展中心计算空气动力研究所 | 一种结构网格壁面距离的计算方法、系统、介质和设备 |
CN115357849A (zh) * | 2022-10-24 | 2022-11-18 | 中国空气动力研究与发展中心计算空气动力研究所 | 笛卡尔网格下的壁面距离的计算方法及装置 |
CN116579269A (zh) * | 2023-07-12 | 2023-08-11 | 北京凌云智擎软件有限公司 | 多面体网格原位分布式并行边界层物理量获取方法和装置 |
-
2019
- 2019-03-14 CN CN201910191580.XA patent/CN109948002A/zh active Pending
Cited By (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112613126A (zh) * | 2020-12-29 | 2021-04-06 | 中国航天空气动力技术研究院 | 一种应用于飞行器外形的壁面距离计算方法及装置 |
CN112613126B (zh) * | 2020-12-29 | 2023-07-28 | 中国航天空气动力技术研究院 | 一种应用于飞行器外形的壁面距离计算方法及装置 |
CN113609599A (zh) * | 2021-10-09 | 2021-11-05 | 北京航空航天大学 | 一种飞行器湍流绕流模拟的壁面距有效单元计算方法 |
CN114004175A (zh) * | 2021-10-29 | 2022-02-01 | 中船重工奥蓝托无锡软件技术有限公司 | 一种快速查找全域壁面距离和无量纲壁面距离的方法 |
CN114004175B (zh) * | 2021-10-29 | 2023-09-22 | 中船奥蓝托无锡软件技术有限公司 | 一种快速查找全域壁面距离和无量纲壁面距离的方法 |
CN114861444A (zh) * | 2022-05-12 | 2022-08-05 | 中国人民解放军国防科技大学 | 基于kd树的非结构网格地球系统模式观测稀疏化方法 |
CN114861444B (zh) * | 2022-05-12 | 2024-04-02 | 中国人民解放军国防科技大学 | 基于kd树的非结构网格地球系统模式观测稀疏化方法 |
CN114943167A (zh) * | 2022-05-31 | 2022-08-26 | 中国空气动力研究与发展中心计算空气动力研究所 | 一种结构网格壁面距离的计算方法、系统、介质和设备 |
CN114722745A (zh) * | 2022-06-10 | 2022-07-08 | 中国空气动力研究与发展中心计算空气动力研究所 | 湍流壁面距离计算方法、装置、计算机设备和存储介质 |
CN115357849A (zh) * | 2022-10-24 | 2022-11-18 | 中国空气动力研究与发展中心计算空气动力研究所 | 笛卡尔网格下的壁面距离的计算方法及装置 |
CN116579269A (zh) * | 2023-07-12 | 2023-08-11 | 北京凌云智擎软件有限公司 | 多面体网格原位分布式并行边界层物理量获取方法和装置 |
CN116579269B (zh) * | 2023-07-12 | 2023-09-26 | 北京凌云智擎软件有限公司 | 多面体网格原位分布式并行边界层物理量获取方法和装置 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109948002A (zh) | 基于平衡kd树的非结构网格最近壁面距离求解方法 | |
CN105550199B (zh) | 一种基于多源地图的点位聚合方法及装置 | |
CN106023298B (zh) | 基于局部泊松曲面重建的点云刚性配准方法 | |
CN107332240B (zh) | 基于优化模型的电力系统静态电压稳定域边界搜索的方法 | |
CN104778688A (zh) | 点云数据的配准方法及装置 | |
CN104482911B (zh) | 基于误差球的球度误差评定方法 | |
CN107529644B (zh) | 一种电力系统静态电压稳定域边界线性近似方法 | |
CN105654476A (zh) | 基于混沌粒子群优化算法的双目标定方法 | |
Zhu et al. | A steepest descent algorithm for circularity evaluation | |
CN109682336A (zh) | 用于车身精度检测的三坐标测量路径自动规划与优化方法 | |
CN106971087A (zh) | 一种基于二次爬山教与学算法的平面度误差评定方法 | |
CN109931903A (zh) | 一种基于改进鲸鱼优化算法的圆柱度评定方法 | |
CN108647803B (zh) | 面向装配精度的多个对称体装配工艺参数优化方法 | |
CN109035363A (zh) | 一种快速迭代的线圆最优拟合方法 | |
CN107909194A (zh) | 系统级测试性设计多目标优化方法 | |
CN114943167A (zh) | 一种结构网格壁面距离的计算方法、系统、介质和设备 | |
CN113673186A (zh) | 一种基于stl文件的笛卡尔网格快速生成方法 | |
CN113095012B (zh) | 风电场流场分区数值仿真计算结果拼接融合方法 | |
CN104765820A (zh) | 一种非侵入式的服务依赖关系发现方法 | |
CN109323677A (zh) | 改进布谷鸟搜索算法的圆度误差评定算法 | |
CN104850716B (zh) | 基于分布式光伏接入设计聚类模型的最优方案选择方法 | |
CN108052778A (zh) | 用于无网格粒子模拟技术的邻近粒子高效双重搜索方法 | |
CN110856252B (zh) | 一种考虑测量误差的二维平面传感器定位方法及系统 | |
CN115638795B (zh) | 一种室内多源泛在定位指纹数据库的生成与定位方法 | |
CN110569892A (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 | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20190628 |
|
RJ01 | Rejection of invention patent application after publication |