PyThia

PyThia: A Python package for Uncertainty Quantification based on non-intrusive polynomial chaos expansions - Published in JOSS (2023)

https://gitlab.com/pythia-uq/pythia

Science Score: 89.0%

This score indicates how likely this project is to be science-related based on various indicators:

  • CITATION.cff file
  • codemeta.json file
  • .zenodo.json file
  • DOI references
    Found 4 DOI reference(s) in README and JOSS metadata
  • Academic publication links
    Links to: arxiv.org, sciencedirect.com, joss.theoj.org
  • Committers with academic emails
    1 of 6 committers (16.7%) from academic institutions
  • Institutional organization owner
  • JOSS paper metadata
    Published in Journal of Open Source Software
Last synced: 10 months ago · JSON representation

Repository

PyThia Uncertainty Quantification Toolbox

Basic Info
  • Host: gitlab.com
  • Owner: pythia-uq
  • License: other
  • Default Branch: development
Statistics
  • Stars: 4
  • Forks: 2
  • Open Issues: 10
  • Releases: 0
Created about 3 years ago

https://gitlab.com/pythia-uq/pythia/blob/development/

![PyThia Logo Full](logo/logo_full_transparent.png)

# PyThia Uncertainty Quantification Toolbox

The PyThia UQ toolbox uses polynomial chaos surrogates to efficiently generate a surrogate of any (parametric) forward problem.
The surrogate is fast to evaluate, allows analytical differentiation and has a built-in global sensitivity analysis via Sobol indices.
Assembling the surrogate is done non-intrusive by least-squares regression, hence only training pairs of parameter realizations and evaluations of the forward problem are required to construct the surrogate.
No need to compute any nasty interfaces for legacy code.

## Why the Name?

Pythia was the title of the high priestess of the temple of Apollo in Delphi.
Hence you could say she used her prophetic abilities to quantify which was uncertain.
Moreover, the package is written in python, so...

## Installation

The latest stable version of PyThia can be installed using pip
```shell.
pip install pythia-uq
```
To install PyThia from source, i.e., if you want to work with the latest (and possibly unstable) changes, simply clone the repository and run the setup script to install PyThia to any environment
```shell
cd path/to/pythia-repo/
pip install .
```
PyThia can then be imported from any location with `import pythia`.

## Documentation

The documentation of the stable package version can be found here: [pythia-uq.rtfd.io](https://pythia-uq.rtfd.io).
For other versions of the documentation, see [https://readthedocs.org/projects/pythia-uq/](https://readthedocs.org/projects/pythia-uq/).

## How to cite PyThia

You can cite PyThia using the following article:

  DOI badge


You can also create the citation using the `CITATION.cff` file in this repository.

## Want to contribute?

Check out the [contribution guidelines](CONTRIBUTING.md) on how to create issues or file bug reports and feature requests.
Or ever better start developping the PyThia project yourself after reading the [development guidelines](DEVELOPERS.md).

## License
This work is dual-licensed under GNU Lesser General Public License v3.0 or later and Hippocratic License 3.0 or later.
You can choose between one of them if you use this work.

`SPDX-License-Identifier: LGPL-3.0-or-later OR Hippocratic-3.0-ECO-MEDIA-MIL`

## Funding

The development of PyThia UQ Toolbox vers. 1 and 2 has been funded by the German Central Innovation Program (ZIM) No. ZF4014017RR7.
The development of PyThia UQ Toolbox vers. 3 and 4 has been funded by the EMPIR project 20IND04-ATMOC.

## Logo

Access and usage information about the PyThia logo can be found under the following URL: [https://gitlab.com/pythia-uq/pythia-logo](https://gitlab.com/pythia-uq/pythia-logo).

## References

Here we list the papers that describe concepts implemented in **PyThia** for the interested user.
In principle **PyThia** uses a (sparse) polynomial chaos expansion to construct a surrogate of any function via least-squares regression.
We first applied the **PyThia** software package to analyse the sensitivities of a scatterometry experiment [^pythia-scat-A] using global sensitivity analysis via Sobol indices [^sobol-indices].
We also solved the inverse problem for the same experiment [^pythia-scat-B] via Bayesian inversion.
To use a minimal but still sufficient amount of random samples for the regression, we integrated weighted least-squares sampling [^wls-sampling] into **PyThia**.

[^pythia-scat-A]: [An efficient approach to global sensitivity analysis and parameter estimation for line gratings](https://arxiv.org/abs/1910.14435)
[^pythia-scat-B]: [Efficient Bayesian inversion for shape reconstruction of lithography masks](https://arxiv.org/abs/2005.05164)
[^sobol-indices]: [Global sensitivity analysis using polynomial chaos expansions](https://www.sciencedirect.com/science/article/abs/pii/S0951832007001329)
[^wls-sampling]: [Optimal weighted least-squares methods](https://arxiv.org/abs/1608.00512)

Owner

  • Name: PyThia
  • Login: pythia-uq
  • Kind: organization

JOSS Publication

PyThia: A Python package for Uncertainty Quantification based on non-intrusive polynomial chaos expansions
Published
September 15, 2023
Volume 8, Issue 89, Page 5489
Authors
Nando Hegemann ORCID
Physikalisch-Technische Bundesanstalt, Germany
Sebastian Heidenreich ORCID
Physikalisch-Technische Bundesanstalt, Germany
Editor
Vissarion Fisikopoulos ORCID
Tags
polynomial chaos expansion sensitivity analysis regression function approximation

Committers

Last synced: 10 months ago

All Time
  • Total Commits: 324
  • Total Committers: 6
  • Avg Commits per committer: 54.0
  • Development Distribution Score (DDS): 0.373
Past Year
  • Commits: 5
  • Committers: 2
  • Avg Commits per committer: 2.5
  • Development Distribution Score (DDS): 0.2
Top Committers
Name Email Commits
Nando Farchmin n****n@g****m 203
Nando Farchmin f****n@m****e 80
Nando Farchmin n****n@p****e 32
Philipp Trunschke p****e@g****m 4
Timo Koch k****o@h****m 4
Till Biskup t****l@t****e 1
Committer Domains (Top 20 + Academic)

Issues and Pull Requests

Last synced: 10 months ago

Packages

  • Total packages: 1
  • Total downloads:
    • pypi 9 last-month
  • Total dependent packages: 0
  • Total dependent repositories: 1
  • Total versions: 8
  • Total maintainers: 1
pypi.org: pythia-uq

Toolbox for non-intrusive functional approximation of data via (sparse) general polynomial chaos.

  • Versions: 8
  • Dependent Packages: 0
  • Dependent Repositories: 1
  • Downloads: 9 Last month
Rankings
Dependent packages count: 10.1%
Downloads: 11.0%
Average: 18.1%
Dependent repos count: 21.6%
Forks count: 22.7%
Stargazers count: 25.1%
Maintainers (1)
Last synced: 10 months ago