在pyOpt中如何在优化迭代之间调用函数?

2024-06-01 10:54:21 发布

您现在位置:Python中文网/ 问答频道 /正文

我想知道是否有一种方法可以传递pyOpt函数 是否应该在每次迭代结束时调用?你知道吗

我之所以需要这样的东西是因为我正在运行一个FEA 在每个函数的仿真计算中,我想输出 有限元分析结果(位移,应力)在每次 优化迭代。我最初将writeExodus函数放在 在“功能评估”功能结束时,我的问题是 每次都会有一个新的“伪时间步”写入我的exodus文件 函数不是在每次迭代结束时才被计算, 因此,这显然会导致额外的不必要的输出人口外流 数值微分文件(有限差分,复步长)和 对于每次迭代进行多个函数求值的优化器 (即检查近似是否保守时的GCMMA)。你知道吗

那么,有没有一种方法可以让pyOpt执行一个函数(即 在每次迭代结束时?或者, 我可以在pyOpt中跟踪优化器的迭代吗 在我的“功能评估”功能中,我可以跟踪 优化器迭代,并且只在迭代次数改变时写出埃及记输出?你知道吗


Tags: 文件方法函数功能时间差分数值人口
1条回答
网友
1楼 · 发布于 2024-06-01 10:54:21

您可以将函数放入模型末尾的组件中。因为它没有任何连接,所以您需要为您的组手动set the run order。你知道吗

或者,您也可以直接破解pyopt\u稀疏驱动程序代码来手动调用您的函数。如果this call,您只需在末尾添加一个对所选方法的调用,然后在pyopt\u sparse要求进行客观评估时随时调用它

相关问题 更多 >