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.
Type Name Latest commit message Commit time
Failed to load latest commit information.
pckg [Merge] files from dev branch Jul 21, 2019
pygpc - extended unittest Jul 19, 2019
templates - extended unittest Jul 19, 2019
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
LICENSE pygpc modify Computation class to handle internal function paralleliz… Mar 4, 2019 - [Fixed] source distribution build dependency bug Jul 11, 2019 Update Jul 13, 2019
pyproject.toml - Added pyproject.toml Jul 9, 2019


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 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 install


For a full API of pygpc, see 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.


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.


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

You can’t perform that action at this time.