pygpc

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

https://github.com/pygpc-polynomial-chaos/pygpc

Science Score: 46.0%

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

  • CITATION.cff file
  • codemeta.json file
    Found codemeta.json file
  • .zenodo.json file
    Found .zenodo.json file
  • DOI references
  • Academic publication links
    Links to: sciencedirect.com, ieee.org
  • Committers with academic emails
    5 of 13 committers (38.5%) from academic institutions
  • Institutional organization owner
  • JOSS paper metadata
  • Scientific vocabulary similarity
    Low similarity (13.2%) to scientific vocabulary

Keywords

dynamical-systems gpc polynomial-chaos-expansion uncertainty-estimation uncertainty-propagation uncertainty-quantification
Last synced: 6 months ago · JSON representation

Repository

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

Basic Info
  • Host: GitHub
  • Owner: pygpc-polynomial-chaos
  • License: gpl-3.0
  • Language: Jupyter Notebook
  • Default Branch: master
  • Homepage:
  • Size: 732 MB
Statistics
  • Stars: 81
  • Watchers: 1
  • Forks: 25
  • Open Issues: 2
  • Releases: 0
Topics
dynamical-systems gpc polynomial-chaos-expansion uncertainty-estimation uncertainty-propagation uncertainty-quantification
Created about 7 years ago · Last pushed 8 months ago
Metadata Files
Readme License

README.md

Build

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:

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.

GitHub Events

Total
  • Issues event: 1
  • Watch event: 4
  • Delete event: 10
  • Issue comment event: 1
  • Push event: 34
  • Pull request event: 9
  • Fork event: 3
  • Create event: 5
Last Year
  • Issues event: 1
  • Watch event: 4
  • Delete event: 10
  • Issue comment event: 1
  • Push event: 34
  • Pull request event: 9
  • Fork event: 3
  • Create event: 5

Committers

Last synced: over 2 years ago

All Time
  • Total Commits: 635
  • Total Committers: 13
  • Avg Commits per committer: 48.846
  • Development Distribution Score (DDS): 0.589
Past Year
  • Commits: 52
  • Committers: 6
  • Avg Commits per committer: 8.667
  • Development Distribution Score (DDS): 0.577
Top Committers
Name Email Commits
Lucas l****r@c****e 261
konstantinweise k****g@g****m 225
kweise k****e@c****e 63
erikjackmueller e****r@g****m 36
lpossner l****r 22
Benjamin Kalloch k****h@s****e 8
numssen n****n@c****e 8
Erik Müller e****r@t****e 3
Lucas Possner L****r@r****m 3
Erik e****r@g****m 2
ch-salomon c****n@a****e 2
Lucas Poßner l****r@l****e 1
Nik Dierks n****s@g****e 1
Committer Domains (Top 20 + Academic)

Issues and Pull Requests

Last synced: 6 months ago

All Time
  • Total issues: 6
  • Total pull requests: 7
  • Average time to close issues: 2 months
  • Average time to close pull requests: 6 days
  • Total issue authors: 6
  • Total pull request authors: 1
  • Average comments per issue: 1.0
  • Average comments per pull request: 0.0
  • Merged pull requests: 2
  • Bot issues: 0
  • Bot pull requests: 0
Past Year
  • Issues: 2
  • Pull requests: 7
  • Average time to close issues: N/A
  • Average time to close pull requests: 6 days
  • Issue authors: 2
  • Pull request authors: 1
  • Average comments per issue: 0.5
  • Average comments per pull request: 0.0
  • Merged pull requests: 2
  • Bot issues: 0
  • Bot pull requests: 0
Top Authors
Issue Authors
  • Fololo (1)
  • MatthiVH (1)
  • Sesha02 (1)
  • alejandro-pd (1)
  • loganirado (1)
  • Prashanth-LakshmiNarasimhan (1)
Pull Request Authors
  • sicheng-an (12)
Top Labels
Issue Labels
Pull Request Labels

Packages

  • Total packages: 1
  • Total downloads:
    • pypi 649 last-month
  • Total dependent packages: 1
  • Total dependent repositories: 1
  • Total versions: 25
  • Total maintainers: 1
pypi.org: pygpc

A sensitivity and uncertainty analysis toolbox for Python

  • Versions: 25
  • Dependent Packages: 1
  • Dependent Repositories: 1
  • Downloads: 649 Last month
Rankings
Dependent packages count: 4.8%
Downloads: 7.0%
Forks count: 8.2%
Stargazers count: 8.5%
Average: 10.0%
Dependent repos count: 21.6%
Maintainers (1)
Last synced: 6 months ago

Dependencies

.github/workflows/main.yml actions
  • actions/checkout v2 composite
  • actions/setup-python v1 composite