如何解决在 Dymola/Modelica 中停止基于 CPU 时间的模拟
在 Dymola 中,我可以执行以下操作:
when time > 100 then
assert(false,"Simulation taking too long");
end when;
停止基于时间变量本身的模拟。
然而,我想做的是根据 CPU 时间停止模拟。 Dymola 有一种输出 CPU 时间的方法,它在结果中显示为 CPUtime,但我不知道如何访问该变量。换句话说,这就是我想要做的,但 CPUtime 变量不在范围内:
when CPUtime > 100 then
assert(false,"Simulation taking too long");
end when;
任何建议,如何访问 CPU 时间,或其他解决方法来终止基于 CPU 时间的模拟?
解决方法
如前所述:
您可以在 Dymola 2022 的模拟设置中进行设置,也可以通过设置 Advanced.Simulation.MaxRunTime
来进行设置。
这是挂钟时间,这意味着如果你有一个并行模拟,它会在 10 秒后停止,而不是在核心一起用了 10 秒时停止,如果你出于某种奇怪的原因在模型它仍然会结束。
(评论中已经指出了这一点 - 感谢 Priyanka。但是,stackoverflow 出于某种原因警告评论中的答案可能会丢失。)
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。