应用气动特性评估N-S方程求解分层式程序处理方法与流程

文档序号:31187425发布日期:2022-08-19 22:44阅读:96来源:国知局
应用气动特性评估N-S方程求解分层式程序处理方法与流程
应用气动特性评估n-s方程求解分层式程序处理方法
技术领域
1.本技术涉及一种应用启动特性评估程序设计方法,尤其涉及应用气动特性评估n-s方程求解分层式程序处理方法、电子设备及存储介质,属于空气动力学数值计算技术领域。


背景技术:

2.求解n-s方程的计算流体力学(computational fluid dynamics,简称cfd)软件已经逐渐成为飞行器设计中气动性能评估的核心软件,其与风洞试验相辅相成,共同为飞行器研制提供基础技术支撑。我国虽然在cfd理论研究及软件研发方面已经开展了大量工作,但是目前可用于工业部门飞行器研制的cfd软件成果较为单一且都处于发展阶段,开展自研cfd软件研发工作是必然的发展趋势。
3.现代cfd软件总体构架的构建需要保证其具有易维护性、可扩展性。易维护性要求软件平台能够适应未来基础算法和通用模块功能的改进、软件更新和维护的成本和特种计算功能的增强等。可扩展性要求软件体系结构能够在适应当前cfd数值模拟要求的同时也能适应可预见的未来特种cfd数值模拟技术发展需求。
4.分层式程序架构设计为软件的维护性和扩展性提供了保证,是目前工业计算软件研发中常用的设计方法。分层开发代码设计鼓励代码复用,力求开发共享工具包,类与功能性组件的开发与测试是孤立进行的,这能减少调试过程出现的bug数量。按数值建模的观点组织主要的类,如计算域类、场代数类、矩阵与求解类、数值方法类等进行分层设计,这使得程序开发人员能很容易对模型进行扩展。这种封装对外部屏蔽了细节的处理方式,程序开发人员不必花费大量的时间去学习所有的程序代码,掌握了程序的主要框架和功能模块,就可以从事创新的开发工作。面向对象程序开发模式是采用分层次的代码设计的重要体现。


技术实现要素:

5.在下文中给出了关于本发明的简要概述,以便提供关于本发明的某些方面的基本理解。应当理解,这个概述并不是关于本发明的穷举性概述。它并不是意图确定本发明的关键或重要部分,也不是意图限定本发明的范围。其目的仅仅是以简化的形式给出某些概念,以此作为稍后论述的更详细描述的前序。
6.鉴于此,为解决现有技术中存在的传统cfd软件程序开发工作中功能变更和流程再造的大量重复性工作技术问题,本发明提供应用气动特性评估n-s方程求解分层式程序处理方法,能够实现对n-s方程离散和数值求解过程的完整描述,隔离了局部功能扩展对整个程序的影响,为多人协同开发和算法扩展奠定了基础。
7.方案一:应用气动特性评估n-s方程求解分层式程序处理方法,解器类作为程序入口,调用各种类实现函数功能,完成数据初始化、双层时间迭代、多重网格计算、边界条件更新、残值计算和物理量更新,包括以下步骤:
s1.创建气动性评估程序框架;s2.从文件创建参数文件类对象,获得计算需要的条件和控制参数;s3.从文件创建网格类对象;s4.创建求解器类对象,开始流场计算;s5.程序结束。
8.优选的,所述程序框架包括网格类、场类、材料类、边界条件类、边界条件管理类、通量类、通量管理类、输入输出接口类、多重网格类、时间类、时间管理类、湍流类、湍流管理类、求解器类和参数文件类。
9.优选的,所述创建边界条件管理类的方法包括,s11.在边界条件基类中采用虚函数定义所有边界的两项功能函数:初始化和更新边界;s12.在边界条件基类中定义并获取需要访问和操作的相关数据;s13.在管理类中定义基类flowboundary的指针;s14.添加新的边界派生类时更改flowboundarymanager文件。
10.优选的,所述创建通量管理类、时间管理类和湍流管理类的创建方法与边界条件管理类方法相同。
11.优选的,所述创建求解器类对象的方法是,包括以下步骤:s41.开始双时间法外层迭代;s42.保存旧值;s43.开始双时间法内层迭代;s44.根据多重网格路径,分支选择处理方式;s45.调用输入输出接口类完成残值及积分物理量计算;s46.结束内层迭代和外层迭代;s47.判断内循环步数是否小于总内循环步数,如果是,返回s41调用时间管理类进行时间推进,如果否,结束内循环迭代;s48. 判断外循环中当前物理时间是否小于总物理时间,如果是,返回s41继续双时间法外层迭代,如果否,结束外循环迭代。
12.优选的,所述开始双时间法内层迭代的方法是,包括以下步骤:s431.计算当地时间步长;s432.开始多步时间推进循环;s433.调用通量管理类完成对流项、扩散项及源项残值的计算;s434.调用湍流管理类完成湍流残值相关计算;s435.进行残值光顺;s436.更新相关守恒量;s437.调用边界管理类完成边界条件更新;s438.判断当前多步时间推进循环是否小于总时间推进循环步数,如果是,返回s432继续时间推进循环,如果否,结束时间推进循环。
13.优选的,所述根据多重网格路径,分支选择处理方式的方法是,包括:s441.推进标志:调用时间管理类完成时间推进;
s442.限制标志:调用多重网格类将细网格的守恒量和残值限制到粗网格;s443.延拓标志:调用多重网格类粗网格修正量延拓到细网格;s444.判断多重网格循环所有过程是否完成,如果否,返回s44选择分支计算多重网格循环,如果是,结束多重网格循环。
14.优选的,所述网格类存储基础数据;用于实现网格数据访问、网格拓扑关系查询和网格整体操作;所述场类存储网格类对应的流场物理量,用于实现密度、压强、速度流场物理量存储和基本的各类数学运算;所述材料类存储流动介质的基础数据,用于实现空气、水的物理性质描述;所述边界条件类和边界管理类由边界条件基类boundarycondtion进行派生实现各类n-s方程流动的边界条件、边界条件初始化和更新、具体类与求解器的隔离;所述通量类和通量管理类在派生关系中增加了无粘通量类inviscidfluxscheme和粘性通量类viscousfluxscheme,用于实现通量置零和通量计算、具体类与求解器的隔离;所述输入输出接口类包含网格管理类、流场结果处理类、各种后处理软件类集合,用于实现不同网格文件的转换、后处理结果转换功能;所述多重网格类用于流场快速收敛的类,实现设定多重网格循环路径、从细网格向粗网格的流场变量和残值的传递、从粗网格向细网格的流场变量修正;所述时间类和时间管理类采用了多继承派生模式,由基础流场数据类和某个时间类派生出用于n-s方程推进的具体时间类,用于实现初始化、推进迭代、具体类与求解器的隔离;所述湍流类和湍流管理类在派生关系中增加了各种湍流基本量组合的类,用于实现湍流初始化、湍流粘性系数计算、湍流相关残值置零、湍流源项和耗散项的计算、湍流量边界更新、具体类与求解器的隔离;所述求解器类用于实现n-s方程的求解,主要包含初始化、保存旧值和组织多重网格求解流程;所述参数文件类用于管理用户的参数文件,实现参数导入、参数检查和给定默认参数。
15.方案二:一种电子设备,包括存储器和处理器,存储器存储有计算机程序,所述的处理器执行所述计算机程序时实现方案一所述的应用气动特性评估n-s方程求解分层式程序处理方法的步骤。
16.方案三:一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现方案一所述的应用气动特性评估n-s方程求解分层式程序处理方法。
17.本发明的有益效果如下:本发明采用了分层式软件体系结构设计思想,针对n-s方程通过构建不同层次的类,解决了传统cfd软件程序开发工作中功能变更和流程再造的大量重复性工作技术问题,实现了具有易维护性和可扩展性的大规模并行cfd软件平台的设计与开发,本发明还具有以下特点:1、采用面向对象思想完成cfd程序重新架构,便于代码的复用;2、利用管理器实现了局部功能扩展的隔离,便于程序组织和协同开发;
3、按照n-s方程的离散过程完成了类的数据组织和功能实现,给出了一种n-s方程算法实现的程序架构;4、采用分层思想完成了数据结构的传递,为派生类算法实现提供了基础数据支持,便于程序简化和程序实现。
附图说明
18.此处所说明的附图用来提供对本技术的进一步理解,构成本技术的一部分,本技术的示意性实施例及其说明用于解释本技术,并不构成对本技术的不当限定。在附图中:图1为方法流程示意图;图2为求解器类对象流程示意图;图3为边界条件类派生关系示意图;图4为通量类派生关系示意图;图5为时间类派生关系示意图;图6为湍流类派生示意图;图7为双时间法内层迭代流程示意图。
具体实施方式
19.为了使本技术实施例中的技术方案及优点更加清楚明白,以下结合附图对本技术的示例性实施例进行进一步详细的说明,显然,所描述的实施例仅是本技术的一部分实施例,而不是所有实施例的穷举。需要说明的是,在不冲突的情况下,本技术中的实施例及实施例中的特征可以相互组合。
20.实施例1、参照图1-7说明本实施方式,应用气动特性评估n-s方程求解分层式程序处理方法,解器类作为程序入口,调用各种类实现函数功能,完成数据初始化、双层时间迭代、多重网格计算、边界条件更新、残值计算和物理量更新,包括以下步骤:s1.创建程序框架;框架包括网格类(mesh)、场类(field)、材料类(material)、边界条件类(flowboundary的系列派生类)及边界条件管理类(flowboundarymanager)、通量类(flowflux的系列派生类)及通量管理类(flowfluxmanager)、输入输出接口类(io)、多重网格类(mutigrid)、时间类(timescheme的系列派生类)及时间管理类(flowtimemanager)、湍流类(baseturbulence的系列派生类)及湍流管理类(turbulencemanager)、求解器类(flowsolver)和参数文件类(flowconfigure)。
21.该程序框架由求解器类(flowsolver)来实现程序入口,通过调用各种类实现的函数功能,完成了数据初始化、双层时间迭代、几何多重网格计算、边界条件更新、残值计算、物理量更新等功能,实现了对n-s方程离散过程的完整描述,可以给出绕流物体的流动特性。该程序框架可供多人联合开发并实现局部功能扩展,为协同开发提供基础技术保障。
22.利用管理器实现n-s方程离散过程中多种方法的集成管理,隔离了方法扩展中对程序整体的破坏性,实现了程序代码复用和程序整体流程的完整性。
23.所述创建边界条件管理类的方法包括:s11.在边界条件基类中采用虚函数定义所有边界的两项功能函数:初始化和更新边界;
s12.在边界条件基类中定义并获取需要访问和操作的相关数据;s13.在管理类中定义基类flowboundary的指针;s14.添加新的边界派生类时更改flowboundarymanager文件。
24.由边界条件基类flowboundary进行派生实现各类n-s方程流动的边界条件,如入流边界、出流边界、壁面边界等。该类集合主要用于实现边界条件初始化和更新等功能,并由管理类flowboundarymanager进行统一组织,实现具体类与求解器的隔离,便于大型程序编制与调试。
25.所述创建通量管理类的方法包括:s15.在通量基类中采用虚函数定义所有边界的两项功能函数:初始化和更新边界;s16.在通量基类中定义并获取需要访问和操作的相关数据;s17.在管理类中定义基类flowflux的指针;s18.添加新的边界派生类时更改flowfluxmanager文件。
26.所述时间管理类的方法包括:s19.在时间基类中采用虚函数定义所有边界的两项功能函数:初始化和更新边界;s110.在时间基类中定义并获取需要访问和操作的相关数据;s111.在管理类中定义基类flowtime的指针;s112.添加新的边界派生类时更改flowtimemanager文件。
27.所述湍流管理类的方法包括:s113.在湍流基类中采用虚函数定义所有边界的两项功能函数:初始化和更新边界;s114.在湍流基类中定义并获取需要访问和操作的相关数据;s115.在管理类中定义基类baseturbulence的指针;s116.添加新的边界派生类时更改turbulencemanager文件。
28.所述网格类(mesh)存储基础数据,基础数据包括网格点、网格面、网格单元、拓扑构成等;用于实现网格数据访问、网格拓扑关系查询和网格整体操作(缩放、平移、旋转)等功能;所述场类(field)存储网格类对应的流场物理量,包含内部场、物理边界场、并行边界场的基础数据。场的形式包含标量场、矢量场、张量场等三种,用于实现密度、压强、速度流场物理量存储和基本的各类数学运算;所述材料类(material)存储流动介质的基础数据,用于实现空气、水的物理性质描述;基础数据例如本构关系、介质常量。介质关键参数等。
29.所述边界条件类(boundarycondtion的系列派生类)和边界管理类(flowboundarymanager)由边界条件基类boundarycondtion进行派生实现各类n-s方程流动的边界条件、边界条件初始化和更新、具体类与求解器的隔离;所述通量类(fluxscheme的系列派生类)和通量管理类(flowfluxmanager),参照图4,在派生关系中增加了无粘通量类inviscidfluxscheme和粘性通量类viscousfluxscheme,主要是由于n-s方程的各类通量格式种类繁多,用于派生实现各类具
体通量格式,如中心格式、迎风格式等。该类集合主要用于实现通量置零、通量计算等功能,并由管理类flowfluxmanager进行统一组织,实现具体类与求解器的隔离,便于大型程序编制与调试。
30.所述输入输出接口类(io)包含网格管理类、流场结果处理类、各种后处理软件类集合,用于实现不同网格文件的转换、后处理结果转换功能;所述多重网格类(mutigrid)用于流场快速收敛的类,实现设定多重网格循环路径、从细网格向粗网格的流场变量和残值的传递、从粗网格向细网格的流场变量修正;所述时间类(timescheme的系列派生类)和时间管理类(flowtimemanager),参照图5,采用了多继承派生模式,由基础流场数据类(flowtimepackage)和某个时间类(如baserungekutta)派生出用于n-s方程推进的具体时间类。该类集合主要用于实现初始化、推进迭代等功能,并由管理类flowtimemanager进行统一组织,实现具体类与求解器的隔离,便于大型程序编制与调试。图5给出了flowrungekutta类推进流程示意图。
31.所述湍流类(baseturbulence的系列派生类)和湍流管理类(turbulencemanager),参照图6,在派生关系中增加了各种湍流基本量组合的类(如komega、kepsilon等),主要是由于n-s方程的各种湍流模型种类繁多,用于派生实现各类具体湍流模型。该类集合主要用于湍流初始化、湍流粘性系数计算、湍流相关残值置零、湍流源项和耗散项的计算、湍流量边界更新等功能,并由管理类turbulencemanager进行统一组织,实现具体类与求解器的隔离,便于大型程序编制与调试。
32.所述求解器类(flowsolver):用于实现n-s方程的求解,主要包含初始化、保存旧值和组织多重网格求解流程;所述参数文件类(flowconfigure)用于管理用户的参数文件,实现参数导入、参数检查和给定默认参数。
33.s2.从文件创建参数文件类(flowconfigure)对象,获得计算需要的条件和控制参数;s3.从文件创建网格类(mesh)对象;s4.创建求解器类(flowsolver)对象,并调用其成员函数开始流场计算,流场计算流程如图2所示,主要包括以下步骤:s41.开始双时间法外层迭代;s42.保存旧值;s43.开始双时间法内层迭代,主要通过时间管理类(flowtimemanager)对象完成守恒量更新,与程序框架中大绝大部分类发生调用关系,参照7,包括以下步骤:s431.计算当地时间步长;s432.开始多步时间推进循环;s433.调用通量管理类(flowfluxmanager)完成对流项、扩散项及源项残值的计算;s434.调用湍流管理类(turbulencemanager)完成湍流残值相关计算;s435.进行残值光顺;s436.更新相关守恒量;s437.调用边界管理类(flowboundarymanager)完成边界条件更新。
34.s438.判断当前多步时间推进循环是否小于总时间推进循环步数,如果是,返回s432继续时间推进循环,如果否,结束时间推进循环;s44.根据多重网格路径,开始多重网格循环,分支选择处理方式,包括:s441.推进标志:调用时间管理类(flowtimemanager)完成时间推进;s442.限制标志:调用多重网格类(mutigrid)将细网格的守恒量和残值限制到粗网格;s443.延拓标志:调用多重网格类(mutigrid)粗网格修正量延拓到细网格。
35.s444.判断多重网格循环所有过程是否完成,如果否,返回s44选择分支计算多重网格循环,如果是,结束多重网格循环;s45.调用输入输出接口类(io)完成残值及积分物理量计算;s46.判断内循环步数是否小于总内循环步数,如果是,返回s441调用时间管理类进行时间推进,如果否,结束内循环迭代;s47. 判断外循环中当前物理时间是否小于总物理时间,如果是,返回s41继续双时间法外层迭代,如果否,结束外循环迭代。
36.s5.程序结束。
37.缩略语和关键术语n-s方程:navier-stokes方程。
38.实施例2、本发明的计算机装置可以是包括有处理器以及存储器等装置,例如包含中央处理器的单片机等。并且,处理器用于执行存储器中存储的计算机程序时实现上述的基于creo软件的可修改由关系驱动的推荐数据的推荐方法的步骤。
39.所称处理器可以是中央处理单元(central processing unit,cpu),还可以是其他通用处理器、数字信号处理器 (digital signal processor,dsp)、专用集成电路(application specific integrated circuit,asic)、现成可编程门阵列 (field-programmable gate array,fpga) 或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。
40.所述存储器可主要包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需的应用程序(比如声音播放功能、图像播放功能等)等;存储数据区可存储根据手机的使用所创建的数据(比如音频数据、电话本等)等。此外,存储器可以包括高速随机存取存储器,还可以包括非易失性存储器,例如硬盘、内存、插接式硬盘,智能存储卡(smart media card, smc),安全数字(secure digital, sd)卡,闪存卡(flash card)、至少一个磁盘存储器件、闪存器件、或其他易失性固态存储器件。
41.实施例3、计算机可读存储介质实施例本发明的计算机可读存储介质可以是被计算机装置的处理器所读取的任何形式的存储介质,包括但不限于非易失性存储器、易失性存储器、铁电存储器等,计算机可读存储介质上存储有计算机程序,当计算机装置的处理器读取并执行存储器中所存储的计算机程序时,可以实现上述的基于creo软件的可修改由关系驱动的建模数据的建模方法的步骤。
42.所述计算机程序包括计算机程序代码,所述计算机程序代码可以为源代码形式、
对象代码形式、可执行文件或某些中间形式等。所述计算机可读介质可以包括:能够携带所述计算机程序代码的任何实体或装置、记录介质、u盘、移动硬盘、磁碟、光盘、计算机存储器、只读存储器(rom,read-only memory)、随机存取存储器(ram,random access memory)、电载波信号、电信信号以及软件分发介质等。需要说明的是,所述计算机可读介质包含的内容可以根据司法管辖区内立法和专利实践的要求进行适当的增减,例如在某些司法管辖区,根据立法和专利实践,计算机可读介质不包括电载波信号和电信信号。
43.尽管根据有限数量的实施例描述了本发明,但是受益于上面的描述,本技术领域内的技术人员明白,在由此描述的本发明的范围内,可以设想其它实施例。此外,应当注意,本说明书中使用的语言主要是为了可读性和教导的目的而选择的,而不是为了解释或者限定本发明的主题而选择的。因此,在不偏离所附权利要求书的范围和精神的情况下,对于本技术领域的普通技术人员来说许多修改和变更都是显而易见的。对于本发明的范围,对本发明所做的公开是说明性的,而非限制性的,本发明的范围由所附权利要求书限定。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1