CN106780747B - 一种快速分割cfd计算网格的方法 - Google Patents
一种快速分割cfd计算网格的方法 Download PDFInfo
- Publication number
- CN106780747B CN106780747B CN201611074748.1A CN201611074748A CN106780747B CN 106780747 B CN106780747 B CN 106780747B CN 201611074748 A CN201611074748 A CN 201611074748A CN 106780747 B CN106780747 B CN 106780747B
- Authority
- CN
- China
- Prior art keywords
- grid
- partitioned
- net region
- node
- net
- 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
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/30—Polynomial surface description
Landscapes
- Physics & Mathematics (AREA)
- Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Pure & Applied Mathematics (AREA)
- Mathematical Optimization (AREA)
- Mathematical Physics (AREA)
- Mathematical Analysis (AREA)
- Algebra (AREA)
- Computer Graphics (AREA)
- Geometry (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明提出一种快速分割CFD计算网格的方法,该方法是计算流体力学中的一种能够实现快速分割流场网格、高效提取流场信息的算法。为实现流场网格的快速分割,采用分类排序的方法,根据当前节点或单元与指定区域空间位置关系,先后对每个网格节点和网格单元的编号进行调整,并重新排序,进而提取新序列的部分数据,在确保网格空间拓扑结构保持不变的前提下,仅用一次数据遍历就可实现单个/多个指定区域网格的分割提取,从而现了高效网格分割的目的。
Description
技术领域
本发明属于计算流体力学技术领域,具体为一种快速分割CFD计算网格的方法,能够实现快速分割流场网格、高效提取流场指定区域流动信息的目的。
背景技术
在计算流体力学(CFD)中,网格是进行流场数值模拟的基础,是将流动的计算区域离散成一系列空间分布点或者微元的集合。网格的空间拓扑结构可以分为结构网格和非结构网格两类,其中非结构网格因其具有更大的几何灵活性,对复杂外形良好的适应性等一系列有点,而受到了计算流体力学界的广泛重视,并且得到了迅速的发展和应用。二维非结构网格由三角形网格单元、四边形网格单元,以及有这两种基本元素构成的广义多边形网格单元构成;三维非结构网格由四面体单元、金字塔单元、三棱柱单元、四棱柱单元以及由这些基本元素组合构成的广义多面体网格单元中的一种或多种按照一定次序排列所构成。
近年来,随着计算流体力学的发展,需要解决越来越复杂的物理问题,网格规模随之越来越大,涉及的数据处理和存储量呈现巨额增加。CFD计算最终是需要计算程序来执行的,程序的并行化是提高计算机计算速度和处理能力、解决大型而复杂的计算问题的一种有效手段。在众多的并行机制中,基于MPI消息传递模式的并行计算因其可扩展性好、并行效率高等优点受到广泛青睐,但在CFD并行计算的前处理中就会涉及到棘手的网格分块问题,如何实现计算网格的快速分割,如何确保分块网格的所有单元空间上相对集中、能够形成一个单连通域,是提高并行计算效率、甚至是保证计算正确性的关键因素之一。
海量的计算网格对CFD后处理也提出了更高的要求,需要更强的计算资源以满足全部流动参数的分析处理,需要更大计算内存来适应全部计算域的流动显示。然而,在一般情况下,CFD后处理过程更注重近场的流动情况而忽略远场流动信息。针对CFD后处理中的这一特点,如何快速分割并提取所关注区域流场就成为了有效降低CFD后处理中降低计算量的有效技术手段之一。
目前,网格分割有手动分割和程序自动分割两种方式。其中手动分割存在工作量大,分割区域固化,难以实现自适应网络分割的目的;现有的程序自动分割方法主要是针对CFD前处理的需要,以满足提高并行计算效率、降低数据交换量为原则,但现有的程序自动分割方法不能实现在CFD后处理中按照需求提取所关注的流场网格目的。
发明内容
为了实现CFD计算的网格快速分割、有效降低CFD流场后处理中的计算量,并能够根据需要提取任意指定区域网格信息的目的,本发明提出了一种快速分割CFD计算网格的方法。该方法不仅能够快速分割计算网格、降低计算流体力学中流场后处理计算量,还能够实现快速提取任意单块、多块指定区域的网格信息和流场信息。
本发明的技术方案为:
所述一种快速分割CFD计算网格的方法,其特征在于:包括以下步骤:
步骤1:根据需要分割出的网格区域,按照网格节点数据存储的顺序遍历整个网格区域中的所有网格节点,根据网格节点坐标判断其是否处于需要分割出的网格区域中,同时计算所有网格节点的步进量:
对于处于需要分割出的网格区域中的网格节点,其步进量为:i-n,其中i表示该网格节点为第i个被找到的处于需要分割出的网格区域中的网格节点,n表示该网格节点在整个网格区域的网格节点数据存储顺序编号;
对于不处于需要分割出的网格区域中的网络节点,其步进量为:N-(j+n-1),其中j表示该网格节点为第j个被找到的不处于需要分割出的网格区域中的网格节点,n表示该网格节点在整个网格区域的网格节点数据存储顺序编号,N表示整个网格区域中的网格节点总数;
步骤2:将整个网格区域中的所有网格节点按照步骤1得到的步进量移位,得到新的网格节点数据存储顺序;
步骤3:根据需要分割出的网格区域,按照网格单元数据存储的顺序遍历整个网格区域中的所有网格单元,根据以下规则判断网格单元是否处于需要分割出的网格区域中:网格单元中所有网格节点的步进量均不大于0,则该网格单元处于需要分割出的网格区域中,否则该网格单元不处于需要分割出的网格区域中;
同时计算所有网格单元的步进量:
对于处于需要分割出的网格区域中的网格单元,其步进量为:I-M,其中I表示该网格单元为第I个被找到的处于需要分割出的网格区域中的网格单元,M表示该网格单元在整个网格区域的网格单元数据存储顺序编号;
对于不处于需要分割出的网格区域中的网络单元,其步进量为:P-(J+M-1),其中J表示该网格单元为第J个被找到的不处于需要分割出的网格区域中的网格单元,M表示该网格单元在整个网格区域的网格单元数据存储顺序编号,P表示整个网格区域中的网格单元总数;
步骤4:将整个网格区域中的所有网格单元按照步骤3得到的步进量移位,得到新的网格单元数据存储顺序;
步骤5:从步骤2和步骤4得到的新的网格节点及网格单元数据存储中提取出处于需要分割出的网格区域中的网格节点及网格单元,组成新的CFD计算网格。
进一步的优选方案,所述一种快速分割CFD计算网格的方法,其特征在于:步骤5中,根据步骤1得到的处于需要分割出的网格区域中的网格节点个数,以及步骤3中得到的处于需要分割出的网格区域中的网格单元个数,从新的网格节点及网格单元数据存储中提取处于需要分割出的网格区域中的网格节点及网格单元。
所述一种快速分割CFD计算网格的方法,其特征在于:当存在多个需要分割出的网格区域时,通过以下步骤实现多个网格区域分割:
步骤1:根据需要分割出的多个网格区域,按照网格节点数据存储的顺序遍历整个网格区域中的所有网格节点,根据网格节点坐标判断其是否处于某个需要分割出的网格区域中,同时分别计算所有网格节点的步进量:
每个网格节点存在R个步进量,R为需要分割出的网格区域个数:
对于某一网格节点对应某个需要分割出的网格区域,其步进量计算为:
若该网格节点处于该需要分割出的网格区域中,则其步进量为:i-n,其中i表示该网格节点为第i个被找到的处于该需要分割出的网格区域中的网格节点,n表示该网格节点在整个网格区域的网格节点数据存储顺序编号;
若该网格节点不处于该需要分割出的网格区域中,则其步进量为:N-(j+n-1),其中j表示该网格节点为第j个被找到的不处于该需要分割出的网格区域中的网格节点,n表示该网格节点在整个网格区域的网格节点数据存储顺序编号,N表示整个网格区域中的网格节点总数;
步骤2:将整个网格区域中的所有网格节点按照步骤1得到的步进量分别移位,得到R个新的网格节点数据存储顺序;
步骤3:根据需要分割出的多个网格区域,按照网格单元数据存储的顺序遍历整个网格区域中的所有网格单元,根据以下规则判断某个网格单元是否处于某个需要分割出的网格区域中:该网格单元中所有网格节点对应该需要分割出的网格区域的步进量均不大于0,则该网格单元处于该需要分割出的网格区域中,否则该网格单元不处于该需要分割出的网格区域中;
每个网格单元存在R个步进量,对于某一网格单元对应某个需要分割出的网格区域,其步进量计算为:
若该网格单元处于该需要分割出的网格区域中,则步进量为:I-M,其中I表示该网格单元为第I个被找到的处于该需要分割出的网格区域中的网格单元,M表示该网格单元在整个网格区域的网格单元数据存储顺序编号;
若该网格单元不处于需要分割出的网格区域中,则其步进量为:P-(J+M-1),其中J表示该网格单元为第J个被找到的不处于该需要分割出的网格区域中的网格单元,M表示该网格单元在整个网格区域的网格单元数据存储顺序编号,P表示整个网格区域中的网格单元总数;
步骤4:将整个网格区域中的所有网格单元按照步骤3得到的步进量分别移位,得到R个新的网格单元数据存储顺序;
步骤5:从步骤2和步骤4得到的R个新的网格节点及网格单元数据存储中,分R次提取出同时处于某个需要分割出的网格区域中的网格节点及网格单元,组成共计R个新的CFD计算网格。
有益效果
本发明的有益效果是:根据网格节点的空间连接关系和数据结构的特点,采用重排序的方法,仅用一次数据遍历就可以实现空间网格的单个/多个指定区域的分割,快速提取流动参数,并保证所分割区块网格节点连接关系与原网格一致,所采用的计算方法计算量小,实用性强。
本发明的附加方面和优点将在下面的描述中部分给出,部分将从下面的描述中变得明显,或通过本发明的实践了解到。
附图说明
本发明的上述和/或附加的方面和优点从结合下面附图对实施例的描述中将变得明显和容易理解,其中:
图1是面网格单元元素示意图;其中,a为三角形网格单元,b为四边形网格单元。
图2是体网格单元元素示意图;其中,a为四面体网格单元,b为金字塔网格单元,c为三棱柱网格单元,d为四棱柱网格单元。
图3是曲面网格和体网格示意图。
图4是实现单块网格分割的原理示意图。
图5是实现多块网格同时分割的原理示意图。
图中:A表示网格节点,括号中数字代表该节点编号;C表示由节点组成的网格单元,括号中的数值表示该网格单元的编号。
具体实施方式
下面详细描述本发明的实施例,所述实施例是示例性的,旨在用于解释本发明,而不能理解为对本发明的限制。
本发明的目的是实现CFD计算的网格快速分割、有效降低CFD流场后处理中的计算量,并能够根据需要提取任意指定区域网格信息。
为此,在本发明中,首先针对CFD非结构网格的数据格式和空间拓扑结构特点,根据网格节点与分块区域的空间位置关系,采用分类排序的方法,对每个网格节点的编号进行调整,将所需的节点向序列的前部移动并可做标记,不需要的节点向后移动,与此同时记录步进量和归类的网格节点个数,进而根据各节点编号的步进量,修改所有网格单元的节点编号,以确保网格空间拓扑结构在节点编号调整之后保持不变。然后根据网格单元内所有节点的步进量来判断该网格单元是否位于分块区域内,依照同样的分类排序的方法调整该网格单元编号,将所需单元向单元序列的前部移动,不需要的单元向后移动。在节点编号和网格单元编号调整、排序结束后分别提取新序列的网格节点和网格单元,从而达到分割网格的目的。
在分类排序的过程中,为了提高计算效率、降低内存开销,方法在判断当前节点或单元与指定区域空间位置关系之后,将位于指定区域内的网格节点或单元按照被搜索到的顺序从前向后排列并记录个数,将位于指定区域之外的网格节点或单元按照被搜索到的顺序从后向前排列,这样仅用一次数据遍历就可实现网格的分割提取,从而达到高效网格分割的目的。在判断网格节点或网格单元与指定区域空间位置关系的过程中,将当前网格节点或网格单元的空间位置与多个指定的空间区域逐个进行比较,形成多个新的节点序列和网格单元序列,提取各序列的前部数据,从而实现了多块指定区域网格信息的同时提取。
依据上述原理性说明,本发明的具体步骤为:
对于从整个网格区域分割一个网格区域时,采用以下步骤:
步骤1:根据需要分割出的网格区域,按照网格节点数据存储的顺序遍历整个网格区域中的所有网格节点,根据网格节点坐标判断其是否处于需要分割出的网格区域中,同时计算所有网格节点的步进量:
对于处于需要分割出的网格区域中的网格节点,其步进量为:i-n,其中i表示该网格节点为第i个被找到的处于需要分割出的网格区域中的网格节点,n表示该网格节点在整个网格区域的网格节点数据存储顺序编号;
对于不处于需要分割出的网格区域中的网络节点,其步进量为:N-(j+n-1),其中j表示该网格节点为第j个被找到的不处于需要分割出的网格区域中的网格节点,n表示该网格节点在整个网格区域的网格节点数据存储顺序编号,N表示整个网格区域中的网格节点总数;
步骤2:将整个网格区域中的所有网格节点按照步骤1得到的步进量移位,得到新的网格节点数据存储顺序;
步骤3:根据需要分割出的网格区域,按照网格单元数据存储的顺序遍历整个网格区域中的所有网格单元,根据以下规则判断网格单元是否处于需要分割出的网格区域中:网格单元中所有网格节点的步进量均不大于0,则该网格单元处于需要分割出的网格区域中,否则该网格单元不处于需要分割出的网格区域中;
同时计算所有网格单元的步进量:
对于处于需要分割出的网格区域中的网格单元,其步进量为:I-M,其中I表示该网格单元为第I个被找到的处于需要分割出的网格区域中的网格单元,M表示该网格单元在整个网格区域的网格单元数据存储顺序编号;
对于不处于需要分割出的网格区域中的网络单元,其步进量为:P-(J+M-1),其中J表示该网格单元为第J个被找到的不处于需要分割出的网格区域中的网格单元,M表示该网格单元在整个网格区域的网格单元数据存储顺序编号,P表示整个网格区域中的网格单元总数;
步骤4:将整个网格区域中的所有网格单元按照步骤3得到的步进量移位,得到新的网格单元数据存储顺序;
步骤5:从步骤2和步骤4得到的新的网格节点及网格单元数据存储中提取出处于需要分割出的网格区域中的网格节点及网格单元,组成新的CFD计算网格。
当整个网格区域中存在多个需要分割出的网格区域时,通过以下步骤实现多个网格区域分割:
步骤1:根据需要分割出的多个网格区域,按照网格节点数据存储的顺序遍历整个网格区域中的所有网格节点,根据网格节点坐标判断其是否处于某个需要分割出的网格区域中,同时分别计算所有网格节点的步进量:
每个网格节点存在R个步进量,R为需要分割出的网格区域个数:
对于某一网格节点对应某个需要分割出的网格区域,其步进量计算为:
若该网格节点处于该需要分割出的网格区域中,则其步进量为:i-n,其中i表示该网格节点为第i个被找到的处于该需要分割出的网格区域中的网格节点,n表示该网格节点在整个网格区域的网格节点数据存储顺序编号;
若该网格节点不处于该需要分割出的网格区域中,则其步进量为:N-(j+n-1),其中j表示该网格节点为第j个被找到的不处于该需要分割出的网格区域中的网格节点,n表示该网格节点在整个网格区域的网格节点数据存储顺序编号,N表示整个网格区域中的网格节点总数;
步骤2:将整个网格区域中的所有网格节点按照步骤1得到的步进量分别移位,得到R个新的网格节点数据存储顺序;
步骤3:根据需要分割出的多个网格区域,按照网格单元数据存储的顺序遍历整个网格区域中的所有网格单元,根据以下规则判断某个网格单元是否处于某个需要分割出的网格区域中:该网格单元中所有网格节点对应该需要分割出的网格区域的步进量均不大于0,则该网格单元处于该需要分割出的网格区域中,否则该网格单元不处于该需要分割出的网格区域中;
每个网格单元存在R个步进量,对于某一网格单元对应某个需要分割出的网格区域,其步进量计算为:
若该网格单元处于该需要分割出的网格区域中,则步进量为:I-M,其中I表示该网格单元为第I个被找到的处于该需要分割出的网格区域中的网格单元,M表示该网格单元在整个网格区域的网格单元数据存储顺序编号;
若该网格单元不处于需要分割出的网格区域中,则其步进量为:P-(J+M-1),其中J表示该网格单元为第J个被找到的不处于该需要分割出的网格区域中的网格单元,M表示该网格单元在整个网格区域的网格单元数据存储顺序编号,P表示整个网格区域中的网格单元总数;
步骤4:将整个网格区域中的所有网格单元按照步骤3得到的步进量分别移位,得到R个新的网格单元数据存储顺序;
步骤5:从步骤2和步骤4得到的R个新的网格节点及网格单元数据存储中,分R次提取出同时处于某个需要分割出的网格区域中的网格节点及网格单元,组成共计R个新的CFD计算网格。
根据上述步骤,下面结合附图做进一步描述:
在图1中,网格节点A(1)、A(2)和A(3)串联组成三角形面网格单元C(1);网格节点A(1)、A(2)、A(3)与A(4)串联组成四边形面网格单元C(2)。网格节点的链接关系由统一的规则指定,一般为顺时针或者逆时针逐次首位相连接。
在图2中,网格节点A(1)、A(2)、A(3)、A(4)相连组成四面体的体网格单元C(1);网格节点A(1)、A(2)、A(3)、A(4)、A(5)相连组成金字塔形体网格单元C(2);网格节点A(1)、A(2)、A(3)、A(4)、A(5)、A(6)相连组成三棱柱形体网格单元C(3);网格节点A(1)、A(2)、A(3)、A(4)、A(5)、A(6)、A(7)、A(8)相连组成四棱柱形体网格单元C(4)。网格节点的连接关系由统一的规则指定,以确定将节点首尾相连组成对应的体网格单元。
在图3中,曲面网格域由面网格基本元素三角形单元、四边形单元以及由基本元素组合构成的广义多边形面网格单元中的一种或多种种按照一定次序排列所构成;体网格域由体网格基本元素四面体、金字塔、三棱柱、四棱柱单元以及由这些基本元素组合构成的广义多面体网格单元中的一种或多种种按照一定次序排列所构成。网格域由两部分构成,首先是多个空间分布的点以及位于该点处的流动参数,其次是规定空间点之间相互连接关系的网格单元信息。
图4为单块网格分割原理示意图。首先,对网格节点进行重新排序并提取符合条件的节点,如图a).所示,遍历所有网格节点,利用节点坐标逐个判断当前节点与指定区域的相对位置关系,若该节点位于所指定的区域内则标记该点(如图中染色),否则不做标记,并记录符合条件点的个数N1,与此同时根据标记信息将节点重新排序,把被标记的点放在最前端,把未作标记的点放在最末位,并记录每个点相对于原位置的步进量(图中A(1)点将被放在最末端,则其步进量为:N-1;A(2)点将被置于首位,则其步进量为-1),如此逐次进行下去,待所有节点被一遍顺序搜索完成之后,节点的重排序即已完成,前N1个节点便是位于指定区域内所有的点。其次,在保留原网格节点之间的相互连接关系的前提下,调整网格单元信息及其排列顺序,如图b).所示,遍历所有网格单元,根据之前各节点排序的步进量逐个修改当前网格单元中每个节点编号(将每个节点编号加上它对应的步进量),然后判断该网格单元与指定区域的相对位置关系,若当前网格单元内所有节点均被标记(在节点排序中的标记)则该网格单元位于所指定的区域内,并标记该网格单元、记录符合条件的网格单元个数M1,否则不做标记,与此同时根据标记信息将网格单元重新排序,把被标记的点放在最前端,把未作标记的点放在最末位,这样逐个进行下去,待所有网格单元被一遍顺序搜索完成之后,网格单元的重排序即已完成,前M1个网格单元便是位于指定区域内所有的网格单元。若在调整网格单元的同时记录每个网格单元的步进量,则可参照同样的思路实现对网格单元的邻居进行同样的排序,进而可以在保留网格相邻关系的前提下提取分块网格单元的邻居信息。
图5为多块网格同时进行分割原理示意图(图中仅展示了两块网格的分割)。首先,对网格节点重新排序分别提取位于指定区域内的网格节点,如图a).所示,遍历所有网格节点,根据当前网格节点坐标与每个分块区域的边界Ω1,Ω2,Ω3,…的空间位置关系,来对该节点分别进行标记相对位置、记录符合条件节点的个数(N1,N2,N3,…)和对应节点的步进量,并分别重新排序,标记、记录及排序的思路与方法与单块网格分割相同,待所有节点被一遍顺序搜索完成之后,符合各分割区域约束的节点的排序即已完成,各序列对应的前N1、N2、N3…个节点便是位于该指定区域内所有的点。其次,调整网格单元信息及其排列顺序,如图b).所示,遍历所有网格单元,根据各节点步进量进行逐个修改,然后判断该网格单元与各指定区域的相对位置关系,若当前网格单元位于某指定的区域(Ωi)内,则对该网格单元做相应的标记、分别记录符合条件的网格单元个数Mi,否则不做标记,与此同时根据标记信息将网格单元重新排序,待所有网格单元被一遍顺序搜索完成之后,网格单元的重排序即已完成,每个序列的前Mi个网格单元便是位于指定区域(Ωi)内所有的网格单元。
尽管上面已经示出和描述了本发明的实施例,可以理解的是,上述实施例是示例性的,不能理解为对本发明的限制,本领域的普通技术人员在不脱离本发明的原理和宗旨的情况下在本发明的范围内可以对上述实施例进行变化、修改、替换和变型。
Claims (3)
1.一种快速分割CFD计算网格的方法,其特征在于:包括以下步骤:
步骤1:根据需要分割出的网格区域,按照网格节点数据存储的顺序遍历整个网格区域中的所有网格节点,根据网格节点坐标判断其是否处于需要分割出的网格区域中,同时计算所有网格节点的步进量:
对于处于需要分割出的网格区域中的网格节点,其步进量为:i-n,其中i表示该网格节点为第i个被找到的处于需要分割出的网格区域中的网格节点,n表示该网格节点在整个网格区域的网格节点数据存储顺序编号;
对于不处于需要分割出的网格区域中的网格 节点,其步进量为:N-(j+n-1),其中j表示该网格节点为第j个被找到的不处于需要分割出的网格区域中的网格节点,n表示该网格节点在整个网格区域的网格节点数据存储顺序编号,N表示整个网格区域中的网格节点总数;
步骤2:将整个网格区域中的所有网格节点按照步骤1得到的步进量移位,得到新的网格节点数据存储顺序;
步骤3:根据需要分割出的网格区域,按照网格单元数据存储的顺序遍历整个网格区域中的所有网格单元,根据以下规则判断网格单元是否处于需要分割出的网格区域中:网格单元中所有网格节点的步进量均不大于0,则该网格单元处于需要分割出的网格区域中,否则该网格单元不处于需要分割出的网格区域中;
同时计算所有网格单元的步进量:
对于处于需要分割出的网格区域中的网格单元,其步进量为:I-M,其中I表示该网格单元为第I个被找到的处于需要分割出的网格区域中的网格单元,M表示该网格单元在整个网格区域的网格单元数据存储顺序编号;
对于不处于需要分割出的网格区域中的网格 单元,其步进量为:P-(J+M-1),其中J表示该网格单元为第J个被找到的不处于需要分割出的网格区域中的网格单元,M表示该网格单元在整个网格区域的网格单元数据存储顺序编号,P表示整个网格区域中的网格单元总数;
步骤4:将整个网格区域中的所有网格单元按照步骤3得到的步进量移位,得到新的网格单元数据存储顺序;
步骤5:从步骤2和步骤4得到的新的网格节点及网格单元数据存储中提取出处于需要分割出的网格区域中的网格节点及网格单元,组成新的CFD计算网格。
2.根据权利要求1所述一种快速分割CFD计算网格的方法,其特征在于:步骤5中,根据步骤1得到的处于需要分割出的网格区域中的网格节点个数,以及步骤3中得到的处于需要分割出的网格区域中的网格单元个数,从新的网格节点及网格单元数据存储中提取处于需要分割出的网格区域中的网格节点及网格单元。
3.一种快速分割CFD计算网格的方法,其特征在于:当存在多个需要分割出的网格区域时,通过以下步骤实现多个网格区域分割:
步骤1:根据需要分割出的多个网格区域,按照网格节点数据存储的顺序遍历整个网格区域中的所有网格节点,根据网格节点坐标判断其是否处于某个需要分割出的网格区域中,同时分别计算所有网格节点的步进量:
每个网格节点存在R个步进量,R为需要分割出的网格区域个数:
对于某一网格节点对应某个需要分割出的网格区域,其步进量计算为:
若该网格节点处于该需要分割出的网格区域中,则其步进量为:i-n,其中i表示该网格节点为第i个被找到的处于该需要分割出的网格区域中的网格节点,n表示该网格节点在整个网格区域的网格节点数据存储顺序编号;
若该网格节点不处于该需要分割出的网格区域中,则其步进量为:N-(j+n-1),其中j表示该网格节点为第j个被找到的不处于该需要分割出的网格区域中的网格节点,n表示该网格节点在整个网格区域的网格节点数据存储顺序编号,N表示整个网格区域中的网格节点总数;
步骤2:将整个网格区域中的所有网格节点按照步骤1得到的步进量分别移位,得到R个新的网格节点数据存储顺序;
步骤3:根据需要分割出的多个网格区域,按照网格单元数据存储的顺序遍历整个网格区域中的所有网格单元,根据以下规则判断某个网格单元是否处于某个需要分割出的网格区域中:该网格单元中所有网格节点对应该需要分割出的网格区域的步进量均不大于0,则该网格单元处于该需要分割出的网格区域中,否则该网格单元不处于该需要分割出的网格区域中;
每个网格单元存在R个步进量,对于某一网格单元对应某个需要分割出的网格区域,其步进量计算为:
若该网格单元处于该需要分割出的网格区域中,则步进量为:I-M,其中I表示该网格单元为第I个被找到的处于该需要分割出的网格区域中的网格单元,M表示该网格单元在整个网格区域的网格单元数据存储顺序编号;
若该网格单元不处于需要分割出的网格区域中,则其步进量为:P-(J+M-1),其中J表示该网格单元为第J个被找到的不处于该需要分割出的网格区域中的网格单元,M表示该网格单元在整个网格区域的网格单元数据存储顺序编号,P表示整个网格区域中的网格单元总数;
步骤4:将整个网格区域中的所有网格单元按照步骤3得到的步进量分别移位,得到R个新的网格单元数据存储顺序;
步骤5:从步骤2和步骤4得到的R个新的网格节点及网格单元数据存储中,分R次提取出同时处于某个需要分割出的网格区域中的网格节点及网格单元,组成共计R个新的CFD计算网格。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201611074748.1A CN106780747B (zh) | 2016-11-30 | 2016-11-30 | 一种快速分割cfd计算网格的方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201611074748.1A CN106780747B (zh) | 2016-11-30 | 2016-11-30 | 一种快速分割cfd计算网格的方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN106780747A CN106780747A (zh) | 2017-05-31 |
CN106780747B true CN106780747B (zh) | 2019-05-10 |
Family
ID=58900668
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201611074748.1A Active CN106780747B (zh) | 2016-11-30 | 2016-11-30 | 一种快速分割cfd计算网格的方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN106780747B (zh) |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108875150A (zh) * | 2018-05-07 | 2018-11-23 | 哈尔滨工程大学 | 一种运动过程中发生接触的问题的动网格处理方法 |
CN110750847B (zh) * | 2019-10-29 | 2021-06-15 | 中国科学院过程工程研究所 | 网格切分关系的确定方法、装置、设备和介质 |
CN114091363B (zh) * | 2020-08-04 | 2023-08-08 | 合肥本源量子计算科技有限责任公司 | 基于量子算法的计算流体动力学模拟方法、装置及设备 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103617331A (zh) * | 2013-12-13 | 2014-03-05 | 内蒙古工业大学 | 一种叶片式抛送装置出料管结构形状优化设计方法 |
CN105631068A (zh) * | 2014-10-31 | 2016-06-01 | 北京临近空间飞行器系统工程研究所 | 一种非结构网格cfd计算的网格边界条件处理方法 |
CN105761289A (zh) * | 2016-03-08 | 2016-07-13 | 重庆大学 | 一种提取和分类可展网格曲面的新方法 |
CN106096190A (zh) * | 2016-06-28 | 2016-11-09 | 赫新 | 一种结构/非结构耦合求解cfd的方法 |
Family Cites Families (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20100145668A1 (en) * | 2008-12-04 | 2010-06-10 | Fisher Mark S | Method for dynamic repartitioning in adaptive mesh processing |
US20140324400A1 (en) * | 2013-04-30 | 2014-10-30 | Marquette University | Gesture-Based Visualization System for Biomedical Imaging and Scientific Datasets |
-
2016
- 2016-11-30 CN CN201611074748.1A patent/CN106780747B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103617331A (zh) * | 2013-12-13 | 2014-03-05 | 内蒙古工业大学 | 一种叶片式抛送装置出料管结构形状优化设计方法 |
CN105631068A (zh) * | 2014-10-31 | 2016-06-01 | 北京临近空间飞行器系统工程研究所 | 一种非结构网格cfd计算的网格边界条件处理方法 |
CN105761289A (zh) * | 2016-03-08 | 2016-07-13 | 重庆大学 | 一种提取和分类可展网格曲面的新方法 |
CN106096190A (zh) * | 2016-06-28 | 2016-11-09 | 赫新 | 一种结构/非结构耦合求解cfd的方法 |
Non-Patent Citations (6)
Title |
---|
An Improved LU-SGS Implicit Scheme for High Reynolds Number Flow Computations on Hybrid Unstructured Mesh;WANG Gang等;《Chinese Journal of Aeronautics》;20121231;全文 |
CFD多块网格生成新进展;周天孝等;《力学进展》;19980825;第29卷(第3期);全文 |
CFD并行计算中的多区结构网络二次剖分方法与实现;王勇献等;《计算机研究与发展》;20131231;第50卷(第8期);全文 |
Computational fluid dynamics (CFD) mesh independency techniques Computational fluid dynamics (CFD) mesh independency techniques;K.M. Almohammadi等;《Energy》;20130717;全文 |
三维分块非结构化网格上的可压缩流计算方法;王宝潼等;《航空动力学报》;20091031;第24卷(第10期);全文 |
基于K3PREP流体动力学计算(CFD)的块和网格生成规则;倪小丹等;《湖南工程学院学报》;20030331;第13卷(第1期);全文 |
Also Published As
Publication number | Publication date |
---|---|
CN106780747A (zh) | 2017-05-31 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN103428282B (zh) | 一种云计算数据中心的在线节能控制方法及装置 | |
CN104156835B (zh) | 一种大电网广域分布式一体化拓扑分析方法 | |
CN106780747B (zh) | 一种快速分割cfd计算网格的方法 | |
CN108228724A (zh) | 基于图数据库的电网gis拓扑分析方法及存储介质 | |
CN105787226A (zh) | 四边有限元网格模型的参数化模型重建 | |
CN102136157B (zh) | 一种混凝土三维细观仿真模型及其建立方法 | |
CN111103477B (zh) | 一种基于3d卷积神经网络的电气负载监测方法和系统 | |
CN103150163A (zh) | 一种基于MapReduce模型的并行关联方法 | |
CN102184328A (zh) | 一种土地利用演化ca模型转换规则优化方法 | |
CN104636814A (zh) | 一种随机森林模型的优化方法及系统 | |
CN108711860B (zh) | 一种基于并行计算的配电网变电站-线路联合规划方法 | |
CN101908087A (zh) | 基于gpu的集成电路电源地线网络的并行仿真方法 | |
CN106294540B (zh) | 基于p-stable局部敏感哈希检索数据样式的多点地质统计建模方法 | |
CN104424369A (zh) | 一种fpga映射后网表的时序估算方法 | |
CN113468847A (zh) | 一种基于非整数多倍行高单元的集成电路全局布局方法 | |
CN107276093A (zh) | 基于场景削减的电力系统概率潮流计算方法 | |
CN103984832A (zh) | 一种铝电解槽电场仿真分析方法 | |
CN116431281A (zh) | 一种基于鲸鱼优化算法的虚拟机迁移方法 | |
CN114709815B (zh) | 一种综合gis信息优化的配电网重构和负荷灵活接入方法 | |
CN115001978A (zh) | 一种基于强化学习模型的云租户虚拟网络智能映射方法 | |
CN103870342B (zh) | 云计算环境中的基于结点属性函数的任务核值计算方法 | |
CN110781623B (zh) | 一种用于有限体积法的单元界面生成方法 | |
Wang et al. | Research on Clustream Algorithm Based on Spark | |
CN106202667A (zh) | 约束域优化拉丁超立方设计方法 | |
CN105426626A (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 |