复用历史数据
组件名称 | 复用历史数据 | ||
---|---|---|---|
工具集 | 设计分析优化 | ||
组件作者 | 雪浪云-卡尔 | ||
文档版本 | 1.0 | ||
功能 | 实现继续运行异常中止的仿真模板。 | ||
镜像名称 | suanpan_mdo:latest | ||
开发语言 | Python |
组件原理
普通仿真模板在一次运行过程中,可能耗时非常长(可能几个小时到几天),如果中途遇到意外情况,例如电脑停电或软件异常情况时,此时如果重新计算,将会耗费非常多的时间,因此需要增加继续运行异常中止的仿真模板的功能。其原理是在运行普通仿真模板时,往数据库写入仿真结果的数据,然后在需要继续运行异常终止的仿真模板时,需要读取已有的数据库结果(由案例ID获取),在重新运行模板的过程中,需要判断当前设计点对应的结果是否已存在于数据库中,如果已存在,则直接返回数据库的结果,如果不存在则和正常流程一样,调用仿真接口运行计算。流程图如下:
输入桩
输入端子1
- 端口名称:历史仿真数据集;
- 功能描述:从数据库中读取到的历史仿真数据集,如果输入端子2(仿真参数)存在于历史仿真数据集中,则直接返回对应的该仿真参数对应的仿真结果,即输出端子1(历史仿真结果);如果输入端子2不存在于历史仿真数据集中,则直接将输入端子2(仿真参数)作为输出端子2(仿真参数);
- 输入类型:Csv文件;
- 示例:
studio/1000395/tmp/62615/e923b3808cd011ecbe95cb7e572e32f4/208adb90685611ec8cb10982f27568f8/out1
输入端子2
- 端口名称:仿真参数;
- 功能描述:仿真参数用于作为仿真接口组件的输入,其中包含design_id。每次输出后内部design_id累加1,最后一次结束时再另外输出一个空的Json字符串:即
{}
,通知其他组件发送完毕结束这个状态; - 输入类型:对象;
- 示例:
{
"design_id": 3,
"length": 1.5918367346938775,
"width": 1.5918367346938775,
"height": 1.9591836734693877
}
输出桩
输出端子1
- 端口名称:历史仿真结果;
- 功能描述:历史仿真数据集中特定仿真参数对应的仿真结果;
- 输出类型:对象;
- 示例:
{
"design_id": 3,
"Volume": 4.964462086375574,
"Surface": 17.542690545605996
}
输出端子2
- 端口名称:仿真参数;
- 功能描述:同输入端子2(仿真参数),如果输入端子2不存在于历史仿真数据集中,则直接将输入端子2(仿真参数)作为输出端子2(仿真参数);
- 输出类型:对象;
- 示例:
{
"design_id": 3,
"length": 1.5918367346938775,
"width": 1.5918367346938775,
"height": 1.9591836734693877
}
数据接收方式
异步模式。
参数配置
无。
运行调优
不建议进行特别配置,按照平台的默认分配运行。
使用方法
未部署状态下的操作步骤
后面板链接
右面板配置
无。
部署状态下的操作步骤
后面板操作
在后面板的输入框输入需要案例ID,数据库读取设计表组件将会读取该案例ID对应的仿真结果并输出给复用历史数据组件,而后在重新运行模板的过程中,需要判断当前设计点对应的结果是否已存在于数据库中,如果已存在,则直接返回数据库的结果,如果不存在则和正常流程一样,调用仿真接口运行计算。需要注意的是,复用历史数据的模板与普通的仿真模板是不同的,即如果需要继续运行异常中止的仿真模板,需要新建一个模板来复用历史数据。
输入案例ID:
点击滚动日志,观察输出结果:
弹窗操作
无。