CN115794040A - 构造cae软件架构的方法、装置、设备及存储介质 - Google Patents

构造cae软件架构的方法、装置、设备及存储介质 Download PDF

Info

Publication number
CN115794040A
CN115794040A CN202211422112.7A CN202211422112A CN115794040A CN 115794040 A CN115794040 A CN 115794040A CN 202211422112 A CN202211422112 A CN 202211422112A CN 115794040 A CN115794040 A CN 115794040A
Authority
CN
China
Prior art keywords
function
plug
defining
cae software
software architecture
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
CN202211422112.7A
Other languages
English (en)
Other versions
CN115794040B (zh
Inventor
丁桦
刘淑慧
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Shenzhen Shifeng Technology Co ltd
Original Assignee
Shenzhen Shifeng Technology Co ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Shenzhen Shifeng Technology Co ltd filed Critical Shenzhen Shifeng Technology Co ltd
Priority to CN202211422112.7A priority Critical patent/CN115794040B/zh
Publication of CN115794040A publication Critical patent/CN115794040A/zh
Application granted granted Critical
Publication of CN115794040B publication Critical patent/CN115794040B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management

Landscapes

  • Stored Programmes (AREA)

Abstract

本发明涉及工业软件领域,尤其涉及一种构造CAE软件架构的方法、装置、设备及存储介质,该方法包括:根据CAE软件对数据的操作功能类型,定义对应的功能类型插槽结构体,并根据所述功能类型插槽结构体来定义对应的功能插件;对所述功能插件建立索引;定义需多个功能操作处理的数据为全局变量;根据所述功能类型插槽结构体、功能插件、插件索引及全局变量建立CAE软件架构,功能类型插槽通过抽象类实现,功能插件通过继承抽象基类的子类实现,利用类的多态性实现功能索引,将软件中逻辑处理转化为简单的基类指针索引调用,使得CAE软件的开发层次分明,逻辑选择流程化,开发工作具有良好的局部性(模块化特征),维护简单、可靠。

Description

构造CAE软件架构的方法、装置、设备及存储介质
技术领域
本发明涉及工业软件领域,尤其涉及一种构造CAE软件架构的方法、装置、设备及存储介质。
背景技术
在CAE求解中,程序逻辑最复杂的是处理数据和操作多态性。因此,如何构造CAE软件架构,实现CAE软件操作的多态性和开发的局部化成为当前亟待解决的技术问题,目前传统CAE求解器的处理方式通常是:通过一系列的逻辑判断来确定用哪个状态,这些逻辑判断大多数需要下沉到程序的最底层,因为子过程相互依赖且不独立,所以这种程序实现方式会给开发过程带来当开发过程中需要对某一处进行改动时,需要改动与之相关的多个子过程的问题。
上述内容仅用于辅助理解本发明的技术方案,并不代表承认上述内容是现有技术。
发明内容
本发明的主要目的在于提供一种构造CAE软件架构的方法、装置、设备及存储介质,旨在解决现有技术中难以实现CAE软件操作的多态性和开发工作的局部化的要求所带来的问题。
为实现上述目的,本发明提供一种构造CAE软件架构方法,所述构造CAE软件架构方法包括以下步骤:
根据CAE软件对数据的操作功能,定义对应的功能类型插槽结构体,并根据所述功能类型插槽结构体定义对应的功能插件;
对所述功能插件建立索引;
定义需多个功能操作处理的数据为全局变量;
根据所述功能类型插槽结构体、功能插件、插件索引及全局变量建立CAE软件架构。
可选地,所述定义对应的功能类型插槽结构体,并根据所述功能类型插槽结构体定义对应的功能插件,包括:
通过编程语言,采用抽象类的定义方式,定义对应的功能类型插槽结构体;
在插槽的定义中,包含了对应插槽所包含的数据和各个操作名称的定义;
在插槽定义中,还包含了对应插槽所包含的各个操作对应的调用接口的定义;
根据所述操作和操作的调用接口,通过继承抽象类,定义对应的功能插件,在插件的定义中,还包含了本插件实际对应的各个操作子程序的定义,并将这些操作子程序与插槽中的对应操作名称建立映射关系。
可选地,所述对所述功能插件建立索引,包括:
定义功能指针数组;
根据所述功能指针数组,对所述功能插件进行索引。
可选地,所述对所述功能插件建立索引,还包括:
定义单一的功能指针;
根据所述单一的功能指针,对所述功能插件进行单一功能的索引。
可选地,所述全局变量包括但不限于:几何及网格数据,物质属性分布信息,数值模型数据,边界定义,状态变量。
可选地,所述插件功能是通过索引调用实现的,包括但不限于:
将具有不同编号的区域在初始化时,与此对应操作功能指针索引对应;
将具有不同名称的操作功能在初始化时,与此类型操作功能指针索引对应;
通过调用对应索引的基类指针,调用对应的功能插件。
可选地,所述根据所述CAE软件架构,由不同层次的功能类型插槽构成,包括但不限于:
具有独立操作功能的插槽,如单元插槽等包含若干独立操作功能的插槽;建立在其他操作功能之上的插槽,如分析插槽定义中通常包含了对单元、材料、边界、载荷、求解等插槽的调用。
此外,为实现上述目的,本发明还提出一种构造CAE软件架构的装置,所述构造CAE软件架构的装置包括:
定义模块,用于根据CAE软件对数据的操作功能,定义对应的功能类型插槽结构体,并根据所述功能类型插槽结构体定义对应的功能插件;
建立模块,用于对所述功能插件建立索引;
所述定义模块,还用于定义需多个功能操作处理的数据为全局变量;
构造模块,用于根据所述功能类型插槽结构体、功能插件、插件索引及全局变量建立CAE软件架构。
此外,为实现上述目的,本发明还提出一种构造CAE软件架构的设备,所述设备包括:存储器、处理器及存储在所述存储器上并在所述处理器上运行的构造CAE软件架构的程序,所述构造CAE软件架构的程序配置为实现如上文所述的构造CAE软件架构的方法。
此外,为实现上述目的,本发明还提出一种存储介质,所述存储介质上存储有构造CAE软件架构的程序,所述构造CAE软件架构的程序被处理器执行时实现如上文所述的构造CAE软件架构的方法。
本发明其公开了一种构造CAE软件架构的方法、装置、设备及存储介质,该方法包括:根据CAE软件对数据的操作功能,定义对应的功能类型插槽结构体,并根据所述功能类型插槽结构体来定义对应的功能插件;对所述功能插件建立索引;定义需多个功能操作处理的数据为全局变量;根据所述功能类型插槽结构体、功能插件、插件索引及全局变量建立CAE软件架构,功能类型插槽通过抽象类实现,功能插件通过继承抽象基类的子类实现,利用类的多态性实现功能索引,将软件中逻辑处理转化为简单的基类指针索引调用,使得CAE软件的开发层次分明,逻辑选择流程化,开发工作具有良好的局部性(模块化特征),维护简单、可靠。
附图说明
图1是本发明实施例方案涉及的硬件运行环境的构造CAE软件架构的设备结构示意图;
图2为本发明构造CAE软件架构的方法第一实施例的流程示意图;
图3为本发明构造CAE软件架构的方法一实施例的软件结构图;
图4为本发明构造CAE软件架构的方法一实施例的软件系统架构图;
图5为本发明构造CAE软件架构的方法第二实施例的流程示意图;
图6为本发明构造CAE软件架构的方法第三实施例的流程示意图;
图7为本发明构造CAE软件架构的装置第一实施例的功能模块示意图。
本发明目的的实现、功能特点及优点将结合实施例,参照附图做进一步说明。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明的一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
参照图1,图1为本发明实施例方案涉及的硬件运行环境的构造CAE软件架构的设备结构示意图。
如图1所示,该构造CAE软件架构的设备可以包括:处理器1001,例如中央处理器(Central Processing Unit,CPU),通信总线1002、用户接口1003,网络接口1004,存储器1005。其中,通信总线1002用于实现这些组件之间的连接通信。用户接口1003可以包括显示屏(Display),可选用户接口1003还可以包括标准的有线接口、无线接口,对于用户接口1003的有线接口在本发明中可为USB接口。网络接口1004可选的可以包括标准的有线接口、无线接口(如无线保真(Wireless-Fidelity,Wi-Fi)接口)。存储器1005可以是高速的随机存取存储器(Random Access Memory,RAM)存储器,也可以是稳定的存储器(Non-volatileMemory,NVM),例如磁盘存储器。存储器1005可选的还可以是独立于前述处理器1001的存储装置。
本领域技术人员可以理解,图1中示出的结构并不构成对构造CAE软件架构的设备的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件布置。
如图1所示,认定为一种计算机存储介质的存储器1005中可以包括操作系统、网络通信模块、用户接口模块以及构造CAE软件架构的程序。
在图1所示的构造CAE软件架构的设备中,网络接口1004主要用于连接后台服务器,与所述后台服务器进行数据通信;用户接口1003主要用于连接用户设备;所述构造CAE软件架构的设备通过处理器1001调用存储器1005中存储构造CAE软件架构的程序,并执行本发明实施例提供的构造CAE软件架构的方法。
基于上述硬件结构,提出本发明构造CAE软件架构的方法的实施例。
参照图2,图2为本发明变构造CAE软件架构的方法第一实施例的流程示意图,提出本发明构造CAE软件架构的方法第一实施例。
在第一实施例中,所述构造CAE软件架构的构建方法包括以下步骤:
步骤S10:根据CAE软件对数据的操作功能,定义对应的功能类型插槽,并根据所述功能类型插槽定义对应的功能插件。
需要理解的是,本实施例的执行主体是为构造CAE软件架构的设备,该构造CAE软件架构的设备具有数据处理、数据通信及程序运行等功能。
应当说明的是,如图3所示,为构造CAE软件架构的方法一实施例的软件结构图,软件结构技术目标:实现三通一平,各个模块之间,能流畅实现数据、操作、指令三大信息的联通,这里的数据主要是指各模块间需要相互传递的数据,通过全局变量的方式实现数据流的联通,操作是指对数据的加工运算,采用插件方式构建,指令是指采用什么顺序和逻辑调用操作的流程控制信息,通过调用的索引来实现。一平指调度平台,对操作的调度,各种不同Loop以及Loop类,根据指令信息来实现操作流。利用面向对象多态性的热插拔技术,实现CAE热插拔。分支逻辑采用顶层调度技术实现,顶层调度时只需要做一次逻辑判断,不需要穿插各子过程的逻辑分支。将主要数据与操作分离,以便为实现全局数据的透明化准备好必要的条件。
需要说明的是,功能类型插槽层包含分析槽、单元槽、材料槽、载荷槽、约束槽、连接槽、求解器槽等等,在本实施例中以单元槽为例介绍。
定义名为Elem的单元槽,如下:
Figure BDA0003942229220000061
上述名为Elem的单元槽的定义表明,该单元槽包含FormEleK等N个功能操作,同时,也通过interface定义了每个功能操作的调用接口。以单元槽的功能操作FormEleK为例,其功能为计算单元刚度矩阵,其调用接口为1个参数IEL。
然后,分别定义名为ElemType1和ElemType2的两个单元插件。先定义ElemType1如下:
Figure BDA0003942229220000062
Figure BDA0003942229220000071
上述插件名为ElemType1,插件中通过子程序定义了在本插件中N个功能操作对应的具体实施操作,如用子程序FormElemType1StifMatrix来定义功能操作FormEleK在本插件中将会具体实施的操作。
类似地,定义另外一个单元插件ElemType2如下:
Figure BDA0003942229220000072
Figure BDA0003942229220000081
在插件ElemType2中,功能操作FormEleK对应实施的具体操作就用另外的子程序FormElemType2StifMatrix来定义。
步骤S20:对所述功能插件建立索引。
在具体实施中,先定义各种不同单元插件的索引字典,具体代码如下:
Figure BDA0003942229220000082
上述示例中定义了2种不同单元类型ET1和ET2,每种单元类型对应着一个单元插件,以ET1为例,这种单元类型在调用操作时会去执行单元插件ElemType1所定义的具体操作,如单元类型ET1在执行计算单元刚度阵的操作时,将会调用FormElemType1StifMatrix子程序。
除了建立索引字典,在调用对单元的操作前,还需要对所用到的单元建立类型索引关联,具体操作如下代码:定义子程序InitElemTL对所有单元建立类型索引关联,比如,字符串’ET1Tag’和’ET2Tag’被定义为两种示例单元类型的索引关键字,当某个单元的类型被指定为’ET1Tag’时,那么对这个单元的操作都将指向ET1这个分支,代码如下所示:
Figure BDA0003942229220000083
Figure BDA0003942229220000091
步骤S30:在实施功能操作时,只需要在上层调用插槽的功能操作,就可以实现某插槽下的各种不同插件的统一操作,而不需要再进行复杂的逻辑判断。
本实施例中,调用对单元的操作时,不管是哪种类型的单元,都可以直接在上层调用...%FormEleK(I)来实现形成单元刚度阵的操作,当这个单元的类型为’ET1Tag’时,上层的调用就相当调用子程序FormElemType1StifMatrix,当这个单元的类型为’ET2Tag’时,上层的调用就相当调用子程序FormElemType2StifMatrix。
Figure BDA0003942229220000092
其他插槽,如分析槽、材料槽、载荷槽、约束槽、连接槽、求解器槽等,都可采用类似的方式来定义与调用。
步骤S40:定义需多个功能操作处理的数据为全局变量。
在本实施例中,单元槽的功能操作通常需要引用一些共用的信息,比如在形成刚度阵和组装刚度阵时都需要用到单元刚度阵的数组,以及节点的坐标信息和自由度信息,这些数据通常在多个功能操作中都要使用,有些数据也在不同插槽之间共用。对于这类数据,定义相应的全局变量以便于信息的共用,比如,定义全局模块MGlobVar为全局变量,代码如下:
Figure BDA0003942229220000093
Figure BDA0003942229220000101
如上模块MGlobVar中包含了节点和单元的基本信息,MGlobVar内的数据均可以作为全局数据,当有子程序需要使用这些信息时,只需要在子程序中包含这个模块的调用即可,比如,当子程序FormElemType1StifMatrix需要使用节点的坐标信息时,通过如下方式即可获取节点坐标:
Figure BDA0003942229220000102
步骤S50:根据所述功能类型插槽结构体、功能插件、插件索引及全局变量建立CAE软件架构。
应当理解的是,如图4所示为软件系统架构图,本系统架构由四个部分组建而成:数据结构、应用逻辑、操作类API、计算公式SDK。数据结构主要是指全局变量的数据结构;应用逻辑对应着不同的Loop或Loop类;SDK是实现最基本公式计算的模块单元,操作类API中的操作实现往往需要调用一系列SDK实现。基础数据以全局变量的形式对全局可见。通过构建具备多态性的插槽实现对指令信息的逻辑判断,插槽分为两个层次,上层为是Loop插槽,下层是子插槽层,其中,Loop插槽用于对求解分析类型进行逻辑判断,子插槽层则包含单元槽、材料槽、载荷槽、约束槽、连接槽、求解器槽、等等。每个插槽都可以接入不同的本类插件,比如单元槽,可以接入各种类型的实体单元、壳单元、梁单元等不同的单元插件。插槽内定义了本类插件共用的操作API的接口,如单元插槽内定义的公用操作API接口有:形成单元刚度阵、形成单元阻尼阵、形成单元质量阵、形成单元几何刚度阵、组装到总体刚度阵、组装到总体质量阵、计算单元应力等。子插槽的各个插件以API的形式实现,每个API将本分支的一系列具体操作进行有机地组织串联,以实现插件的具体功能。以某类型的单元插件ElemType1为例,插件由ElemType1的操作API组成,分别实现ElemType1的单刚阵、质量阵、阻尼阵等的形成,以及组装到总体刚度阵、总体质量阵、总体阻尼阵等功能。利用插槽的多态性,可以实现以统一的流程来调用API,而不同的API则通过调用不同的SDK来实现功能。SDK是最基本的数据操作,一般单个SDK对应某个具体数学公式的程序实现。比如,矩阵矩阵乘,矩阵向量乘等。SDK可以被多个API公用,也可以为某个API打包专门的SDK包,后面这种方式,使得插件可以非常方便地实现整体插入或整体拔出。打包SDK包,可以用静态库或者动态库的形式实现,进而可以通过对库的替换、增、减来方便快捷地实现整体软件的迭代更新、功能增加或轻量化。
在具体实施中,基于所述功能类型插槽结构体、功能插件、插件索引、以及全局变量,构造CAE软件架构。之后还包括:获取CAE软件架构中的各类插件;当所述某种插件的类型被指定为所述索引关键字时,根据建立好的所述插件类型索引,将所述插件的操作指向所述索引关键字的对应分支。
在本实施例中,根据CAE软件对数据的操作功能,定义对应的功能类型插槽结构体,并根据所述功能类型插槽结构体来定义对应的功能插件;对所述功能插件建立索引;定义需多个功能操作处理的数据为全局变量;根据所述功能类型插槽结构体、功能插件、插件索引及全局变量建立CAE软件架构,功能类型插槽通过抽象类实现,功能插件通过继承抽象基类的子类实现,利用类的多态性实现插件索引,将软件中逻辑处理转化为简单的基类指针索引调用,使得CAE软件的开发层次分明,逻辑选择流程化,开发工作具有良好的局部性(模块化特征),维护简单、可靠。
参照图5,图5为本发明构造CAE软件架构的方法第二实施例的流程示意图,基于上述图2所示的第一实施例,提出本发明构造CAE软件架构的方法的第二实施例。
本发明方法不限定具体的编程语言,多种编程语言均可实现本架构,只是不同的编程语言定义抽象类的语法不同,功能类似,如:FORTRAN语言采用“type,abstrct”来定义功能类型插槽,C++语言采用“class,abstrct”定义功能类型插槽。
本实施例以采用FORTRAN编程语言来编写为例,介绍插槽的定义方式如何实现其多态性,并介绍插件的定义方式,以及如何利用插槽多态性在调用过程中实现逻辑判断。
在第二实施例中,所述步骤S10,包括:
步骤S101:通过编程语言,定义对应的功能类型插槽结构体。
需要说明的是,通过抽象类定义功能类型插槽在插槽结构体的定义中,不仅包含了插槽包含的数据结构,也包含了插槽包含的操作。
第二实施例中,采用“type,abstrct”定义了一个名为AFun的功能类型插槽,AFun插槽包含了名为Parameter1的参数以及分别名为Do1和Do2的两个操作,其中,两个操作通过procedure的方式定义,代码如下:
Figure BDA0003942229220000121
步骤S102:根据所述操作,定义对应的操作的调用接口。
定义模块将插槽结构体的定义包含在其中,同时,在模块中通过abstractinterface分别为所述插槽结构体操作类开通调用接口。
第二实施例中,定义模块MAFun,将插槽结构体AFun的定义包含在其中,同时,模块中通过abstract interface分别为Do1和Do2定义调用接口,代码如下:
Figure BDA0003942229220000122
如上模块MAFun定义区包含了两个部分,第一部分为示例插槽结构体AFun的成员定义区,这个示例插槽结构体AFun包含的操作类成员,包括Do1、Do2,分别示例插槽结构体的两个功能操作。第二部分abstract interface分别对这些基本操作类开通了调用接口,比如操作类Do1包含形参this。
步骤S103:根据所述功能类型插槽结构体,及其包含的操作和操作的调用接口,通过继承抽象类,分别定义不同的插件。
通过插槽结构体申明对应的插件,以使所述单元插件继承插槽结构体的数据结构和操作类,并通过操作子程序定义插件中对应各个操作类的具体实施。
第二实施例中,通过继承抽象类AFun实现此类操作的不同操作功能的插件,如定义插件AFun1,代码如下:
class,extends(AFun)::AFun1
类似地,定义插件AFun2,代码如下:
classextends(AFun)::AFun2
在各个插件的定义中,也包含了对本插件所执行的具体功能操作的定义。
如AFun1和AFun2中,分别各自定义执行Do1和Do2的具体操作,代码如下:
Figure BDA0003942229220000131
如上述代码,模块MAFun1中,定义插件AFun1相关的操作API。模块MAFun1定义区用虚线分割成了两个部分,第一部分为MAFun1结构体的定义区:先用插槽结构体AFun来申明AFun1,AFun1就能继承插槽结构体AFun的数据结构和操作类,即具备AFun已经定义的基本操作;同时,定义在MAFun1中这些操作分别被命名为AFun1Do1、AFun1Do12子程序来实现具体操作,虚线分割出的第二部分,为这些具体操作子程序的定义区。
在本实施例中,通过编程语言,定义对应的功能类型插槽结构体;根据所述功能类型插槽结构体,分别定义对应的操作;根据所述操作,定义对应的操作的调用接口;根据所述操作和操作的调用接口,通过继承抽象类,定义对应的功能插件;对所述功能插件建立索引;定义需多个功能操作处理的数据为全局变量;根据所述功能类型插槽结构体、功能插件、插件索引及全局变量建立CAE软件架构。从而实现对插槽结构体和插件进行定义。
参照图6,图6为本发明构造CAE软件架构的方法第三实施例的流程示意图,基于上述图2所示的第一实施例,提出本发明构造CAE软件架构的方法的第三实施例。
在第三实施例中,所述步骤S20,包括:
步骤S201:定义功能指针组。
需要说明的是,通过定义功能指针数组class(AFun),pointer::AFunPtr(:),对用户使用到的功能插件进行索引(其中,AFunPtr包含NAFunPtr个元素,分别为AFunPtr(i),i=1,2,...,NAFunPtr):
AFunPtr(1)=>AFun1R (class(AFun1)::AFun1R)
AFunPtr(2)=>AFun2R (class(AFun2)::AFun2R)
AFunPtr(3)=>AFun1R2 (class(AFun1)::AFun1R2)
...
AFunPtr(NFunPtr)=>AFun2Rx(class(AFun2)::AFun2Rx)
或者也可以定义通过定义功能指针class(AFun),pointer::AFunPtr2,构建单一的索引。
步骤S202:根据所述功能指针组,对所述功能插件进行索引。
需要说明的是,通过分布信息调用:将具有不同编号的区域在初始化时对应操作功能指针索引,在具体应用中,只需要调用对应索引的基类指针。如:call AFunPtr(i)%Do1,其中i为索引号,就可以实现对第i个区域进行Operation1的操作;当仅存在一个区域时,则可以在定义单一索引的情况下,通过call AFunPtr2%Do1来实现对这个区域进行Operation1的操作。通过类型数据调用:将具有不同名称的操作功能在初始化时与此类型操作功能指针索引对应,在具体应用中,只需要调用对应索引的基类指针。
在本实施例中,根据CAE软件对数据的操作功能,定义对应的功能类型插槽结构体,并根据所述功能类型插槽结构体定义对应的功能插件;定义功能指针组;根据所述功能指针组,对所述功能插件进行索引;定义需多个功能操作处理的数据为全局变量;根据所述功能插槽结构体、功能插件、插件索引及全局变量建立CAE软件架构,从而建立插件索引,实现直接在顶层直接调用子程序,避免了繁琐的底层逻辑判断。
此外,本发明实施例还提出一种存储介质,所述存储介质上存储构造CAE软件架构的程序,所述构造CAE软件架构的程序被处理器执行时实现如上文所述的构造CAE软件架构的步骤。
由于本存储介质可以采用上述所有实施例的技术方案,因此至少具有上述实施例的技术方案所带来的有益效果,在此不再一一赘述。
参照图7,图7为本发明构造CAE软件架构的装置第一实施例的功能模块示意图。
本发明构造CAE软件架构的装置第一实施例中,该构造CAE软件架构的装置包括:
定义模块10,用于根据CAE软件对数据的操作功能,定义对应的功能类型插槽结构体,并根据所述功能类型插槽结构体定义对应的功能插件。
建立模块20,用于对所述功能插件建立索引。
定义模块40,还用于定义需多个功能操作处理的数据为全局变量。
构造模块50,用于根据所述功能类型插槽结构体、功能插件、插件索引及全局变量建立CAE软件架构。
在本实施例中,根据CAE软件对数据的操作功能,定义对应的功能类型插槽结构体,并根据所述功能类型插槽结构体来定义对应的功能插件;对所述功能插件建立索引;定义需多个功能操作处理的数据为全局变量;根据所述功能类型插槽结构体、功能插件、插件索引及全局变量建立CAE软件架构,功能类型插槽通过抽象类实现,功能插件通过继承抽象基类的子类实现,利用类的多态性实现插件索引,将软件中逻辑处理转化为简单的基类指针索引调用,使得CAE软件的开发层次分明,逻辑选择流程化,开发工作具有良好的局部性(模块化特征),维护简单、可靠。
在一实施例中,所述定义模块10,还用于定义对应的功能类型插槽结构体,并根据所述功能类型插槽结构体定义对应的功能插件,包括:
通过编程语言,定义对应的功能类型插槽结构体;
根据所述功能类型插槽结构体,分别定义对应的操作;
根据所述操作,定义对应的操作的调用接口;
根据所述操作和操作的调用接口,通过继承抽象类,定义对应的功能插件。
在一实施例中,所述建立模块20,还用于对所述功能插件建立索引,包括:
定义功能指针组;
根据所述功能指针组,对所述功能插件进行索引。
在一实施例中,所述建立模块20,还用于对所述功能插件建立索引,还包括:
定义单一的功能指针;
根据所述单一的功能指针,对所述功能插件进行功能单一的类型索引。
在一实施例中,所述建立模块20,还用于通过索引调用实现的,包括但不限于:
将具有不同编号的区域在初始化时,与此对应操作功能指针索引对应;
将具有不同名称的操作功能在初始化时,与此类型操作功能指针索引对应;
通过调用对应索引的基类指针,调用对应的功能插件。
在一实施例中,所述构造模块50,由不同层次的功能类型插槽构成,包括但不限于:
具有独立操作功能的插槽,如物质属性操作功能需要叠用若干独立操作功能的插槽,如数字建模操作功能,需要调用物质属性操作功能,建立在其他操作功能之上的插槽,如分析功能,可提供各种分析功能的插件接入。
本发明所述构造CAE软件架构的装置的其他实施例或具体实现方式可参照上述各方法实施例,因此至少具有上述实施例的技术方案所带来的所有有益效果,此处不再赘述。
需要说明的是,在本文中,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者系统不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者系统所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括该要素的过程、方法、物品或者系统中还存在另外的相同要素。
上述本发明实施例序号仅仅为了描述,不代表实施例的优劣。在列举了若干装置的单元权利要求中,这些装置中的若干个可以是通过同一个硬件项来具体体现。词语第一、第二、以及第三等的使用不表示任何顺序,可将这些词语解释为名称。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到上述实施例方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质(如只读存储器镜像(Read Only Memory image,ROM)/随机存取存储器(Random AccessMemory,RAM)、磁碟、光盘)中,包括若干指令用以使得一台终端设备(可以是手机,计算机,服务器,或者网络设备等)执行本发明各个实施例所述的方法。
以上仅为本发明的优选实施例,并非因此限制本发明的专利范围,凡是利用本发明说明书及附图内容所作的等效结构或等效流程变换,或直接或间接运用在其他相关的技术领域,均同理包括在本发明的专利保护范围内。

Claims (10)

1.一种构造CAE软件架构的方法,其特征在于,所述方法包括以下步骤:
根据CAE软件对数据的操作功能类型,定义对应的功能类型插槽结构体,并根据所述功能类型插槽结构体定义对应的功能插件;
对所述功能插件建立索引;
定义需多个功能操作处理的数据为全局变量;
根据所述功能类型插槽结构体、功能插件、插件索引及全局变量建立CAE软件架构。
2.如权利要求1所述的方法,其特征在于,所述定义对应的功能类型插槽结构体,并根据所述功能类型插槽结构体定义对应的功能插件,包括:
通过编程语言,采用抽象类的定义方式,定义对应的功能类型插槽结构体;
在插槽结构体中,分别定义对应插槽所包含的各个操作;
根据所述操作,定义对应的操作的调用接口;
根据所述操作和操作的调用接口,通过继承抽象类,定义对应的功能插件。
3.如权利要求1所述的方法,其特征在于,所述对所述功能插件建立索引,包括:
定义功能指针数组;
根据所述功能指针数组,对所述功能插件进行索引。
4.如权利要求1所述的方法,其特征在于,所述对所述功能插件建立索引,还包括:
定义单一的功能指针;
根据所述单一的功能指针,对所述功能插件进行单一功能的索引。
5.如权利要求1所述的方法,其特征在于,涉及多个操作的数据采用全局变量,所述全局变量包括但不限于:几何及网格数据,物质属性分布信息,数值模型数据,边界定义,状态变量。
6.如权利要求1所述的方法,其特征在于,所述插件功能是通过索引调用实现的,包括但不限于:
将具有不同编号的区域在初始化时,与此对应操作功能指针索引对应;
将具有不同名称的操作功能在初始化时,与此类型操作功能指针索引对应;
通过调用对应索引的基类指针,调用对应的功能插件。
7.如权利要求1所述的方法,其特征在于,所述根据所述CAE软件架构,由不同层次的功能类型插槽构成,包括但不限于:
具有独立操作功能的插槽,如物质属性操作功能需要调用若干独立操作功能的插槽,如数字建模操作功能,需要调用物质属性操作功能,建立在其他操作功能之上的插槽,如分析功能,提供各种分析功能的插件接入。
8.一种构造CAE软件架构的装置,其特征在于,所述构造CAE软件架构的装置包括:
定义模块,用于根据CAE软件对数据的操作功能,定义对应的功能类型插槽结构体,并根据所述功能类型插槽结构体定义对应的功能插件;
建立模块,用于对所述功能插件建立索引;
所述定义模块,还用于定义需多个功能操作处理的数据为全局变量;
构造模块,用于根据所述功能类型插槽结构体、功能插件、插件索引及全局变量建立CAE软件架构。
9.一种构造CAE软件架构的设备,其特征在于,所述CAE软件架构的构造设备包括存储器、处理器及存储在所述存储器上并可在所述处理器上运行的构造CAE软件架构的程序,所述构造CAE软件架构的程序被所述处理器执行时实现如权利要求1至7中任一项所述的构造CAE软件架构的方法。
10.一种存储介质,其特征在于,所述存储介质上存储有构造CAE软件架构的程序,所述构造CAE软件架构的程序被处理器执行时实现如权利要求1至7中任一项所述的构造CAE软件架构的方法。
CN202211422112.7A 2022-11-14 2022-11-14 构造cae软件架构的方法、装置、设备及存储介质 Active CN115794040B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202211422112.7A CN115794040B (zh) 2022-11-14 2022-11-14 构造cae软件架构的方法、装置、设备及存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202211422112.7A CN115794040B (zh) 2022-11-14 2022-11-14 构造cae软件架构的方法、装置、设备及存储介质

Publications (2)

Publication Number Publication Date
CN115794040A true CN115794040A (zh) 2023-03-14
CN115794040B CN115794040B (zh) 2024-02-06

Family

ID=85437485

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202211422112.7A Active CN115794040B (zh) 2022-11-14 2022-11-14 构造cae软件架构的方法、装置、设备及存储介质

Country Status (1)

Country Link
CN (1) CN115794040B (zh)

Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6813770B1 (en) * 2000-04-21 2004-11-02 Sun Microsystems, Inc. Abstract syntax notation to interface definition language converter framework for network management
CN105260186A (zh) * 2015-10-19 2016-01-20 厦门骐俊物联科技股份有限公司 用于嵌入式系统的应用程序sdk的构建方法及装置
CN105745620A (zh) * 2013-12-31 2016-07-06 北京新媒传信科技有限公司 软件架构的实现方法和实现平台
CN107145354A (zh) * 2017-05-04 2017-09-08 武汉斗鱼网络科技有限公司 软件框架及其构建方法、电子终端及可读存储介质
CN109976729A (zh) * 2019-05-05 2019-07-05 东北大学 一种存算显全局可配置的数据分析软件架构设计方法
CN114356306A (zh) * 2021-12-15 2022-04-15 红有软件股份有限公司 一种系统组件可视化定制的实现方法
CN114942796A (zh) * 2022-05-05 2022-08-26 北京达佳互联信息技术有限公司 插件编译及调用方法、装置、设备及存储介质

Patent Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6813770B1 (en) * 2000-04-21 2004-11-02 Sun Microsystems, Inc. Abstract syntax notation to interface definition language converter framework for network management
CN105745620A (zh) * 2013-12-31 2016-07-06 北京新媒传信科技有限公司 软件架构的实现方法和实现平台
CN105260186A (zh) * 2015-10-19 2016-01-20 厦门骐俊物联科技股份有限公司 用于嵌入式系统的应用程序sdk的构建方法及装置
CN107145354A (zh) * 2017-05-04 2017-09-08 武汉斗鱼网络科技有限公司 软件框架及其构建方法、电子终端及可读存储介质
CN109976729A (zh) * 2019-05-05 2019-07-05 东北大学 一种存算显全局可配置的数据分析软件架构设计方法
CN114356306A (zh) * 2021-12-15 2022-04-15 红有软件股份有限公司 一种系统组件可视化定制的实现方法
CN114942796A (zh) * 2022-05-05 2022-08-26 北京达佳互联信息技术有限公司 插件编译及调用方法、装置、设备及存储介质

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
尤恒: "基才软构件的集成化CAE软件开发方法研究", 《电子设计工程》, vol. 27, no. 3, pages 91 - 94 *

Also Published As

Publication number Publication date
CN115794040B (zh) 2024-02-06

Similar Documents

Publication Publication Date Title
US9886268B1 (en) Dual programming interface
US9182962B2 (en) Method for translating a cobol source program into readable and maintainable program code in an object oriented second programming language
McCormick et al. Building parallel, embedded, and real-time applications with Ada
WO2016181368A1 (es) Método implementado por computador que expone aplicaciones tipo software a partir de especificaciones de diseño
Harrison RPDE3: A framework for integrating tool fragments
US7421715B1 (en) System and method for dynamic late-binding of persistent object implementations in software-based systems
US20120316851A1 (en) Parameter promotion in a block diagram modeling environment
CN103268245B (zh) 一种气象数据快速处理流程化的方法
CN115794040B (zh) 构造cae软件架构的方法、装置、设备及存储介质
CN104778323A (zh) 集成多源性能分析数据的复杂装备作业流程仿真方法
US20100275187A1 (en) Implementing a class oriented data flow program on a programmable hardware element
Notkin et al. Extension and Software Development.
Oliveira et al. Early embedded software design space exploration using UML-based estimation
US8375355B2 (en) Conversion of a class oriented data flow program to a structure oriented data flow program
CN104267954A (zh) 一种用户界面中所包含的部件的生成方法和装置
US8356290B2 (en) Conversion of a class oriented data flow program with inheritance to a structure oriented data flow program
Gaurav et al. Machine learning with R
CN114327611A (zh) 接口描述文档的生成方法、装置、计算机设备及存储介质
Gorelik Object-oriented programming in modern Fortran
US8458682B2 (en) Conversion of a class oriented data flow program to a structure oriented data flow program with dynamic interpretation of data types
Hespe et al. KaMPIng: Flexible and (Near) Zero-overhead C++ Bindings for MPI
CN114911474B (zh) 一种基于计算模块的数据处理方法、设备及存储介质
Schmitz Schnek: A C++ library for the development of parallel simulation codes on regular grids
Dalton Financial applications using Excel add-in development in C/C++
Sanner The Python interpreter as a framework for integrating scientific computing software-components

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant