Skip to main content

Login

Don’t have an account yet? Register one!

Registration or login is required to send inquiries

Only registered users can send inquiries. Please register or login to continue.

UQit

UQit is a Python toolbox for uncertainty quantification (UQ) and time-series analysis. The designed structure and included tools are aligned with the specifications and demands of CFD (computational fluid dynamics) applications. UQit is designed to be non-intrusively linked to any CFD solver through user-provided interfaces. The current capabilities include uncertainty propagation, sensitivity analysis, prediction and time series analysis. In addition, in-situ and streaming capabilities are supported. UQit is designed to be easily extendable using new techniques, and domain-specific methods. UQit based on a number of established Python libraries, including mathplotlib and numpy.

Do you want to request support from EXCELLERAT staff or consulting on this Tool?

Description

Performing different types of UQ analyses in CFD is so important that it has been considered as one of the required technologies in the NASA CFD vision 2030 (Slotnick et al., 2014). In this regard, UQit can be seen as a good match noting that it can be (one of) the first Python-based open-source packages for UQ in CFD. In fact, there are many similarities as well as connections between UQ and the techniques in the fields of machine learning and data sciences in which Python libraries are rich. These besides the flexible design of UQit provide a good potential for further development of UQit in response to different needs coming up in particular applications. Due to the non-intrusive nature of the implemented UQ techniques, UQit treats the CFD simulator as a blackbox, therefore it can be linked to any CFD simulator conditioned on having an appropriate interface.

In order to use UQit, the user needs to establish the connection between the simulator and UQit via an interface. For instance, for Nek5000 an interface via VTK/Catalyst has been used and described in the literature. However, the future development will go in the direction of developing a more general Adios2 interface, which can be used both off-line and online (streaming).

 

In the following a short summary of the key features of UQit is provided:

  • Surrogates play a key role in conducting non-intrusive UQ analyses and computer experiments. They establish a functional relation between the simulator outputs (or QoIs) and the model inputs and parameters. The surrogates are constructed based on a limited number of training data and once constructed, they are much less expensive to run than the simulators. UQit uses different approaches to construct surrogates, including Lagrange interpolation, polynomial chaos expansion (Xiu, 2010; Xiu & Karniadakis, 2002), and Gaussian process regression (Gramacy, 2020; Rasmussen & Williams, 2005).
  • The goal of uncertainty propagation or UQ forward problem is to estimate how the known uncertainties in the inputs and parameters propagate into the QoIs. In UQit, these problems are efficiently handled using non-intrusive generalized polynomial chaos expansion (PCE) (Xiu, 2010; Xiu & Karniadakis, 2002).  As a useful feature for computationally expensive CFD simulations, the compressed sensing method can be utilized when the number of training samples is less than the number of terms in the expansion. By combining standard PCE and GPR, UQit provides the novel probabilistic PCE which is applicable to many CFD applications.
  • Global sensitivity analysis is performed to quantify the sensitivity of the QoIs with respect to the uncertain inputs and parameters. Contrary to the local sensitivity analysis, in GSA all parameters are allowed to vary simultaneously, and no linearization is involved in computing sensitivities. In UQit, Sobol Sensitivity Indices (main, interaction, and total) (Sobol, 2001) are computed as indicators of GSA.
  • A new module related to time-series analysis allows the formulation and fitting of autoregressive models to data, and subsequent sensitivity analysis.
  • Driven by the needs, different features will be developed and added to UQit in future.

 

Tool license

A combination of the licenses of the used libraries (Apache, MIT, open source Modified BSD)

 

Tool URL

Journal paper: https://joss.theoj.org/papers/10.21105/joss.02871

Github:  https://github.com/KTH-Nek5000/UQit

Several additional examples are available in the academic literature.

 

Programming language

Python

Availability

The tool and documentation is freely available on github, and in the academic literature.