CN105631067A - 一种气动流场网格无向图的低计算复杂度构造方法 - Google Patents
一种气动流场网格无向图的低计算复杂度构造方法 Download PDFInfo
- Publication number
- CN105631067A CN105631067A CN201410602341.6A CN201410602341A CN105631067A CN 105631067 A CN105631067 A CN 105631067A CN 201410602341 A CN201410602341 A CN 201410602341A CN 105631067 A CN105631067 A CN 105631067A
- Authority
- CN
- China
- Prior art keywords
- grid
- grid cell
- mesh point
- subclass
- unit
- 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
Landscapes
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
Abstract
本发明属于高性能并行计算技术领域,具体涉及一种气动流场网格无向图的低计算复杂度构造方法。本发明的无向图生成方法主要包括三大步。一是删除每个网格单元中冗余的网格点数据。二是网格点-单元集合的生成,网格点-单元集合S包含M个子集合(S1,S2,…,SM),每个网格点对应一个子集合,每个子集合包含所有含有该网格点的网格单元的编号。三是根据网格点-单元集合,对每个子集合中的网格单元进行比较。本发明能够有效提高气动流场网格无向图生成的速度;网格量越大,提升效果越明显。
Description
技术领域
本发明属于高性能并行计算技术领域,具体涉及一种气动流场网格无向图的低计算复杂度构造方法。
背景技术
CFD(计算流体力学)是通过在计算机上数值求解流体与气体动力学基本方程,获取各种条件下流动的数据和作用在绕流物体上的力、力矩、流动图像和热量的学科,在各类航空、航天飞行器的气动外形设计和优化中发挥了重要作用。CFD计算一般采用迭代的方式进行,达到收敛条件需要数千到数万次迭代,从而需要采用并行计算技术来加快计算速度。
随着并行数值计算方法的不断进步以及高性能计算机技术的迅速发展,并行计算在航空航天领域气动流场数值模拟的作用和优势越来越明显,在相关项目前期方案论证、设计和分析优化中发挥越来越重要的作用。例如波音公司就认为高性能计算能够加速数值模拟过程、增强模拟能力和改善模拟精度,得到更加高效的飞行器和更少的翼形和飞行测试,从而达到缩短设计开发过程的同时保持较低的花费。
CFD并行计算一般采用分区并行的方式,分区方法主要有两种:
(1)人工分区,指气动流场网格生成时人为指定其边界,分区大小(网格数量)不一,并行计算时难以达到负载平衡,从而需要对大分区进行重新分区以改进负载平衡。
(2)自动分区,指由Metis程序等来对网格进行剖分。
无论是方法1中的重新分区或者方法2都需要确定剖分出来的不同分区之间的内分区边界及边界单元所属分区,从而需要对相应流场网格生成无向图,确定网格单元之间的连接关系。无向图中的顶点对应流场的网格单元,无向图中的边对应三维网格单元之间的交界面。
通常的气动流场网格数据可以用Tecplot形式等来表达,主要包含两个方面的数据:
(1)M个网格点的坐标,如(x1,y1,z1),(x2,y2,z2),……(xM,yM,zM),其编号为1、2、……、M。
(2)N个网格单元,每个网格单元由若干个网格点组成,编号为1、2、……、N。
判断两个网格单元之间是否有邻接关系可以用相同网格点数来判别,如果相同网格点数目大于等于3则可确定两个网格单元为邻接关系。在对应的无向图中表示为两个顶点之间存在一条边。
因为依赖的是图论等相关理论基础,具有科研价值,目前国内外研究对无向图剖分的研究很多。但是对于如何针对气动流场网格生成无向图,没有见到相关公开的研究工作或者专利。
常用的气动流场网格无向图生成可以采用顺序比较的方式,命名为无向图生成方法A:
(1)1号网格单元分别与2,3,……,N号网格单元中的网格点进行比较,找出相同网格点数目大于等于3的网格单元。假设n号网格单元与1号邻接,由于是无向图,分别在1号网格单元的邻接列表中添加编号n(代表n是1的邻居),在n号网格单元的邻接列表中添加编号1(代表1是n的邻居)。
(2)2号网格单元分别与3,4,……,N号网格单元相比较,找出邻接网格单元,并对邻接列表进行修改。
(3)依次进行,直至N号网格单元。
无向图生成方法A中主要的操作是网格单元之间的网格点的比较,计为一个操作,则无向图生成方法A的需要的数为:
其计算复杂度为O(N2)。这对于大网格(网格量单元数目多),如百万、千万量级、甚至更大的网格,其计算量是无法接受的。与此同时,网格量大的网格更加依靠并行计算技术,需要生成无向图进行剖分。
因此,亟需研制一种计算量低、计算复杂度低的气动流场网格无向图生成方法,满足大网格无向图的生成需求。
发明内容
本发明要解决的技术问题是提供一种气动流场网格无向图的低计算复杂度构造方法,以提高气动流场网格无向图生成速度,解决气动流场网格无向图生成的计算量过大的问题。
为了实现这一目的,本发明采取的技术方案是:
一种气动流场网格无向图的低计算复杂度构造方法,包括如下步骤:
首先确定网格单元中冗余网格点删除方法和两个网格单元是否相邻的比较方法:
存在混合网格单元时,需要对网格单元中的网格点进行统一处理;设单元E中的网格点为(e1,e2,…,eK),首先找到重复网格点并置为-1,再删除值为-1的网格点数据,从而将网格单元中冗余网格点删除;具体算法如图2所示;
设单元Ea中的网格点为(a1,a2,…,aI),ai表示单元Ea中的网格点;单元Eb中的网格点为(b1,b2,…,bJ),bj表示单元Eb中的网格点;iSame为两个网格单元中相同网格点的计数:如果iSame≥3,则这两个网格单元被视为邻接网格单元;否则视为非邻接网格单元;具体算法如图3所示;
确定了网格单元中冗余网格点删除方法和两个网格单元是否相邻的比较方法之后,假设气动流场网格包含M个网格点,N个网格单元,本发明的无向图生成方法主要包括如下具体步骤:
定义顶点数为顶点对应气动流场的网格单元的数量,定义边数为对应单元之间的交接面的数量,则无向图的数据表达方式包括两部分,一是顶点数和边数;二是集合P,P包含N个子集合(P1,P2,…,PN),子集合n的所有元素对应编号为n的顶点所有的邻接顶点;令顶点数为N,边数为iEdge;
具体步骤如下:
步骤1:n=1;
步骤2:根据本方法开始时给出的算法删除网格单元中冗余的网格点数据;
步骤3:n=n+1;
步骤4:如果n<=N满足,转步骤2,否则转步骤5;
步骤5:建立网格点-单元集合S,S包含M个子集合,编号分别为S1,S2,……,SM;每一个网格点对应一个子集合,每个子集合中元素的值n表示编号为n的网格单元包含该网格点;
步骤6:n=1;
步骤7:把编号n加入网格单元n中所有的网格点对应的子集合;
步骤8:n=n+1;
步骤9:如果n≤N满足,转步骤7,否则转步骤8;
步骤10:n=1;iEdge=0;
步骤11:设网格点-单元子集合Sn中的元素分别为(n1,n2,…,nL);
步骤11-1:l=1;
步骤11-2:根据本方法开始时的算法对网格单元n和网格单元nl进行比较,
步骤11-3:如果相同网格点数目iSame大于等于3,转步骤11-4,否则转步骤11-5;
步骤11-4:子集合Pn加入元素nl;iEdge=iEdge+1;
步骤11-5:l=l+1;
步骤11-6:如果l≤L满足,转步骤11-2,否则转步骤12;
步骤12:n=n+1;
步骤13:如果l≤L满足,转步骤11-2,否则转步骤12;
步骤14:iEdge=iEdge/2;
步骤15:输出无向图顶点数M、边数iEdge和集合(P1,P2,…,PN);所有步骤完成。
进一步的,如上所述的一种气动流场网格无向图的低计算复杂度构造方法,气动流场网格以Tecplot数据格式作为输入文件;输出数据文件包含N+1行,第1行包含顶点数N和边数iEdge;剩下的N行分别为子集合Pn(1≤n≤N)中的数据。
进一步的,如上所述的一种气动流场网格无向图的低计算复杂度构造方法,本方法具体操作流程采用轻量级Python脚本语言实现,大小确定的集合S和P采用数组实现,大小不确定的子集合采用list()动态对象实现。
本发明与常用的无向图生成方法相比有益效果为:
(1)能够有效提高气动流场网格无向图生成的速度;
(2)网格量越大,提升效果越明显;
(3)本发明提出的方法的计算复杂度为O(N)。
附图说明
图1为网格单元中冗余网格点数据表示方法;
图2为网格单元中冗余网格点删除;
图3为网格单元之间的比较。
具体实施方式
下面结合附图和具体实施例对本发明技术方案进行详细说明。
由于可能存在混合网格单元,需要对网格单元中的网格点进行统一处理。如对图1左边的四面体单元,包含(1,2,3,4)四个网格点。而在网格单元的实际数据表示时,可能为(1,2,3,1,4,4,4,4)。需要剔除冗余的网格点数据,算法如图2所示。设单元E中的网格点为(e1,e2,…,eK),图2中的行1-4找到重复网格点并置为-1,行5-7删除值为-1的网格点数据。
设单元Ea中的网格点为(a1,a2,…,aI),单元Eb中的网格点为(b1,b2,…,bJ)。气动流场中的网格单元包括四面体、六面体、三棱锥、金字塔等几种类型,其面数不超过6个,网格点数不超过8个。图1表示两个网格单元之间的比较。iSame为相同网格点的计数:如果iSame≥3,则视为邻接网格单元;否则视为非邻接。
假设气动流场网格包含M个网格点,N个网格单元,本发明的无向图生成方法主要包括三大步。一是删除每个网格单元中冗余的网格点数据。二是网格点-单元集合的生成,网格点-单元集合S包含M个子集合(S1,S2,…,SM),每个网格点对应一个子集合,每个子集合包含所有含有该网格点的网格单元的编号。三是根据网格点-单元集合,对每个子集合中的网格单元进行比较。
无向图的数据表达方式包括两部分,一是顶点数(顶点对应气动流场的网格单元)和边数(对应单元之间的交接面);二是集合P,P包含N个子集合(P1,P2,…,PN),子集合n的所有元素对应编号为n的顶点所有的邻接顶点。顶点数为N,令边数为iEdge。
具体步骤如下:
步骤1:n=1;
步骤2:根据本方法开始时给出的算法删除网格单元中冗余的网格点数据;
步骤3:n=n+1;
步骤4:如果n<=N满足,转步骤2,否则转步骤5;
步骤5:建立网格点-单元集合S,S包含M个子集合,编号分别为S1,S2,……,SM;每一个网格点对应一个子集合,每个子集合中元素的值n表示编号为n的网格单元包含该网格点;
步骤6:n=1;
步骤7:把编号n加入网格单元n中所有的网格点对应的子集合;由于前面已经删除冗余的网格点数据,所以不会存在重复加入的问题。
步骤8:n=n+1;
步骤9:如果n≤N满足,转步骤7,否则转步骤8;
步骤10:n=1;iEdge=0;
步骤11:设网格点-单元子集合Sn中的元素分别为(n1,n2,…,nL);
步骤11-1:l=1;
步骤11-2:根据图3中的算法对网格单元n和网格单元nl进行比较,
步骤11-3:如果相同网格点数目iSame大于等于3,转步骤11-4,否则转步骤11-5;
步骤11-4:子集合Pn加入元素nl;iEdge=iEdge+1;
步骤11-5:l=l+1;
步骤11-6:如果l≤L满足,转步骤11-2,否则转步骤12;
步骤12:n=n+1;
步骤13:如果l≤L满足,转步骤11-2,否则转步骤12;
步骤14:iEdge=iEdge/2;
步骤15:输出无向图顶点数M、边数iEdge和集合(P1,P2,…,PN);所有步骤完成。
不同数量的网格在实验平台上的测试数据如表1所示,计时单位为秒。本发明提出的方法采用Python语言实现,版本为2.7。操作系统为Windows7,CPU为IntelXeon5680。从表1的测试数据可以看出,相对于无向图生成方法A,本发明的对无向图生成速度的提升效果十分明显。
表1:本发明与无向图生成方法A的效果对比
(网格点数,网格单元数) | 方法A | 本发明 |
(147,552) | 0.78 | 0.21 |
(28805,152318) | 60324.84 | 88.18 |
Claims (3)
1.一种气动流场网格无向图的低计算复杂度构造方法,其特征在于:包括如下步骤:
首先确定网格单元中冗余网格点删除方法和两个网格单元是否相邻的比较方法:
存在混合网格单元时,需要对网格单元中的网格点进行统一处理;设单元E中的网格点为(e1,e2,…,eK),首先找到重复网格点并置为-1,再删除值为-1的网格点数据,从而将网格单元中冗余网格点删除;具体算法如图2所示;
设单元Ea中的网格点为(a1,a2,…,aI),ai表示单元Ea中的网格点;单元Eb中的网格点为(b1,b2,…,bJ),bj表示单元Eb中的网格点;iSame为两个网格单元中相同网格点的计数:如果iSame≥3,则这两个网格单元被视为邻接网格单元;否则视为非邻接网格单元;具体算法如图3所示;
确定了网格单元中冗余网格点删除方法和两个网格单元是否相邻的比较方法之后,假设气动流场网格包含M个网格点,N个网格单元,本发明的无向图生成方法主要包括如下具体步骤:
定义顶点数为顶点对应气动流场的网格单元的数量,定义边数为对应单元之间的交接面的数量,则无向图的数据表达方式包括两部分,一是顶点数和边数;二是集合P,P包含N个子集合(P1,P2,…,PN),子集合n的所有元素对应编号为n的顶点所有的邻接顶点;令顶点数为N,边数为iEdge;
具体步骤如下:
步骤1:n=1;
步骤2:根据本方法开始时给出的算法删除网格单元中冗余的网格点数据;
步骤3:n=n+1;
步骤4:如果n<=N满足,转步骤2,否则转步骤5;
步骤5:建立网格点-单元集合S,S包含M个子集合,编号分别为S1,S2,……,SM;每一个网格点对应一个子集合,每个子集合中元素的值n表示编号为n的网格单元包含该网格点;
步骤6:n=1;
步骤7:把编号n加入网格单元n中所有的网格点对应的子集合;
步骤8:n=n+1;
步骤9:如果n≤N满足,转步骤7,否则转步骤8;
步骤10:n=1;iEdge=0;
步骤11:设网格点-单元子集合Sn中的元素分别为(n1,n2,…,nL);
步骤11-1:l=1;
步骤11-2:根据本方法开始时的算法对网格单元n和网格单元nl进行比较,
步骤11-3:如果相同网格点数目iSame大于等于3,转步骤11-4,否则转步骤11-5;
步骤11-4:子集合Pn加入元素nl;iEdge=iEdge+1;
步骤11-5:l=l+1;
步骤11-6:如果l≤L满足,转步骤11-2,否则转步骤12;
步骤12:n=n+1;
步骤13:如果l≤L满足,转步骤11-2,否则转步骤12;
步骤14:iEdge=iEdge/2;
步骤15:输出无向图顶点数M、边数iEdge和集合(P1,P2,…,PN);所有步骤完成。
2.如权利要求1所述的一种气动流场网格无向图的低计算复杂度构造方法,其特征在于:气动流场网格以Tecplot数据格式作为输入文件;输出数据文件包含N+1行,第1行包含顶点数N和边数iEdge;剩下的N行分别为子集合Pn(1≤n≤N)中的数据。
3.如权利要求1所述的一种气动流场网格无向图的低计算复杂度构造方法,其特征在于:本方法具体操作流程采用轻量级Python脚本语言实现,大小确定的集合S和P采用数组实现,大小不确定的子集合采用list()动态对象实现。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410602341.6A CN105631067A (zh) | 2014-10-31 | 2014-10-31 | 一种气动流场网格无向图的低计算复杂度构造方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410602341.6A CN105631067A (zh) | 2014-10-31 | 2014-10-31 | 一种气动流场网格无向图的低计算复杂度构造方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN105631067A true CN105631067A (zh) | 2016-06-01 |
Family
ID=56045999
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201410602341.6A Pending CN105631067A (zh) | 2014-10-31 | 2014-10-31 | 一种气动流场网格无向图的低计算复杂度构造方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN105631067A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106649234A (zh) * | 2016-11-23 | 2017-05-10 | 西安昆仑工业(集团)有限责任公司 | 火炮炮口流场数据可视化处理方法 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP1021798A2 (en) * | 1997-10-08 | 2000-07-26 | Maria-Cecillia Rivara | Longest-edge refinement and derefinement system and method for automatic mesh generation |
CN102012953A (zh) * | 2010-11-04 | 2011-04-13 | 西北工业大学 | Cfd/csd耦合求解非线性气动弹性仿真方法 |
CN102043887A (zh) * | 2010-12-31 | 2011-05-04 | 中国航空工业集团公司第六三一研究所 | 基于误差估计的网格自适应方法 |
CN103838852A (zh) * | 2014-03-13 | 2014-06-04 | 北京大学工学院南京研究院 | 一种快速查找多块结构化网格对接关系的方法 |
-
2014
- 2014-10-31 CN CN201410602341.6A patent/CN105631067A/zh active Pending
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP1021798A2 (en) * | 1997-10-08 | 2000-07-26 | Maria-Cecillia Rivara | Longest-edge refinement and derefinement system and method for automatic mesh generation |
CN102012953A (zh) * | 2010-11-04 | 2011-04-13 | 西北工业大学 | Cfd/csd耦合求解非线性气动弹性仿真方法 |
CN102043887A (zh) * | 2010-12-31 | 2011-05-04 | 中国航空工业集团公司第六三一研究所 | 基于误差估计的网格自适应方法 |
CN103838852A (zh) * | 2014-03-13 | 2014-06-04 | 北京大学工学院南京研究院 | 一种快速查找多块结构化网格对接关系的方法 |
Non-Patent Citations (3)
Title |
---|
MEGHANA ATHADKAR, S S DESAI: "Importance of The Extent of Far-Field Boundaries And of The Grid Topology in The CFD Simulation of External Flows", 《INTERNATIONAL JOURNAL OF MECHANICAL AND PRODUCTION ENGINEERING》 * |
刘鑫,陆林生: "重叠网格CFD并行计算的通信优化研究", 《计算机工程与设计》 * |
车永刚 等: "一个结构网格并行CFD程序的单机性能优化", 《计算机科学》 * |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106649234A (zh) * | 2016-11-23 | 2017-05-10 | 西安昆仑工业(集团)有限责任公司 | 火炮炮口流场数据可视化处理方法 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
Levy et al. | Summary of data from the fifth AIAA CFD drag prediction workshop | |
JP6784780B2 (ja) | 大規模再生可能エネルギーのデータについて確率モデルを構築する方法 | |
CN101976221B (zh) | 一种基于粒子群禁忌组合的并行测试任务调度方法及平台 | |
Roget et al. | Robust and efficient overset grid assembly for partitioned unstructured meshes | |
Löhner | Recent advances in parallel advancing front grid generation | |
Löhner | A 2nd generation parallel advancing front grid generator | |
CN112541584B (zh) | 深度神经网络模型并行模式选择方法 | |
CN103838852A (zh) | 一种快速查找多块结构化网格对接关系的方法 | |
CN113343427B (zh) | 一种基于卷积神经网络的结构拓扑构型预测方法 | |
CN112414668B (zh) | 一种风洞试验数据静气弹修正方法、装置、设备及介质 | |
CN112286886A (zh) | 一种多块结构网格数据压缩存储格式 | |
CN101957760A (zh) | 一种过程执行时间的测定方法 | |
CN103698809A (zh) | 一种无加速比瓶颈的克希霍夫叠前时间偏移并行方法 | |
CN103218493B (zh) | 一种基于多重网格的快速等几何分析数值模拟方法 | |
CN103778001A (zh) | 一种基于dag图的仿真任务并行度分析方法 | |
CN105631067A (zh) | 一种气动流场网格无向图的低计算复杂度构造方法 | |
Gerhold et al. | The parallel mesh deformation of the DLR TAU-code | |
CN104573331A (zh) | 一种基于MapReduce的K近邻数据预测方法 | |
CN114676522B (zh) | 融合gan和迁移学习的气动形状优化设计方法及系统及设备 | |
CN107194079B (zh) | 像素细分载荷传递方法和系统 | |
CN116561885A (zh) | 数据驱动的超临界翼型及其流场的映射方法和系统 | |
Kaminsky et al. | Adaptive sampling techniques for surrogate modeling to create high-dimension aerodynamic loading response surfaces | |
CN104239975A (zh) | 基于改进离散粒子群算法的船舶引航排班方法 | |
CN114297877A (zh) | 杆结构超材料结构多工况仿真自动化系统及方法 | |
CN105550384B (zh) | 气动流场网格Metis自动分区的一种后处理方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
RJ01 | Rejection of invention patent application after publication | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20160601 |