CN114219899A - 一种基于改进叉树算法的网格生成方法及装置 - Google Patents
一种基于改进叉树算法的网格生成方法及装置 Download PDFInfo
- Publication number
- CN114219899A CN114219899A CN202210154111.2A CN202210154111A CN114219899A CN 114219899 A CN114219899 A CN 114219899A CN 202210154111 A CN202210154111 A CN 202210154111A CN 114219899 A CN114219899 A CN 114219899A
- Authority
- CN
- China
- Prior art keywords
- grid
- target
- volume
- mesh
- segmentation
- 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
Images
Classifications
-
- 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/005—Tree description, e.g. octree, quadtree
-
- 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
Landscapes
- Physics & Mathematics (AREA)
- Engineering & Computer Science (AREA)
- Computer Graphics (AREA)
- Geometry (AREA)
- Software Systems (AREA)
- General Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Image Generation (AREA)
Abstract
本申请提供一种基于改进叉树算法的网格生成方法及装置。所述方法包括:对半导体器件的外切立方体进行初始网格生成,如果目标体网格完全位于半导体器件内部且体积大于预设阈值,则继续进行细化,直至得到符合要求的最终内部体网格,如果目标体网格与半导体器件结构相交,且交多面体上的各个顶点不共球,则继续进行细化,直至得到最终边界体网格,运用整形的有理数运算获取各个网格节点的位置,最终生成的体网格包括四面体网格、金字塔网格、三棱柱网格等多种顶点共球的混合网格。整个生成过程运用整形的有理数运算生成各个网格节点的位置坐标,不仅可以节省网格节点的存储空间,而且位置表示较为精确,不存在浮点数误差,网格描述的准确性较高。
Description
技术领域
本申请涉及半导体器件制造工艺技术领域,特别涉及一种基于改进叉树算法的网格生成方法及装置。
背景技术
为了提高半导体器件生产的研发效率,可以对器件模型采用工艺仿真,工艺仿真时可以采用网格生成技术对真实半导体器件的结构进行网格描述,其中,生成的网格通常可以分为结构性网格和非结构性网格,结构性网格包括矩形网格和六面体网格,非结构性网格包括三角形网格和四面体网格。由于真实半导体器件的结构通常为不规则多面体,较为复杂,如果仅采用单一类型的网格进行结构描述,往往无法兼顾准确性和便捷性的需求,因此多采用混合类型的网格来进行结构描述。
目前常用的混合网格生成方法主要是基于均分叉树的方法,即获取半导体器件结构以及半导体器件结构所对应的外切立方体后,对外切立方体进行初始网格生成,得到多个初始体网格,然后对生成的每个初始体网格继续进行细分,细分时是将初始体网格中各条棱边上的中心点作为切分点,利用各个切分点构成的平面对初始体网格进行预设的x方向、y方向和z方向上的八叉树切分,如此不断进行网格细分,直到最终划分后得到的体网格的体积小于预设的体积阈值,网格生成结束。
在整个混合网格生成过程中,是以浮点数的形式存储保留所有网格节点的位置信息的,在进行网格节点计算时,基于浮点数形式的运算规则在计算新生成的网格节点位置时会出现误差,容易造成半导体器件结构的描述发生变形,进而使得生成的网格结构描述图形不符合原始半导体器件结构,网格描述的准确性较低。
发明内容
本申请提供了一种基于改进叉树算法的网格生成方法及装置,可用于解决现有的混合网格生成方法生成的网格结构描述图形不符合原始半导体器件结构,网格描述的准确性较低的技术问题。
第一方面,本申请实施例提供一种基于改进叉树算法的网格生成方法,包括:
对半导体器件结构的外切立方体进行初始网格生成,得到多个初始体网格,其中,所述初始体网格为六面体网格;
针对多个初始体网格中任一目标体网格,如果所述目标体网格完全位于所述半导体器件结构的内部,并且所述目标体网格的体积大于预设体积阈值,则对所述目标体网格进行细分,得到多个细化体网格;
如果所述细化体网格的体积小于或等于所述预设体积阈值,并且所述细化体网格上不存在其他体网格的顶点,则将所述细化体网格确定为最终内部体网格;
如果所述目标体网格与所述半导体器件结构相交,则判断交多面体上的各个顶点是否共球,所述交多面体为所述目标体网格与所述半导体器件结构相重叠的几何体;
如果所述交多面体上的各个顶点不共球,则根据所述目标体网格上存在的其他体网格的顶点、所述目标体网格与所述半导体器件结构的交点、所述目标体网格各条棱边的中点以及所述目标体网格各个面的长宽比,确定所述目标体网格的切分方向,以及在所述切分方向上的切分点;
按照各个切分方向上的切分点,对所述目标体网格进行叉树切分,得到多个细化体网格;
或者,如果所述交多面体上的各个顶点共球,则将所述交多面体作为最终边界体网格;
利用整形的有理数运算获取各个最终内部体网格和各个最终边界体网格的各个网格节点的位置坐标;
存储各个最终内部体网格和各个最终边界体网格的各个网格节点的位置坐标。
结合第一方面,在第一方面的一种可实现方式中,所述叉树切分包括均分二叉树切分、均分四叉树切分、均分八叉树切分、非均分二叉树切分、非均分四叉树切分以及非均分八叉树切分。
结合第一方面,在第一方面的一种可实现方式中,所述对所述目标体网格进行细分,得到多个细化体网格,包括:
以所述目标体网格的任一顶点为原点,以所述原点所在的所述目标体网格上任一棱边为x轴,建立切分坐标系;
在所述切分坐标系下,将垂直于x轴的方向、垂直于y轴的方向和垂直于z轴的方向均确定为候选切分方向;
将所述目标体网格上存在的其他体网格的顶点按照所处位置进行分类,确定位于各个候选切分方向上的顶点;
针对位于同一候选切分方向上的各个顶点,将与中心切面的距离最短的顶点确定为所述候选切分方向上的切分点,所述中心切面为平行于所述候选切分方向,且经过所述目标体网格目标棱边的中点的平面,所述目标棱边为垂直于所述候选切分方向的棱边;
按照各个候选切分方向上的切分点,沿对应的候选切分方向对所述目标体网格进行切分,得到多个细化体网格。
结合第一方面,在第一方面的一种可实现方式中,所述方法还包括:
针对各个候选切分方向中任一不存在其他体网格的顶点的目标方向,确定所述目标体网格上垂直于所述目标方向的各个面的长宽比;
如果垂直于所述目标方向的各个面中存在长宽比小于或等于预设比例阈值的目标面,则将所述目标面中垂直于所述目标方向的棱边的中点确定为所述目标方向上的切分点;
如果垂直于所述目标方向的各个面的长宽比均大于所述预设比例阈值,并且垂直于所述目标方向的各条棱边均为所在面的短边,则沿所述目标方向不对所述目标体网格进行切分;
或者,如果垂直于所述目标方向的各个面的长宽比均大于所述预设比例阈值,并且在垂直于所述目标方向的各条棱边中存在为所在面的长边的目标边,则将所述目标边的中点确定为所述目标方向上的切分点。
结合第一方面,在第一方面的一种可实现方式中,所述方法还包括:
如果所述目标体网格完全位于所述半导体器件结构的内部,并且所述目标体网格的体积小于或等于预设体积阈值,则判断所述目标体网格上是否存在其他体网格的顶点;
如果所述目标体网格上存在其他体网格的顶点,则确定所述目标体网格上存在的其他体网格的顶点数量;
如果所述顶点数量为大于或等于两个,则根据所述目标体网格上存在的其他体网格的顶点、所述目标体网格各条棱边的中点以及所述目标体网格各个面的长宽比,确定所述目标体网格的切分方向,以及在所述切分方向上的切分点;
按照各个切分方向上的切分点,对所述目标体网格进行各个切分方向上的叉树切分,得到多个细化体网格;
或者,如果所述顶点数量为一个,则根据所述目标体网格上存在的其他体网格的顶点,以及所述目标体网格的各个顶点,确定最终切分方向;
以所述目标体网格上存在的其他体网格的顶点为切分点,沿所述最终切分方向对所述目标体网格进行切分,得到最终内部体网格。
结合第一方面,在第一方面的一种可实现方式中,所述根据所述目标体网格上存在的其他体网格的顶点、所述目标体网格与所述半导体器件结构的交点、所述目标体网格各条棱边的中点以及所述目标体网格各个面的长宽比,确定所述目标体网格的切分方向,以及在所述切分方向上的切分点,包括:
以所述目标体网格的任一顶点为原点,以所述原点所在的所述目标体网格上任一棱边为x轴,建立切分坐标系;
在所述切分坐标系下,将垂直于x轴的方向、垂直于y轴的方向和垂直于z轴的方向均确定为候选切分方向;
将所述目标体网格上存在的其他体网格的顶点,以及所述目标体网格与所述半导体器件结构的交点按照所处位置进行分类,确定位于各个候选切分方向上的候选切分点;
针对位于同一候选切分方向上的各个候选切分点,将与中心切面的距离最短的候选切分点确定为所述候选切分方向上的切分点,所述中心切面为平行于所述候选切分方向,且经过所述目标体网格目标棱边的中点的平面,所述目标棱边为垂直于所述候选切分方向的棱边;
针对各个候选切分方向中任一不存在候选切分点的目标方向,确定所述目标体网格上垂直于所述目标方向的各个面的长宽比;
如果垂直于所述目标方向的各个面中存在长宽比小于或等于所述预设比例阈值的目标面,则将所述目标面中垂直于所述目标方向的棱边的中点确定为所述目标方向上的切分点;
如果垂直于所述目标方向的各个面的长宽比均大于所述预设比例阈值,并且垂直于所述目标方向的各条棱边均为所在面的短边,则所述目标方向不作为所述目标体网格的切分方向;
或者,如果垂直于所述目标方向的各个面的长宽比均大于所述预设比例阈值,并且在垂直于所述目标方向的各条棱边中存在为所在面的长边的目标边,则将所述目标边的中点确定为所述目标方向上的切分点。
结合第一方面,在第一方面的一种可实现方式中,所述方法还包括:
如果所述目标体网格完全位于所述半导体器件结构的外部,则去除所述目标体网格。
结合第一方面,在第一方面的一种可实现方式中,所述利用整形的有理数运算获取各个最终内部体网格和各个最终边界体网格的各个网格节点的位置坐标,包括:
在网格生成过程中,利用整形的有理数运算对各个目标体网格的顶点进行位置描述,以及确定各个切分点的位置和各个细化体网格的顶点位置。
结合第一方面,在第一方面的一种可实现方式中,所述对半导体器件结构的外切立方体进行初始网格生成,得到多个初始体网格,包括:
利用凸包算法对半导体器件结构的外切立方体进行初始网格生成,得到多个初始体网格。
第二方面,本申请实施例提供一种基于改进叉树算法的网格生成装置,包括:
初始网格生成模块,用于对半导体器件结构的外切立方体进行初始网格生成,得到多个初始体网格,其中,所述初始体网格为六面体网格;
内部网格细分模块,用于针对多个初始体网格中任一目标体网格,如果所述目标体网格完全位于所述半导体器件结构的内部,并且所述目标体网格的体积大于预设体积阈值,则对所述目标体网格进行细分,得到多个细化体网格;
最终内部体网格确定模块,用于如果所述细化体网格的体积小于或等于所述预设体积阈值,并且所述细化体网格上不存在其他体网格的顶点,则将所述细化体网格确定为最终内部体网格;
边界网格处理模块,用于如果所述目标体网格与所述半导体器件结构相交,则判断交多面体上的各个顶点是否共球,所述交多面体为所述目标体网格与所述半导体器件结构相重叠的几何体;
边界网格切分点确定模块,用于如果所述交多面体上的各个顶点不共球,则根据所述目标体网格上存在的其他体网格的顶点、所述目标体网格与所述半导体器件结构的交点、所述目标体网格各条棱边的中点以及所述目标体网格各个面的长宽比,确定所述目标体网格的切分方向,以及在所述切分方向上的切分点;
边界网格细分确定模块,用于按照各个切分方向上的切分点,对所述目标体网格进行叉树切分,得到多个细化体网格;
最终边界体网格确定模块,用于如果所述交多面体上的各个顶点共球,则将所述交多面体作为最终边界体网格;
位置坐标生成模块,用于利用整形的有理数运算获取各个最终内部体网格和各个最终边界体网格的各个网格节点的位置坐标;以及,存储各个最终内部体网格和各个最终边界体网格的各个网格节点的位置坐标。
结合第二方面,在第二方面的一种可实现方式中,所述叉树切分包括均分二叉树切分、均分四叉树切分、均分八叉树切分、非均分二叉树切分、非均分四叉树切分以及非均分八叉树切分。
结合第二方面,在第二方面的一种可实现方式中,所述内部网格细分模块包括:
切分坐标系建立单元,用于以所述目标体网格的任一顶点为原点,以所述原点所在的所述目标体网格上任一棱边为x轴,建立切分坐标系;
候选切分方向确定单元,用于在所述切分坐标系下,将垂直于x轴的方向、垂直于y轴的方向和垂直于z轴的方向均确定为候选切分方向;
顶点分类单元,用于将所述目标体网格上存在的其他体网格的顶点按照所处位置进行分类,确定位于各个候选切分方向上的顶点;
切分点确定单元,用于针对位于同一候选切分方向上的各个顶点,将与中心切面的距离最短的顶点确定为所述候选切分方向上的切分点,所述中心切面为平行于所述候选切分方向,且经过所述目标体网格目标棱边的中点的平面,所述目标棱边为垂直于所述候选切分方向的棱边;
切分单元,用于按照各个候选切分方向上的切分点,沿对应的候选切分方向对所述目标体网格进行切分,得到多个细化体网格。
结合第二方面,在第二方面的一种可实现方式中,所述切分点确定单元还包括:
长宽比确定子单元,用于针对各个候选切分方向中任一不存在其他体网格的顶点的目标方向,确定所述目标体网格上垂直于所述目标方向的各个面的长宽比;
切分点第一确定子单元,用于如果垂直于所述目标方向的各个面中存在长宽比小于或等于预设比例阈值的目标面,则将所述目标面中垂直于所述目标方向的棱边的中点确定为所述目标方向上的切分点;
切分点第二确定子单元,用于如果垂直于所述目标方向的各个面的长宽比均大于所述预设比例阈值,并且垂直于所述目标方向的各条棱边均为所在面的短边,则沿所述目标方向不对所述目标体网格进行切分;
切分点第三确定子单元,用于如果垂直于所述目标方向的各个面的长宽比均大于所述预设比例阈值,并且在垂直于所述目标方向的各条棱边中存在为所在面的长边的目标边,则将所述目标边的中点确定为所述目标方向上的切分点。
结合第二方面,在第二方面的一种可实现方式中,所述内部网格细分模块还包括:
顶点检测单元,用于如果所述目标体网格完全位于所述半导体器件结构的内部,并且所述目标体网格的体积小于或等于预设体积阈值,则判断所述目标体网格上是否存在其他体网格的顶点;
顶点数量确定单元,用于如果所述目标体网格上存在其他体网格的顶点,则确定所述目标体网格上存在的其他体网格的顶点数量;
切分方向和切分点确定单元,用于如果所述顶点数量为大于或等于两个,则根据所述目标体网格上存在的其他体网格的顶点、所述目标体网格各条棱边的中点以及所述目标体网格各个面的长宽比,确定所述目标体网格的切分方向,以及在所述切分方向上的切分点;
细化体网格生成单元,用于按照各个切分方向上的切分点,对所述目标体网格进行各个切分方向上的叉树切分,得到多个细化体网格;
最终切分方向确定单元,用于如果所述顶点数量为一个,则根据所述目标体网格上存在的其他体网格的顶点,以及所述目标体网格的各个顶点,确定最终切分方向;
最终内部体网格生成单元,用于以所述目标体网格上存在的其他体网格的顶点为切分点,沿所述最终切分方向对所述目标体网格进行切分,得到最终内部体网格。
结合第二方面,在第二方面的一种可实现方式中,所述边界网格切分点确定模块具体用于:
以所述目标体网格的任一顶点为原点,以所述原点所在的所述目标体网格上任一棱边为x轴,建立切分坐标系;
在所述切分坐标系下,将垂直于x轴的方向、垂直于y轴的方向和垂直于z轴的方向均确定为候选切分方向;
将所述目标体网格上存在的其他体网格的顶点,以及所述目标体网格与所述半导体器件结构的交点按照所处位置进行分类,确定位于各个候选切分方向上的候选切分点;
针对位于同一候选切分方向上的各个候选切分点,将与中心切面的距离最短的候选切分点确定为所述候选切分方向上的切分点,所述中心切面为平行于所述候选切分方向,且经过所述目标体网格目标棱边的中点的平面,所述目标棱边为垂直于所述候选切分方向的棱边;
针对各个候选切分方向中任一不存在候选切分点的目标方向,确定所述目标体网格上垂直于所述目标方向的各个面的长宽比;
如果垂直于所述目标方向的各个面中存在长宽比小于或等于所述预设比例阈值的目标面,则将所述目标面中垂直于所述目标方向的棱边的中点确定为所述目标方向上的切分点;
如果垂直于所述目标方向的各个面的长宽比均大于所述预设比例阈值,并且垂直于所述目标方向的各条棱边均为所在面的短边,则所述目标方向不作为所述目标体网格的切分方向;
或者,如果垂直于所述目标方向的各个面的长宽比均大于所述预设比例阈值,并且在垂直于所述目标方向的各条棱边中存在为所在面的长边的目标边,则将所述目标边的中点确定为所述目标方向上的切分点。
结合第二方面,在第二方面的一种可实现方式中,所述装置还包括:
外部网格去除模块,用于如果所述目标体网格完全位于所述半导体器件结构的外部,则去除所述目标体网格。
结合第二方面,在第二方面的一种可实现方式中,所述位置坐标生成模块具体用于:
在网格生成过程中,利用整形的有理数运算对各个目标体网格的顶点进行位置描述,以及确定各个切分点的位置和各个细化体网格的顶点位置。
结合第二方面,在第二方面的一种可实现方式中,所述初始网格生成模块具体用于:
利用凸包算法对半导体器件结构的外切立方体进行初始网格生成,得到多个初始体网格。
本申请实施例公开了一种基于改进叉树算法的网格生成方法及装置,在网格生成方法中,对半导体器件结构的外切立方体进行初始网格生成后,针对任一目标体网格,如果目标体网格完全位于半导体器件结构内部并且体积大于预设体积阈值,则对目标体网格进行细化,直至得到体积符合要求且面上不存在其他体网格顶点的最终内部体网格,如果目标体网格与半导体器件结构相交,且交多面体上的各个顶点不共球,则对目标体网格进行细化,直至得到最终边界体网格,运用整形的有理数运算获取各个最终内部体网格和各个最终边界体网格的各个网格节点的位置坐标并进行存储,最终生成的体网格包括四面体网格、金字塔网格、三棱柱网格、六面体网格等多种混合网格,每种体网格均具有顶点共球性质。整个网格生成过程中,运用整形的有理数运算生成各个网格节点的位置坐标,不仅可以节省网格节点的存储空间,而且位置表示较为精确,不存在浮点数误差,网格描述的准确性较高。
附图说明
图1为本申请实施例提供的一种基于改进叉树算法的网格生成方法所对应的整体流程示意图;
图2为本申请实施例提供的完全位于半导体器件结构内部的目标体网格的细分方法所对应的流程示意图;
图3a为本申请实施例提供的目标体网格的结构示意图;
图3b为对图3a所示的目标体网格沿第一候选切分方向和第二候选切分方向进行切分的结构示意图;
图3c为本申请实施例提供的多种完全位于半导体器件结构内部的目标体网格细分示意图;
图3d为本申请实施例提供的完全位于半导体器件结构内部的目标体网格的最终切分方向确定示意图;
图4为本申请实施例提供的与半导体器件结构相交的目标体网格的二维结构示意图;
图5为本申请实施例提供的与半导体器件结构相交的目标体网格的细分方法所对应的流程示意图;
图6为本申请实施例提供的多种与半导体器件结构相交的目标体网格细分示意图;
图7为本申请实施例提供的整形的有理数描述所对应的示例示意图;
图8为本申请实施例提供的基于改进叉树算法的网格生成方法与基于单一网格的网格生成方法的网格生成示例对比示意图;
图9为本申请实施例提供的一种基于改进叉树算法的网格生成装置的结构示意图。
具体实施方式
为使本申请的目的、技术方案和优点更加清楚,下面将结合附图对本申请实施方式作进一步地详细描述。
为了解决现有的混合网格生成方法生成的网格结构描述图形不符合原始半导体器件结构,网格描述的准确性较低的技术问题,本申请通过以下实施例公开了一种基于改进叉树算法的网格生成方法。本申请实施例提供的网格生成方法应用于对半导体器件结构进行网格描述,图1示例性示出了本申请实施例提供的一种基于改进叉树算法的网格生成方法所对应的整体流程示意图,具体包括如下步骤:
101:对半导体器件结构的外切立方体进行初始网格生成,得到多个初始体网格。
其中,初始体网格为六面体网格。
具体地,本申请实施例提供的半导体器件结构是指需要进行网格描述的真实半导体器件的立体几何结构,可以通过对真实半导体器件进行CSG(Constructive SolidGeometry,构造实体几何)处理的方式获取对应的立体几何结构,具体不作限定。
此外,外切立方体是指外切于半导体器件结构的立方体。
在一些实施例中,可以利用凸包算法对半导体器件结构的外切立方体进行初始网格生成,得到多个初始体网格。
在其他实施例中,也可以用其他算法进行初始网格生成,只要确保生成的初始体网格为六面体网格即可,具体不作限定。
102:针对多个初始体网格中任一目标体网格,检测目标体网格相对于半导体器件结构的位置。如果目标体网格完全位于半导体器件结构的内部,则继续执行步骤103,如果目标体网格与半导体器件结构相交,则继续执行步骤115,如果目标体网格完全位于半导体器件结构的外部,则继续执行步骤121。
具体地,可以通过以下方式检测目标体网格相对于半导体器件结构的位置:
步骤一,计算目标体网格与半导体器件结构的面是否存在交线段,若存在,则判定目标体网格与半导体器件结构相交,属于边界网格,若不存在,则继续计算目标体网格的中心点与半导体器件结构的位置关系。
步骤二,如果目标体网格的中心点位于半导体器件结构的内部,则判定目标体网格完全位于半导体器件结构的内部,属于内部网格,如果目标体网格的中心点位于半导体器件结构的外部,则判定目标体网格完全位于半导体器件结构的外部,属于外部网格。
通常来说,外部网格不影响对半导体器件结构的网格近似,内部网格不影响对半导体器件结构几何边界的近似描述,而边界网格会对半导体器件结构几何边界的描述有较大影响。
103:判断目标体网格的体积是否大于预设体积阈值。如果目标体网格的体积大于预设体积阈值,则执行步骤104,如果目标体网格的体积小于或等于预设体积阈值,则执行步骤105。
104:对目标体网格进行细分,得到多个细化体网格。
在一些实施例中,图2示例性示出了本申请实施例提供的完全位于半导体器件结构内部的目标体网格的细分方法所对应的流程示意图,如图2所示,具体可以通过以下方式对目标体网格进行细分,得到多个细化体网格:
201:以目标体网格的任一顶点为原点,以原点所在的目标体网格上任一棱边为x轴,建立切分坐标系。
202:在切分坐标系下,将垂直于x轴的方向、垂直于y轴的方向和垂直于z轴的方向均确定为候选切分方向。
203:将目标体网格上存在的其他体网格的顶点按照所处位置进行分类,确定位于各个候选切分方向上的顶点。
示例性地,图3a示例性示出了本申请实施例提供的目标体网格的结构示意图,如图3a所示,六面体以O点为原点,以棱边OA为x轴,建立切分坐标系,将垂直于x轴的方向确定为第一候选切分方向,将垂直于y轴的方向确定为第二候选切分方向,将垂直于z轴的方向确定为第三候选切分方向,例如平行于面ABDC的方向即为垂直于x轴的方向,平行于面OACF的方向即为垂直于y轴的方向,平行于面OABG的方向即为垂直于z轴的方向。在面FEDC上存在相邻体网格的顶点P1,棱边AB上存在相邻体网格的顶点P2,面OABG上存在相邻体网格的顶点P3。其中,顶点P1和P3为第一候选切分方向上的顶点,顶点P1和P2为第二候选切分方向上的顶点,第三候选切分方向上不存在其他体网格的顶点。
204:针对任一候选切分方向,检测候选切分方向上是否存在其他体网格的顶点。如果候选切分方向上存在其他体网格的顶点,则继续执行步骤205,如果候选切分方向上不存在其他体网格的顶点,则继续执行步骤207。
205:针对位于同一候选切分方向上的各个顶点,将与中心切面的距离最短的顶点确定为候选切分方向上的切分点。
其中,中心切面为平行于候选切分方向,且经过目标体网格目标棱边的中点的平面,目标棱边为垂直于候选切分方向的棱边。
具体地,确定顶点与中心切面的距离,可以直接计算顶点到中心切面的垂直距离,也可以将顶点沿平行于中心切面的方向投影到目标体网格的棱边上,再计算投影顶点与所在棱边的中点之间的线段距离,具体不作限定。
206:按照各个候选切分方向上的切分点,沿对应的候选切分方向对目标体网格进行切分,得到多个细化体网格。
示例性地,基于图3a所示的目标体网格,以确定垂直于x轴的第一候选切分方向的切分点,以及确定垂直于y轴的第二候选切分方向的切分点为例,图3b示例性示出了对图3a所示的目标体网格沿第一候选切分方向和第二候选切分方向进行切分的结构示意图,为了更加清楚地进行说明,图3b中(a)示出了面ACDB的二维结构示意图,P1’为顶点P1在棱边CD上的投影,由于P1’与棱边CD的中点的线段距离小于P2与棱边AB的中点的线段距离,因此将顶点P1确定为第二候选切分方向上的切分点。同理可得,顶点P3为第一候选切分方向上的切分点,如此,沿第一候选切分方向和第二候选切分方向对目标体网格进行切分的示意图如图3b的(b)图中虚线所示。
207:将候选切分方向确定为目标方向。
208:确定目标体网格上垂直于目标方向的各个面的长宽比。
具体地,长宽比为长边的长度与短边的长度的比值。
209:判断垂直于目标方向的各个面中是否存在长宽比小于或等于预设比例阈值的目标面。如果垂直于目标方向的各个面中存在长宽比小于或等于预设比例阈值的目标面,则执行步骤210,如果垂直于目标方向的各个面的长宽比均大于预设比例阈值,则执行步骤211。
210:将目标面中垂直于目标方向的棱边的中点确定为目标方向上的切分点。
示例性地,基于图3a所示的目标体网格,假设垂直于z轴的第三候选切分方向为目标方向,则垂直于目标方向的各个面为面OFCA、面ACDB、面DBGE和面EGOF。假设面OFCA的长宽比小于或等于预设比例阈值,为目标面,则目标面中垂直于目标方向的棱边为棱边OF和棱边AC。
211:判断垂直于目标方向的各条棱边是否均为所在面的短边。如果垂直于目标方向的各条棱边均为所在面的短边,则执行步骤212,否则,执行步骤213。
212:沿目标方向不对目标体网格进行切分。
213:将垂直于目标方向的各条棱边中为所在面的长边的棱边确定为目标边。
214:将目标边的中点确定为目标方向上的切分点。
为了更加清楚地说明本申请实施例提供的完全位于半导体器件结构内部的目标体网格的细分方法,下面从二维的角度对目标体网格进行展示。图3c示例性示出了本申请实施例提供的多种完全位于半导体器件结构内部的目标体网格细分示意图,图3c中,A图示出的内部目标体网格A1,存在的其他体网格的顶点为P1和P2,由于P1和P2分别位于两个候选切分方向,因此分别以P1和P2为切分点对目标体网格A1进行四叉树切分,得到网格A11、A12、A13和A14。B图示出的内部目标体网格A2,两个候选切分方向上均不存在其他体网格的顶点,而且目标体网格A2的长宽比小于预设比例阈值,因此将目标体网格A2各个棱边的中点O1、O2、O3和O4作为切分点对目标体网格A2进行四叉树切分,得到网格A21、A22、A23和A24。C图示出的内部目标体网格A3,存在的其他体网格的顶点为P1和P2,由于P1和P2位于同一候选切分方向,而且P1离中点更近,因此将P1作为该候选切分方向的切分点,由于目标体网格A3的长宽比大于预设比例阈值,因此另一个候选切分方向上不设置切分点,最终以P1为切分点对目标体网格A3进行二叉树切分,得到网格A31和A32。D图示出的内部目标体网格A4,存在的其他体网格的顶点为P1和P2,由于P1和P2位于同一候选切分方向,而且P1离中点更近,因此将P1作为该候选切分方向的切分点,由于目标体网格A4的长宽比小于预设比例阈值,因此将垂直于另一个候选切分方向上的棱边的中点O3和O4作为另一个候选切分方向上的切分点,最终以P1和O3(或O4)为切分点对目标体网格A4进行四叉树切分,得到网格A41、A42、A43和A44。
需要说明的是,图3c为二维角度展示,因此仅能反应三个候选切分方向中任意两个候选切分方向。
105:判断目标体网格上是否存在其他体网格的顶点。如果存在,则执行步骤106,如果不存在,则执行步骤111。
106:确定目标体网格上存在的其他体网格的顶点数量。如果顶点数量为大于或等于两个,则执行步骤107,如果顶点数量为一个,则执行步骤109。
107:根据目标体网格上存在的其他体网格的顶点、目标体网格各条棱边的中点以及目标体网格各个面的长宽比,确定目标体网格的切分方向,以及在切分方向上的切分点。
具体地,确定目标体网格的切分方向和在切分方向上的切分点的方法,可以采用如步骤201至步骤214所述的方法,此处不再赘述。
108:按照各个切分方向上的切分点,对目标体网格进行各个切分方向的叉树切分,得到多个细化体网格。
具体地,叉树切分包括均分二叉树切分、均分四叉树切分、均分八叉树切分、非均分二叉树切分、非均分四叉树切分以及非均分八叉树切分。
109:根据目标体网格上存在的其他体网格的顶点,以及目标体网格的各个顶点,确定最终切分方向。
具体地,以目标体网格上存在的其他体网格的顶点与目标体网格的各个顶点的连线,确定为最终切分方向。
示例性地,图3d示例性示出了本申请实施例提供的完全位于半导体器件结构内部的目标体网格的最终切分方向确定示意图,如图3d所示,均为二维的内部网格,其中目标体网格A1的体积小于预设比例阈值,且只存在一个其他目标体网格的顶点P1,则目标体网格A1中虚线示出了最终切分方向。
110:以目标体网格上存在的其他体网格的顶点为切分点,沿最终切分方向对目标体网格进行切分,得到最终内部体网格。
需要说明的是,执行步骤110后,会得到的最终内部体网格的形状包括四面体网格、金字塔网格、三棱柱网格、六面体网格等多种混合网格,且每种体网格均具有顶点共球性质。
111:将目标体网格确定为最终内部体网格。
针对执行步骤104和步骤108后得到的细化体网格,继续执行如下步骤112至步骤114。
112:判断细化体网格的体积是否小于或等于预设体积阈值,并且细化体网格上是否不存在其他体网格的顶点。如果细化体网格的体积小于或等于预设体积阈值,并且细化体网格上不存在其他体网格的顶点,则执行步骤113,否则,执行步骤114。
113:将细化体网格确定为最终内部体网格。
114:将细化体网格设置为目标体网格。并返回执行步骤103。
也就是说,位于半导体器件结构内部的目标体网格不再细分的条件为体积小于或等于预设体积阈值,并且不存在其他体网格的顶点。
需要说明的是,对完全位于半导体器件结构内部的目标体网格进行细分后得到的细化体网格,仍然为完全位于半导体器件结构内部的内部网格。
115:判断交多面体上的各个顶点是否共球。如果交多面体上的各个顶点不共球,则执行步骤116,如果交多面体上的各个顶点共球,则执行步骤118。
其中,交多面体为目标体网格与半导体器件结构相重叠的几何体。
具体地,交多面体上的各个顶点包括交多面体自身的顶点,以及交多面体上存在的其他体网格的顶点。
判断交多面体上的各个顶点是否共球,可以通过交多面体上的各个顶点是否均为目标体网格的顶点来判断,如果交多面体上的各个顶点均为目标体网格的顶点,则交多面体上的各个顶点共球,如果交多面体上的各个顶点并不全为目标体网格的顶点,则交多面体上的各个顶点不共球。
示例性地,图4示例性示出了本申请实施例提供的与半导体器件结构相交的目标体网格的二维结构示意图,如图4所示,K为半导体器件结构的二维结构示意图,半导体器件结构为不规则多面体,A为与半导体器件结构相交的立方体形状的目标体网格,二维截面为正方形,A中的阴影部分为目标体网格A与半导体器件结构K的交多面体,各个顶点共球。B为与半导体器件结构相交的长方体形状的目标体网格,二维截面为长方形,B中的阴影部分为目标体网格B与半导体器件结构K的交多面体,各个顶点不共球。
116:根据目标体网格上存在的其他体网格的顶点、目标体网格与半导体器件结构的交点、目标体网格各条棱边的中点以及目标体网格各个面的长宽比,确定目标体网格的切分方向,以及在切分方向上的切分点。
在一些实施例中,图5示例性示出了本申请实施例提供的与半导体器件结构相交的目标体网格的细分方法所对应的流程示意图,如图5所示,具体可以通过以下方式确定目标体网格的切分方向,以及在切分方向上的切分点:
501:以目标体网格的任一顶点为原点,以原点所在的目标体网格上任一棱边为x轴,建立切分坐标系。
502:在切分坐标系下,将垂直于x轴的方向、垂直于y轴的方向和垂直于z轴的方向均确定为候选切分方向。
503:将目标体网格上存在的其他体网格的顶点,以及目标体网格与半导体器件结构的交点按照所处位置进行分类,确定位于各个候选切分方向上的候选切分点。
504:针对任一候选切分方向,检测候选切分方向上是否存在候选切分点。如果候选切分方向上存在候选切分点,则继续执行步骤505,如果候选切分方向上不存在候选切分点,则继续执行步骤506。
505:针对位于同一候选切分方向上的各个候选切分点,将与中心切面的距离最短的候选切分点确定为候选切分方向上的切分点。
其中,中心切面为平行于候选切分方向,且经过目标体网格目标棱边的中点的平面,目标棱边为垂直于候选切分方向的棱边。
具体地,确定顶点与中心切面的距离,可以直接计算顶点到中心切面的垂直距离,也可以将顶点沿平行于中心切面的方向投影到目标体网格的棱边上,再计算投影顶点与所在棱边的中点之间的线段距离,具体不作限定。
506:将候选切分方向确定为目标方向。
507:确定目标体网格上垂直于目标方向的各个面的长宽比。
具体地,长宽比为长边的长度与短边的长度的比值。
508:判断垂直于目标方向的各个面中是否存在长宽比小于或等于预设比例阈值的目标面。如果垂直于目标方向的各个面中存在长宽比小于或等于预设比例阈值的目标面,则执行步骤509,如果垂直于目标方向的各个面的长宽比均大于预设比例阈值,则执行步骤510。
509:将目标面中垂直于目标方向的棱边的中点确定为目标方向上的切分点。
510:判断垂直于目标方向的各条棱边是否均为所在面的短边。如果垂直于目标方向的各条棱边均为所在面的短边,则执行步骤511,否则,执行步骤512。
511:目标方向不作为目标体网格的切分方向。
512:将垂直于目标方向的各条棱边中为所在面的长边的棱边确定为目标边。
513:将目标边的中点确定为目标方向上的切分点。
117:按照各个切分方向上的切分点,对目标体网格进行叉树切分,得到多个细化体网格。
具体地,叉树切分包括均分二叉树切分、均分四叉树切分、均分八叉树切分、非均分二叉树切分、非均分四叉树切分以及非均分八叉树切分。
为了更加清楚地说明本申请实施例提供的与半导体器件结构相交的目标体网格的细分方法,下面从二维的角度对目标体网格进行展示。图6示例性示出了本申请实施例提供的多种与半导体器件结构相交的目标体网格细分示意图,图6中,A图示出的边界目标体网格B1,与半导体器件结构K的交点分别为P1和P2,不存在其他体网格顶点,因此候选切分点为P1和P2,由于P1和P2位于同一候选切分方向,且P1更靠近中点,因此将P1作为该候选切分方向的切分点,由于目标体网格B1的长宽比小于预设比例阈值,因此将目标体网格B1垂直于另一候选切分方向的各个棱边的中点O3和O4作为另一候选切分方向的切分点,分别以P1和O3(或O4)为切分点对目标体网格B1进行四叉树切分,得到网格B11、B12、B13和B14,其中,B11和B12仍为边界网格,B13和B14变为内部网格。B图示出的边界目标体网格B2,与半导体器件结构K的交点分别为P1和P2,存在的其他体网格顶点为P3和P4,因此候选切分点为P1、P2、 P3和P4,由于P1、P2和P4位于同一候选切分方向,且P4更靠近中点,因此将P4作为该候选切分方向的切分点,P3为另一候选切分方向的切分点,分别以P4和P3作为切分点对目标体网格B2进行四叉树切分,得到网格B21、B22、B23和B24,其中,B21、B22 和B23仍为边界网格,B24变为内部网格。C图示出的边界目标体网格B3,与半导体器件结构K的交点为P1,存在的其他体网格顶点为P3和P4,因此候选切分点为P1、P3和P4,由于P1和P4位于同一候选切分方向,且P1更靠近中点,因此将P1作为该候选切分方向的切分点,P3为另一候选切分方向的切分点,分别以P1和P3为切分点对目标体网格B3进行四叉树切分,得到网格B31、B32、B33和B34,其中,B31和B32仍为边界网格,B33和B34变为内部网格。
需要说明的是,图6为二维角度展示,因此仅能反应三个候选切分方向中任意两个候选切分方向。
118:将交多面体作为最终边界体网格。
需要说明的是,执行步骤118后,会得到的最终边界体网格的形状包括四面体网格、金字塔网格、三棱柱网格、六面体网格等多种混合网格,且每种体网格均具有顶点共球性质。
针对执行步骤117后得到的细化体网格,继续执行如下步骤119至步骤120。
119:将细化体网格设置为目标体网格。
120:检测目标体网格相对于半导体器件结构的位置。如果目标体网格完全位于半导体器件结构的内部,则继续执行步骤103,如果目标体网格与半导体器件结构相交,则继续执行步骤115,如果目标体网格完全位于半导体器件结构的外部,则继续执行步骤121。
也就是说,与半导体器件结构相交的目标体网格不再细分的条件为交多面体上的各个顶点共球。
需要说明的是,对与半导体器件结构相交的目标体网格进行细分后得到的细化体网格,可能为完全位于半导体器件结构内部的内部网格,可能为与半导体器件结构相交的边界网格,还可能为完全位于半导体器件结构的外部的外部网格。
121:去除目标体网格。
122:利用整形的有理数运算获取各个最终内部体网格和各个最终边界体网格的各个网格节点的位置坐标。
具体地,在网格生成过程中,利用整形的有理数运算对各个目标体网格的顶点进行位置描述,以及确定各个切分点的位置和各个细化体网格的顶点位置。
也就是说,每生成一个新的网格节点,均是用整形的有理数运算获取该网格节点的位置坐标,计算基于整形的有理数描述,将浮点数的网格位置用整形的有理数表示。
示例性地,图7示例性示出了本申请实施例提供的整形的有理数描述所对应的示
例示意图,如图7所示,K为半导体器件结构,线段AC的长度为1,线段PC的长度也为1,P为新
增网格节点,如果用浮点数1.41421……表示线段AP的长度,会造成不精确,可能会出现无
限循环的问题,本申请实施例提出用整形的有理数表示线段AP,P的位置表示是完全精确
的,不存在浮点数误差,进而可以准确描述的半导体器件结构。
如此,通过整形的有理数运算,不仅使新增网格节点位置是完全精确的描述,保证生成的计算网格是逼近于原始图形,避免了网格节点描述器件结构的失真,进而可以不改变几何对象的形状,网格描述的准确性较高,而且将内部网格的节点坐标全部用整形的有理数表示出来,可以大大节省描述器件结构的网格节点的存储空间。
123:存储各个最终内部体网格和各个最终边界体网格的各个网格节点的位置坐标。
为了更加清楚地说明本申请实施例,下面通过具体示例进行说明。
图8示例性示出了本申请实施例提供的基于改进叉树算法的网格生成方法与基于单一网格的网格生成方法的网格生成示例对比示意图,如图8所示,A1为待进行网格描述的半导体器件结构,为不规则的多面体。B1为对应的基于单一网格的网格生成方法进行网格描述时得到的效果展示,可以看出,将对应的不规则的多面体全部用规则性的六面体表示,在处理下方的规则部分时,用六面体网格描述其结构能够满足精度上面的要求,对于上方的不规则部分时,需要将多面体划分为非常小的六面体网格,花费的存储资源是指数级别的增长。C1为采用本申请实施例提供的基于改进叉树算法的网格生成方法进行网格描述时得到的效果展示,可以看出,将对应的不规则的多面体用两种网格进行表示,对于不规则多面体下方的规则部分以及内部网格,采用结构性网格或体积较大的非结构网格来描述其结构,对于多面体上方的不规则部分,采用非结构性网格,如此既可以将多面体的结构通过网格划分精确描述出来,保持整个多面体网格的稳定性,同时也节省了网格位置点存储的资源,既能准确描述出半导体器件的结构,又能最大限度的节省描述网格位置的存储空间。
如此,本申请实施例公开的一种基于改进叉树算法的网格生成方法中,对半导体器件结构的外切立方体进行初始网格生成后,针对任一目标体网格,如果目标体网格完全位于半导体器件结构内部并且体积大于预设体积阈值,则对目标体网格进行细化,直至得到体积符合要求且面上不存在其他体网格顶点的最终内部体网格,如果目标体网格与半导体器件结构相交,且交多面体上的各个顶点不共球,则对目标体网格进行细化,直至得到最终边界体网格,运用整形的有理数运算获取各个最终内部体网格和各个最终边界体网格的各个网格节点的位置坐标并进行存储,最终生成的体网格包括四面体网格、金字塔网格、三棱柱网格、六面体网格等多种混合网格,每种体网格均具有顶点共球性质。整个网格生成过程中,运用整形的有理数运算生成各个网格节点的位置坐标,不仅可以节省网格节点的存储空间,而且位置表示较为精确,不存在浮点数误差,网格描述的准确性较高。
下述为本申请装置实施例,可以用于执行本申请方法实施例。对于本申请装置实施例中未披露的细节,请参照本申请方法实施例。
图9示例性示出了本申请实施例提供的一种基于改进叉树算法的网格生成装置的结构示意图。如图9所示,该装置具有实现上述网格生成方法的功能,所述功能可以由硬件实现,也可以由硬件执行相应的软件实现。该装置可以包括:初始网格生成模块901、内部网格细分模块902、最终内部体网格确定模块903、边界网格处理模块904、边界网格切分点确定模块905、边界网格细分确定模块906、最终边界体网格确定模块907和位置坐标生成模块908。其中:
初始网格生成模块901,用于对半导体器件结构的外切立方体进行初始网格生成,得到多个初始体网格,其中,初始体网格为六面体网格。
内部网格细分模块902,用于针对多个初始体网格中任一目标体网格,如果目标体网格完全位于半导体器件结构的内部,并且目标体网格的体积大于预设体积阈值,则对目标体网格进行细分,得到多个细化体网格。
最终内部体网格确定模块903,用于如果细化体网格的体积小于或等于预设体积阈值,并且细化体网格上不存在其他体网格的顶点,则将细化体网格确定为最终内部体网格。
边界网格处理模块904,用于如果目标体网格与半导体器件结构相交,则判断交多面体上的各个顶点是否共球,交多面体为目标体网格与半导体器件结构相重叠的几何体。
边界网格切分点确定模块905,用于如果交多面体上的各个顶点不共球,则根据目标体网格上存在的其他体网格的顶点、目标体网格与半导体器件结构的交点、目标体网格各条棱边的中点以及目标体网格各个面的长宽比,确定目标体网格的切分方向,以及在切分方向上的切分点。
边界网格细分确定模块906,用于按照各个切分方向上的切分点,对目标体网格进行叉树切分,得到多个细化体网格。
最终边界体网格确定模块907,用于如果交多面体上的各个顶点共球,则将交多面体作为最终边界体网格。
位置坐标生成模块908,用于利用整形的有理数运算获取各个最终内部体网格和各个最终边界体网格的各个网格节点的位置坐标。以及,存储各个最终内部体网格和各个最终边界体网格的各个网格节点的位置坐标。
在一种可实现方式中,叉树切分包括均分二叉树切分、均分四叉树切分、均分八叉树切分、非均分二叉树切分、非均分四叉树切分以及非均分八叉树切分。
在一种可实现方式中,内部网格细分模块902包括:
切分坐标系建立单元,用于以目标体网格的任一顶点为原点,以原点所在的目标体网格上任一棱边为x轴,建立切分坐标系。
候选切分方向确定单元,用于在切分坐标系下,将垂直于x轴的方向、垂直于y轴的方向和垂直于z轴的方向均确定为候选切分方向。
顶点分类单元,用于将目标体网格上存在的其他体网格的顶点按照所处位置进行分类,确定位于各个候选切分方向上的顶点。
切分点确定单元,用于针对位于同一候选切分方向上的各个顶点,将与中心切面的距离最短的顶点确定为候选切分方向上的切分点,中心切面为平行于候选切分方向,且经过目标体网格目标棱边的中点的平面,目标棱边为垂直于候选切分方向的棱边。
切分单元,用于按照各个候选切分方向上的切分点,沿对应的候选切分方向对目标体网格进行切分,得到多个细化体网格。
在一种可实现方式中,切分点确定单元还包括:
长宽比确定子单元,用于针对各个候选切分方向中任一不存在其他体网格的顶点的目标方向,确定目标体网格上垂直于目标方向的各个面的长宽比。
切分点第一确定子单元,用于如果垂直于目标方向的各个面中存在长宽比小于或等于预设比例阈值的目标面,则将目标面中垂直于目标方向的棱边的中点确定为目标方向上的切分点。
切分点第二确定子单元,用于如果垂直于目标方向的各个面的长宽比均大于预设比例阈值,并且垂直于目标方向的各条棱边均为所在面的短边,则沿目标方向不对目标体网格进行切分。
切分点第三确定子单元,用于如果垂直于目标方向的各个面的长宽比均大于预设比例阈值,并且在垂直于目标方向的各条棱边中存在为所在面的长边的目标边,则将目标边的中点确定为目标方向上的切分点。
在一种可实现方式中,内部网格细分模块902还包括:
顶点检测单元,用于如果目标体网格完全位于半导体器件结构的内部,并且目标体网格的体积小于或等于预设体积阈值,则判断目标体网格上是否存在其他体网格的顶点。
顶点数量确定单元,用于如果目标体网格上存在其他体网格的顶点,则确定目标体网格上存在的其他体网格的顶点数量。
切分方向和切分点确定单元,用于如果顶点数量为大于或等于两个,则根据目标体网格上存在的其他体网格的顶点、目标体网格各条棱边的中点以及目标体网格各个面的长宽比,确定目标体网格的切分方向,以及在切分方向上的切分点。
细化体网格生成单元,用于按照各个切分方向上的切分点,对目标体网格进行各个切分方向上的叉树切分,得到多个细化体网格。
最终切分方向确定单元,用于如果顶点数量为一个,则根据目标体网格上存在的其他体网格的顶点,以及目标体网格的各个顶点,确定最终切分方向。
最终内部体网格生成单元,用于以目标体网格上存在的其他体网格的顶点为切分点,沿最终切分方向对目标体网格进行切分,得到最终内部体网格。
在一种可实现方式中,边界网格切分点确定模块905具体用于:
以目标体网格的任一顶点为原点,以原点所在的目标体网格上任一棱边为x轴,建立切分坐标系。
在切分坐标系下,将垂直于x轴的方向、垂直于y轴的方向和垂直于z轴的方向均确定为候选切分方向。
将目标体网格上存在的其他体网格的顶点,以及目标体网格与半导体器件结构的交点按照所处位置进行分类,确定位于各个候选切分方向上的候选切分点。
针对位于同一候选切分方向上的各个候选切分点,将与中心切面的距离最短的候选切分点确定为候选切分方向上的切分点,中心切面为平行于候选切分方向,且经过目标体网格目标棱边的中点的平面,目标棱边为垂直于候选切分方向的棱边。
针对各个候选切分方向中任一不存在候选切分点的目标方向,确定目标体网格上垂直于目标方向的各个面的长宽比。
如果垂直于目标方向的各个面中存在长宽比小于或等于预设比例阈值的目标面,则将目标面中垂直于目标方向的棱边的中点确定为目标方向上的切分点。
如果垂直于目标方向的各个面的长宽比均大于预设比例阈值,并且垂直于目标方向的各条棱边均为所在面的短边,则目标方向不作为目标体网格的切分方向。
或者,如果垂直于目标方向的各个面的长宽比均大于预设比例阈值,并且在垂直于目标方向的各条棱边中存在为所在面的长边的目标边,则将目标边的中点确定为目标方向上的切分点。
在一种可实现方式中,装置还包括:
外部网格去除模块,用于如果目标体网格完全位于半导体器件结构的外部,则去除目标体网格。
在一种可实现方式中,位置坐标生成模块908具体用于:
在网格生成过程中,利用整形的有理数运算对各个目标体网格的顶点进行位置描述,以及确定各个切分点的位置和各个细化体网格的顶点位置。
在一种可实现方式中,初始网格生成模块901具体用于:
利用凸包算法对半导体器件结构的外切立方体进行初始网格生成,得到多个初始体网格。
本申请实施例公开的一种基于改进叉树算法的网格生成装置中,对半导体器件结构的外切立方体进行初始网格生成后,针对任一目标体网格,如果目标体网格完全位于半导体器件结构内部并且体积大于预设体积阈值,则对目标体网格进行细化,直至得到体积符合要求且面上不存在其他体网格顶点的最终内部体网格,如果目标体网格与半导体器件结构相交,且交多面体上的各个顶点不共球,则对目标体网格进行细化,直至得到最终边界体网格,运用整形的有理数运算获取各个最终内部体网格和各个最终边界体网格的各个网格节点的位置坐标并进行存储,最终生成的体网格包括四面体网格、金字塔网格、三棱柱网格、六面体网格等多种混合网格,每种体网格均具有顶点共球性质。整个网格生成过程中,运用整形的有理数运算生成各个网格节点的位置坐标,不仅可以节省网格节点的存储空间,而且位置表示较为精确,不存在浮点数误差,网格描述的准确性较高。
以上结合具体实施方式和范例性实例对本申请进行了详细说明,不过这些说明并不能理解为对本申请的限制。本领域技术人员理解,在不偏离本申请精神和范围的情况下,可以对本申请技术方案及其实施方式进行多种等价替换、修饰或改进,这些均落入本申请的范围内。本申请的保护范围以所附权利要求为准。
Claims (10)
1.一种基于改进叉树算法的网格生成方法,其特征在于,包括:
对半导体器件结构的外切立方体进行初始网格生成,得到多个初始体网格,其中,所述初始体网格为六面体网格;
针对多个初始体网格中任一目标体网格,如果所述目标体网格完全位于所述半导体器件结构的内部,并且所述目标体网格的体积大于预设体积阈值,则对所述目标体网格进行细分,得到多个细化体网格;
如果所述细化体网格的体积小于或等于所述预设体积阈值,并且所述细化体网格上不存在其他体网格的顶点,则将所述细化体网格确定为最终内部体网格;
如果所述目标体网格与所述半导体器件结构相交,则判断交多面体上的各个顶点是否共球,所述交多面体为所述目标体网格与所述半导体器件结构相重叠的几何体;
如果所述交多面体上的各个顶点不共球,则根据所述目标体网格上存在的其他体网格的顶点、所述目标体网格与所述半导体器件结构的交点、所述目标体网格各条棱边的中点以及所述目标体网格各个面的长宽比,确定所述目标体网格的切分方向,以及在所述切分方向上的切分点;
按照各个切分方向上的切分点,对所述目标体网格进行叉树切分,得到多个细化体网格;
或者,如果所述交多面体上的各个顶点共球,则将所述交多面体作为最终边界体网格;
利用整形的有理数运算获取各个最终内部体网格和各个最终边界体网格的各个网格节点的位置坐标;
存储各个最终内部体网格和各个最终边界体网格的各个网格节点的位置坐标。
2.根据权利要求1所述的网格生成方法,其特征在于,所述叉树切分包括均分二叉树切分、均分四叉树切分、均分八叉树切分、非均分二叉树切分、非均分四叉树切分以及非均分八叉树切分。
3.根据权利要求1所述的网格生成方法,其特征在于,所述对所述目标体网格进行细分,得到多个细化体网格,包括:
以所述目标体网格的任一顶点为原点,以所述原点所在的所述目标体网格上任一棱边为x轴,建立切分坐标系;
在所述切分坐标系下,将垂直于x轴的方向、垂直于y轴的方向和垂直于z轴的方向均确定为候选切分方向;
将所述目标体网格上存在的其他体网格的顶点按照所处位置进行分类,确定位于各个候选切分方向上的顶点;
针对位于同一候选切分方向上的各个顶点,将与中心切面的距离最短的顶点确定为所述候选切分方向上的切分点,所述中心切面为平行于所述候选切分方向,且经过所述目标体网格目标棱边的中点的平面,所述目标棱边为垂直于所述候选切分方向的棱边;
按照各个候选切分方向上的切分点,沿对应的候选切分方向对所述目标体网格进行切分,得到多个细化体网格。
4.根据权利要求3所述的网格生成方法,其特征在于,所述方法还包括:
针对各个候选切分方向中任一不存在其他体网格的顶点的目标方向,确定所述目标体网格上垂直于所述目标方向的各个面的长宽比;
如果垂直于所述目标方向的各个面中存在长宽比小于或等于预设比例阈值的目标面,则将所述目标面中垂直于所述目标方向的棱边的中点确定为所述目标方向上的切分点;
如果垂直于所述目标方向的各个面的长宽比均大于所述预设比例阈值,并且垂直于所述目标方向的各条棱边均为所在面的短边,则沿所述目标方向不对所述目标体网格进行切分;
或者,如果垂直于所述目标方向的各个面的长宽比均大于所述预设比例阈值,并且在垂直于所述目标方向的各条棱边中存在为所在面的长边的目标边,则将所述目标边的中点确定为所述目标方向上的切分点。
5.根据权利要求1所述的网格生成方法,其特征在于,所述方法还包括:
如果所述目标体网格完全位于所述半导体器件结构的内部,并且所述目标体网格的体积小于或等于预设体积阈值,则判断所述目标体网格上是否存在其他体网格的顶点;
如果所述目标体网格上存在其他体网格的顶点,则确定所述目标体网格上存在的其他体网格的顶点数量;
如果所述顶点数量为大于或等于两个,则根据所述目标体网格上存在的其他体网格的顶点、所述目标体网格各条棱边的中点以及所述目标体网格各个面的长宽比,确定所述目标体网格的切分方向,以及在所述切分方向上的切分点;
按照各个切分方向上的切分点,对所述目标体网格进行各个切分方向上的叉树切分,得到多个细化体网格;
或者,如果所述顶点数量为一个,则根据所述目标体网格上存在的其他体网格的顶点,以及所述目标体网格的各个顶点,确定最终切分方向;
以所述目标体网格上存在的其他体网格的顶点为切分点,沿所述最终切分方向对所述目标体网格进行切分,得到最终内部体网格。
6.根据权利要求1所述的网格生成方法,其特征在于,所述根据所述目标体网格上存在的其他体网格的顶点、所述目标体网格与所述半导体器件结构的交点、所述目标体网格各条棱边的中点以及所述目标体网格各个面的长宽比,确定所述目标体网格的切分方向,以及在所述切分方向上的切分点,包括:
以所述目标体网格的任一顶点为原点,以所述原点所在的所述目标体网格上任一棱边为x轴,建立切分坐标系;
在所述切分坐标系下,将垂直于x轴的方向、垂直于y轴的方向和垂直于z轴的方向均确定为候选切分方向;
将所述目标体网格上存在的其他体网格的顶点,以及所述目标体网格与所述半导体器件结构的交点按照所处位置进行分类,确定位于各个候选切分方向上的候选切分点;
针对位于同一候选切分方向上的各个候选切分点,将与中心切面的距离最短的候选切分点确定为所述候选切分方向上的切分点,所述中心切面为平行于所述候选切分方向,且经过所述目标体网格目标棱边的中点的平面,所述目标棱边为垂直于所述候选切分方向的棱边;
针对各个候选切分方向中任一不存在候选切分点的目标方向,确定所述目标体网格上垂直于所述目标方向的各个面的长宽比;
如果垂直于所述目标方向的各个面中存在长宽比小于或等于所述预设比例阈值的目标面,则将所述目标面中垂直于所述目标方向的棱边的中点确定为所述目标方向上的切分点;
如果垂直于所述目标方向的各个面的长宽比均大于所述预设比例阈值,并且垂直于所述目标方向的各条棱边均为所在面的短边,则所述目标方向不作为所述目标体网格的切分方向;
或者,如果垂直于所述目标方向的各个面的长宽比均大于所述预设比例阈值,并且在垂直于所述目标方向的各条棱边中存在为所在面的长边的目标边,则将所述目标边的中点确定为所述目标方向上的切分点。
7.根据权利要求1所述的网格生成方法,其特征在于,所述方法还包括:
如果所述目标体网格完全位于所述半导体器件结构的外部,则去除所述目标体网格。
8.根据权利要求1所述的网格生成方法,其特征在于,所述利用整形的有理数运算获取各个最终内部体网格和各个最终边界体网格的各个网格节点的位置坐标,包括:
在网格生成过程中,利用整形的有理数运算对各个目标体网格的顶点进行位置描述,以及确定各个切分点的位置和各个细化体网格的顶点位置。
9.根据权利要求1所述的网格生成方法,其特征在于,所述对半导体器件结构的外切立方体进行初始网格生成,得到多个初始体网格,包括:
利用凸包算法对半导体器件结构的外切立方体进行初始网格生成,得到多个初始体网格。
10.一种基于改进叉树算法的网格生成装置,其特征在于,包括:
初始网格生成模块,用于对半导体器件结构的外切立方体进行初始网格生成,得到多个初始体网格,其中,所述初始体网格为六面体网格;
内部网格细分模块,用于针对多个初始体网格中任一目标体网格,如果所述目标体网格完全位于所述半导体器件结构的内部,并且所述目标体网格的体积大于预设体积阈值,则对所述目标体网格进行细分,得到多个细化体网格;
最终内部体网格确定模块,用于如果所述细化体网格的体积小于或等于所述预设体积阈值,并且所述细化体网格上不存在其他体网格的顶点,则将所述细化体网格确定为最终内部体网格;
边界网格处理模块,用于如果所述目标体网格与所述半导体器件结构相交,则判断交多面体上的各个顶点是否共球,所述交多面体为所述目标体网格与所述半导体器件结构相重叠的几何体;
边界网格切分点确定模块,用于如果所述交多面体上的各个顶点不共球,则根据所述目标体网格上存在的其他体网格的顶点、所述目标体网格与所述半导体器件结构的交点、所述目标体网格各条棱边的中点以及所述目标体网格各个面的长宽比,确定所述目标体网格的切分方向,以及在所述切分方向上的切分点;
边界网格细分确定模块,用于按照各个切分方向上的切分点,对所述目标体网格进行叉树切分,得到多个细化体网格;
最终边界体网格确定模块,用于如果所述交多面体上的各个顶点共球,则将所述交多面体作为最终边界体网格;
位置坐标生成模块,用于利用整形的有理数运算获取各个最终内部体网格和各个最终边界体网格的各个网格节点的位置坐标;以及,存储各个最终内部体网格和各个最终边界体网格的各个网格节点的位置坐标。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210154111.2A CN114219899B (zh) | 2022-02-21 | 2022-02-21 | 一种基于改进叉树算法的网格生成方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210154111.2A CN114219899B (zh) | 2022-02-21 | 2022-02-21 | 一种基于改进叉树算法的网格生成方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN114219899A true CN114219899A (zh) | 2022-03-22 |
CN114219899B CN114219899B (zh) | 2022-05-10 |
Family
ID=80708941
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202210154111.2A Active CN114219899B (zh) | 2022-02-21 | 2022-02-21 | 一种基于改进叉树算法的网格生成方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN114219899B (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116433873A (zh) * | 2023-06-13 | 2023-07-14 | 广州中望龙腾软件股份有限公司 | 一种网格划分方法、装置及电子设备 |
CN117708904A (zh) * | 2023-11-08 | 2024-03-15 | 浙江大学 | 面向半导体数值模拟的混合单元网格生成方法 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20130162651A1 (en) * | 2011-12-23 | 2013-06-27 | Todd Martin | Tessellation Patterns |
CN104063903A (zh) * | 2014-07-08 | 2014-09-24 | 清华大学 | 三维实体模型的四面体网格生成方法和装置 |
CN109614522A (zh) * | 2018-12-14 | 2019-04-12 | 北京工业大学 | 一种基于八叉并运用于web的非结构化网格切割方法 |
CN110222447A (zh) * | 2019-06-14 | 2019-09-10 | 广东华中科技大学工业技术研究院 | 一种基于八叉树的自适应网格划分方法及系统 |
-
2022
- 2022-02-21 CN CN202210154111.2A patent/CN114219899B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20130162651A1 (en) * | 2011-12-23 | 2013-06-27 | Todd Martin | Tessellation Patterns |
CN104063903A (zh) * | 2014-07-08 | 2014-09-24 | 清华大学 | 三维实体模型的四面体网格生成方法和装置 |
CN109614522A (zh) * | 2018-12-14 | 2019-04-12 | 北京工业大学 | 一种基于八叉并运用于web的非结构化网格切割方法 |
CN110222447A (zh) * | 2019-06-14 | 2019-09-10 | 广东华中科技大学工业技术研究院 | 一种基于八叉树的自适应网格划分方法及系统 |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116433873A (zh) * | 2023-06-13 | 2023-07-14 | 广州中望龙腾软件股份有限公司 | 一种网格划分方法、装置及电子设备 |
CN116433873B (zh) * | 2023-06-13 | 2023-12-01 | 广州中望龙腾软件股份有限公司 | 一种网格划分方法、装置及电子设备 |
CN117708904A (zh) * | 2023-11-08 | 2024-03-15 | 浙江大学 | 面向半导体数值模拟的混合单元网格生成方法 |
Also Published As
Publication number | Publication date |
---|---|
CN114219899B (zh) | 2022-05-10 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111932688B (zh) | 一种基于三维点云的室内平面要素提取方法、系统及设备 | |
CN114219899B (zh) | 一种基于改进叉树算法的网格生成方法及装置 | |
US8269771B2 (en) | Remeshing method and apparatus for restoring sharp features of mesh made smooth enough | |
CN112356019B (zh) | 一种用于灵巧手抓取的目标物体形体分析方法及装置 | |
CN111581776B (zh) | 一种基于几何重建模型的等几何分析方法 | |
CN114494649B (zh) | 有限元网格划分几何清理方法、设备和存储介质 | |
CN113610983A (zh) | 一种离散点空间曲面三角网格自动剖分方法 | |
CN113724401A (zh) | 一种三维模型切割方法、装置、计算机设备和存储介质 | |
CN115661374A (zh) | 一种基于空间划分和模型体素化的快速检索方法 | |
CN114494641B (zh) | 一种三维模型轻量化方法及装置 | |
US8022949B2 (en) | System and method for generating curvature adapted isosurface based on delaunay triangulation | |
JP2003330976A (ja) | 境界データの内外判定方法とそのプログラム | |
CN116484702A (zh) | 一种适用于任意单元类型的非结构嵌套网格计算方法 | |
CN111220943A (zh) | 定位方法、定位系统、计算机可读存储介质及车辆 | |
CN110796735A (zh) | Nurbs曲面有限元板壳网格划分方法及计算机实现系统 | |
US20210295597A1 (en) | Three-dimensional shape data processing apparatus and non-transitory computer readable medium | |
Tanaka et al. | Accuracy-based sampling and reconstruction with adaptive grid for parallel hierarchical tetrahedrization | |
CN113763563A (zh) | 一种基于平面识别的三维点云几何网格结构生成方法 | |
CN113593036A (zh) | 一种参照网格参数化模型的成像系统、方法、设备及程序 | |
CN111696111A (zh) | 一种基于ssdf衰减图聚类的3d模型网格分割方法 | |
CN109979007A (zh) | 一种建筑体的几何造型方法和装置 | |
CN114648618B (zh) | 一种室内空间三维拓扑关系构建方法及系统 | |
CN112199900B (zh) | 一种多面体交接的快速计算方法 | |
CN116955347A (zh) | 目标表面的点云提取方法、设备和存储介质 | |
CN110796729B (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 |