Skip to main content

Parallel Parameter Fields for Uncertainty Quantification

Project description

Welcome to parafields

License GitHub Workflow Status Documentation Status codecov

parafields is a Python package that provides Gaussian random fields based on circulant embedding. Core features are:

  • Large variety of covariance functions: exponential, Gaussian, Matérn, spherical and cubic covariance functions, among others
  • Generation of distributed fields using domain decomposition and MPI through mpi4py
  • Uses numpy data structures to ease integration with the Python ecosystem of scientific software
  • Optional caching of matrix-vector products
  • Easy integration into e.g. FEniCSx-based PDE solvers (Example that is currently not tested as part of our CI)

parafields implements these features through Python bindings to the parafields-core C++ library. The following options are supported in the backend but not yet in the Python bindings:

  • axiparallel and full geometric anisotropy
  • value transforms like log-normal, folded normal, or sign function (excursion set)
  • Coarsening and refinement of random fields for multigrid/-scale methods

Installation

parafields is available from PyPI and can be installed using pip:

python -m pip install parafields

This will install a sequential, pre-compiled version of parafields. In order to use parafields in an MPI-parallel context, you need to instead build the package from source:

python -m pip install --no-binary parafields -v parafields

This will build the package from source and link against your system MPI.

Additionally, parafields defines the following optional dependency sets:

  • jupyter: All requirements for an interactive Jupyter interface to parafields
  • tests: All requirements for running parafields's unit tests
  • docs: All requirements for buildings parafields's Sphinx documentation

These optional dependencies can be installed by installing e.g. parafields[jupyter].

Usage

This is a minimal usage example of the parafields package:

Minimum usage example

For more examples, check out the parafields documentation.

Reporting Issues

If you need support with parafields or found a bug, consider a bug on the issue tracker.

Contributing

parafields welcomes external contributions. For the best possible contributor experience, consider opening an issue on the issue tracker before you start developing. Announcing your intended development in this way allows us to clarify whether it is in the scope of the package. Contributions are then done via a pull request on the GitHub repository. Please also add your name to the list of copyright holders.

For a development installation of parafields, use the following instructions:

git clone https://github.com/parafields/parafields.git
cd parafields
python -m pip install -v --editable .[tests,docs,jupyter]

Before contributing, make sure that the unit tests pass and that new functionality is covered by unit tests. The unit tests can be run using pytest:

# Sequential tests
python -m pytest

# Parallel tests
mpirun --oversubscribe -np 4 python -m pytest --only-mpi

In order to locally build the Sphinx documentation, use the following commands:

sphinx-build -t html ./doc ./html

Acknowledgments

The parafields-core C++ library is work by Ole Klein whichis supported by the federal ministry of education and research of Germany (Bundesministerium für Bildung und Forschung) and the ministry of science, research and arts of the federal state of Baden-Württemberg (Ministerium für Wissenschaft, Forschung und Kunst Baden-Württemberg).

The Python bindings are realized by the Scientific Software Center of Heidelberg University. The Scientific Software Center is funded as part of the Excellence Strategy of the German Federal and State Governments.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

parafields-1.0.2.tar.gz (33.9 kB view details)

Uploaded Source

Built Distributions

parafields-1.0.2-cp312-cp312-win_amd64.whl (2.2 MB view details)

Uploaded CPython 3.12 Windows x86-64

parafields-1.0.2-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (3.1 MB view details)

Uploaded CPython 3.12 manylinux: glibc 2.17+ x86-64

parafields-1.0.2-cp312-cp312-macosx_10_9_x86_64.whl (2.8 MB view details)

Uploaded CPython 3.12 macOS 10.9+ x86-64

parafields-1.0.2-cp311-cp311-win_amd64.whl (2.2 MB view details)

Uploaded CPython 3.11 Windows x86-64

parafields-1.0.2-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (3.1 MB view details)

Uploaded CPython 3.11 manylinux: glibc 2.17+ x86-64

parafields-1.0.2-cp311-cp311-macosx_10_9_x86_64.whl (2.8 MB view details)

Uploaded CPython 3.11 macOS 10.9+ x86-64

parafields-1.0.2-cp310-cp310-win_amd64.whl (2.2 MB view details)

Uploaded CPython 3.10 Windows x86-64

parafields-1.0.2-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (3.1 MB view details)

Uploaded CPython 3.10 manylinux: glibc 2.17+ x86-64

parafields-1.0.2-cp310-cp310-macosx_10_9_x86_64.whl (2.8 MB view details)

Uploaded CPython 3.10 macOS 10.9+ x86-64

parafields-1.0.2-cp39-cp39-win_amd64.whl (2.2 MB view details)

Uploaded CPython 3.9 Windows x86-64

parafields-1.0.2-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (3.1 MB view details)

Uploaded CPython 3.9 manylinux: glibc 2.17+ x86-64

parafields-1.0.2-cp39-cp39-macosx_10_9_x86_64.whl (2.8 MB view details)

Uploaded CPython 3.9 macOS 10.9+ x86-64

parafields-1.0.2-cp38-cp38-win_amd64.whl (2.2 MB view details)

Uploaded CPython 3.8 Windows x86-64

parafields-1.0.2-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (3.1 MB view details)

Uploaded CPython 3.8 manylinux: glibc 2.17+ x86-64

parafields-1.0.2-cp38-cp38-macosx_10_9_x86_64.whl (2.8 MB view details)

Uploaded CPython 3.8 macOS 10.9+ x86-64

File details

Details for the file parafields-1.0.2.tar.gz.

File metadata

  • Download URL: parafields-1.0.2.tar.gz
  • Upload date:
  • Size: 33.9 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/4.0.2 CPython/3.11.7

File hashes

Hashes for parafields-1.0.2.tar.gz
Algorithm Hash digest
SHA256 ead2fbe7a8590789f1e01297f0d5851450587ab6bb1b11aef000aefe6affa14d
MD5 a1f2c666fab93e780f460be08d60cd3d
BLAKE2b-256 ae44f7b536bf5cd17f1d53cb7b0ac064f2762401781a54501de50add99e03a46

See more details on using hashes here.

File details

Details for the file parafields-1.0.2-cp312-cp312-win_amd64.whl.

File metadata

File hashes

Hashes for parafields-1.0.2-cp312-cp312-win_amd64.whl
Algorithm Hash digest
SHA256 994c03454d1edf925cd1cc422506d03e55168fe54544b2fa703a9f3616946104
MD5 eb5b402eb1df001e54c73acac29fd745
BLAKE2b-256 1c33f2b8036f93626d738f8b8396e812e277e8576cd062abbb8db5964e036d61

See more details on using hashes here.

File details

Details for the file parafields-1.0.2-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for parafields-1.0.2-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 d6a59a8568cff36f48db2bcb912cd2958ae203432a1dd0daf13b7adb20450825
MD5 465b2055ba20309b39728a63c42f1e19
BLAKE2b-256 8b92ccbf68008ee46d195bef7a550404472646274e86281a46581dc9401fa888

See more details on using hashes here.

File details

Details for the file parafields-1.0.2-cp312-cp312-macosx_10_9_x86_64.whl.

File metadata

File hashes

Hashes for parafields-1.0.2-cp312-cp312-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 8b476d49cc0d29066d307cbf49d9c0381c84ed20444d7169d1c7a2e246f24b06
MD5 a73000d510388b8137ce61d63fda52c4
BLAKE2b-256 54da8b65dcf4d0c15c0bcc2304a48430a64c736c38f21a893558f6ff778eb0d9

See more details on using hashes here.

File details

Details for the file parafields-1.0.2-cp311-cp311-win_amd64.whl.

File metadata

File hashes

Hashes for parafields-1.0.2-cp311-cp311-win_amd64.whl
Algorithm Hash digest
SHA256 8ed6802c26475548bccb24cd4bb3415431f4ec0ec4f4e49354ba4cb271948a74
MD5 b7380e28a4d900b99ddf8b6a0bb9f417
BLAKE2b-256 dc6fbc3f13ceb170df5f279f0cb5c3d0d60efaed54c88847999285b55b83c5bd

See more details on using hashes here.

File details

Details for the file parafields-1.0.2-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for parafields-1.0.2-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 1c3a3e8c960aeb0c7a9bedd10291a7e0099c436c412d3012469c933eb1c1c539
MD5 027026e5fc9e39a66b265eb96ddf8045
BLAKE2b-256 4b779ac66093c3a2b77c88f55aba7387aab6f693e03594e2a6c904884547c914

See more details on using hashes here.

File details

Details for the file parafields-1.0.2-cp311-cp311-macosx_10_9_x86_64.whl.

File metadata

File hashes

Hashes for parafields-1.0.2-cp311-cp311-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 3043476dbc28977f610fb0f8eee9a484c71ef239794adb270a3d1e1c8ba0cee3
MD5 0cc5acc5bdfb6ab68f9b3966753196a4
BLAKE2b-256 4619e00552d0e2bdbeec362fe478b0a7ea218cbad0cf67a6a9914af09612f9d9

See more details on using hashes here.

File details

Details for the file parafields-1.0.2-cp310-cp310-win_amd64.whl.

File metadata

File hashes

Hashes for parafields-1.0.2-cp310-cp310-win_amd64.whl
Algorithm Hash digest
SHA256 e566a68c43fb7db99b07f6ccec413a9dbe538ee8f115eb383fa1fea4ef603ee6
MD5 4ff342d0dcba5854e9e3b74792cb18d2
BLAKE2b-256 c8c422372aaf1870b2a11ce040406ee2f3cfb75d913638e02cd5ea33d5590fba

See more details on using hashes here.

File details

Details for the file parafields-1.0.2-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for parafields-1.0.2-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 584e276b9790233e55d098ce3382cca2a17f43990e6561ca5c75f3e60e3c3304
MD5 0d491c533ad6440d08df01f9fd1e4ef8
BLAKE2b-256 f5596d59d6a654f97dea30b4df3494eb1b89d6efa684c602afbbbbe7a4ed4f7b

See more details on using hashes here.

File details

Details for the file parafields-1.0.2-cp310-cp310-macosx_10_9_x86_64.whl.

File metadata

File hashes

Hashes for parafields-1.0.2-cp310-cp310-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 83629296e8cfe6e43b0411fc383767676a620a94cb32e151c278357df26eadd3
MD5 41a48377e882e43fd3382a8b3e0ef33d
BLAKE2b-256 31f0e678710cde5dfa9a37aaf5eba8d70027f4cc6865c3ff8817d1c6e41da15d

See more details on using hashes here.

File details

Details for the file parafields-1.0.2-cp39-cp39-win_amd64.whl.

File metadata

File hashes

Hashes for parafields-1.0.2-cp39-cp39-win_amd64.whl
Algorithm Hash digest
SHA256 3103f62ea7d8dae5cb5abb4c8a6e3ab637bf7d8932af9de930509badd95b0f40
MD5 aec62f2f3763c958ee56d13eafb383f0
BLAKE2b-256 b6441c9f6f9cf2f0f8e9edb23a71e92b3893d0f66507c2e06f54ad9a66a66570

See more details on using hashes here.

File details

Details for the file parafields-1.0.2-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for parafields-1.0.2-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 f553ac789f2f0f19321ba24a5cd101d947ffe51d82343d69915024ce5b4d32a6
MD5 8b4555bfdc827bc1a403387d6ab0455c
BLAKE2b-256 6081ed6093a698ec3fab8a24e87d223617400dc34da8816c2a62c7781717f8c4

See more details on using hashes here.

File details

Details for the file parafields-1.0.2-cp39-cp39-macosx_10_9_x86_64.whl.

File metadata

File hashes

Hashes for parafields-1.0.2-cp39-cp39-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 7d1add25cb51d733a40e34bd46edf2aed17b5f468d548c85220bffffb917fd49
MD5 7d1c9d6c4d98ce8d2984a586d7c5a078
BLAKE2b-256 6bfd898dbb61bd240f401a2421531123c8919c21b6030ef918d35df9aa03fb80

See more details on using hashes here.

File details

Details for the file parafields-1.0.2-cp38-cp38-win_amd64.whl.

File metadata

File hashes

Hashes for parafields-1.0.2-cp38-cp38-win_amd64.whl
Algorithm Hash digest
SHA256 af822b1735b89dded4519a1ca330e865bcd3f5c6e19beac0245e7509d4e8472b
MD5 b932aacf074a4ccf82fb406fdb8e3ba5
BLAKE2b-256 d2a811f5d47e89e947182f48bee8d367f1fa33589f038ebc93769b78452502b3

See more details on using hashes here.

File details

Details for the file parafields-1.0.2-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for parafields-1.0.2-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 4a7989b6548779463cc52e51a4eb01888ee8951dc3a95dec2911b4a9f6c311a8
MD5 238ed2ade6e0b10743ca0a15c25eeb18
BLAKE2b-256 42175a59cb5b2fc3996db6fc6385b1f8d460973ef84492f621f320e98285e225

See more details on using hashes here.

File details

Details for the file parafields-1.0.2-cp38-cp38-macosx_10_9_x86_64.whl.

File metadata

File hashes

Hashes for parafields-1.0.2-cp38-cp38-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 32f43ed9a45062e2d739f5844a943126d846f1af23e3079756b12ba109d3d631
MD5 a445724bb04f42d9ccaed2a26de57ce2
BLAKE2b-256 b2976342c64d70e2e594dffec31bcf8615aa335ec2284ecacdb79c0f8145139e

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page