CN113673186A - 一种基于stl文件的笛卡尔网格快速生成方法 - Google Patents
一种基于stl文件的笛卡尔网格快速生成方法 Download PDFInfo
- Publication number
- CN113673186A CN113673186A CN202110985832.3A CN202110985832A CN113673186A CN 113673186 A CN113673186 A CN 113673186A CN 202110985832 A CN202110985832 A CN 202110985832A CN 113673186 A CN113673186 A CN 113673186A
- Authority
- CN
- China
- Prior art keywords
- grid
- model
- bounding box
- points
- space
- 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
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
- 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)
- General Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Mathematical Physics (AREA)
- Fluid Mechanics (AREA)
- Mathematical Analysis (AREA)
- Mathematical Optimization (AREA)
- Computing Systems (AREA)
- Pure & Applied Mathematics (AREA)
- Computer Hardware Design (AREA)
- Evolutionary Computation (AREA)
- Geometry (AREA)
- General Engineering & Computer Science (AREA)
- Algebra (AREA)
- Image Generation (AREA)
Abstract
本发明涉及一种基于STL文件的笛卡尔网格快速生成方法包括以下步骤:步骤一,根据STL文件信息构建长方体包围盒,对包围盒内部点进行后续步骤;步骤二,采用逆序统计法的框架,输入为模型的STL文件,输出为网格点对应的交点个数,使用本发明提出的相交判定算子;步骤三,根据个数奇偶性,例如个数为偶数,则射线对应的网格点在模型内部,从而得到所有网格点与模型的内外部关系。本发明可并行化后嵌入CFD计算中,对于需要网格更新的情况,网格生成时间占比低,这对于格子Boltzmann方法后续的流固耦合计算或自适应网格计算提供了很好的基础。
Description
技术领域
本发明涉及一种基于STL文件的笛卡尔网格快速生成方法,生成的笛卡尔网格应用于LBM相关的CFD计算中。
背景技术
复杂流体运动问题一直是大规模科学与工程计算中最重要且具有挑战性的研究领域之一。与传统模拟方法不同,从介观尺度描述流体系统,起源于格子 Gas CellularAutomata(LGA)方法的格子Boltzmann方法(LBM)具有简单、高效的特点。天然并行性及方便处理复杂边界条件的优点,使得LBM非常适合复杂流动问题的大规模并行计算。近年来,该方法已广泛应用于多相流、燃烧、湍流、生物力学和多孔介质等许多领域中。由于笛卡尔网格的正交性可简化算法中的部分式子,降低计算的复杂性,能够较准确的捕捉流动结构特征。在笛卡尔网格中,针对复杂外形的三维模型,需要准确判断网格点与网格系统中三维模型的内外关系,使得在生成网格的过程中计算量较大。对于需要进行网格更新的计算流体力学(CFD)计算,有研究表明,网格更新占CFD周期总用时的70%以上。因此,一种准确快速的网格生成方法对这一类的计算非常重要。
网格生成的核心之一是判定网格点是否在模型内部,主要可归纳为两种不同的方法:射线法和切片法。前者通过射线穿透物面的次数来进行判定,后者先对几何模型进行切片处理,在二维平面上对切片进行相交判定。两种方法各有优劣,但网格生成的速度相差不大。在本文的研究中发现,相交判定的判据选取,主要影响网格生成的准确性,对速度影响相对较小。而本文应用并发展的一种交点个数统计方法,可通过减少判据计算次数,大幅度提高复杂模型网格的生成速度。由于该方法对相交判据结果无影响,因此保持网格生成的高准确性,可用于LBM的模拟计算。
发明内容
本发明的目的在于根据包含复杂三维模型信息的STL文件,准确且快速的生成笛卡尔网格,并将得到的网格应用于LBM相关的CFD计算中。在STL文件中,包含系列空间三角形的顶点坐标和法线向量,系列空间三角形构成三维模型的表面。在LBM中的笛卡尔网格中,若网格内存在三维模型,则需要判定笛卡尔网格点是否在模型内部,并进行不同的标记。通过标记的不同,在网格系统中近似描述三维模型形态,从而对模型的内部或外部网格点进行CFD计算。
为了能够根据模型文件得到用于包含模型信息的笛卡尔网格,本发明提出了一种准确、快速的方法。该算法主要目标是提高算法的准确度,并减少算法的计算次数,从而减少网格的生成时间。同时,该算法可进行并行优化,在需要进行网格更新的计算中,做到“并行网格生成+并行流场求解”
根据上述发明构思,本发明的一种基于STL文件的笛卡尔网格快速生成方法包括以下步骤:
步骤一,提取STL文件中所有空间三角形的三个维度的最大值和最小值,根据最大值和最小值坐标构成平行于坐标轴的长方体。在长方体包围盒外部的点同时在模型的外部,对包围盒内部点进行后续步骤。
步骤二,整体网格生成方法采用逆序统计法的框架,输入为模型的STL文件,输出为待判断的网格点形成的射线与构成模型表面的所有空间三角形的交点个数。使用提出的基于投影的混合判定算子判断单条射线和单个空间三角形是否存在交点;
步骤三,对于步骤一中包围盒内部网格点,已得到任意网格点对应射线与所有空间三角形的交点个数。根据个数奇偶性,例如个数为偶数,则射线对应的网格点在模型内部;
优选地,所述步骤二的逆序统计法包括:
步骤二一,对于构成模型的一个空间三角形单元,生成最小单元包围盒,标记单元包围盒内所有网格点;
步骤二二,沿投影方向的反方向,对单元包围盒进行扩充,直到大包围盒的边界。例如形成射线的投影方向为竖直向下,则将单位包围盒竖直向上扩充到大包围盒的边界。同样进行标记;
步骤二三,对于包围盒内标记的网格点,判断网格点形成的射线与该单元是否存在交点。根据相交判定得到的不同结果,分别对所有网格点进行二次标记,标记为0,1,2和3;
步骤二四,更换一个空间三角形单元,重复步骤二一到步骤二三,直到所有单元计算完毕;
步骤二五,当标记为0,直接判定在模型外部;当标记为1,交点个数加一;当标记为2,点在单元上,直接判定在模型内部;当标记为3,转入步骤二六;
步骤二六,更换投影方向,重复步骤二,直到完成六次投影。若六次投影后,标记仍为3,判定在模型内部。六次投影分别为网格点向x轴,y轴和z 轴的正负轴方向投影形成射线;
优选地,所述步骤二三中的基于投影的混合判定算子包括:
步骤二三一,根据不等式投影算子解决空间直线与空间三角形的交点问题;
步骤二三二,根据不等式两侧算子解决空间线段与空间平面的交点问题;
步骤二三三,每个算子可得到三种结果,两两组合得到九种结果,将结果分为四类,分别用0,1,2和3进行标记。
本发明的方法,与现有技术相比,具有以下突出的实质性特点和显著优点:
一、在混合判定算子中,将难以判定的情况用一种标记提取出来,通过更换投影方向解决产生的问题。其余三种标记的结果,不受模型复杂性以及模型和网格点的相对位置关系影响,因此得到的交点个数之和,可直接根据奇偶性判定点与模型内外关系。这种混合判定算子得到的结果准确性高。
二、在逆序统计法中,更换交点个数的统计方式,对相交判定结果无影响,因此不会影响到准确性。其次,由于只计算被索引标记的网格点,从而大幅度减少相交判定的计算次数,因此可大幅度提高网格生成的速度。
三、该方法清晰明确,可行性高,串行和并行均可适用。
附图说明
图1为相交判定流程图。
图2为二维情况下逆序统计法的计算范围。
图3为判定结果表。
图4为相交判定算子对应的示意图。
图5为投影算子。
图6为两侧算子。
图7为球对应的三维等值面。
图8为不同核数对应的网格更新时间占CFD周期的比值
具体实施方式
以下结合附图对本发明的优选实施例进一步详细说明。
基于2台胖计算节点,每个节点包含4颗E5-4650共32核心,512G内存。先使用单核进行实验,然后使用MPI进行并行优化实验。
在单核实验中,模型采用标准圆球模型,便于进行测试与比较。由18432 个空间三角形构成圆球表面,使用笛卡尔网格量为6892.1万。
步骤一,提取STL文件中所有空间三角形的三个维度的最大值和最小值,根据最大值和最小值坐标构成平行于坐标轴的长方体。在长方体包围盒外部的点同时在模型的外部,对包围盒内部点进行后续步骤。
步骤二,整体网格生成方法采用逆序统计法的框架,输入为模型的STL文件,输出为待判断的网格点形成的射线与构成模型表面的所有空间三角形的交点个数。使用提出的基于投影的混合判定算子判断单条射线和单个空间三角形是否存在交点;
步骤三,对于步骤一中包围盒内部网格点,已得到任意网格点对应射线与所有空间三角形的交点个数。根据个数奇偶性,例如个数为偶数,则射线对应的网格点在模型内部;
优选地,所述步骤二的逆序统计法包括:
步骤二一,对于构成模型的一个空间三角形单元,生成最小单元包围盒,标记单元包围盒内所有网格点;
步骤二二,沿投影方向的反方向,对单元包围盒进行扩充,直到大包围盒的边界。例如形成射线的投影方向为竖直向下,则将单位包围盒竖直向上扩充到大包围盒的边界。二维对应的扩充方法,如图3的二维情况下逆序统计法的计算范围所示;
步骤二三,对于包围盒内标记的网格点,判断网格点形成的射线与该单元是否存在交点。根据相交判定得到的不同结果,分别对所有网格点进行二次标记,标记为0,1,2和3,如图2的判定结果表所示;
步骤二四,更换一个空间三角形单元,重复步骤二一到步骤二三,直到所有单元计算完毕;
步骤二五,当标记为0,直接判定在模型外部;当标记为1,交点个数加一;当标记为2,点在单元上,直接判定在模型内部;当标记为3,转入步骤二六,如图1的相交判定流程图所示;
步骤二六,更换投影方向,重复步骤二,直到完成六次投影。若六次投影后,标记仍为3,判定在模型内部。六次投影分别为网格点向x轴,y轴和z 轴的正负轴方向投影形成射线;
优选地,所述步骤二三中的基于投影的混合判定算子包括:
步骤二三一,根据不等式投影算子解决空间直线与空间三角形的交点问题,投影算子如图5所示;
步骤二三二,根据不等式两侧算子解决空间线段与空间平面的交点问题,两侧算子如图6所示;
步骤二三三,每个算子可得到三种结果,两两组合得到九种结果,将结果分为四类,分别用0,1,2和3进行标记,如图2的判定结果表所示。
将在模型内部的网格点赋值3,外部赋值2,得到球的三维等值面如图7 所示。其中网格生成的时间为22.65s,相比于传统的时间为2575.87s,速度提升约114倍。
将模型更换为三维圆管模型,使用LBM进行三维泊肃叶流计算。不同的是,对于LBM中每一次迁移碰撞,均进行一次网格更新。将一次网格更新和一次迁移碰撞作为一个CFD周期,计算不同核数下,网格更新时间占CFD周期的比值,如图8所示。
本文结合说明书附图和具体实施例进行阐述只是用于帮助理解本发明的方法和核心思想。本发明所述的方法并不限于具体实施方式中所述的实施例,本领域技术人员依据本发明的方法和思想得出的其它实施方式,同样属于本发明的技术创新范围。本说明书内容不应理解为对本发明的限制。
Claims (1)
1.一种基于STL文件的笛卡尔网格快速生成方法包括以下步骤:
步骤一,提取STL文件中所有空间三角形的三个维度的最大值和最小值,根据最大值和最小值坐标构成平行于坐标轴的长方体。在长方体包围盒外部的点同时在模型的外部,对包围盒内部点进行后续步骤。
步骤二,整体网格生成方法采用逆序统计法的框架,输入为模型的STL文件,输出为待判断的网格点形成的射线与构成模型表面的所有空间三角形的交点个数。使用提出的基于投影的混合判定算子判断单条射线和单个空间三角形是否存在交点;
步骤三,对于步骤一中包围盒内部网格点,已得到任意网格点对应射线与所有空间三角形的交点个数。根据个数奇偶性,例如个数为偶数,则射线对应的网格点在模型内部;
优选地,所述步骤二的逆序统计法包括:
步骤二一,对于构成模型的一个空间三角形单元,生成最小单元包围盒,标记单元包围盒内所有网格点;
步骤二二,沿投影方向的反方向,对单元包围盒进行扩充,直到大包围盒的边界。例如形成射线的投影方向为竖直向下,则将单位包围盒竖直向上扩充到大包围盒的边界。同样进行标记;
步骤二三,对于包围盒内标记的网格点,判断网格点形成的射线与该单元是否存在交点。根据相交判定得到的不同结果,分别对所有网格点进行二次标记,标记为0,1,2和3;
步骤二四,更换一个空间三角形单元,重复步骤二一到步骤二三,直到所有单元计算完毕;
步骤二五,当标记为0,直接判定在模型外部;当标记为1,交点个数加一;当标记为2,点在单元上,直接判定在模型内部;当标记为3,转入步骤二六;
步骤二六,更换投影方向,重复步骤二,直到完成六次投影。若六次投影后,标记仍为3,判定在模型内部。六次投影分别为网格点向x轴,y轴和z轴的正负轴方向投影形成射线;
优选地,所述步骤二三中的基于投影的混合判定算子包括:
步骤二三一,根据不等式投影算子解决空间直线与空间三角形的交点问题;
步骤二三二,根据不等式两侧算子解决空间线段与空间平面的交点问题;
步骤二三三,每个算子可得到三种结果,两两组合得到九种结果,将结果分为四类,分别用0,1,2和3进行标记。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110985832.3A CN113673186A (zh) | 2021-08-26 | 2021-08-26 | 一种基于stl文件的笛卡尔网格快速生成方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110985832.3A CN113673186A (zh) | 2021-08-26 | 2021-08-26 | 一种基于stl文件的笛卡尔网格快速生成方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN113673186A true CN113673186A (zh) | 2021-11-19 |
Family
ID=78546468
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110985832.3A Pending CN113673186A (zh) | 2021-08-26 | 2021-08-26 | 一种基于stl文件的笛卡尔网格快速生成方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN113673186A (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115357849A (zh) * | 2022-10-24 | 2022-11-18 | 中国空气动力研究与发展中心计算空气动力研究所 | 笛卡尔网格下的壁面距离的计算方法及装置 |
CN115564925B (zh) * | 2022-11-21 | 2024-04-16 | 广州中望龙腾软件股份有限公司 | 基于B-rep模型和笛卡尔网格切片的网格生成方法 |
-
2021
- 2021-08-26 CN CN202110985832.3A patent/CN113673186A/zh active Pending
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115357849A (zh) * | 2022-10-24 | 2022-11-18 | 中国空气动力研究与发展中心计算空气动力研究所 | 笛卡尔网格下的壁面距离的计算方法及装置 |
CN115357849B (zh) * | 2022-10-24 | 2023-03-28 | 中国空气动力研究与发展中心计算空气动力研究所 | 笛卡尔网格下的壁面距离的计算方法及装置 |
CN115564925B (zh) * | 2022-11-21 | 2024-04-16 | 广州中望龙腾软件股份有限公司 | 基于B-rep模型和笛卡尔网格切片的网格生成方法 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US7372460B2 (en) | Method and program for generating volume data from boundary representation data | |
CN113673186A (zh) | 一种基于stl文件的笛卡尔网格快速生成方法 | |
US10121279B1 (en) | Systems and methods for generating a mesh | |
CN112819962B (zh) | 数字图像相关中非均匀网格划分及局部网格疏密方法 | |
JP5424883B2 (ja) | 数値的にシミュレートされた2つのオブジェクト間の衝突を検出する方法および装置 | |
CN102629391A (zh) | 基于数字图形介质的三维空间结构图形切割及切片方法 | |
CN102193837A (zh) | 一种基于前线的包围盒碰撞检测方法 | |
Liu et al. | Memory-efficient modeling and slicing of large-scale adaptive lattice structures | |
CN112528541A (zh) | 一种基于节点重构的双曲率座舱盖有限元建模方法 | |
CN115270500A (zh) | 一种布尔求差运算方法、装置及电子设备 | |
CN114996658A (zh) | 一种基于投影的高超声速飞行器气动热预测方法 | |
CN111339688B (zh) | 基于大数据并行算法求解火箭仿真模型时域方程的方法 | |
CN103793937A (zh) | 一种基于密度聚类的三维几何模型的简化方法及其装置 | |
Ma | Multimedia simulation-based architecture cad system model | |
Sun et al. | Smoothing algorithm for planar and surface mesh based on element geometric deformation | |
CN108052778A (zh) | 用于无网格粒子模拟技术的邻近粒子高效双重搜索方法 | |
CN113112594A (zh) | 基于电力gim的输变电工程三维模型轻量化方法及装置 | |
CN105279320A (zh) | 一种生成fdtd网格的方法 | |
JP2011079105A (ja) | 干渉チェック方法、干渉チェック装置、及び干渉チェックプログラム | |
CN110796729B (zh) | 一种基于二叉树的网格划分方法 | |
Inui et al. | Visualization of 3+ 2 Axis Machining Result by Combining Multiple Z-map Models | |
CN114266124B (zh) | 一种涡轮热力场云图的构建方法 | |
CN114676522B (zh) | 融合gan和迁移学习的气动形状优化设计方法及系统及设备 | |
Zhao et al. | Collision detection research for deformable objects | |
CN116416409B (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 |