Skip to content
A Sensitivity and uncertainty analysis toolbox for Python based on the generalized polynomial chaos method
Jupyter Notebook Python TeX
Branch: master
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
doc
pckg [Merge] files from dev branch Jul 21, 2019
pygpc - extended unittest Jul 19, 2019
templates - extended unittest Jul 19, 2019
tests
tutorials - small bugfixes to algorithms Jul 17, 2019
.appveyor.yml - [VersionUp] Jul 11, 2019
.gitignore - [Added] .gitignore, dev/*, pckg/extensions/*: files from old Jul 18, 2019
.readthedocs.yml - [Added] .readthedocs.yml Jul 11, 2019
.travis.yml
LICENSE pygpc modify Computation class to handle internal function paralleliz… Mar 4, 2019
MANIFEST.in - [Fixed] setup.py: source distribution build dependency bug Jul 11, 2019
README.md Update README.md Jul 13, 2019
pyproject.toml - Added pyproject.toml Jul 9, 2019
requirements.txt
setup.py

README.md

pygpc

A Sensitivity and uncertainty analysis toolbox for Python based on the generalized polynomial chaos method

Basic features:

  • Highly efficient uncertainty analysis of N-dimensional systems
  • Sensitivity analysis using Sobol indices and Global derivative based sensitivity indices
  • Easy coupling to user defined models written in Python, Matlab, etc...
  • The parallelization concept allows to run model evaluations in parallel
  • Highly efficient adaptive algorithms allow for analysis of complex systems
  • Includes highly efficient CPU and GPU (CUDA) implementations to significantly accelerate algorithmic and post-processing routines for high-dimensional and complex problems
  • Includes state-of-the-art techniques such as:
    • Projection: determination of optimal reduced basis
    • l1-minimization: reduction of necessary model evaluations by making use of concepts from compressed sensing
    • Gradient enhanced gPC: use of gradient information of the model function to increase accuracy
    • Multi-element gPC: analyzing systems with discontinuities and sharp transitions

Areas of application:

pygpc can be used to analyze a variety of different of problems. It is used for example in the frameworks of:

If you use pygpc in your studies, please contact Konstantin Weise to extend the list above.

Installation

Installation using pip: pygpc can be installed via the pip command with Python >= 3.6 and then simply run the following line from a terminal:

pip install pygpc

If you want to use the plot functionalities from pygpc, please also install matplotlib:

pip install matplotlib

Installation using the GitHub repository: Alternatively, it is possible to clone this repository and run the setup manually. This requires Cython to compile the C-extensions and Numpy for some headers. You can get Cython and Numpy by running the following command:

pip install cython numpy

Alternatively you can install the build dependencies with the following command:

pip install -r requirements.txt

Afterwards, pygpc can be installed by running the following line from the directory in which the repository was cloned:

python setup.py install

Documentation

For a full API of pygpc, see https://pygpc.readthedocs.io/en/latest/. For examplary simulations and model configurations, please have a look at the jupyter notebooks provided in the /tutorial folder and the templates in the /example folder.

Reference

If you use this framework, please cite:

Saturnino, G. B., Thielscher, A., Madsen, K. H., Knösche, T. R., & Weise, K. (2019). A principled approach to conductivity uncertainty analysis in electric field calculations. NeuroImage, 188, 821-834.

Contact

If you have questions, problems or suggestions regarding pygpc, please contact Konstantin Weise.

You can’t perform that action at this time.