In this article, we outline the development of a general-purpose Python-based data analysis tool for OpenFOAM 8. Our implementation relies on the construction of OpenFOAM applications that have bindings to data analysis libraries in Python. Double precision data in OpenFOAM is cast to a NumPy array using the NumPy C-API and Python modules may then be used for arbitrary data analysis and manipulation on flow-field information. This document highlights how the proposed framework may be used for an in-situ online singular value decomposition (SVD) implemented in Python and accessed from the OpenFOAM solver PimpleFOAM. Here, `in-situ' refers to a programming paradigm that allows for a concurrent computation of the data analysis on the same computational resources utilized for the partial differential equation solver. In addition, to demonstrate data-parallel analyses, we deploy a distributed SVD, which collects snapshot data across the ranks of a distributed simulation to compute the global left singular vectors. Crucially, both OpenFOAM and Python share the same message passing interface (MPI) communicator for this deployment which allows Python objects and functions to exchange NumPy arrays across ranks. Our experiments also demonstrate how customized data science libraries such as TensorFlow may be leveraged through these bindings. Subsequently, we provide scaling assessments of our framework and the selected algorithms on multiple nodes of Intel Broadwell and KNL architectures for canonical test cases such as the large eddy simulations of a backward facing step and a channel flow at friction Reynolds number of 395.
翻译:在此文章中, 我们为 OpenFOAM 8. 我们的执行依赖于 OpenFoAM 应用程序的构建, 该应用程序对 Python 的数据分析库具有约束力。 OpenFoAM 的双精度数据被投放到 NumPy 阵列中, 使用 NumPy C- API 和 Python 模块进行任意的数据分析和对流场信息进行操作。 此文件突出显示拟议框架如何用于在 Python 中实施并访问 OpenFoAM 的 OpenFoAM 应用程序。 OpenFoAM 应用程序对 PoprofoAM 的数据分析库。 OpenFoAM 的“ 状态” 指的是一个编程模式, 用于同时计算用于部分差异方程式解析的相同计算资源。 此外, 为了演示数据定位器分析, 我们部署的分布式 SVDD, 收集分布式模拟系列的简单数据数据, 以解析全球左向大矢量 。 至关重要, OpenPAM 和 Pyson 的多盘解算器 解算器 的多盘中, 解算式系统 的系统解算法, 和 解算式的系统解算式 的系统解算器的系统解算器的系统解算法 。