一种流场数值模拟数据保护方法、系统、设备及介质与流程

未命名 09-17 阅读:63 评论:0


1.本技术涉及计算流体力学技术领域,更具体地说,涉及一种流场数值模拟数据保护方法、系统、设备及介质。


背景技术:

2.对于计算流体力学(cfd)模拟的求解过程,由于计算工况的复杂性和不确定性,常常导致数值模拟计算的结果(如流场参数、壁面参数等)与试验、真实的数值存在差距,所以需要合理的调整各种计算参数(来流参数、物理化学模型、数值格式等),从而保证模拟值尽可能的趋近真实的物理值。而在数值模拟的过程中,为了防止计算参数被修改后流场需要重新计算的问题,一般的数值模拟程序都会引入流场续算的功能,该功能是指每隔一定迭代步数后,程序会输出一定数量的数据文件,用以保存数值模拟过程中流场特征参数信息,然后,当模拟程序被意外终止或者人为终止后,且需要再次重启模拟计算时,只要续算文件存在,就可以从文件中读取流场特征信息,使模拟计算过程从最后一次输出续算文件的迭代步数所对应的空间流场开始接力计算,从而节约计算的时间和成本。
3.通常在输出续算文件时,需要将每个计算网格单元的流场信息都记录下来,若网格量较少时,一般能够较快的完成数据的输出和读取,因此很少发生数据写入失败或不全的情况。但是,当计算的网格量较多,比如网格量为千万级或上亿时,由于每台电脑或集群服务器的硬件水平不一致,导致读写数据的速度也有所差异,因此,时常出现模拟程序在输出续算文件时出现意外终止的情况(如断电、死机等),从而导致续算文件中数据信息不完整的问题。此时若再次启动计算程序时,当需要读取续算文件时,则不能有效读取相关流场信息而导致续算失败,最终使得整个模拟计算过程只能从第一步重新开始,这样不仅浪费时间,也是计算资源的浪费。
4.而对于许多软件来说,为了避免上述情况的出现,通常选择间隔指定的计算步数后输出一次流场续算文件,需要续算时,读取最后一次输出的文件数据即可,但是这样的弊端是:设置输出间隔步数较小时,会导致整个结果文件体系中存在大量的续算文件,如果是计算网格量超大的情况下,则会极大的浪费存储空间;而设置的间隔步数较大时,如出现上述意外终止的情况而出现续算文件数据不全的情况,则只能读取上一间隔输出的续算文件中的流场数据,使得当前间隔内计算的结果被浪费。
5.综上所述,仍有必要提出一种既能稳定输出流场续算文件,又能合理节约计算和存储资源的方法。


技术实现要素:

6.本技术的目的是提供一种流场数值模拟数据保护方法,其能在一定程度上解决如何基于流场数值模拟稳定输出流场续算文件且合理节约计算和存储资源的技术问题。本技术还提供了一种流场数值模拟数据保护系统、设备及计算机可读存储介质。
7.为了实现上述目的,本技术提供如下技术方案:
一种流场数值模拟数据保护方法,包括:在当前的续算文件生成时刻,生成存储目标流场特征信息的第一续算文件,所述目标流场特征信息包括对模拟对象进行流场数值模拟所生成的流场特征信息;判断所述第一续算文件是否完整;若所述第一续算文件完整,则保存所述第一续算文件,并删除已保存的第二续算文件;若所述第一续算文件不完整,则判断是否重新生成所述第一续算文件,若重新生成所述第一续算文件,则返回执行所述生成存储目标流场特征信息的第一续算文件的步骤,若不重新生成所述第一续算文件,则保存所述第一续算文件;判断是否应用所述模拟对象的续算文件对所述模拟对象进行流场数值模拟;若应用所述模拟对象的续算文件对所述模拟对象进行流场数值模拟,则在只存储有所述第一续算文件的情况下,基于所述第一续算文件生成目标续算文件;在存储有所述第一续算文件和所述第二续算文件的情况下,则基于所述第一续算文件和所述第二续算文件生成目标续算文件;基于所述目标续算文件对所述模拟对象进行流场数值模拟。
8.优选的,所述基于所述第一续算文件和所述第二续算文件生成目标续算文件,包括:将所述第一续算文件的数据转存至所述第二续算文件中的相同存储位置上,将更新后的所述第二续算文件作为所述目标续算文件。
9.优选的,所述基于所述目标续算文件对所述模拟对象进行流场数值模拟之前,还包括:获取用户对所述目标续算文件的更改信息;基于所述更改信息对所述目标续算文件进行更改。
10.优选的,所述生成存储目标流场特征信息的第一续算文件,包括:按照预设的数据写入顺序,将所述目标流场特征信息存储至目标变量中;创建空文件,将所述目标变量按照目标格式写入所述空文件中,生成所述第一续算文件。
11.优选的,所述生成存储目标流场特征信息的第一续算文件的过程中,还包括:生成所述第一续算文件的监控文件,所述监控文件用于记录所述目标流场特征信息中各个数据是否已完整存入所述第一续算文件;所述判断所述第一续算文件是否完整,包括:基于所述监控文件判断所述目标流场特征信息中的各个数据是否已完整存入所述第一续算文件;若是,则判定所述第一续算文件完整;若否,则判定所述第一续算文件不完整。
12.优选的,所述基于所述第一续算文件和所述第二续算文件生成目标续算文件之后,还包括:保存所述目标续算文件,并删除所述第一续算文件或所述第二续算文件。
13.优选的,所述判断是否应用所述模拟对象的续算文件对所述模拟对象进行流场数
值模拟,包括:判断是否接收到用户在终止流场数值模拟后输入的重启计算指令;若接收到所述重启计算指令,则判定应用所述模拟对象的续算文件对所述模拟对象进行流场数值模拟;若未接收到所述重启计算指令,则判定不应用所述模拟对象的续算文件对所述模拟对象进行流场数值模拟。
14.一种流场数值模拟数据保护系统,包括:生成模块,用于在当前的续算文件生成时刻,生成存储目标流场特征信息的第一续算文件,所述目标流场特征信息包括对模拟对象进行流场数值模拟所生成的流场特征信息;完整性判断模块,用于判断所述第一续算文件是否完整;若所述第一续算文件完整,则保存所述第一续算文件,并删除已保存的第二续算文件;若所述第一续算文件不完整,则判断是否重新生成所述第一续算文件,若重新生成所述第一续算文件,则提示生成模块执行所述生成存储目标流场特征信息的第一续算文件的步骤,若不重新生成所述第一续算文件,则保存所述第一续算文件;应用判断模块,用于判断是否应用所述模拟对象的续算文件对所述模拟对象进行流场数值模拟;若应用所述模拟对象的续算文件对所述模拟对象进行流场数值模拟,则在只存储有所述第一续算文件的情况下,基于所述第一续算文件生成目标续算文件;在存储有所述第一续算文件和所述第二续算文件的情况下,则基于所述第一续算文件和所述第二续算文件生成目标续算文件;模拟模块,用于基于所述目标续算文件对所述模拟对象进行流场数值模拟。
15.优选的,所述应用判断模块包括:应用判断单元,用于判断是否接收到用户在终止流场数值模拟后输入的重启计算指令;若接收到所述重启计算指令,则判定应用所述模拟对象的续算文件对所述模拟对象进行流场数值模拟;若未接收到所述重启计算指令,则判定不应用所述模拟对象的续算文件对所述模拟对象进行流场数值模拟。
16.一种流场数值模拟数据保护设备,包括:存储器,用于存储计算机程序;处理器,用于执行所述计算机程序时实现如上任一所述流场数值模拟数据保护方法的步骤。
17.一种计算机可读存储介质,所述计算机可读存储介质中存储有计算机程序,所述计算机程序被处理器执行时实现如上任一所述流场数值模拟数据保护方法的步骤。
18.本技术提供的一种流场数值模拟数据保护方法,在当前的续算文件生成时刻,生成存储目标流场特征信息的第一续算文件,目标流场特征信息包括对模拟对象进行流场数值模拟所生成的流场特征信息;判断第一续算文件是否完整;若第一续算文件完整,则保存第一续算文件,并删除已保存的第二续算文件;若第一续算文件不完整,则判断是否重新生成第一续算文件,若重新生成第一续算文件,则返回执行生成存储目标流场特征信息的第一续算文件的步骤,若不重新生成第一续算文件,则保存第一续算文件;判断是否应用模拟对象的续算文件对模拟对象进行流场数值模拟;若应用模拟对象的续算文件对模拟对象进
行流场数值模拟,则在只存储有第一续算文件的情况下,基于第一续算文件生成目标续算文件;在存储有第一续算文件和第二续算文件的情况下,则基于第一续算文件和第二续算文件生成目标续算文件;基于目标续算文件对模拟对象进行流场数值模拟。本技术中,在生成的第一续算文件完整的情况下,只保留最新且完整的第一续算文件,且后续可以直接基于该第一续算文件完整进行流场数值模拟;在生成的第一续算文件不完整的情况下,保存第一续算文件及已生成的第二续算文件,且后续可以综合第一续算文件和第二续算文件完整进行流场数值模拟;避免了因续算文件不完整而导致的流场数值模拟重头开始,保证了基于续算文件进行流场数值模拟的稳定性,且通过合理的处理第一续算文件和第二续算文件节约了计算和存储资源。本技术提供的一种流场数值模拟数据保护系统、设备及计算机可读存储介质也解决了相应技术问题。
附图说明
19.为了更清楚地说明本技术实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本技术的实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据提供的附图获得其他的附图。
20.图1为本技术实施例提供的一种流场数值模拟数据保护方法的第一流程图;图2为三维结构网格示意图;图3为二维结构网格示意图;图4为本技术实施例提供的一种流场数值模拟数据保护方法的第二流程图;图5为本技术实施例提供的一种流场数值模拟数据保护方法的第三流程图;图6为本技术整体实现流程示意框图;图7为续算文件唯一性实现过程示意图:图8为存在两个续算文件操作流程示意图;图9为本技术实施例提供的一种流场数值模拟数据保护系统的结构示意图;图10为本技术实施例提供的一种流场数值模拟数据保护设备的结构示意图;图11为本技术实施例提供的一种流场数值模拟数据保护设备的另一结构示意图。
具体实施方式
21.下面将结合本技术实施例中的附图,对本技术实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本技术一部分实施例,而不是全部的实施例。基于本技术中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本技术保护的范围。
22.请参阅图1,图1为本技术实施例提供的一种流场数值模拟数据保护方法的第一流程图。
23.本技术实施例提供的一种流场数值模拟数据保护方法,可以包括以下步骤:步骤s101:在当前的续算文件生成时刻,生成存储目标流场特征信息的第一续算文件,目标流场特征信息包括对模拟对象进行流场数值模拟所生成的流场特征信息。
24.实际应用中,当进行到当前的续算文件生成时刻时,便可以生成存储目标流场特
征信息的第一续算文件,也即第一续算文件是最新生成的续算文件,且目标流场特征信息指的是对模拟对象进行流场数值模拟所生成的流场特征信息。需要说明的是,续算文件生成时刻可以为按照固定时间间隔确定的时刻,也可以是用户指定的任意时刻等;此外,模拟对象可以为飞机、导弹、汽车等物体,流场数值模拟可以为模拟对象在运行过程中的气体组分变化等,本技术在此不做具体限定。
25.需要说明的是,在进行流场数值模拟的开始阶段,需对模拟对象涉及的物理、化学等工况问题进行假设并适当简化,判断是二维还是三维问题,同时选择合适的计算模型与数值方法用于模拟计算,例如控制方程、物理模型、化学模型、层流或湍流、定常或非定常、何种空间离散格式等等。然后根据确定的计算模型以及数值方法,确定流场中参与模拟计算的变量的个数和类型,从而进一步确定可变数组维度的大小以及数组中元素的个数,其中,参与模拟计算的变量包含但不限于以下流场参数:网格点与网格单元的笛卡尔坐标值以及计算坐标值、密度、速度、压力、温度、反应组分数、反应系数以及迭代步数等等一系列信息。
26.还需说明的是,在数值模拟之前,需要对已有的模拟对象以及包围它的流场区域进行网格划分,也即计算网格的划分是整个模拟计算的前提和基础,为便于理解,这里以结构网格为例对其进行说明,当然,非结构网格也同样适用。通常,整个计算区域不是由一个完整的块构成,需要根据各种计算需求将其划分为多个区域,而每一个区域则被称为网格块,随后每一个网格块根据计算条件、流动特点和计算精度等要求又被分割成许多个微小的单元,这些单元被称为网格单元,每个单元与单元之间由网格面连接,而每个面又是由一个个的网格点所构成。以上要素构成了流场数据存储的基础,整个流场数据的传递和存储则是以网格点、网格面、网格单元和网格块为单位进行的。结构网格的网格拓扑(网络拓扑是指点与面、点与单元、面与单元的连接关系)按照特定的顺序编号,以网格块为单位,采用计算坐标系在i、j、k三个方向对点、面和单元进行编号,这样做的好处在于拓扑关系简单,各种连接关系在下标中隐含,且对于数据在内存中读取时,相邻网格在内存上也是连续的,能缩小访存的时间耗费,比如三维结构网格如图2所示,二维结构网格如图3所示。而流场续算文件在存储流场特征信息时,以每一个网格块中的一个个网格单元质心(也叫网格格心)为单位进行存储的,流场的密度、速度、压力、温度等等一系列特征参数都定义在质心上,且在计算坐标系中i、j、k三个方向按照1-ni,1-nj以及1-nk(ni,nj和nk表示在三个方向上网格单元的数量)的顺序存储流场特征信息,这种具备规律性的数据结构的构建使得在后续组件中能够实现对于续算文件中所存储的流场特征信息进行替换和修正。
27.具体应用场景中,在生成存储目标流场特征信息的第一续算文件的过程中,可以按照预设的数据写入顺序,将目标流场特征信息存储至目标变量中;创建空文件,将目标变量按照目标格式写入空文件中,生成第一续算文件。具体的,可以按照一定的写入顺序,例如按照网格坐标点信息、密度、速度、压力、温度、反应组分数、各种系数以及当前迭代步数的顺序,将计算所得到的当前时刻各网格单元上流场特征信息存储到目标变量flowdata,然后创建一个空文件,比如创建空的dat等格式的文件,将目标变量flowdata储存的各网格单元的流场特征信息以特定的格式,可以是二进制格式,也可以是十进制格式等,写入新生成的dat文件中并最终生成第一续算文件。
28.步骤s102:判断第一续算文件是否完整;若第一续算文件完整,则执行步骤s103;
若第一续算文件不完整,则执行步骤s104。
29.步骤s103:保存第一续算文件,并删除已保存的第二续算文件。
30.步骤s104:判断是否重新生成第一续算文件,若重新生成第一续算文件,则返回执行步骤s101;若不重新生成第一续算文件,则执行步骤s105。
31.步骤s105:保存第一续算文件。
32.实际应用中,在当前的续算文件生成时刻,生成存储目标流场特征信息的第一续算文件之后,便可以判断第一续算文件是否完整;若第一续算文件完整,则保存第一续算文件,并删除已保存的第二续算文件,此时只保存数据完整且最新的第一续算文件;若第一续算文件不完整,则判断是否重新生成第一续算文件,若重新生成第一续算文件,则返回执行生成存储目标流场特征信息的第一续算文件的步骤,若不重新生成第一续算文件,则保存第一续算文件,此时并未删除已保存的第二续算文件,也即保存有第一续算文件和第二续算文件。需要说明的是,当第一次执行本技术的流场数值模拟数据保护方法时,由于生成第一续算文件后,并不存在保存的第二续算文件,所以第一次保存的续算文件只有第一续算文件,只有之后再次生成续算文件时,新生成的续算文件成为第一续算文件,已保存的第一次生成的第一续算文件便成为第二续算文件,也即本技术中的第一续算文件指的是新生成的续算文件,第二续算文件指的是在第一续算文件之前生成且保存的第二续算文件。
33.具体应用场景中,在生成存储目标流场特征信息的第一续算文件的过程中,为了更为直观的了解续算文件中数据是否完整有效,或者当数据不完整时,了解数据存储过程具体出现意外的地方,在生成续算文件的同时,可以伴随其同步生成一个数据存储的过程监控文件,也即可以生成第一续算文件的监控文件,监控文件用于记录目标流场特征信息中各个数据是否已完整存入第一续算文件,该监控文件的包含的信息可以有各计算网格块的编号、存储的步骤过程、各计算网格块中各个特征变量流场信息是否已完成储存、续算文件数据储存是否完成等;相应的,在判断第一续算文件中的数据是否完整的过程中,可以基于监控文件判断目标流场特征信息中的各个数据是否已完整存入第一续算文件;若是,则判定第一续算文件完整;若否,则判定第一续算文件不完整。
34.步骤s106:判断是否应用模拟对象的续算文件对模拟对象进行流场数值模拟;若应用模拟对象的续算文件对模拟对象进行流场数值模拟,则生成步骤s107。
35.步骤s107:在只存储有第一续算文件的情况下,基于第一续算文件生成目标续算文件;在存储有第一续算文件和第二续算文件的情况下,则基于第一续算文件和第二续算文件生成目标续算文件。
36.步骤s108:基于目标续算文件对模拟对象进行流场数值模拟。
37.实际应用中,在保存第一续算文件之后,便可以判断是否应用模拟对象的续算文件对模拟对象进行流场数值模拟;若应用模拟对象的续算文件对模拟对象进行流场数值模拟,则在只存储有第一续算文件的情况下,基于第一续算文件生成目标续算文件;在同时存储有第一续算文件和第二续算文件的情况下,则基于第一续算文件和第二续算文件生成目标续算文件;基于目标续算文件对模拟对象进行流场数值模拟。且在基于第一续算文件和第二续算文件生成目标续算文件之后,还可以保存目标续算文件,并删除第一续算文件或第二续算文件等,本技术在此不做具体限定。
38.具体应用场景中,正常情况下,流场续算文件是不会被使用的,仅仅存在于结果文
件系统中,但是如果出现模拟计算过程异常(断电、死机等)导致计算被意外终止,或者计算完毕但迭代步数不足导致计算结果达到收敛,亦或者因为计算参数、模型选取有误而人为终止计算等情况,便需要依托续算文件中存储的流场各网格单元的特征信息,重置流场参数,重新启动数值计算,也即在判断是否应用模拟对象的续算文件对模拟对象进行流场数值模拟的过程中,可以判断是否接收到用户在终止流场数值模拟后输入的重启计算指令;若接收到重启计算指令,则判定应用模拟对象的续算文件对模拟对象进行流场数值模拟;若未接收到重启计算指令,则判定不应用模拟对象的续算文件对模拟对象进行流场数值模拟。
39.需要说明的是,针对超大规模计算,计算模型的网格量十分巨大,达到百万量级或者千万量级的网格,甚至是上亿规模,在数值模拟计算的过程中,当输出续算文件时,由于需要记录每一个网格单元的流场特征信息,因此,数据的访问存储是需要消耗一定的时间,而当流场数据正在写入续算文件的过程中,若出现集群服务器或者本地工作站的不稳定情况,常常会导致在输出续算文件的过程中程序被异常终止,从而使得没有将所有网格单元的流场特征信息存入到续算文件中,最终导致数据的不完整;也即单个的续算文件难以保证流场数值模拟的稳定性,而本技术通过交替生成、保存两个续算文件,使得任何情况下均可以生成完整的目标续算文件来稳定进行流场数值模拟。
40.本技术提供的一种流场数值模拟数据保护方法,在当前的续算文件生成时刻,生成存储目标流场特征信息的第一续算文件,目标流场特征信息包括对模拟对象进行流场数值模拟所生成的流场特征信息;判断第一续算文件是否完整;若第一续算文件完整,则保存第一续算文件,并删除已保存的第二续算文件;若第一续算文件不完整,则判断是否重新生成第一续算文件,若重新生成第一续算文件,则返回执行生成存储目标流场特征信息的第一续算文件的步骤,若不重新生成第一续算文件,则保存第一续算文件;判断是否应用模拟对象的续算文件对模拟对象进行流场数值模拟;若应用模拟对象的续算文件对模拟对象进行流场数值模拟,则在只存储有第一续算文件的情况下,基于第一续算文件生成目标续算文件;在存储有第一续算文件和第二续算文件的情况下,则基于第一续算文件和第二续算文件生成目标续算文件;基于目标续算文件对模拟对象进行流场数值模拟。本技术中,在生成的第一续算文件完整的情况下,只保留最新且完整的第一续算文件,且后续可以直接基于该第一续算文件完整进行流场数值模拟;在生成的第一续算文件不完整的情况下,保存第一续算文件及已生成的第二续算文件,且后续可以综合第一续算文件和第二续算文件完整进行流场数值模拟;避免了因续算文件不完整而导致的流场数值模拟重头开始,保证了基于续算文件进行流场数值模拟的稳定性,且通过合理的处理第一续算文件和第二续算文件节约了计算和存储资源。
41.请参阅图4,图4为本技术实施例提供的一种流场数值模拟数据保护方法的第二流程图。
42.在前述实施例的基础上,本技术实施例提供的一种流场数值模拟数据保护方法,可以包括以下步骤:步骤s201:在当前的续算文件生成时刻,生成存储目标流场特征信息的第一续算文件,目标流场特征信息包括对模拟对象进行流场数值模拟所生成的流场特征信息。
43.步骤s202:判断第一续算文件是否完整;若第一续算文件完整,则执行步骤s203;
若第一续算文件不完整,则执行步骤s204。
44.步骤s203:保存第一续算文件,并删除已保存的第二续算文件。
45.步骤s204:判断是否重新生成第一续算文件,若重新生成第一续算文件,则返回执行步骤s201;若不重新生成第一续算文件,则执行步骤s205。
46.步骤s205:保存第一续算文件。
47.步骤s206:判断是否应用模拟对象的续算文件对模拟对象进行流场数值模拟;若应用模拟对象的续算文件对模拟对象进行流场数值模拟,则生成步骤s207。
48.步骤s207:在只存储有第一续算文件的情况下,基于第一续算文件生成目标续算文件;在存储有第一续算文件和第二续算文件的情况下,则将第一续算文件的数据转存至第二续算文件中的相同存储位置上,将更新后的第二续算文件作为目标续算文件。
49.实际应用中,在只存储有第一续算文件的情况下,可能在模拟计算其他过程中出现意外终止,不是在输出续算文件的过程中发生终止,因此只存在一个第一续算文件,此时只需要直接读取该第一续算文件并重启计算即可。而在存储有第一续算文件和第二续算文件的情况下,此时在输出第一续算文件的过程中出现意外终止,使得还未来得及删除第二续算文件,因此会出现当计算终止时,同时存在第一续算文件和第二续算文件,但由于第一续算文件与第二续算文件保存的信息类型相同,只是时间进度不同,所以在基于第一续算文件和第二续算文件生成目标续算文件,可以综合第一续算文件和第二续算文件来进行重启计算,也即可以将第一续算文件的数据转存至第二续算文件中的相同存储位置上,将更新后的第二续算文件作为目标续算文件。
50.步骤s208:基于目标续算文件对模拟对象进行流场数值模拟。
51.请参阅图5,图5为本技术实施例提供的一种流场数值模拟数据保护方法的第三流程图。
52.在前述实施例的基础上,本技术实施例提供的一种流场数值模拟数据保护方法,可以包括以下步骤:步骤s301:在当前的续算文件生成时刻,生成存储目标流场特征信息的第一续算文件,目标流场特征信息包括对模拟对象进行流场数值模拟所生成的流场特征信息;步骤s302:判断第一续算文件是否完整;若第一续算文件完整,则执行步骤s303;若第一续算文件不完整,则执行步骤s304。
53.步骤s303:保存第一续算文件,并删除已保存的第二续算文件。
54.步骤s304:判断是否重新生成第一续算文件,若重新生成第一续算文件,则返回执行步骤s301;若不重新生成第一续算文件,则执行步骤s305。
55.步骤s305:保存第一续算文件。
56.步骤s306:判断是否应用模拟对象的续算文件对模拟对象进行流场数值模拟;若应用模拟对象的续算文件对模拟对象进行流场数值模拟,则生成步骤s307。
57.步骤s307:在只存储有第一续算文件的情况下,基于第一续算文件生成目标续算文件;在存储有第一续算文件和第二续算文件的情况下,则基于第一续算文件和第二续算文件生成目标续算文件。
58.步骤s308:获取用户对目标续算文件的更改信息;基于更改信息对目标续算文件进行更改;基于更改后的目标续算文件对模拟对象进行流场数值模拟。
59.实际应用中,在模拟计算过程中存在主动停止计算的情况,此时常常是因为来流计算条件的不合适,如来流的温度、速度、密度、压力等不合适,或局部流场参数的不合理,因此需要调整相关的参数后重启计算以修正最终计算结果,满足计算的精确性,也即在基于目标续算文件对模拟对象进行流场数值模拟之前,还可以获取用户对目标续算文件的更改信息;基于更改信息对目标续算文件进行更改。
60.为了便于理解本技术提供的流场数值模拟数据保护方法,现对流场数值模拟数据保护的整个过程进行描述,请参阅图6,图6为本技术整体实现流程示意框图,其包括的组成组件与构建方法如下:(1)来流计算参数控制组件,用于根据所针对的数值模拟的实际物理工况,选择适当的控制方程、物理模型、化学模型等,使得模拟计算的解析解尽可能的符合试验值。
61.(2)数值模拟迭代与构建数据结构组件,用于根据组件(1)给出的计算来流条件和物理模型,进行数值模拟计算的过程,并确定相对应的数据结构的形式,用于存储流场的特征信息数据。
62.(3)流场数值模拟续算保护文件输出组件,用于:

在进行流场数值模拟前,预先设置流场续算文件输出的间隔步数,记为:n,当第n步迭代完成以后,按照一定的写入顺序,将计算所得到的第n步时刻各网格单元上流场特征信息存储到变量flowdata。然后创建一个空的dat文件,将变量flowdata储存的第n步各网格单元的流场特征信息写入新生成的dat文件中并最终生成“续算文件1”,也即第一续算文件,以flowfile_1表示。
63.②
在进行数值模拟的过程中,用于计算的整体网格通常不会是一个完整块的,都是会对整体网格进行区域性的划分,这些被划分后的网格就变成了一个个的网格块,而每个网格块被称为一个block,且每一个block都有一个特有编号,在存储流场特征信息到续算文件中时,按照block编号依次进行数据存储,并在监控文件monitorfile文件中进行标记,说明正在对哪一个block进行数据存储的操作,然后将需要的流场特征信息以block为单位按照特定的顺序存储在续算文件中,每完成一个即在monitorfile文件中标记,用于说明该特征变量以完成存储,直到所有block中所有的流场特征信息存储完毕为止。
64.举例:若在第一个计算网格块中进行上述操作,首先读取网格块的信息,在monitorfile文件标记:block_1正在执行数据写入,当具体到存储各流场特征信息时,如将网格块中每个网格单元的密度存储完成,则在monitorfile文件中标价:密度数据已完成存储,而其它流场变量则依次完成,并依次标记说明,直到block_1~block_n网格块中的所有网格单元完成流场特征信息的存储。最后标记:写入完成,续算文件数据完整。
65.之后在flowfile_1文件和monitorfile文件输出后,即在执行后续步骤前,通过自定义的judge()函数读取monitorfile文件中数据完整的标记,判断是否向下继续执行,其伪代码如下所示:if(flowfile_1 存在且monitorfile文件存在){read(monitorfile);if(monitorfile文件中存在数据完整的标记);{

续算文件的数据完整; 执行后续的步骤;}else{ 重新执行输出续算文件的过程;}}也即上述程序会判断在monitorfile文件中是否存在数据完整的标记,若标记存在则判断续算文件中的数据是完整的,然后执行后续的步骤;若标记不存在,那么则判断数据不完整,则需要重新对各个网格单元特征信息输出并存储在续算文件中,即重新执行一次步骤

,直到判断数据完整且有效为止。这样操作的好处在于:可以保证续算文件中流场数据的完整性,以免在需要使用续算文件时出现数据不完整的情况而导致重启计算的失败。
66.③
当flowfile_1续算文件已成功输出且判断数据完整后,整个流场数值模拟过程会继续进行进行。也即继续保持n步的输出间隔,在第2n步迭代完成以后,将重复步骤

中的续算文件输出过程,输出第2n步时刻的流场特征信息,形成第2个续算文件,即flowfile_2文件,也即新的第一续算文件,此时flowfile_1成为已保存的第二续算文件,并完成文件的完整与有效性判断。
67.④
在步骤



完成之后,在模拟计算的结果文件系统中存在flowfile_1和flowfile_2这两个续算文件,对于数值模拟过程而言,多个续算文件是没必要存在的,特别是对一些计算网格量十分巨大的算例,会造成硬盘存储空间的浪费,因此仅留下最新的续算文件即可。此处保留迭代步为i

n时刻的续算文件,删除(i-1)

n步的文件,从而保证计算结果系统中只存在唯一的流场续算文件,此过程如图7所示。
68.需要特别说明的,执行步骤

中删除多余续算文件的过程,是在flowfile_1和flowfile_2这两个续算文件数据完整有效的前提下进行的,也就是说如果只存在唯一的续算文件,那么无论计算正在进行或者是已停止,该续算文件中的流场信息也一定完整且有效,可直接读取并重启计算。但是,若计算停止且结果文件系统中存在2个续算文件,则说明在输出某一个续算文件的过程中出现了程序的异常终止,需要通过组件(4)的操作后才可重启计算。
69.(4)计算异常被动终止后重启计算组件,用于在模拟计算的过程中,若出现异常情况而使得计算被迫终止,则需要通过该组件实现对异常情况的判断,并实现对续算文件的识别以及流场数据的更新替换。
70.具体的,在结果文件系统中存在两个续算文件时,需要程序来判断到底应读取哪一个续算文件才能最有效的重启计算。而本技术通过自定义的getvaluablefile( )函数来判断文件生成的先后顺序并执行数据更新替换操作,其具体过程如下:

从结果文件系统中读取两个续算文件的系统生成时间,然后将两个续算文件生成的年、月、日、时等时间统一转换成以秒为单位的数字并分别赋值给两个变量,即time1和time2。
71.②
判断time1和time2两个变量数值的大小来确定续算文件生成的先后顺序,数值越小则文件生成时间越早,程序默认读取生成较早的续算文件中的完整有效的流场特征数据,且由组件(2)中可知,当存在两个续算文件时,较早生成的续算文件其数据一定完整且有效。
72.③
为了保证程序所读取且用于重启计算的流场特征数据信息是最新的(因为较晚生成的续算文件中存储的数据信息所对应的是完成模拟迭代步数更多的流场信息,则数据较新),需对两个续算文件进行数据替换的操作,由于两个续算文件中所存储的数据是按照相同的网格块顺序(如从block_1到block_n)、相同的网格单元顺序(如i、j、k方向分别从1~n顺序存储数据)以及相同的变量存储顺序来实现流场特征信息写入到续算文件中的,因此,这两个先后生成的续算文件的相同位置存储的数据种类完全一致,只需将生成时间较晚的续算文件中的流场特征数据替换掉生成较早的续算文件中相同存储位置上的数据,即完成数据信息的更新,保证了用于重启计算的流场特征数据一定为最新的。
73.④
当完成生成较早的续算文件中流场特征数据的读取且对数据进行更新操作后,删除较晚生成的续算文件,以保证重启模拟计算后组件(3)的有效性(因为组件(3)是根据名字来识别并删除上一个n步所输出的续算文件,正常计算时若结果文件系统中出现两个续算文件可能会导致程序误删,因此在重启时便需要提前删除多余的续算文件,避免计算出错),用最终续算文件中的流场特征数据完成模拟计算的重启。其过程如图8所示。
74.(5)计算人为主动终止后重启计算组件,用于当需要人为调整续算文件中的数据时,通过编程来完成寻值和替换数据的操作。
75.具体的,由于在组件(2)中已知,数据结构是以点、面和网格单元的形式来构造的,且按照特定的i,j,k三个方向编号顺序来存储流场特征信息,因此只需要知道想要修正的点、面以及单元所在的网格块block的编号,以及i,j,k三个方向的坐标信息便可以对流场续算文件中的数据进行修正,其中:网格块的编号以及修正区域的i,j,k坐标信息在网格文件以及流场显示文件中可以获取。然后采用和流场续算文件相同的数据格式,将需要修正区域的坐标信息以及修正后的流场数据信息输出到新建的文件中,名为reset.dat文件。接着读取原有的续算文件并读取其存储在各block中各个网格单元的流场特征信息,通过自定义函数接口将修正后的数据替换掉原有续算文件中的对应流场数据信息即可,即完成数据的替换修正,最后重启计算。具体的替换规则如下:

点的数据替换:直接给出对应点的数据信息piont1={i, j, k , si},然后被计算程序读取后直接替换对应点的值即可;

面的数据替换:如果是二维网格,只需先确定需要修正点所在的网格块的编号,再给出面的端点两个点的计算坐标信息以及需要替换的数据变量类型和数值,即给出piont1={i1,j1,k1,si}和piont2={i2,j2,k2,ti},两个点中间所覆盖的区域都用这两个点的值赋值即可,若si=ti,则修正区域中的流场变量的数据都修改为相同的值;若si≠ti,则根据面的个数和si和ti的值进行插值。
76.对于三维网格,首先需要先确定网格块的编号,再给出组成需要修正数据的网格面边界上4个点的计算坐标值和相应数据信息piont1={i1,j1,k1,si}、piont2={i2,j2,k2,ti}、piont3={i3,j3,k3,ui}和piont4={i4,j4,k4,vi},将这四个点所构成的平面投影到需要修正的续算文件中数据点所在的目标面上,然后以四个点的数据信息为基准去替换所投
影面上网格点对应的数据,若si=ti=ui=vi,则修正区域中的流场变量的数据都修改为相同的值;若si、ti、ui和vi的值不完全相同,则按照修正网格单元格心坐标与4个边界点坐标的距离进行加权求各流场特征参数的值,然后所求的值赋给投影面的各个网格单元,及完成续算文件数据信息的修正。
77.(3)网格块的数据替换:若需要对某一个网格块,即一个block中的网格单元的数据进行修正,那么需要知道该网格块的编号,将对应block中的流场特征参数信息按照i、j、k三个方向的顺序依次替换即可。
78.请参阅图9,图9为本技术实施例提供的一种流场数值模拟数据保护系统的结构示意图。
79.本技术实施例提供的一种流场数值模拟数据保护系统,可以包括:生成模块101,用于在当前的续算文件生成时刻,生成存储目标流场特征信息的第一续算文件,目标流场特征信息包括对模拟对象进行流场数值模拟所生成的流场特征信息;完整性判断模块102,用于判断第一续算文件是否完整;若第一续算文件完整,则保存第一续算文件,并删除已保存的第二续算文件;若第一续算文件不完整,则判断是否重新生成第一续算文件,若重新生成第一续算文件,则提示生成模块执行生成存储目标流场特征信息的第一续算文件的步骤,若不重新生成第一续算文件,则保存第一续算文件;应用判断模块103,用于判断是否应用模拟对象的续算文件对模拟对象进行流场数值模拟;若应用模拟对象的续算文件对模拟对象进行流场数值模拟,则在只存储有第一续算文件的情况下,基于第一续算文件生成目标续算文件;在存储有第一续算文件和第二续算文件的情况下,则基于第一续算文件和第二续算文件生成目标续算文件;模拟模块104,用于基于目标续算文件对模拟对象进行流场数值模拟。
80.本技术实施例提供的一种流场数值模拟数据保护系统,应用判断模块可以包括:第一处理单元,用于将所述第一续算文件的数据转存至所述第二续算文件中的相同存储位置上,将更新后的所述第二续算文件作为所述目标续算文件。
81.本技术实施例提供的一种流场数值模拟数据保护系统,还可以包括:获取模块,用于模拟基于所述目标续算文件对所述模拟对象进行流场数值模拟之前,获取用户对所述目标续算文件的更改信息;更改模块,用于基于所述更改信息对所述目标续算文件进行更改。
82.本技术实施例提供的一种流场数值模拟数据保护系统,生成模块可以包括:第一存储单元,用于按照预设的数据写入顺序,将所述目标流场特征信息存储至目标变量中;第一写入单元,用于创建空文件,将所述目标变量按照目标格式写入所述空文件中,生成所述第一续算文件。
83.本技术实施例提供的一种流场数值模拟数据保护系统,生成模块在生成存储目标流场特征信息的第一续算文件的过程中,还可以生成所述第一续算文件的监控文件,所述监控文件用于记录所述目标流场特征信息中各个数据是否已完整存入所述第一续算文件;完整性判断模块可以包括:第一判断单元,用于基于所述监控文件判断所述目标流场特征信息中的各个数据
是否已完整存入所述第一续算文件;若是,则判定所述第一续算文件完整;若否,则判定所述第一续算文件不完整。
84.本技术实施例提供的一种流场数值模拟数据保护系统,完整性判断模块可以包括:第二判断单元,用于判断是否存在异常情况;若存在所述异常情况,则判定不重新生成所述第一续算文件;若不存在所述异常情况,则判定重新生成所述第一续算文件。
85.本技术实施例提供的一种流场数值模拟数据保护系统,还可以包括:保存模块,用于完整性判断模块基于所述第一续算文件和所述第二续算文件生成目标续算文件之后,保存所述目标续算文件,并删除所述第一续算文件或所述第二续算文件。
86.本技术实施例提供的一种流场数值模拟数据保护系统,应用判断模块包括:应用判断单元,用于判断是否接收到用户在终止流场数值模拟后输入的重启计算指令;若接收到重启计算指令,则判定应用模拟对象的续算文件对模拟对象进行流场数值模拟;若未接收到重启计算指令,则判定不应用模拟对象的续算文件对模拟对象进行流场数值模拟。
87.本技术还提供了一种流场数值模拟数据保护设备及计算机可读存储介质,其均具有本技术实施例提供的一种流场数值模拟数据保护方法具有的对应效果。请参阅图10,图10为本技术实施例提供的一种流场数值模拟数据保护设备的结构示意图。
88.本技术实施例提供的一种流场数值模拟数据保护设备,包括存储器201和处理器202,存储器201中存储有计算机程序,处理器202执行计算机程序时实现如上任一实施例所描述流场数值模拟数据保护方法的步骤。
89.请参阅图11,本技术实施例提供的另一种流场数值模拟数据保护设备中还可以包括:与处理器202连接的输入端口203,用于传输外界输入的命令至处理器202;与处理器202连接的显示单元204,用于显示处理器202的处理结果至外界;与处理器202连接的通信模块205,用于实现流场数值模拟设备与外界的通信。显示单元204可以为显示面板、激光扫描使显示器等;通信模块205所采用的通信方式包括但不局限于移动高清链接技术(hml)、通用串行总线(usb)、高清多媒体接口(hdmi)、无线连接:无线保真技术(wifi)、蓝牙通信技术、低功耗蓝牙通信技术、基于ieee802.11s的通信技术。
90.本技术实施例提供的一种计算机可读存储介质,计算机可读存储介质中存储有计算机程序,计算机程序被处理器执行时实现如上任一实施例所描述流场数值模拟数据保护方法的步骤。
91.本技术所涉及的计算机可读存储介质包括随机存储器(ram)、内存、只读存储器(rom)、电可编程rom、电可擦除可编程rom、寄存器、硬盘、可移动磁盘、cd-rom、或技术领域内所公知的任意其它形式的存储介质。
92.本技术实施例提供的流场数值模拟数据保护系统、设备及计算机可读存储介质中相关部分的说明请参见本技术实施例提供的流场数值模拟数据保护方法中对应部分的详细说明,在此不再赘述。另外,本技术实施例提供的上述技术方案中与现有技术中对应技术方案实现原理一致的部分并未详细说明,以免过多赘述。
93.还需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个
实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个
……”
限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
94.对所公开的实施例的上述说明,使本领域技术人员能够实现或使用本技术。对这些实施例的多种修改对本领域技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本技术的精神或范围的情况下,在其它实施例中实现。因此,本技术将不会被限制于本文所示的这些实施例,而是要符合与本文所公开的原理和新颖特点相一致的最宽的范围。

技术特征:
1.一种流场数值模拟数据保护方法,其特征在于,包括:在当前的续算文件生成时刻,生成存储目标流场特征信息的第一续算文件,所述目标流场特征信息包括对模拟对象进行流场数值模拟所生成的流场特征信息;判断所述第一续算文件是否完整;若所述第一续算文件完整,则保存所述第一续算文件,并删除已保存的第二续算文件;若所述第一续算文件不完整,则判断是否重新生成所述第一续算文件,若重新生成所述第一续算文件,则返回执行所述生成存储目标流场特征信息的第一续算文件的步骤,若不重新生成所述第一续算文件,则保存所述第一续算文件;判断是否应用所述模拟对象的续算文件对所述模拟对象进行流场数值模拟;若应用所述模拟对象的续算文件对所述模拟对象进行流场数值模拟,则在只存储有所述第一续算文件的情况下,基于所述第一续算文件生成目标续算文件;在存储有所述第一续算文件和所述第二续算文件的情况下,则基于所述第一续算文件和所述第二续算文件生成目标续算文件;基于所述目标续算文件对所述模拟对象进行流场数值模拟。2.根据权利要求1所述的方法,其特征在于,所述基于所述第一续算文件和所述第二续算文件生成目标续算文件,包括:将所述第一续算文件的数据转存至所述第二续算文件中的相同存储位置上,将更新后的所述第二续算文件作为所述目标续算文件。3.根据权利要求1所述的方法,其特征在于,所述基于所述目标续算文件对所述模拟对象进行流场数值模拟之前,还包括:获取用户对所述目标续算文件的更改信息;基于所述更改信息对所述目标续算文件进行更改。4.根据权利要求1所述的方法,其特征在于,所述生成存储目标流场特征信息的第一续算文件,包括:按照预设的数据写入顺序,将所述目标流场特征信息存储至目标变量中;创建空文件,将所述目标变量按照目标格式写入所述空文件中,生成所述第一续算文件。5.根据权利要求4所述的方法,其特征在于,所述生成存储目标流场特征信息的第一续算文件的过程中,还包括:生成所述第一续算文件的监控文件,所述监控文件用于记录所述目标流场特征信息中各个数据是否已完整存入所述第一续算文件;所述判断所述第一续算文件是否完整,包括:基于所述监控文件判断所述目标流场特征信息中的各个数据是否已完整存入所述第一续算文件;若是,则判定所述第一续算文件完整;若否,则判定所述第一续算文件不完整。6.根据权利要求1所述的方法,其特征在于,所述基于所述第一续算文件和所述第二续算文件生成目标续算文件之后,还包括:保存所述目标续算文件,并删除所述第一续算文件或所述第二续算文件。
7.根据权利要求1至6任一项所述的方法,其特征在于,所述判断是否应用所述模拟对象的续算文件对所述模拟对象进行流场数值模拟,包括:判断是否接收到用户在终止流场数值模拟后输入的重启计算指令;若接收到所述重启计算指令,则判定应用所述模拟对象的续算文件对所述模拟对象进行流场数值模拟;若未接收到所述重启计算指令,则判定不应用所述模拟对象的续算文件对所述模拟对象进行流场数值模拟。8.一种流场数值模拟数据保护系统,其特征在于,包括:生成模块,用于在当前的续算文件生成时刻,生成存储目标流场特征信息的第一续算文件,所述目标流场特征信息包括对模拟对象进行流场数值模拟所生成的流场特征信息;完整性判断模块,用于判断所述第一续算文件是否完整;若所述第一续算文件完整,则保存所述第一续算文件,并删除已保存的第二续算文件;若所述第一续算文件不完整,则判断是否重新生成所述第一续算文件,若重新生成所述第一续算文件,则提示生成模块执行所述生成存储目标流场特征信息的第一续算文件的步骤,若不重新生成所述第一续算文件,则保存所述第一续算文件;应用判断模块,用于判断是否应用所述模拟对象的续算文件对所述模拟对象进行流场数值模拟;若应用所述模拟对象的续算文件对所述模拟对象进行流场数值模拟,则在只存储有所述第一续算文件的情况下,基于所述第一续算文件生成目标续算文件;在存储有所述第一续算文件和所述第二续算文件的情况下,则基于所述第一续算文件和所述第二续算文件生成目标续算文件;模拟模块,用于基于所述目标续算文件对所述模拟对象进行流场数值模拟。9.根据权利要求8所述的系统,其特征在于,所述应用判断模块包括:应用判断单元,用于判断是否接收到用户在终止流场数值模拟后输入的重启计算指令;若接收到所述重启计算指令,则判定应用所述模拟对象的续算文件对所述模拟对象进行流场数值模拟;若未接收到所述重启计算指令,则判定不应用所述模拟对象的续算文件对所述模拟对象进行流场数值模拟。10.一种流场数值模拟数据保护设备,其特征在于,包括:存储器,用于存储计算机程序;处理器,用于执行所述计算机程序时实现如权利要求1至7任一项所述流场数值模拟数据保护方法的步骤。11.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质中存储有计算机程序,所述计算机程序被处理器执行时实现如权利要求1至7任一项所述流场数值模拟数据保护方法的步骤。

技术总结
本申请公开了一种流场数值模拟数据保护方法、系统、设备及介质,在当前的续算文件生成时刻,生成存储目标流场特征信息的第一续算文件;若第一续算文件完整,则保存第一续算文件并删除已保存的第二续算文件;若第一续算文件不完整,则若重新生成第一续算文件,则返回执行生成存储目标流场特征信息的第一续算文件的步骤,若不重新生成第一续算文件,则保存第一续算文件;只存储有第一续算文件时,基于第一续算文件生成目标续算文件;在存储有第一续算文件和第二续算文件的情况下,则基于第一续算文件和第二续算文件生成目标续算文件;基于目标续算文件对模拟对象进行稳定的流场数值模拟。稳定性好且能合理节约计算和存储资源。稳定性好且能合理节约计算和存储资源。稳定性好且能合理节约计算和存储资源。


技术研发人员:梅杰 丁明松 李鹏 陈坚强 江涛 董维中 高铁锁 刘庆宗 石润 于新童
受保护的技术使用者:中国空气动力研究与发展中心计算空气动力研究所
技术研发日:2023.08.08
技术公布日:2023/9/13
版权声明

本文仅代表作者观点,不代表航家之家立场。
本文系作者授权航家号发表,未经原创作者书面授权,任何单位或个人不得引用、复制、转载、摘编、链接或以其他任何方式复制发表。任何单位或个人在获得书面授权使用航空之家内容时,须注明作者及来源 “航空之家”。如非法使用航空之家的部分或全部内容的,航空之家将依法追究其法律责任。(航空之家官方QQ:2926969996)

航空之家 https://www.aerohome.com.cn/

飞机超市 https://mall.aerohome.com.cn/

航空资讯 https://news.aerohome.com.cn/

分享:

扫一扫在手机阅读、分享本文

相关推荐