买专利卖专利找龙图腾,真高效! 查专利查商标用IPTOP,全免费!专利年费监控用IP管家,真方便!
申请/专利权人:四川大学
摘要:一种基于Python的CAE软件领域特定语言系统,针对CAE所实施对象的静态数据模型进行建模;针对数据模型间动态参数逻辑进行建模;采用Swig库对底层内核接口进行封装,封装后的Python类型满足C++中的类型对应;将CAE业务逻辑写到相关数据模型Python类的成员函数中以建立CAE业务模型;针对使用的CAE业务流程,对业务模型及其数据模型进行编排;基于CAE工作流引擎实现对业务流程的动态驱动执行,并将流程状态实时展示。本发明使用Python描述CAE领域模型和处理逻辑,采用Python标准库和SwigC++封装等建立的业务模型、基于有限状态机的业务建模和工作流引擎,实现了对所有业务逻辑的PythonDSL描述,有效提升领域建模效率和软件架构灵活性。
主权项:1.一种基于Python的CAE软件领域特定语言系统,其特征在于:具体步骤如下:S1、针对CAE所实施对象的静态数据模型进行建模;S2、针对所述步骤S1中的静态数据模型之间的动态参数逻辑进行建模,包括对参数约束、关联和控制逻辑参数;S3、采用Swig库对底层内核接口进行封装成Python接口,封装后的Python类型满足与C++中的类型对应一致;S4、将CAE业务逻辑都写到相关数据模型Python类的成员函数中,建立CAE业务模型;S5、针对使用的CAE业务流程,对业务模型及其所属的数据模型进行编排;S6、基于CAE工作流引擎实现对CAE业务流程的动态驱动执行,并将流程状态实时返给前端展示;所述步骤S1的具体步骤如下:S11、数据模型采用嵌套的有向树结构,其根节点为工程或数据库节点,所述数据模型包括几何及网格、物理、数值、解算及结果,并对其进行分开管理,结合用户当前会话模型对数据进行操作;S12、数据模型通过采用Json格式,在运行时被解析并注入到Python类的成员属性中,同时也支持直接将数据模型编码到Python类的成员属性中;S13、数据模型中具有可重复属性或库属性的数据模型,使用自定义关键字进行标识,在运行时使用懒加载技术以实现数据模型的延迟创建,根据用户选择的具体库元素来动态定义其数据模型,再根据数据模型创建出所对应的数据对象;所述S12中数据模型的具有包含步骤如下:S121、首先读入Json对象,遍历Json非基础类型对象,若Json对象含有可重复属性或库属性,则直接保存至Python数据模型的类属性以待延迟创建,并继续遍历下一个Json对象;否则解析该Json对象的每一条子Json数据,并进入步骤S122;S122、遍历所有Json子对象,若其数据类型为基础类型,则将该Json对象设为当前Python数据模型的成员属性,并继续遍历下一个Json对象;否则创建Python子数据模型,并在子数据集模型中遍历每一个Json子对象,反馈步骤S121中的遍历Json非基础类型对象;S123:待所有Json对象及其子对象遍历完毕后,Python数据模型初始结束;所述步骤S2的具体步骤如下:S21:针对步骤S1中静态数据模型中具有动态参数逻辑部分,使用Python内置的属性修饰符来修饰并产生属性修饰方法,在方法中编写处理代码;S22、与参数相关联的其他参数通过数据模型的树结构来查找并获取,树结构采用红黑树有序存储,查找时间复杂度为OlogN;S23、软件运行时,数据模型的黙认参数值或修改后的参数值被实时转为C++中的数据对象并返回给前端,并保证Python和C++中所操作数据的一致性;所述步骤S5的具体步骤如下:S51、将CAE业务划分为多个有依赖关系的独立业务,将其组合成一个状态图,从而并为一个逻辑整体;S52、根据状态图对工作流进行编排,并采用Json格式来配置,在运行时解析工作流并传递至前端用以生成界面;S53、Json格式配置文件中的流程节点被链接到数据模型树的节点上,将该流程节点与数据模型相互绑定;S54、在流程节点的子对象中,通过提前注册的方法名来确定该流程操作需要调用到的Python函数,将该流程节点与业务模型相互绑定。
全文数据:
权利要求:
百度查询: 四川大学 一种基于Python的CAE软件领域特定语言系统
免责声明
1、本报告根据公开、合法渠道获得相关数据和信息,力求客观、公正,但并不保证数据的最终完整性和准确性。
2、报告中的分析和结论仅反映本公司于发布本报告当日的职业理解,仅供参考使用,不能作为本公司承担任何法律责任的依据或者凭证。