一种从非结构网格中重构原结构网格的方法、介质及装置与流程

文档序号:29935427发布日期:2022-05-07 13:30阅读:166来源:国知局
一种从非结构网格中重构原结构网格的方法、介质及装置与流程

1.本发明涉及计算机辅助工程(cae)、计算流体力学(cfd)和数值模拟软件技术领域,具体而言,涉及一种从非结构网格中重构原结构网格的方法、介质及装置。


背景技术:

2.通过将结构网格转化为非结构网格的方式,可以实现非结构流场求解器对结构网格的支持,从而综合利用结构网格的规则性排列特征,获取更光滑的流场细节,达到拓展非结构流场求解器应用范围的目的。与通用的非结构网格类似,在对非结构化的结构网格求解时,可以采用几何多重网格技术提高计算效率。由原始密网格聚合得到粗网格的过程是几何多重网格技术的关键步骤之一,目前的流场求解器在利用非结构化的结构网格进行流场计算时,通常是按照非结构网格的多重聚合方式处理的,但由于非结构网格的空间分布较结构网格约束更少,适用于非结构网格的通用网格聚合技术得到的粗网格质量可控性差,而较差的粗网格会影响计算的加速效果,更有甚者可能导致计算发散。
3.将结构网格按照网格的排列方向进行粗网格聚合,可以有效保证粗网格的质量,但是对于非结构化的结构网格而言,执行此操作却存在很大的困难,原因是该方法需要用到原始结构网格的特有信息,具体包括网格块数以及各个网格块沿各个方向的单元数等信息,但是这部分信息在转化为非结构网格时丢失了,需要重新构造出来。因此,对于非结构化的结构网格计算而言,为了优化非结构流场求解器的几何多重网格加速功能,亟需解决原始结构网格的信息重构问题。


技术实现要素:

4.本发明旨在提供一种从非结构网格中重构原结构网格的方法、介质及装置,以解决当前非结构化的结构网格不能按照结构网格方式进行多重聚合的问题。
5.本发明提供的一种从非结构网格中重构原结构网格的方法,包括如下步骤:步骤一,生成网格:通过网格软件生成结构网格,按照非结构网格的格式输出非结构网格数据;步骤二,构建相邻关系:遍历非结构网格数据,将拥有相同节点的面视作同一个面,将拥有同一个面的两个网格单元标记为相邻网格单元,从而构建网格单元之间的相邻关系;步骤三,重构网格行:读入一个网格单元并作为行首网格单元和层首网格单元装载入结构块,依次读入网格单元,并检查与前序网格单元的相邻关系:(1)如相邻,则继续读入网格单元;(2)如不相邻,则检查该网格单元是否与行首网格单元相邻:(2.1)如相邻,则进入步骤四;(2.2)如不相邻,当前结构块结束重构;
(3)本行所含的网格单元个数即为本结构块的行的长度,记为idim;步骤四,重构网格层:将步骤三最后读入的网格单元作为行首网格单元装载入结构块,并依次读入新的网格单元,检查该网格单元是否符合结构网格的行排列规则:(1)如符合结构网格的行排列规则,则装载并继续读入网格单元;(2)如不符合结构网格的行排列规则,检查本行是否已满,即本行的长度是否等于本结构块的行的长度idim:(2.1)如不相等,则当前结构块结束重构;(2.2)如相等,则检查是否与行首网格单元相邻:(2.2.1)如相邻,则继续重构新的行;(2.2.2)否则检查是否与层首网格单元相邻:(2.2.2.1)如不相邻,则当前结构块结束重构;(2.2.2.2)如相邻,则进入步骤五;(3)统计本层中包含的行的个数,即为本结构块的列的长度,记为jdim;步骤五,重构网格块:将步骤四最后读入的网格单元作为层首网格单元装载入结构块,并读入新的网格单元,检查该网格单元是否符合结构网格的层排列规则:(1)如符合结构网格的层排列规则,则装载并读入新的网格单元;(2)如不符合结构网格的层排列规则,则比较本层的列的长度与步骤四得到的本结构块的列的长度jdim的差值:(2.1)如差值小于0,则当前结构块结束重构;(2.2)如差值等于0,则检查最后一个网格单元是否与层首网格单元相邻:(2.2.1)如相邻,则重构本结构块的下一个网格层;(2.2.2)如不相邻,则当前结构块结束重构;(2.3)如差值大于0,则检查该网格单元是否与《1,jdim+1,本层》网格单元相邻:(2.3.1)如相邻,则本层前jdim列归当前结构块,当前结构块结束重构;(2.3.2)如不相邻,则舍弃本层,当前结构块结束重构;(3)检查网格单元是否处理完毕,如处理完毕,则整个过程结束,否则回到步骤三继续处理。
6.在一些实施例中,所述行排列规则是指:读入的除行首网格单元以外的网格单元与前序网格单元相邻,且与前序行对应网格单元相邻。进一步,所述读入的网格单元是指除行首网格单元以外的网格单元。
7.在一些实施例中,所述层排列规则是指:读入的网格单元与前序网格单元相邻,且与前序行对应网格单元相邻,且与前序层对应网格单元相邻。进一步,所述读入的网格单元是指除行首网格单元以外的网格单元。
8.本发明还提供一种计算机终端可读介质,存储有计算机终端可执行指令,所述计算机终端可执行指令用于执行上述的从非结构网格中重构原结构网格的方法。
9.本发明还提供一种计算装置,包括:至少一个处理器;以及与所述至少一个处理器通信连接的存储器;其中,所述存储
器存储有可被所述至少一个处理器执行的指令,所述指令被所述至少一个处理器执行,以使所述至少一个处理器能够执行上述的从非结构网格中重构原结构网格的方法。
10.综上所述,由于采用了上述技术方案,本发明的有益效果是:本发明实现了从非结构化的结构网格中重构原结构网格,能够解决当前非结构化的结构网格不能按照结构网格方式进行多重聚合的问题。
附图说明
11.为了更清楚地说明本发明实施例的技术方案,下面将对实施例中的附图作简单地介绍,应当理解,以下附图仅示出了本发明的某些实施例,因此不应被看作是对范围的限定,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他相关的附图。
12.图1为本发明实施例涉及的结构块的拓扑示意图。
13.图2为本发明实施例的从非结构网格中重构原结构网格的方法的流程图。
14.图3为本发明实施例应用从非结构网格中重构原结构网格的方法的结构块示例的拓扑示意图。
具体实施方式
15.为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。通常在此处附图中描述和示出的本发明实施例的组件可以以各种不同的配置来布置和设计。
16.因此,以下对在附图中提供的本发明的实施例的详细描述并非旨在限制要求保护的本发明的范围,而是仅仅表示本发明的选定实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
17.实施例本实施例涉及的结构块如图1所示,分为行、列和高三个方向,行方向的网格单元数为idim,列方向的网格单元数为jdim,高方向的网格单元数为kdim,行和列组成网格层,图1中对行网格单元和层网格单元进行了标记。此外,为便于表述,使用符号《i,j,k》表示结构块中的行指标i,列指标j,高指标k对应的网格单元,使用符号《n》表示全局统一编号的第n个网格单元。由此,如图2所示,本实施例提出一种从非结构网格中重构原结构网格的方法,包括如下步骤:步骤一,生成网格:通过网格软件生成结构网格,按照非结构网格的格式输出非结构网格数据;步骤二,构建相邻关系:遍历非结构网格数据,将拥有相同节点的面视作同一个面,将拥有同一个面的两个网格单元标记为相邻网格单元,从而构建网格单元之间的相邻关系;步骤三,重构网格行:读入一个网格单元并作为行首网格单元和层首网格单元装载入结构块,依次读入
网格单元,并检查与前序网格单元的相邻关系:(1)如相邻,则继续读入网格单元;(2)如不相邻,则检查该网格单元是否与行首网格单元相邻:(2.1)如相邻,则进入步骤四;(2.2)如不相邻,当前结构块结束重构;(3)本行所含的网格单元个数即为本结构块的行的长度,记为idim;步骤四,重构网格层:将步骤三最后读入的网格单元作为行首网格单元装载入结构块,并依次读入新的网格单元,检查该网格单元是否符合结构网格的行排列规则(行排列规则是指:读入的除行首网格单元以外的网格单元与前序网格单元相邻,且与前序行对应网格单元相邻;进一步,所述读入的网格单元是指除行首网格单元以外的网格单元):(1)如符合结构网格的行排列规则,则装载并继续读入网格单元;(2)如不符合结构网格的行排列规则,检查本行是否已满,即本行的长度是否等于本结构块的行的长度idim:(2.1)如不相等,则当前结构块结束重构;(2.2)如相等,则检查是否与行首网格单元相邻:(2.2.1)如相邻,则继续重构新的行;(2.2.2)否则检查是否与层首网格单元相邻:(2.2.2.1)如不相邻,则当前结构块结束重构;(2.2.2.2)如相邻,则进入步骤五;(3)统计本层中包含的行的个数,即为本结构块的列的长度,记为jdim;步骤五,重构网格块:将步骤四最后读入的网格单元作为层首网格单元装载入结构块,并读入新的网格单元,检查该网格单元是否符合结构网格的层排列规则(层排列规则是指:读入的网格单元与前序网格单元相邻,且与前序行对应网格单元相邻,且与前序层对应网格单元相邻;进一步,所述读入的网格单元是指除行首网格单元以外的网格单元):(1)如符合结构网格的层排列规则,则装载并读入新的网格单元;(2)如不符合结构网格的层排列规则,则比较本层的列的长度与步骤四得到的本结构块的列的长度jdim的差值:(2.1)如差值小于0,则当前结构块结束重构;(2.2)如差值等于0,则检查最后一个网格单元是否与层首网格单元相邻:(2.2.1)如相邻,则重构本结构块的下一个网格层;(2.2.2)如不相邻,则当前结构块结束重构;(2.3)如差值大于0,则检查该网格单元是否与《1,jdim+1,本层》网格单元相邻:(2.3.1)如相邻,则本层前jdim列归当前结构块,当前结构块结束重构;(2.3.2)如不相邻,则舍弃本层,当前结构块结束重构;(3)检查网格单元是否处理完毕,如处理完毕,则整个过程结束,否则回到步骤三继续处理。
18.此外,在一些实施例中,提出一种计算机终端可读介质,存储有计算机终端可执行
指令,所述计算机终端可执行指令用于执行如前文实施例所述的从非结构网格中重构原结构网格的方法。计算机可读介质的示例包括磁性存储介质(例如,软盘、硬盘等)、光学记录介质(例如,cd-rom、dvd等)或存储器,如存储卡、rom或ram等。计算机可读介质也可以分布在网络连接的计算机系统上,例如是应用程序的商店。
19.此外,在一些实施例中,提出一种计算装置,包括:至少一个处理器;以及与所述至少一个处理器通信连接的存储器;其中,所述存储器存储有可被所述至少一个处理器执行的指令,所述指令被所述至少一个处理器执行,以使所述至少一个处理器能够执行如前文实施例所述的从非结构网格中重构原结构网格的方法。计算装置的示例包括pc机、平板电脑、智能手机或pda等。
20.示例:所述从非结构网格中重构原结构网格的方法包括如下步骤:步骤一,生成网格:通过网格软件pointwise生成结构网格,如图3所示,生成的结构网格由2个结构块组成,将每个结构块写成“行
×

×
高”的形式,分别为5
×2×
2和5
×3×
2,将结构网格转化为非结构网格的格式cgns(cfd,general notation system),按照非结构网格的格式输出非结构网格数据。
21.步骤二,构建相邻关系:遍历非结构网格数据,将拥有相同节点的面视作同一个面,将拥有同一个面的两个网格单元标记为相邻网格单元,从而构建网格单元之间的相邻关系。
22.步骤三,重构网格行:读入网格单元《1》并作为行首网格单元和层首网格单元装载入结构块,依次读入网格单元《2》、网格单元《3》、网格单元《4》、网格单元《5》,直到网格单元《6》不与网格单元《5》相邻(备注:图3中网格单元《6》在网格单元《1》的后面,未显示),且与行首网格单元《1》相邻,则步骤三结束,当前结构块的行的长idim=5,进入步骤四。
23.步骤四,重构网格层:将步骤三最后读入的网格单元《6》作为行首网格单元装载入结构块,并依次读入新的网格单元《7》、网格单元《8》、网格单元《9》、网格单元《10》,均符合结构网格的行排列规则,装载入结构块;读入网格单元《11》,不符合结构网格的行排列规则,检查本行的网格单元数为5,等于结构块的行的长度idim,故本行已满,且与行首网格单元《6》相邻,与层首网格单元《1》相邻,故步骤四结束;当前结构块的列的长度jdim=2,进入步骤五。
24.步骤五,重构网格块:将步骤四最后读入的网格单元《11》作为层首网格单元装载入结构块来构建第2层,并读入新的网格单元《12》至《20》,均符合结构网格的层排列规则,装载入结构块;读入网格单元《21》,不符合结构网格的层排列规则,检查当前层的列值为2,等于当前结构块的列的长度jdim=2,且与层首网格单元《11》相邻,故回到步骤五的起始位置。以《21》为层首网格单元开始构建第3层,依次读入网格单元《22》至《35》,均符合结构网格的层排列规则,装载入结构块;读入网格单元《36》,不符合结构网格的层排列规则,此时本层的列值为3,大于当前结构块的列的长度jdim=2,故进一步检查网格《36》是否与当前层的《1,jdim+1,本层》网格单元即《1,3,3》(亦全局网格单元的网格单元《31》)相邻,结果为不相邻,故舍弃当前
层,当前结构块结束重构。
25.统计当前结构块信息,包含的网格单元为《1》至《20》,行idim=5,列jdim=2,高kdim=2。
26.检查网格单元未处理完毕,回到步骤三继续处理,重构第二个结构块。依次执行步骤三、步骤四和步骤五,得到第二个结构块包含的网格单元为《21》至《50》,行idim=5,列jdim=3,高kdim=2。网格单元处理完毕后,全部流程结束。
27.通过以上从非结构化的结构网格中重构原结构网格,得到2个结构块,写成“行
×

×
高”的形式分别为5
×2×
2和5
×3×
2,与原始结构网格包含的2个结构块一致。
28.以上所述仅为本发明的优选实施例而已,并不用于限制本发明,对于本领域的技术人员来说,本发明可以有各种更改和变化。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1