首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何在pyOpt中的优化迭代之间调用函数?

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

Stack Overflow用户
提问于 2016-10-14 05:17:10
回答 1查看 155关注 0票数 0

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

我需要这样的东西的原因是,我在每个函数评估中运行有限元模拟,并且我希望在每次优化迭代后将有限元结果(位移、应力)输出到ExodusII文件。我最初把我的writeExodus函数放在“函数求值”函数的末尾,我的问题是每次函数求值时都会有一个新的“伪时间步长”写入到我的exodus文件中,而不仅仅是在每次迭代的末尾,所以这显然会导致额外的不必要的输出到exodus文件中,用于数值微分(有限差分,复杂步骤)和每次迭代进行多个函数求值的优化器(即当检查近似是否保守时)。

那么,有没有一种方法可以让pyOpt在每次迭代结束时执行一个函数(即我的exodusWrite函数)?或者,有没有什么办法可以在pyOpt中跟踪优化器迭代,以便在我的“函数求值”函数中跟踪优化器迭代,并且只在迭代次数发生变化时写入exodus输出?

EN

回答 1

Stack Overflow用户

发布于 2016-10-14 06:36:09

你可以把你的函数放在一个组件中,然后放在模型的末尾。因为它不会有任何连接,所以您需要为您的组手动执行set the run order

或者,您可以只修改pyopt_sparse驱动程序代码以手动调用您的函数。您只需在最后添加对所选方法的调用(如果为this call ),然后在pyopt_sparse要求客观评估的任何时候都会调用它

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/40031152

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档