Skip to main content

An implementation of the trajectory-adaptive multilevel splitting (TAMS) method.

Project description

pyTAMS

RSD DOI build PyPI version sonarcloud workflow scc badge github license badge

Overview

Rare events algorithms are powerful techniques allowing to sample rare occurrences of a computational model at a much lower cost than brute force Monte-Carlo. However, running such algorithms on models featuring more than a handull of dimensions become cumbersome as both compute and memory requirements increase. pyTAMS is a modular implementation of the trajectory-adaptive multilevel splitting (TAMS) rare event method introduced by Lestang et al., aiming at alleviating the difficulty of performing rare event algorithms for to high-dimensional systems such as the ones encountered in geophysical or engineering applications.

Installation

To install pyTAMS from GitHub repository, do:

git clone git@github.com:nlesc-eTAOC/pyTAMS.git
cd pyTAMS
python -m pip install .

Note that the latest version of pyTAMS is available on PyPI here and can be installed with pip install pytams, but built-in examples are not readily available using the PyPI version.

To run the example cases shipped with pyTAMS, additional dependencies are required. To install the examples dependencies, run:

python -m pip install .[exec]

Quick start

To get started with pyTAMS, let's have a look at the classical double-well potential case. Although it is not a high-dimensional system, it provides a good overview of pyTAMS capabilities. A 2D version of the double-well is available in the examples folder. To run the case, simply do:

cd examples/DoubleWell2D
python tams_dw2dim.py

This minimal example runs TAMS 10 times in order to get an estimate of the transition probability as well as the corresponding relative error. For a more in-depth explanation about this case, setting up the model and running the simulations, have a look at the tutorial here.

Documentation

doc

pyTAMS documentation is hosted on GitHub here

Contributing

If you want to contribute to the development of pyTAMS, have a look at the contribution guidelines.

Acknowledgements

The development of pyTAMS was supported by the Netherlands eScience Center in collaboration with the Institute for Marine and Atmospheric research Utrecht IMAU.

This package was created with Cookiecutter and the NLeSC/python-template.

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

pytams-1.0.0.tar.gz (56.9 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

pytams-1.0.0-py3-none-any.whl (49.5 kB view details)

Uploaded Python 3

File details

Details for the file pytams-1.0.0.tar.gz.

File metadata

  • Download URL: pytams-1.0.0.tar.gz
  • Upload date:
  • Size: 56.9 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.13.3

File hashes

Hashes for pytams-1.0.0.tar.gz
Algorithm Hash digest
SHA256 e4389ac056c56742785d3e070a817af2a2faefa3677a3db3f1f7c7193e57ccfd
MD5 9dfa0e02e88dd94207ffc38ed78b6950
BLAKE2b-256 ae524944a6dcc47831759ecbff035828e78b5a9fdbd9b419bb98306b3184f98f

See more details on using hashes here.

File details

Details for the file pytams-1.0.0-py3-none-any.whl.

File metadata

  • Download URL: pytams-1.0.0-py3-none-any.whl
  • Upload date:
  • Size: 49.5 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.13.3

File hashes

Hashes for pytams-1.0.0-py3-none-any.whl
Algorithm Hash digest
SHA256 f566c23d4804a7b4880f7bcfa4fcaa5b9252407efa0814f5b1e3152b00fc8034
MD5 0155dda5728a371de673c80422b6996a
BLAKE2b-256 a2d0723989cfc384beb32bb3904a4e80d2cd61569dda9273291bc3db79b15b8a

See more details on using hashes here.

Supported by

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