CFD监控程序[关闭]
Posted
技术标签:
【中文标题】CFD监控程序[关闭]【英文标题】:CFD monitoring program [closed] 【发布时间】:2013-07-09 12:27:56 【问题描述】:我进行了大量计算流体动力学 (CFD) 计算。由于许多原因,我想编写一个程序来监控 CFD 求解器给出的日志文件的输出并相应地调整其控制参数。我有一些想法,但想请教一下最好的方法。
我的想法:
可以持续运行程序,并在固定时间间隔或日志文件更改时导入收敛参数 可以使用某些系统或平台特定的实用程序来监控 CFD 进程 CFD 在同一台机器上并行运行,因此(可能)需要一种方法来控制并行进程(我使用的 CFD 代码是 OpenFOAM,它利用 OpenMPI 来并行化其进程)为了完整起见,我在 Ubuntu 12.04 上运行,并且更喜欢用 C/C++ 或 Python 编写程序。
非常感谢
【问题讨论】:
您是否能够在 CFD 求解器中加入显式管理界面,或者该代码是否不可修改,因此您需要通过读取和写入其输出和输入文件来“控制”它? 理论上我可以随意修改 CFD 代码,因为它完全可以访问。我已经为此做了一些代码开发,所以我很确定它是可行的,但我认为也许外部应用程序更容易实现。既然你提到了它,我会再考虑一下,也许它毕竟是一个更好的主意。谢谢! 【参考方案1】:如果是我,我会尝试将 CFD 代码更改为库而不是应用程序,然后将其公开给 Python。然后我会编写一个 Python 脚本来调用库并获取结果,并根据需要进行迭代。如果 CFD 代码运行一次迭代不需要很长时间,这将比一遍又一遍地启动 CFD 独立程序更有效。也许更重要的是,它将允许 CFD 代码和主管之间交换丰富的数据,而不仅仅是文本文件。
【讨论】:
单次迭代通常需要 20 秒到几分钟,具体取决于实际问题和解决方法等。总收敛时间通常在 4-8 小时到一两天之间一次运行。在数据交换方面,通过修改基线 C++ 代码会更容易(我认为)获得一些更高级的数据,因为它存储在一组形成多级层次结构的对象中(我相信你可以在Python 我只是不知道如何)。尽管如此,我认为这比编写单独的应用程序更好。以上是关于CFD监控程序[关闭]的主要内容,如果未能解决你的问题,请参考以下文章