Pygpc
A Sensitivity and uncertainty analysis toolbox for Python based on the generalized polynomial chaos method
Install / Use
/learn @pygpc-polynomial-chaos/PygpcREADME
<img src="https://avatars3.githubusercontent.com/u/52486646?s=200&v=4" width="20%" heigth="20%" align="right">
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
- Optimized Latin Hypercube Sampling for fast convergence
Areas of application:
pygpc can be used to analyze a variety of different of problems. It is used for example in the frameworks of:
-
Nondestructive testing:
-
Noninvasive brain stimulation:
-
Transcranial magnetic stimulation:
- Weise, K., Di Rienzo, L., Brauer, H., Haueisen, J., & Toepfer, H. (2015). Uncertainty analysis in transcranial magnetic stimulation using nonintrusive polynomial chaos expansion. IEEE Transactions on Magnetics, 51(7), 1-8.
- Weise, K., Numssen, O., Thielscher, A., Hartwigsen, G., & Knösche, T. R. (2020). A novel approach to localize cortical TMS effects. NeuroImage, 209, 116486.
-
Transcranial direct current stimulation:
-
Cancer treatment
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. Simply run the following command in your terminal:
pip install pygpc
If you want to use the plot functionalities of pygpc, please also install matplotlib and seaborn:
pip install matplotlib seaborn
Installation using the GitHub repository: Alternatively, it is possible to clone this repository and run the setup manually. This requires a compiler that supports OpenMP which is used by the C-extensions and NumPy for some headers. You can install NumPy by running the following command:
pip install 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
Installation of the CUDA backend:
Pygpc also provides a CUDA-backend to speed up some computations. To use the backend you need to build it manually. This requires the CUDA-toolkit and CMake.
CMake can be installd via the pip command. Simply run the following command in your terminal:
pip install cmake
For the installation of the CUDA-toolkit, please refer to this website. If CMake and the CUDA-toolkit are installed on your machine you can build the extension with:
python build_pygpc_extensions_cuda.py
Troubleshooting for OSX:
On a Mac you need GCC to install pygpc. If you are using the brew package manager you can simply run:
brew install gcc libomp
Then install pygpc with:
CC=gcc-9 CXX=g++-9 python setup.py install
Troubleshooting for Windows:
On windows you might need a compiler to install pygpc. To install the Visual C++ Build Tools, please refer to this website.
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:
Contact
If you have questions, problems or suggestions regarding pygpc, please contact Konstantin Weise.
Related Skills
node-connect
337.7kDiagnose OpenClaw node connection and pairing failures for Android, iOS, and macOS companion apps
frontend-design
83.3kCreate distinctive, production-grade frontend interfaces with high design quality. Use this skill when the user asks to build web components, pages, or applications. Generates creative, polished code that avoids generic AI aesthetics.
openai-whisper-api
337.7kTranscribe audio via OpenAI Audio Transcriptions API (Whisper).
commit-push-pr
83.3kCommit, push, and open a PR
