一种气动流场网格无向图的低计算复杂度构造方法_2

文档序号:9865791阅读:来源:国知局
网格单元之间的比较。
【具体实施方式】
[0060] 下面结合附图和具体实施例对本发明技术方案进行详细说明。
[0061] 由于可能存在混合网格单元,需要对网格单元中的网格点进行统一处理。如对图 1左边的四面体单元,包含(1,2, 3, 4)四个网格点。而在网格单元的实际数据表示时,可能 为(1,2, 3, 1,4, 4, 4, 4)。需要剔除冗余的网格点数据,算法如图2所示。设单元E中的网格 点为咕,62,…,如,图2中的行1 - 4找到重复网格点并置为一1,行5 - 7删除值为一1 的网格点数据。
[0062] 设单元E。中的网格点为(曰1,曰2,…,曰:),单元Eb中的网格点为化i,b2,…,叫。气 动流场中的网格单元包括四面体、六面体、Ξ棱锥、金字塔等几种类型,其面数不超过6个, 网格点数不超过8个。图1表示两个网格单元之间的比较。iSame为相同网格点的计数: 如果iSame > 3,则视为邻接网格单元;否则视为非邻接。
[0063] 假设气动流场网格包含Μ个网格点,N个网格单元,本发明的无向图生成方法主要 包括Ξ大步。一是删除每个网格单元中冗余的网格点数据。二是网格点一单元集合的生成, 网格点一单元集合S包含Μ个子集合(S1,S2,…,SM),每个网格点对应一个子集合,每个子 集合包含所有含有该网格点的网格单元的编号。Ξ是根据网格点一单元集合,对每个子集 合中的网格单元进行比较。
[0064] 无向图的数据表达方式包括两部分,一是顶点数(顶点对应气动流场的网格单 元)和边数(对应单元之间的交接面);二是集合Ρ,Ρ包含Ν个子集合任1,口2,一,口脚,子 集合η的所有元素对应编号为η的顶点所有的邻接顶点。顶点数为Ν,令边数为iEdge。 W65] 具体步骤如下:
[0066] 步骤 1 :n = 1 ;
[0067] 步骤2 :根据本方法开始时给出的算法删除网格单元中冗余的网格点数据;
[0068] 步骤 3 :n = n+1 ; W例步骤4 :如果n< = N满足,转步骤2,否则转步骤5 ; 阳070] 步骤5 :建立网格点一单元集合S,S包含Μ个子集合,编号分别为S1,S2,……, SM;每一个网格点对应一个子集合,每个子集合中元素的值η表示编号为η的网格单元包含 该网格点;
[0071] 步骤 6:η = 1;
[0072] 步骤7 :把编号η加入网格单元η中所有的网格点对应的子集合;由于前面已经删 除冗余的网格点数据,所W不会存在重复加入的问题。
[0073] 步骤 8 :η = n+1 ; 阳074] 步骤9 :如果η《N满足,转步骤7,否则转步骤8 ;
[00巧]步骤 10 :η = 1 ;iEdge = 0 ;
[0076] 步骤11 :设网格点一单元子集合Sn中的元素分别为(nl,n2,…,nL);
[0077] 步骤 11-1:1 = 1;
[0078] 步骤11-2 :根据图3中的算法对网格单元η和网格单元nl进行比较,
[00巧]步骤11-3 :如果相同网格点数目iSame大于等于3,转步骤11-4,否则转步骤 11-5 ;
[0080] 步骤11-4 :子集合化加入元素 nl ;iEdge = iEdge+1 ; W81]步骤 11-5 :1 = 1+1 ; 阳0間步骤11-6 :如果1《L满足,转步骤11-2,否则转步骤12 ;
[0083] 步骤 12 :n = n+1 ;
[0084] 步骤13 :如果1《L满足,转步骤11-2,否则转步骤12 ;
[00化]步骤 14 :iEdge = iEdge/2 ;
[0086] 步骤15 :输出无向图顶点数Μ、边数iEdge和集合(Pl,P2,…,PN);所有步骤完成。
[0087] 不同数量的网格在实验平台上的测试数据如表1所示,计时单位为秒。本发明提 出的方法采用Python语言实现,版本为2. 7。操作系统为Windows 7, CPU为Intel Xeon 5680。从表1的测试数据可W看出,相对于无向图生成方法A,本发明的对无向图生成速度 的提升效果十分明显。
[00蝴表1 :本发明与无向图生成方法A的效果对比 [0089]
【主权项】
1. 一种气动流场网格无向图的低计算复杂度构造方法,其特征在于:包括如下步骤: 首先确定网格单元中冗余网格点删除方法和两个网格单元是否相邻的比较方法: 存在混合网格单元时,需要对网格单元中的网格点进行统一处理;设单元E中的网格 点为( ei,e2,…,eK),首先找到重复网格点并置为一 1,再删除值为一 1的网格点数据,从而 将网格单元中冗余网格点删除;具体算法如图2所示; 设单元Ea中的网格点为(a d a2,…,,ai表示单元Ea中的网格点;单元E b中的网格 点为(h,b2,…,bj),bj表示单元Eb中的网格点;iSame为两个网格单元中相同网格点的计 数:如果iSame多3,则这两个网格单元被视为邻接网格单元;否则视为非邻接网格单元; 具体算法如图3所示; 确定了网格单元中冗余网格点删除方法和两个网格单元是否相邻的比较方法之后,假 设气动流场网格包含Μ个网格点,N个网格单元,本发明的无向图生成方法主要包括如下具 体步骤: 定义顶点数为顶点对应气动流场的网格单元的数量,定义边数为对应单元之间的交接 面的数量,则无向图的数据表达方式包括两部分,一是顶点数和边数;二是集合Ρ,Ρ包含Ν 个子集合(Pl,Ρ2,…,ΡΝ),子集合η的所有元素对应编号为η的顶点所有的邻接顶点;令顶 点数为Ν,边数为iEdge ; 具体步骤如下: 步骤1 :n = 1 ; 步骤2 :根据本方法开始时给出的算法删除网格单元中冗余的网格点数据; 步骤 3 :n = n+1 ; 步骤4 :如果n〈 = N满足,转步骤2,否则转步骤5 ; 步骤5 :建立网格点一单元集合S,S包含Μ个子集合,编号分别为S1,S2,……,SM;每 一个网格点对应一个子集合,每个子集合中元素的值η表示编号为η的网格单元包含该网 格点; 步骤6 :n = 1 ; 步骤7 :把编号η加入网格单元η中所有的网格点对应的子集合; 步骤 8 :n = n+1 ; 步骤9 :如果η彡N满足,转步骤7,否则转步骤8 ; 步骤 10 :n = 1 ;iEdge = 0 ; 步骤11 :设网格点一单元子集合Sn中的元素分别为(nl,n2,…,nL); 步骤 11-1 :1 = 1 ; 步骤11-2 :根据本方法开始时的算法对网格单元η和网格单元nl进行比较, 步骤11-3 :如果相同网格点数目iSame大于等于3,转步骤11-4,否则转步骤11-5 ; 步骤11-4 :子集合Pn加入元素 nl ;iEdge = iEdge+Ι ; 步骤 11-5 :1 = 1+1 ; 步骤11-6 :如果1彡L满足,转步骤11-2,否则转步骤12 ; 步骤 12 :n = n+1 ; 步骤13 :如果1 < L满足,转步骤11-2,否则转步骤12 ; 步骤 14 :iEdge = iEdge/2 ; 步骤15 :输出无向图顶点数M、边数iEdge和集合(Pl,P2, ···,PN);所有步骤完成。2. 如权利要求1所述的一种气动流场网格无向图的低计算复杂度构造方法,其特征在 于:气动流场网格以Tecplot数据格式作为输入文件;输出数据文件包含N+1行,第1行包 含顶点数N和边数iEdge ;剩下的N行分别为子集合Ρη(1< η < N)中的数据。3. 如权利要求1所述的一种气动流场网格无向图的低计算复杂度构造方法,其特征在 于:本方法具体操作流程采用轻量级Python脚本语言实现,大小确定的集合S和Ρ采用数 组实现,大小不确定的子集合采用list ()动态对象实现。
【专利摘要】本发明属于高性能并行计算技术领域,具体涉及一种气动流场网格无向图的低计算复杂度构造方法。本发明的无向图生成方法主要包括三大步。一是删除每个网格单元中冗余的网格点数据。二是网格点-单元集合的生成,网格点-单元集合S包含M个子集合(S1,S2,…,SM),每个网格点对应一个子集合,每个子集合包含所有含有该网格点的网格单元的编号。三是根据网格点-单元集合,对每个子集合中的网格单元进行比较。本发明能够有效提高气动流场网格无向图生成的速度;网格量越大,提升效果越明显。
【IPC分类】G06F17/50
【公开号】CN105631067
【申请号】CN201410602341
【发明人】龚春叶, 陈政, 王玲, 禹彩辉, 方洪, 郑昭虎, 高鹏, 张星, 郭灵犀
【申请人】北京临近空间飞行器系统工程研究所, 中国运载火箭技术研究院
【公开日】2016年6月1日
【申请日】2014年10月31日
当前第2页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1