基于全局加密的超大规模非结构网格生成方法技术

技术编号:16663804 阅读:249 留言:0更新日期:2017-11-30 12:25
本发明专利技术公开了一种基于全局加密的超大规模非结构网格生成方法,包括如下步骤:步骤一、在初始网格单元的基础上,将所有网格单元剖分加密;步骤二、对剖分加密后的网格单元进行物面保形;步骤三、采用并行化的径向基函数方法实现空间点变形。与现有技术相比,本发明专利技术的积极效果是:由于采用了基于全局初始网格加密的方式,因此可以并行化生成任意类型的网格单元;只要有足够的计算机资源,就可以不断加密,生成任意超大规模的网格;本发明专利技术的方法是在初始网格上不断“全局加密‑物面投影‑空间变形”生成,因此效率极高。

【技术实现步骤摘要】
基于全局加密的超大规模非结构网格生成方法
本专利技术涉及一种基于全局加密的超大规模非结构网格生成方法。
技术介绍
在航空航天飞行器设计、流体机械、高速列车/汽车、风能和风工程等工业领域,流体力学是进行产品设计的主干学科。计算流体力学(CFD)是流体力学、计算数学、计算机的交叉学科,采用计算机对流体动力学方程进行仿真,从而得到空间流动,为产品设计提供依据。随着计算机的发展,CFD在工业产品的设计过程中正发挥越来越重要的作用。CFD计算的第一步是要进行网格生成,即将现实的三维空间离散成为四面体、六面体等单元。自上世纪50年代以来,网格生成技术得到了飞速的发展,从一开始的只能生成二维简单外形的网格,到如今能生成全尺寸飞行器的千万、甚至上亿数量网格。近年来,随着以“天河二号”、“神威.太湖之光”等为代表的超级高性能计算机的发展,国内外的计算机性能显著提高,在为CFD技术的发展提供充足动力的同时也带来了挑战,即这些超级计算机无一例外都要求计算软件具有并行化处理能力。遗憾的是,网格生成技术一直受限于其算法的特殊性,迄今为止,不管是商业软件还是国外的研究型代码,绝大部分都是串行程序。换句话说,目前在国内外都没有成熟的并行化网格生成技术。对网格生成技术的并行化技术,目前还处于探索阶段,国外已经开始有一些相关文献可查。然而,这些网格生成技术都仅仅是只能并行生成某些特定类型的单元。例如,一些并行化算法通过对传统的Denaulay方法进行改造,只能并行生成四面体单元;另外一些是对传统的层推进(阵面推进)法进行改造后,只能生成棱柱单元。总之,目前还没有一种能适应于任意网格类型的并行化网格生成技术。此外,这些并行化算法还面临一个巨大的问题,即在给定边界条件下,难以生成上百亿量级的超大规模网格。
技术实现思路
为了克服现有技术的上述缺点,本专利技术提出了一种基于全局加密的超大规模非结构网格生成方法,可以利用千核量级的计算机资源,生成上百亿量级的任意类型网格单元(如四面体/三棱柱/六面体/金字塔等)。本专利技术解决其技术问题所采用的技术方案是:一种基于全局加密的超大规模非结构网格生成方法,包括如下步骤:步骤一、在初始网格单元的基础上,将所有网格单元剖分加密;步骤二、对剖分加密后的网格单元进行物面保形;步骤三、采用并行化的径向基函数方法实现空间点变形。与现有技术相比,本专利技术的积极效果是:1、由于采用了基于全局初始网格加密的方式,因此可以并行化生成任意类型的网格单元;2、只要有足够的计算机资源,就可以不断加密,生成任意超大规模的网格;3、本专利技术的方法是在初始网格上不断“全局加密-物面投影-空间变形”生成,因此效率极高。附图说明本专利技术将通过例子并参照附图的方式说明,其中:图1为本专利技术方法的流程图;图2为全局网格剖分加密示意图;图3为物面保形示意图;图4为空间点变形示意图;图5为并行化的径向基函数方法的流程图。具体实施方式一种基于全局加密的超大规模非结构网格生成方法,如图1所示,包括如下步骤:步骤一、全局网格剖分加密:在初始网格单元的基础上,将所有网格单元剖分加密。如图2所示,图中的加粗线条表示并行计算过程中的分区的边界,其中初始网格是分区后被分配至每个进程的,每个进程上有1个或多个子区;剖分加密按照CGNS数据结构中给定的剖分方式进行,例如,将1个六面体剖分为8个六面体,1个三棱柱剖分为6个三棱柱。这样的剖分方式能基于任意的初始网格实现大规模网格的并行生成。步骤二、物面保形:进行物面保形前后的图如图3所示,图中以圆形代表物体外形,加粗线条表示并行计算过程中的分区的边界,保形前物面是由线段构成的,保形后物面是完全真实的外形。将步骤一中物面边界上新添加的不处于CAD几何上的点pi做保形处理,使点pi投影到CAD几何上得到新投影的物面点pi’。并且物面点的投影是并行处理的,每个进程分别读入数模,并将各自的子区上的物面点投影。物面保形调用了开源软件OpenCascade将物面上新添加的点投影到几何上,使得新的网格的物面边界能完全真实地代表实际的物体外形。添加点的方式是按照步骤一中的方法,根据CGNS数据结构(行业标准),直接在每条线段中点上添加新的点。步骤三、采用并行化的径向基函数方法实现空间点变形:如图4所示,图中的加粗线条表示并行计算过程中的分区的边界,将与新投影的物面点pi’相交的空间点变形。径向基函数方法(RadialBasisFunction,以下简称为“RBF方法”),是一类利用距离基函数进行数据插值的方法,在计算数学、数值模拟等工程领域有广泛的应用。例如,在进行气动/热/结构多场耦合模拟中,用于在空间单元和物面单元之间的流场变量插值;在弹性变形、多体分离等动边界问题中,通过将物面上的点的变形插值到空间,实现空间网格变形。RBF方法的基本原理为:这里,N是控制点子集中点的数目(控制点子集由离空间点最近的多个物面变形点构成),f(r)为空间中点Pfield,i的位移量,r为Pfield,i的位置,ri为第i个物面控制点Psurface,i的初始位置,||r-ri||表示Pfield,i和Psurface,i之间的欧式距离,表示所选用的径向基函数,wi表示第i个物面控制点Psurface,i处的权重系数,以x方向为例,该系数满足如下关系式:其中,△xi为第i个物面点Psurface,i的变形量,基函数一般选用C2函数定义为:通过式(1),将物面点的位移插值到空间,得到空间点的变形量。虽然径向基函数方法已经在工程领域得到了大量使用,但是迄今为止,几乎绝大部分的应用都是基于串行的方法,这是由于RBF方法中涉及到式(2)中的矩阵运算,而该式右端项中的矩阵由全局计算域中的物面点构成,使得RBF方法难以并行化。虽然目前在学术界已经有一些初步的并行化算法,但是一般都是采用PETs、LAPACK等第三方数学库,对式(2)中的矩阵进行并行化地求逆操作,存在健壮性差、效率低、通用性差的问题。如图5所示,并行化的径向基函数方法包括如下内容:(1)建立并行架构:1)使用常规的分区算法(如调用METIS),将计算域的网格划分为n个分区块Z={Z1、Z2、Z3······Zn},每个区块对应一个进程P={P1、P2、P3······Pn};这里的分区块数n由初始网格规模和计算机内存决定,一般使得分区后每个分区内的网格单元数少于100万。2)将每个分区块Zi上的物面单元发送至对应的服务器进程Pi;3)服务器进程将收集到的所有物面单元S={s1、s2、s3······sl组装为整个物面S;这里,l<=n。4)服务器进程将包含所有物面单元S={s1、s2、s3······sl}的整个物面发送给每一个进程Pi,使得每个进程Pi都有一个全局物面单元S的备份;(2)遍历空间的所有点,进行并行RBF变形。对于每个进程Pi中的每一个空间点Pfield,i变形:1)在整个物面单元集S上的物面控制点中,查找离空间点Pfield,i最近的N个控制点(N一般取10~30),构成Pfield,i的控制点子集{ci};;2)对空间点Pfield,i,基于其拥有的控制点子集{ci}和这些控制点的变形量,根据式(1)、式(2),求解得到空间点Pfield,i的变形。下表为本实施例与其他现有本文档来自技高网
...
基于全局加密的超大规模非结构网格生成方法

【技术保护点】
一种基于全局加密的超大规模非结构网格生成方法,其特征在于:包括如下步骤:步骤一、在初始网格单元的基础上,将所有网格单元剖分加密;步骤二、对剖分加密后的网格单元进行物面保形;步骤三、采用并行化的径向基函数方法实现空间点变形。

【技术特征摘要】
1.一种基于全局加密的超大规模非结构网格生成方法,其特征在于:包括如下步骤:步骤一、在初始网格单元的基础上,将所有网格单元剖分加密;步骤二、对剖分加密后的网格单元进行物面保形;步骤三、采用并行化的径向基函数方法实现空间点变形。2.根据权利要求1所述的基于全局加密的超大规模非结构网格生成方法,其特征在于:步骤二所述对剖分加密后的网格单元进行物面保形的方法为:将经过剖分加密后物面边界上新添加的不处于CAD几何上的点pi投影到CAD几何上得到新投影的物面点pi’。3.根据权利要求2所述的基于全局加密的超大规模非结构网格生成方法,其特征在于:所述物面点的投影是并行处理的,由每个进程分别读入数模,并将各自的子区上的物面点投影。4.根据权利要求1所述的基于全局加密的超大规模非结构网格生成方法,其特征在于:在对初始网格单元进行剖分加密时在物面边界上添加点的方法为直接在每条线段中点或者面心上添加新的点。5.根据权利要求1所述的基于全局加密的超大规模非结构网格生成方法,其特征在于:步骤三所述采用并行化的径向基函数方...

【专利技术属性】
技术研发人员:赵钟何磊张扬张来平
申请(专利权)人:中国空气动力研究与发展中心计算空气动力研究所
类型:发明
国别省市:四川,51

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1