论文标题

PRESTIO:大规模非线性动力学系统启用基于投影的模型降低

Pressio: Enabling projection-based model reduction for large-scale nonlinear dynamical systems

论文作者

Rizzi, Francesco, Blonigan, Patrick J., Parish, Eric J., Carlberg, Kevin T.

论文摘要

这项工作介绍了Pressio,这是一个开源项目,旨在为大型非线性动力学系统提供基于前沿投射的减少订单模型(ROM)。 PressIO提供了模型还原方法,可以减少任何动态系统的空间和时间自由度的数量,以作为参数化的普通微分方程(ODES)的系统表达。我们利用这个简单的,表达的数学框架作为关键设计选择,以实现最小化的应用程序界面(API)对动态系统而言是自然的。 PressIO的核心组件是C ++ 11个标头库,该库利用通用编程来支持使用任意数据类型和任意复杂编程模型的应用程序。这与Python绑定相辅相成,以将这些C ++功能暴露给具有可忽略不计的开销且没有用户所需的绑定代码的Python用户。我们讨论了Pressio相对于现有模型还原库的区别特征,概述其关键设计功能,描述用户如何与之互动,并介绍两个测试用例(包括一个具有超过2000万个自由度的测试用例),突出了Pressio的绩效结果并说明了可以解决该问题的问题。

This work introduces Pressio, an open-source project aimed at enabling leading-edge projection-based reduced order models (ROMs) for large-scale nonlinear dynamical systems in science and engineering. Pressio provides model-reduction methods that can reduce both the number of spatial and temporal degrees of freedom for any dynamical system expressible as a system of parameterized ordinary differential equations (ODEs). We leverage this simple, expressive mathematical framework as a pivotal design choice to enable a minimal application programming interface (API) that is natural to dynamical systems. The core component of Pressio is a C++11 header-only library that leverages generic programming to support applications with arbitrary data types and arbitrarily complex programming models. This is complemented with Python bindings to expose these C++ functionalities to Python users with negligible overhead and no user-required binding code. We discuss the distinguishing characteristics of Pressio relative to existing model-reduction libraries, outline its key design features, describe how the user interacts with it, and present two test cases -- including one with over 20 million degrees of freedom -- that highlight the performance results of Pressio and illustrate the breath of problems that can be addressed with it.

扫码加入交流群

加入微信交流群

微信交流群二维码

扫码加入学术交流群,获取更多资源