Numerical tool for perfroming uncertainty quantification

## Project description

Chaospy is a numerical tool for performing uncertainty quantification using polynomial chaos expansions and advanced Monte Carlo methods implemented in Python.

If you are using this software in work that will be published, please cite the journal article: Chaospy: An open source tool for designing methods of uncertainty quantification

## Installation

Installation should be straight forward:

```pip install chaospy
```

And you should be ready to go.

Alternatively, to get the most current experimental version, the code can be installed from Github as follows:

```git clone git@github.com:jonathf/chaospy.git    # first time only
cd chaospy/
git pull                                        # after the first time
pip install .
```

## Example Usage

chaospy is created to be simple and modular. A simple script to implement point collocation method will look as follows:

```import chaospy
import numpy

# your code wrapper goes here
coordinates = numpy.linspace(0, 10, 100)
def foo(coordinates, params):
"""Function to do uncertainty quantification on."""
return params[0] * numpy.e**(-params[1]*coordinates)

# bi-variate probability distribution
distribution = chaospy.J(chaospy.Uniform(1, 2), chaospy.Uniform(0.1, 0.2))

# polynomial chaos expansion
polynomial_expansion = chaospy.generate_expansion(8, distribution)

# samples:
samples = distribution.sample(1000)

# evaluations:
evals = [foo(coordinates, sample) for sample in samples.T]

# polynomial approximation
foo_approx = chaospy.fit_regression(
polynomial_expansion, samples, evals)

# statistical metrics
expected = chaospy.E(foo_approx, distribution)
deviation = chaospy.Std(foo_approx, distribution)
```

For a more extensive description of what going on, see the collection of tutorials.

## Development

Development is done using Poetry manager. Inside the repository directory, install and create a virtual environment with:

```poetry install
```

To run tests:

```poetry run pytest chaospy/ tests/ doc/ --doctest-modules
```

To build documentation, run:

```cd doc/
make html
```

The documentation will be generated into the folder doc/.build/html.

## Questions and Contributions

Please feel free to file an issue for:

• bug reporting
• asking questions related to usage
• requesting new features
• wanting to contribute with code