Skip to main content

timewave, a stochastic process evolution simulation engine in python.

Project description

Python library timewave

CodeShip Travis ci Read the Docs CodeFactor Grade Code Climate maintainability Codecov lgtm grade total lgtm alerts GitHub GitHub release PyPI Version PyPI - Python Version PyPI Downloads

a stochastic process evolution simulation engine in python.

simulation engine

timewave consists of four building blocks.

The State

which evolves over time during a simulation path. It is the nucleus or node which marks a point of time in a path.

The Producer

is the objects that provides states to the simulation and does the actual time evolution. Think of the producer building as the constructor of a stochastic process like a Brownian motion or, less mathematical, future stock prices or future rain intensities.

The Consumer

is an object that takes a state as a point in time provided by the producer and consumes it, i.e. does something with it - the actual calculation if you like.

The Engine

finally, which organizes the creation of states by the producer and the consumption by the consumer. The engine uses, if present, multiprocessing, i.e. takes full advantage of multi cpu frameworks. Therefore the engine splits the simulation into equal but distinct chunks of path for the number of workers (by default the number of cpu) and loops over the set of dedicated path in each worker. Each path is evolved by the producer in states which are at each point in time consumed directly by consumers. States are, due to limits of resources, not stored during the simulation. If you like to, use the storage consumer to save all states.

main frame workflow

setup simulation by

engine = Engine(Producer(), Consumer())

then run loop starts by


setup workers (by default by the number of cpu’s) on each worker start loop by


and invoke loop over paths and start again with


then do time evolution of a path

producer.evolve() / consumer.consume()

and finish with last consumer in consumer stack




put results into queue and take them out by


finish simulation (kind of reduce method)


before returning results from run.

Development Version

The latest development version can be installed directly from GitHub:

$ pip install --upgrade git+


Issues and Pull Requests are always welcome.


Code and documentation are available according to the Apache Software License (see LICENSE).

Download files

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

Source Distributions

No source distribution files available for this release. See tutorial on generating distribution archives.

Built Distribution

timewave-0.6-py3-none-any.whl (28.1 kB view hashes)

Uploaded py3

Supported by

AWS AWS Cloud computing Datadog Datadog Monitoring Facebook / Instagram Facebook / Instagram PSF Sponsor Fastly Fastly CDN Google Google Object Storage and Download Analytics Huawei Huawei PSF Sponsor Microsoft Microsoft PSF Sponsor NVIDIA NVIDIA PSF Sponsor Pingdom Pingdom Monitoring Salesforce Salesforce PSF Sponsor Sentry Sentry Error logging StatusPage StatusPage Status page