Toolbox for non-intrusive functional approximation of data via (sparse) general polynomial chaos.
Project description
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 lagacy 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
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
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. For other versions of the documentation, see https://readthedocs.org/projects/pythia-uq/.
How to cite PyThia
There is no official related article to cite PyThia yet. If you make use of PyThia in a publication, please cite it with a BibTeX entry similar to this:
@misc{pythia,
author = {Farchmin, Nando},
title = {PyThia Uncertainty Quantification Toolbox},
howpublished = {vers.: 3.0},
note = {\url{https://gitlab1.ptb.de/pythia/pythia/}},
year = {2022},
month = {12}
}
Want to contribute?
Check out the contribution guidelines 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.
Roadmap and TODOs
After making the project public, there are a few necessary user experience changes left that we should make available:
- create stack overflow hashtag for
PyThia
Finally, here is a roadmap of features that we plan to add to pythia in the future.
- integrate tensor train representations of coefficients
- add tensor train regression (VMC)[^vmc-base]
- add exponentiation of tensor trains (expTT)[^expTT]
- add efficient posterior rejection sampling for tensor trains posteriors[^TT-posterior-sampling]
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 [^pythia-scat-B]: Efficient Bayesian inversion for shape reconstruction of lithography masks [^sobol-indices]: Global sensitivity analysis using polynomial chaos expansions [^wls-sampling]: Optimal weighted least-squares methods [^vmc-base]: Variational Monte Carlo - Bridging Concepts of Machine Learning and High Dimensional Partial Differential Equations [^expTT]: Efficient approximation of high-dimensional exponentials by tensornetworks [^TT-posterior-sampling]: Computation of the Response Surface in the Tensor Train data format
Project details
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file pythia-uq-3.0.0.tar.gz.
File metadata
- Download URL: pythia-uq-3.0.0.tar.gz
- Upload date:
- Size: 36.0 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/4.0.2 CPython/3.8.15
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
5ac0b12f4b73a36319904628ddb3ead14a8be2ce8d02af15c931cb8121c4e6c7
|
|
| MD5 |
50dc59f93920a44411b50ab365198b67
|
|
| BLAKE2b-256 |
522ec440b626d772318043f8aecaf433b58222968705896f7891d851e3cf1ca4
|
File details
Details for the file pythia_uq-3.0.0-py3-none-any.whl.
File metadata
- Download URL: pythia_uq-3.0.0-py3-none-any.whl
- Upload date:
- Size: 36.6 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/4.0.2 CPython/3.8.15
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
77aae97e88c0b9cf52d6f270b6883b7fb6b467c7374f4b7ad4bc5fb2362522b6
|
|
| MD5 |
38cdaefb7202a2e13d3e6cb8c56a1fdd
|
|
| BLAKE2b-256 |
01d2cb94a1bd2d58520bb4af81da14b38e894643e404cf1e74f96a0980cd214e
|