Skip to main content

Python framework for simulating physical systems consisting of multiple, interacting droplets.

Project description

emulsim

Framework for simulating physical systems consisting of multiple, interacting entities. The current focus of the package lies on simulating interacting droplets in a common environment, but the framework is extensible and flexible.

Main idea

The main idea is that the physical system consists of multiple elements, which together describe the state of the system. The dynamical rules are encoded in actors, which either act on individual elements, encoding their autonomous dynamics, or on multiple elements, introducing couplings.

Installation

The package is not yet available on pip and must thus be cloned from Github. The necessary python packages can be installed using pip. To install the package together with the requirements, the following commands can be used:

git clone https://github.com/david-zwicker/emulsim.git
pip install -r emulsim/requirements.txt

Documentation

The documentation for this package is available online

Running tests

The package comes with automated tests that reside in tests directory. The purpose of these tests is to ensure some basic functionality of the package. Consequently, it is good practice to run the tests and fix problems before committing to the repository. To run tests, first install the the necessary python modules:

pip install -r tests/requirements.txt

The tests can be run using pytest or using the convenient scripts collected in the scripts directory:

  • tests_run.sh runs all tests in sequential order. The script takes an optional argument that selects which tests are run: Only test files or methods that match the argument will be run.
  • tests_parallel.sh runs all tests in parallel. Also takes a pattern argument.
  • tests_coverage.sh checks how much of the code is covered by tests.
  • tests_types.sh tests the type annotations in the python files. Type annotations are optional in python, but they can be helpful to spot subtle programming problems.
  • format_code.sh enforces the code style on all files.

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

emulsim-0.5.0.tar.gz (568.1 kB view details)

Uploaded Source

Built Distribution

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

emulsim-0.5.0-py3-none-any.whl (100.0 kB view details)

Uploaded Python 3

File details

Details for the file emulsim-0.5.0.tar.gz.

File metadata

  • Download URL: emulsim-0.5.0.tar.gz
  • Upload date:
  • Size: 568.1 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.12.13

File hashes

Hashes for emulsim-0.5.0.tar.gz
Algorithm Hash digest
SHA256 e15dda2ec8dc2b951628dd872f31b009acd70a32b1d709b4568beaf65f08acad
MD5 a8bf27d51bba784efa6867670bb590fb
BLAKE2b-256 89a2151efd5b8956ec7f8bebbba5b36e625f8e22ad2dd5702a7d5b825f8f8454

See more details on using hashes here.

File details

Details for the file emulsim-0.5.0-py3-none-any.whl.

File metadata

  • Download URL: emulsim-0.5.0-py3-none-any.whl
  • Upload date:
  • Size: 100.0 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.12.13

File hashes

Hashes for emulsim-0.5.0-py3-none-any.whl
Algorithm Hash digest
SHA256 7c8446f2ba9a43793d608ce7cb481c50f34ea713f41f835cd83e73d2743963b3
MD5 ca95c544de1039572fd546dbb65e2cc2
BLAKE2b-256 9fb5689931394f4eb4195b70f795ca7cee14751ca848f386947994813c5bd8b5

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