一种可实现重叠区快速优化的并行嵌套网格方法及装置转让专利

申请号 : CN201910384986.X

文献号 : CN110110446A

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 淮洋梁益华郝海兵牛俊强姚冰

申请人 : 中国航空工业集团公司西安航空计算技术研究所

摘要 :

本发明公开了一种可实现重叠区快速优化的并行嵌套网格方法及装置。该方法包括:标记一组部件的嵌套网格的初始插值边界,所述一组部件包括至少一个运动部件和至少一个静止部件;所述嵌套网格表征各个部件的流场信息;将初始插值边界推离各个部件的边缘,得到位于所述相邻部件的中间区域插值边界,使得所述嵌套网格的重叠区域达到最小;确定所述插值边界在所述相邻部件的网格中的插值关系,所述插值关系表示在所述相邻部件中A部件的插值边界点在所述相邻部件中B部件的网格中的相对位置;根据插值关系,将所述B部件的网格中的流场信息传递给所述A部件的插值边界点。该方法解决了模型部件存在相对运动的非定常流场数值模拟问题。

权利要求 :

1.一种可实现重叠区快速优化的并行嵌套网格方法,其特征在于,包括:标记一组部件的嵌套网格的初始插值边界,所述一组部件包括至少一个运动部件和至少一个静止部件;所述嵌套网格表征各个部件的流场信息;

将初始插值边界推离各个部件的边缘,得到位于所述相邻部件的中间区域插值边界,使得所述嵌套网格的重叠区域达到最小;

确定所述插值边界在所述相邻部件的网格中的插值关系,所述插值关系表示在所述相邻部件中A部件的插值边界点在所述相邻部件中B部件的网格中的相对位置;

根据插值关系,将所述B部件的网格中的流场信息传递给所述A部件的插值边界点。

2.根据权利要求1所述的方法,其特征在于,所述标记一组部件的嵌套网格的初始插值边界,包括:为各部件创建包围物面网格的辅助笛卡尔网格,标记包含物面网格的笛卡尔网格单元为边缘单元;

判断A部件的网格是否与其他部件的辅助笛卡尔网格相交;所述A部件为一组部件中任一个部件;

若是,则判断所述A部件的网格是否与其他部件的边缘单元相交;

若是,判断A部件的网格线和其他部件的边缘单元包含的物面网格单元是否相交;

若是,则标记A部件的网格线上的网格点为初始插值边界点。

3.根据权利要求2所述的方法,其特征在于,所述将初始插值边界推离各个部件的边缘,得到位于所述相邻部件的中间区域插值边界,包括:为各部件的网格点计算壁面距离;

为A部件的初始插值边界创建推进链表,并设定各链表点的洞面参考点为自身点,洞面距离为0;所述洞面为初始插值边界包围的非流场点;

推进A部件的推进链表,比较每个推进链表点的壁面距离和洞面距离;

若洞面距离小于壁面距离,则标记链表点为洞点,标记与其相邻的流场点标记为新插值边界点;

删除所述推进链表,建立新推进链表;重复上述推进操作,直到A部件没有产生新插值点为止。

4.根据权利要求3所述的方法,其特征在于,所述确定所述插值边界在所述相邻部件的网格中的插值关系,包括:标记运动部件的外边界网格点为插值边界点。

判断A部件中的插值边界点是否与其他部件的网格重叠;

若是,则通过线面求交算法找出插值边界点的供体单元,并计算出相应的插值系数,所述供体单元为插值边界点所在的B部件的网格单元。

5.根据权利要求1-4任一项所述的方法,其特征在于,所述方法通过多个进程并行实现。

6.一种可实现重叠区快速优化的并行嵌套网格装置,其特征在于,包括:标记模块,用于标记一组部件的嵌套网格的初始插值边界,所述一组部件包括至少一个运动部件和至少一个静止部件;所述嵌套网格表征各个部件的流场信息;

推离模块,用于将初始插值边界推离各个部件的边缘,得到位于所述相邻部件的中间区域插值边界,使得所述嵌套网格的重叠区域达到最小;

确定模块,用于确定所述插值边界在所述相邻部件的网格中的插值关系,所述插值关系表示在所述相邻部件中A部件的插值边界点在所述相邻部件中B部件的网格中的相对位置;

传递模块,用于根据插值关系,将所述B部件的网格中的流场信息传递给所述A部件的插值边界点。

7.根据权利要求1所述的装置,其特征在于,所述标记模块包括:创建单元,用于为各部件创建包围物面网格的辅助笛卡尔网格,标记包含物面网格的笛卡尔网格单元为边缘单元;

判断单元,用于判断A部件的网格是否与其他部件的辅助笛卡尔网格相交;所述A部件为一组部件中任一个部件;若是,则判断所述A部件的网格是否与其他部件的边缘单元相交;若是,判断A部件的网格线和其他部件的边缘单元包含的物面网格单元是否相交;若是,则标记A部件的网格线上的网格点为初始插值边界点。

8.根据权利要求7所述的装置,其特征在于,所述推离模块包括:计算单元,用于为各部件的网格点计算壁面距离;

创建表单元,用于为A部件的初始插值边界创建推进链表,并设定各链表点的洞面参考点为自身点,洞面距离为0;所述洞面为插值边界包围的非流场点;

推进比较单元,用于推进A部件的推进链表,比较每个推进链表点的壁面距离和洞面距离;

标记洞点单元,用于若洞面距离小于壁面距离,则标记链表点为洞点,标记与其相邻的流场点标记为新插值边界点;

删除单元,用于删除所述推进链表,建立新推进链表;重复上述推进操作,直到A部件没有产生新插值点为止。

9.根据权利要求8所述的装置,其特征在于,所述确定模块包括:标定边界点单元,用于标记运动部件的外边界网格点为插值边界点;

判断重叠单元,用于判断A部件中的插值边界点是否与其他部件的网格重叠;

查询单元,用于若是,则通过线面求交算法找出插值边界点的供体单元,并计算出相应的插值系数,所述供体单元为插值边界点所在的B部件的网格单元。

10.一种计算机可读的存储介质,所述存储介质上存储有指令,其特征在于,所述指令被处理器执行时实现所述权利要求1-5任一项所述方法的步骤。

说明书 :

一种可实现重叠区快速优化的并行嵌套网格方法及装置

技术领域

[0001] 本发明属于计算流体力学(Computational Fluid Dynamics,CFD)数值模拟领域,涉及一种可实现重叠区快速优化的并行嵌套网格方法及装置。

背景技术

[0002] 部件之间相对运动的飞行器在飞行过程中,会产生转捩分离、激波干扰等复杂非定常流动,这些复杂流动轻则影响飞行品质,重则影响飞行安全。对于诸如座舱弹射、导弹投放、螺旋桨转动等非定常流场问题,嵌套网格方法是一种有效的解决途径。
[0003] 嵌套网格的思路是:模型分部件独立生成网格,网格可随部件做刚体运动,不同部件网格相互重叠,以插值的形式耦合求解。嵌套网格独立性强,质量高,生成速度快,但是自动、高效地建立嵌套网格插值关系是嵌套网格方法的关键。
[0004] 国内外现有的嵌套网格方法中,主要存在两个不足。1.一些嵌套网格方法不作重叠区优化,插值边界位于物面附近,较大的网格尺寸差异会导致插值精度不高;即使其他嵌套网格方法中包含重叠区优化,但是在优化过程中需要对重叠区内的所有网格点寻找供体单元,而复杂的供体单元寻找算法导致重叠区优化效率较低。2.一些嵌套网格方法是单核串行运行,网格规模较大时,CFD数值模拟用时难以满足需求;即使其他嵌套网格方法是多核并行运行,但是和CFD求解器采用的两个进程组,对于求解器已有数据的继承性不足,对于无嵌套功能的求解器改造时,会涉及进程分组和较复杂的数据传输,改动量较大。

发明内容

[0005] 发明目的:本发明公开了一种可实现重叠区快速优化的并行嵌套网格方法及装置,弥补了国内外现有的嵌套网格方法中的主要不足,解决了模型部件存在相对运动的非定常流场数值模拟问题。
[0006] 第一方面,提供一种可实现重叠区快速优化的并行嵌套网格方法,包括:
[0007] 标记一组部件的嵌套网格的初始插值边界,所述一组部件包括至少一个运动部件和至少一个静止部件;所述嵌套网格表征各个部件的流场信息;
[0008] 将初始插值边界推离各个部件的边缘,得到位于所述相邻部件的中间区域插值边界,使得所述嵌套网格的重叠区域达到最小;
[0009] 确定所述插值边界在所述相邻部件的网格中的插值关系,所述插值关系表示在所述相邻部件中A部件的插值边界点在所述相邻部件中B部件的网格中的相对位置;
[0010] 根据插值关系,将所述B部件的网格中的流场信息传递给所述A部件的插值边界点。
[0011] 进一步的,所述标记一组部件的嵌套网格的初始插值边界,包括:
[0012] 为各部件创建包围物面网格的辅助笛卡尔网格,标记包含物面网格的笛卡尔网格单元为边缘单元;
[0013] 判断A部件的网格是否与其他部件的辅助笛卡尔网格相交;所述A部件为一组部件中任一个部件;
[0014] 若是,则判断所述A部件的网格是否与其他部件的边缘单元相交;
[0015] 若是,判断A部件的网格线和其他部件的边缘单元包含的物面网格单元是否相交;
[0016] 若是,则标记A部件的网格线上的网格点为初始插值边界点。
[0017] 进一步的,所述将初始插值边界推离各个部件的边缘,得到位于所述相邻部件的中间区域插值边界,包括:
[0018] 为各部件的网格点计算壁面距离;
[0019] 为A部件的初始插值边界创建推进链表,并设定各链表点的洞面参考点为自身点,洞面距离为0;所述洞面为初始插值边界包围的非流场点;
[0020] 推进A部件的推进链表,比较每个推进链表点的壁面距离和洞面距离;
[0021] 若洞面距离小于壁面距离,则标记链表点为洞点,标记与其相邻的流场点标记为新插值边界点;
[0022] 删除所述推进链表,建立新推进链表;重复上述推进操作,直到A部件没有产生新插值点为止。
[0023] 进一步的,所述确定所述插值边界在所述相邻部件的网格中的插值关系,包括:
[0024] 标记运动部件的外边界网格点为插值边界点。
[0025] 判断A部件中的插值边界点是否与其他部件的网格重叠;
[0026] 若是,则通过线面求交算法找出插值边界点的供体单元,并计算出相应的插值系数,所述供体单元为插值边界点所在的B部件的网格单元。
[0027] 进一步的,所述方法通过多个进程并行实现。
[0028] 第二方面,提供一种可实现重叠区快速优化的并行嵌套网格装置,包括:
[0029] 标记模块,用于标记一组部件的嵌套网格的初始插值边界,所述一组部件包括至少一个运动部件和至少一个静止部件;所述嵌套网格表征各个部件的流场信息;
[0030] 推离模块,用于将初始插值边界推离各个部件的边缘,得到位于所述相邻部件的中间区域插值边界,使得所述嵌套网格的重叠区域达到最小;
[0031] 确定模块,用于确定所述插值边界在所述相邻部件的网格中的插值关系,所述插值关系表示在所述相邻部件中A部件的插值边界点在所述相邻部件中B部件的网格中的相对位置;
[0032] 传递模块,用于根据插值关系,将所述B部件的网格中的流场信息传递给所述A部件的插值边界点。
[0033] 进一步的,所述标记模块包括:
[0034] 创建单元,用于为各部件创建包围物面网格的辅助笛卡尔网格,标记包含物面网格的笛卡尔网格单元为边缘单元;
[0035] 判断单元,用于判断A部件的网格是否与其他部件的辅助笛卡尔网格相交;所述A部件为一组部件中任一个部件;若是,则判断所述A部件的网格是否与其他部件的边缘单元相交;若是,判断A部件的网格线和其他部件的边缘单元包含的物面网格单元是否相交;若是,则标记A部件的网格线上的网格点为初始插值边界点。
[0036] 进一步的,所述推离模块包括:
[0037] 计算单元,用于为各部件的网格点计算壁面距离;
[0038] 创建表单元,用于为A部件的初始插值边界创建推进链表,并设定各链表点的洞面参考点为自身点,洞面距离为0;所述洞面为初始插值边界包围的非流场点;
[0039] 推进比较单元,用于推进A部件的推进链表,比较每个推进链表点的壁面距离和洞面距离;
[0040] 标记洞点单元,用于若洞面距离小于壁面距离,则标记链表点为洞点,标记与其相邻的流场点标记为新插值边界点;
[0041] 删除单元,用于删除所述推进链表,建立新推进链表;重复上述推进操作,直到A部件没有产生新插值点为止。
[0042] 进一步的,所述确定模块包括:
[0043] 标定边界点单元,用于标记运动部件的外边界网格点为插值边界点;
[0044] 判断重叠单元,用于判断A部件中的插值边界点是否与其他部件的网格重叠;
[0045] 查询单元,用于若是,则通过线面求交算法找出插值边界点的供体单元,并计算出相应的插值系数,所述供体单元为插值边界点所在的B部件的网格单元。
[0046] 第三方面,提供一种计算机可读的存储介质,所述存储介质上存储有指令,所述指令被处理器执行时实现所述第一方面任一项所述方法的步骤。
[0047] 有益效果:1.能够处理任意分区的嵌套网格,无论是各进程子网格中包含单个部件还是多个部件,对网格分区的普适性较强;
[0048] 2.通过判断各子网格中不同部件的嵌套关系,只在相关进程中并行化执行嵌套网格方法中的各个环节,并行通信量较少;
[0049] 3.通过比较插值边界点的壁面距离和洞面距离参数,能够快速推进插值边界远离物面边界,流场插值精度较高;
[0050] 4.对于无嵌套网格功能的CFD求解器,在不改变主流程的条件下,只需添加接口函数即可具备嵌套功能,与求解器兼容性较好。

附图说明

[0051] 图1为本发明方法的主要流程图;
[0052] 图2(a)为应用本发明的重叠区并行优化结果示意图;
[0053] 图2(b)为应用本发明的流场计算结果示意图;
[0054] 图3为应用本发明的投弹过程示意图。

具体实施方式

[0055] 下面结合附图详细介绍本发明的实现过程。
[0056] 本发明涉及飞行器部件存在相对运动的非定常流场数值模拟问题,如座舱弹射、导弹投放、螺旋桨转动等,提供一种可实现重叠区快速优化的并行嵌套网格方法。该方法包括:获取CFD求解器的分区嵌套网格和并行通信域,并行标记嵌套网格初始插值边界;并行优化嵌套网格重叠区;并行创建嵌套网格插值关系;CFD求解器流场求解过程中并行更新流场插值边界点的流场变量。
[0057] 本发明公开了一种可实现重叠区快速优化的并行嵌套网格方法,如图1所示方法步骤如下:
[0058] 1]获取CFD求解器的分区嵌套网格和并行通信域。
[0059] 需要注意的是,本发明基于非结构嵌套网格开发,能够处理四面体、金字塔、三棱柱、六面体以及多面体等网格单元类型。
[0060] 2]并行标记嵌套网格初始插值边界。
[0061] 2.1]判断各进程子网格中是否包含物面网格。若有,则创建包围物面网格的辅助笛卡尔网格,标记包含物面网格的笛卡尔网格单元为边缘单元;若无,则不创建。
[0062] 2.2]选定某个部件作为目标部件,收集所有进程中其他部件的笛卡尔网格空间域和边缘单元信息,作相交性判断。若当前进程中目标部件子网格与笛卡尔网格空间域相交,且与边缘单元相交,则进行下一步操作;否则跳转至2.4]。
[0063] 2.3]将与边缘单元相交的目标部件网格线发送到边缘单元对应的进程中,判断网格线和边缘单元包含的物面网格单元是否相交。若相交,则标记网格线上的网格点为初始插值边界点;否则,不标记。所有网格线判别完后,将对应的网格点信息反馈到当前进程中。
[0064] 2.4]循环其他部件作为目标部件,执行步骤2.2]~2.4],直到各进程中所有部件都完成初始插值边界的标记。
[0065] 由于嵌套网格的分区子网格来自于CFD求解器,每个求解器的的分区策略不同,导致最终各进程子网格中包含一个或者多个部件网格,不仅子网格之间可能存在嵌套关系,而且子网格内部也可能存在嵌套关系。多进程并行时,存在嵌套逻辑关系复杂,并行通信量大的问题。因此,本发明方法通过循环目标部件,且在2.2]和2.3]中加入判定准则,实现了简化嵌套逻辑关系,最小化并行通信量的目的。
[0066] 3]并行优化嵌套网格重叠区。
[0067] 3.1]计算所有网格点的壁面距离。
[0068] 3.1.1]选定某个部件作为目标部件,在各进程子网格中判断是否含有目标部件的物理边界点和分区边界点。若有,则创建推进链表,进行下一步操作;否则跳转至3.1.4]。
[0069] 3.1.2]确定当前进程目标部件推进链表中各点的壁面参考点和壁面距离。如果链表点是物面边界点,则其壁面参考点是自身,壁面距离为0;否则,遍历所有进程中目标部件的物面边界点,计算出链表点的最小壁面距离,并确定其壁面参考点。
[0070] 3.1.3]以推进链表作为推进阵面,根据相邻原则确定每个链表点的相邻点的壁面参考点和壁面距离,层层推进,最终确定出各进程目标部件所有网格点的壁面距离。
[0071] 3.1.4]循环其他部件作为目标部件,执行步骤3.1.1]~3.1.4],直到所有部件网格点都获取壁面距离。
[0072] 3.2]基于洞面距离和壁面距离优化插值边界。
[0073] 3.2.1]选择某个部件作为目标部件,判断各进程子网格中目标部件的分区边界点是否位于嵌套网格重叠区。若是,则遍历所有进程中目标部件的初始插值边界点,计算出各分区边界点的最小洞面距离,并确定其洞面参考点。
[0074] 3.2.2]在各进程子网格中判断是否含有目标部件初始插值边界点。若有,则创建推进链表,并确定各链表点的洞面参考点为自身,洞面距离为0;否则跳转至3.2.4]。
[0075] 3.2.3]以推进链表作为推进阵面,比较每个链表点的壁面距离和洞面距离,若洞面距离小于壁面距离,则标记链表点为洞点,标记与其相邻的流场点标记为新插值边界点。删除原链表,建立新推进链表,重复执行3.2.3],直到目标部件没有产生新插值点。
[0076] 3.2.4]循环其他部件作为目标部件,执行步骤3.2.1]~3.2.4],直到所有部件插值边界优化完毕。
[0077] 现有的嵌套网格方法也公开了基于壁面距离进行重叠区优化,但是该方式需要在重叠区内部所有点在其他部件中的壁面距离,通过比较网格点在己部件和在其他部件中的壁面距离,来优化重叠区,优化效率不太理想。而本发明创新性地采用洞面距离来替代网格点在其他部件中的壁面距离,算法简单,只涉及推进阵面上的网格点,在并行策略下,优化效果显著。
[0078] 图2(a)为应用本发明的重叠区并行优化结果示意图。采用二维三段翼为模型,网格为百万量级,采用8个进程并行优化嵌套网格重叠区,优化时间不到1秒,最终嵌套网格插值边界远离物面边界,插值区域的不同部件网格尺寸相近,有利于提高流场插值精度。
[0079] 4]并行创建嵌套网格插值关系。
[0080] 4.1]在各进程中,标记运动部件的外边界网格点为插值边界点。
[0081] 4.2]选定某个部件作为目标部件,判断当前进程目标部件中的插值边界点是否与其他进程中的其他部件网格重叠。若重叠,则将这些插值点发送到相应的进程中,通过线面求交算法找出插值点的供体单元,并计算出相应的插值系数。
[0082] 4.3]循环其他部件作为目标部件,执行步骤4.2],直到各进程中所有部件都插值边界点确定供体单元和插值系数。
[0083] 图2(b)为应用本发明的流场计算结果示意图。图中的马赫数等值线在插值区域光滑过渡,即使在前缘缝翼缝道和后缘襟翼尾迹的插值区域中,马赫数也匹配较好。
[0084] 5]根据嵌套网格的插值关系,为CFD求解器并行更新流场插值边界点的流场信息。
[0085] 图3为应用本发明的投弹过程示意图。图中显示了在预定时间段内,导弹从初始位置开始,在自身重力、弹射力和气动力综合作用下,投放过程中导弹的姿态变换。
[0086] 最后应说明的是,以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的技术人员应当理解;其依然可以对前述各实施例记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围。