UQpy: A general purpose Python package and development environment for uncertainty quantification

UQpy: A general purpose Python package and development environment for uncertainty quantification
复制标题

DOI:
10.1016/j.jocs.2020.101204
复制
发表时间:
2020-11-01
影响因子:
3.3
通讯作者:
Shields, Michael D.
Shields, Michael D.
中科院分区:
计算机科学3区
文献类型:
--
作者:
Olivier, Audrey;Giovanis, Dimitris G.;Shields, Michael D.

文献摘要

被引文献

相似文献

本文介绍了UQPY软件工具箱,这是一种用于数学和物理系统中一般不确定性量化(UQ)的开源Python软件包。该软件既可以用作用户就绪的工具箱,其中包括用于计算建模的UQ的许多最新方法,也包括Python程序员推进UQ领域的方便开发环境。本文介绍了该软件的体系结构和现有功能的介绍,该介绍在代码中划分为一组围绕不同UQ任务的模块,例如采样方法,生成随机过程和随机字段,概率逆模型,可靠性分析,替代,替代,,替代,,替代,,,替代,模型,和积极学习。本文还强调了Runmodel模块的重要性,该模块用于在UQPY中执行的不确定性分析中驱动模拟。该模块可以方便地允许用户直接在Python中定义计算模型,或者在串行或并行的第三方软件中运行模拟。为了说明各种功能,在整个论文中跟踪两个示例,并反复分析各种UQ任务。第一个是解决非线性结构动力学问题的Python模型,用于说明Uqpy在高维随机载体(随机过程)和概率推理的抽样和正向传播中的能力。第二个模型是第三方ABAQUS有限元模型,该模型求解了梁结构的热机械响应。此示例用于说明Uqpy在降低差异采样技术,可靠性分析,替代建模和主动学习技术方面的功能。
This paper presents the UQpy software toolbox, an open-source Python package for general uncertainty quantification (UQ) in mathematical and physical systems. The software serves as both a user-ready toolbox that includes many of the latest methods for UQ in computational modeling and a convenient development environment for Python programmers advancing the field of UQ. The paper presents an introduction to the software's architecture and existing capabilities, divided in the code in a set of modules centered around different UQ tasks such as sampling methods, generation of random processes and random fields, probabilistic inverse modeling, reliability analysis, surrogate modeling, and active learning. The paper also highlights the importance of the RunModel module, which is used to drive simulations in the uncertainty analyses performed in UQpy. This module conveniently allows the user to define computational models directly in Python, or to run simulations from a third-party software in serial or in parallel. To illustrate the various capabilities, two examples are tracked throughout the paper and analyzed repeatedly for various UQ tasks. The first is a Python model solving a nonlinear structural dynamics problem, used to illustrate UQpy's capabilities in sampling and forward propagation of high dimensional random vectors (stochastic processes), and probabilistic inference. The second model is a third-party Abaqus finite element model solving the thermomechanical response of a beam structure. This example is used to illustrate UQpy's capabilities in variance reduction sampling techniques, reliability analysis, surrogate modeling and active learning techniques.