物理代码组件封装的方法、系统、设备及介质技术方案

技术编号:39047330 阅读:14 留言:0更新日期:2023-10-10 12:00
本发明专利技术公开了物理代码组件封装的方法、系统、设备及介质,涉及热核聚变反应模拟平台的模拟仿真领域,其技术方案要点是:运行物理数据模型中表征模拟工作流的一个或多个组件的代码,生成多个输入或输出文件;根据输入或输出文件的文件格式匹配对应的第一文件解析器,基于第一文件解析器解析对应的所述输入或输出文件,生成数据结构;创建多个IDS映射文件,根据多个IDS映射文件将所述数据结构写入物理数据模型对应的IDS数据接口,以使表征模拟工作流的组件的代码的处理逻辑和数据相互分离完成物理数据模型的组件封装。本发明专利技术解决了在没有代码的源码或者不对源码进行改写的情况下,依旧能够实现对集成模拟分析平台的模拟工作流的组件的代码封装。作流的组件的代码封装。作流的组件的代码封装。

【技术实现步骤摘要】
物理代码组件封装的方法、系统、设备及介质


[0001]本专利技术涉及热约束核聚变集成模拟平台的模拟仿真领域,更具体地说,它涉及物理代码组件封装的方法、系统、设备及介质。

技术介绍

[0002]IMAS是由热核聚变反应堆(International Tokamak Experimental Reactor,ITER)组织开发的集成模拟分析平台,通过共享数据、物理组件和工作流来促进集成模拟的发展。集成模拟的实质是能够实现不同模拟任务的代码按一定执行顺序耦合在一起的工作流。然而不同代码的输入/输出(I/O)文件的数据格式并不相同,所以代码无法直接集成到模拟工作流中。ITER物理数据模型(PDM)作为一种标准的数据模型能够统一代码的输入/输出格式,封装代码的过程就是使代码形成组件,代码的输入/输出都保存到PDM,这样各个代码就可以通过统一的数据模型集成到模拟工作流中。
[0003]IMAS集成模拟工作流目前采用的是iWrap物理组件封装技术。iWrap是用Python实现的模块化组件生成器,用于复杂计算场景中代码的自动化集成。根据物理模型创建IMAS模拟工作流组件,就可以将不同语言(如Fortran、C++、java)编写的代码集成到复杂计算场景中。它是基于插件的模块化设计。
[0004]iWrap需要对工作流中的各个物理代码进行改写,按照iWrap规范编写(或改造)代码的输入和输出部分,而这个过程对代码是一种侵入式改造,也就是说需要修改代码本身的源码,而在实际的运用中有一些代码无法获取到源码或者无法修改代码的源码,导致无法实现对一个模拟工作流物理组件的代码封装。

技术实现思路

[0005]本专利技术的目的是提供物理代码组件封装的方法、系统、设备及介质,解决了在没有代码的源码或者不对源码进行改写的情况下,依旧能够实现对集成模拟分析平台的模拟工作流组件的代码封装。
[0006]本专利技术的上述技术目的是通过以下技术方案得以实现的:
[0007]本申请的第一方面,提供了一种物理代码组件封装的方法,方法包括:
[0008]运行物理数据模型中表征模拟工作流的一个或多个组件的代码,生成多个输入或输出文件;
[0009]根据所述输入或输出文件的文件格式匹配对应的第一文件解析器,基于所述第一文件解析器解析对应的所述输入或输出文件,生成数据结构;
[0010]创建多个IDS映射文件,根据多个所述IDS映射文件将所述数据结构写入物理数据模型对应的IDS数据接口,以使表征模拟工作流的组件的代码的处理逻辑和数据相互分离完成物理数据模型的组件封装;其中所述IDS映射文件配置有所述数据结构与IDS数据接口之间相互对应的映射关系。
[0011]在一种实现方案中,所述方法还包括:在所述输入或输出文件未匹配到对应的第
一文件解析器时,确定未匹配所述第一文件解析器的输入或输出文件的文件格式,写入与文件格式匹配的第二文件解析器,基于所述第二文件解析器解析未匹配所述第一文件解析器的输入或输出文件,生成数据结构。
[0012]在一种实现方案中,基于所述第一文件解析器或所述第二文件解析器解析所述输入或输出文件所生成数据结构是树形结构。
[0013]在一种实现方案中,所述树形结构配置有用于容纳数据字段类型的树形接口,其中所述数据字段类型包括整型、浮点型、字符串、数组、字典多种的任意一种或多种。
[0014]在一种实现方案中,根据所述映射关系形成数据结构与输入或输出文件的映射表。
[0015]在一种实现方案中,采用JSON文件或YAML文件对所述映射表的映射关系进行描述。
[0016]在一种实现方案中,所述映射表的格式包括模拟工作流名称、物理含义、物理含义说明、数据类型、IDS路径、是否需要映射到IDS数据接口和备注。
[0017]本申请的第二方案,还提供了一种物理数据模型组件封装的系统,系统包括:
[0018]文件生成模块,用于运行物理数据模型中表征模拟工作流的一个或多个组件的代码,生成多个输入或输出文件;
[0019]数据结构生成模块,用于根据所述输入或输出文件的文件格式匹配对应的第一文件解析器,基于所述第一文件解析器解析对应的所述输入或输出文件,生成数据结构;
[0020]数据写入模块,用于创建多个IDS映射文件,根据多个所述IDS映射文件将所述数据结构写入物理数据模型对应的IDS数据接口,以使表征模拟工作流的组件的代码的处理逻辑和数据相互分离完成物理数据模型的组件封装;其中所述IDS映射文件配置有所述数据结构与IDS数据接口之间相互对应的映射关系。
[0021]本申请的第三方面,还提供了一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时实现如本申请的第一方面所述的物理代码组件封装的方法。
[0022]本申请的第三方面,还提供了一种计算机可读存储介质,所述计算机可读存储介质存储有计算机指令,所述计算机指令用于使计算机执行本申请的第一方面所述的物理代码组件封装的方法。
[0023]与现有技术相比,本专利技术具有以下有益效果:
[0024]本专利技术提供了一种物理代码组件封装的方法,针对集成模拟平台的一个模拟工作流对应的一个或多个组件的代码在运行后所产生的多个输入或输出文件,然后基于输入或输出文件的文件格式匹配对应的第一文件解析器,从而解析输入或输出文件的数据结构,在此基础上,本专利技术采用将数据和逻辑分离的方法,创建了多个通用的IDS映射文件,将代码的输入或输出文件的数据结构映射到物理数据模型对应的IDS数据接口的数据结构中去,在没有物理代码源码或不对代码的源代码进行改造的情况下,仍可实现对集成模拟平台的一个模拟工作流的多个组件的代码封装。
[0025]此外,本申请的第二方面至第四方面,还提供了一种物理数据模型组件封装的系统、设备及介质,具备与上述一种物理代码组件封装的方法相同的有益效果,此处不做赘述。
附图说明
[0026]此处所说明的附图用来提供对本专利技术实施例的进一步理解,构成本申请的一部分,并不构成对本专利技术实施例的限定。在附图中:
[0027]图1示出了本专利技术实施例提供的一种物理代码组件封装的方法的流程示意图;
[0028]图2示出了本专利技术实施例提供的一种模拟工作流的代码封装的流程示意图;
[0029]图3示出了本专利技术实施例提供的一种物理数据模型组件封装的系统的结构框图;
[0030]图4示出了本专利技术实施例提的一种电子设备的结构框图。
具体实施方式
[0031]为使本专利技术的目的、技术方案和优点更加清楚明白,下面结合实施例和附图,对本专利技术作进一步的详细说明,本专利技术的示意性实施方式及其说明仅用于解释本专利技术,并不作为对本专利技术的限定。
[0032]需要理解的是,术语“第一”、“第二”仅用于描述目的,而不能理解为指示或暗示相对重要性或者隐含指明所指示的技术特征的数量。由此,限定有“第一”、“第二”的特征可本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种物理代码组件封装的方法,其特征在于,方法包括:运行物理数据模型中表征模拟工作流的一个或多个组件的代码,生成多个输入或输出文件;根据所述输入或输出文件的文件格式匹配对应的第一文件解析器,基于所述第一文件解析器解析对应的所述输入或输出文件,生成数据结构;创建多个IDS映射文件,根据多个所述IDS映射文件将所述数据结构写入物理数据模型对应的IDS数据接口,以使表征模拟工作流的组件的代码的处理逻辑和数据相互分离完成物理数据模型的组件封装;其中所述IDS映射文件配置有所述数据结构与IDS数据接口之间相互对应的映射关系。2.根据权利要求1所述的物理代码组件封装的方法,其特征在于,所述方法还包括:在所述输入或输出文件未匹配到对应的第一文件解析器时,确定未匹配所述第一文件解析器的输入或输出文件的文件格式,写入与文件格式匹配的第二文件解析器,基于所述第二文件解析器解析未匹配所述第一文件解析器的输入或输出文件,生成数据结构。3.根据权利要求2所述的物理代码组件封装的方法,其特征在于,基于所述第一文件解析器或所述第二文件解析器解析所述输入或输出文件所生成数据结构是树形结构。4.根据权利要求3所述的物理代码组件封装的方法,其特征在于,所述树形结构配置有用于容纳数据字段类型的树形接口,其中所述数据字段类型包括整型、浮点型、字符串、数组、字典多种的任意一种或多种。5.根据权利要求1所述的物理代码组件封装的方法,其特征在于,根据所述映射关系形成数据结构与输入或输出...

【专利技术属性】
技术研发人员:潘莉潘卫彭媛媛李欣怡薛雷李佳鲜王硕张刚兰荆涛曲成海
申请(专利权)人:核工业西南物理研究院
类型:发明
国别省市:

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

1