Skip to main content

Python Version License: MIT Code style: black pre-Commit Check Build and Test

Gym-preCICE

Gym-preCICE is a Python preCICE adapter fully compliant with Gymnasium (also known as OpenAI Gym) API to facilitate designing and developing Reinforcement Learning (RL) environments for single- and multi-physics active flow control (AFC) applications. In an actor-environment setting, Gym-preCICE takes advantage of preCICE, an open-source coupling library for partitioned multi-physics simulations, to handle information exchange between a controller (actor) and an AFC simulation environment. The developed framework results in a seamless non-invasive integration of realistic physics-based simulation toolboxes with RL algorithms.

Installation

Main required dependencies

Gymnasium: Installed by default. Refer to the Gymnasium for more information.

preCICE: You need to install the preCICE library. Refer to the preCICE documentation for information on building and installation.

preCICE Python bindings: Installed by default. Refer to the python language bindings for preCICE for information.

Installing the package

We support and test for Python versions 3.7 and higher on Linux. We recommend installing Gym-preCICE within a virtual environment, e.g. conda:

  • create and activate a conda virtual environment:
 conda create -n gymprecice python=3.8
 conda activate gymprecice

PIP version

  • install the adapter:
python3 -m pip install gymprecice
  • run a simple test to check gymprecice installation (this should pass silently without any error/warning messages):
python3 -c "import gymprecice"

The default installation does not include extra dependencies to run tests or tutorials. You can install these dependencies like python3 -m pip install gymprecice[test], or python3 -m pip install gymprecice[tutorial], or use python3 -m pip install gymprecice[all] to install all extra dependencies.

Development version

  • if you are contributing a pull request, it is best to install from the source:
git clone https://github.com/gymprecice/gymprecice.git
cd gymprecice
pip install -e .
pip install -e .[dev]
pre-commit install

Testing

We use pytest framework to run unit tests for all modules in our package. You need to install required dependencies before running any test:

python3 -m pip install gymprecice[test]
  • To run the full test suits:
pytest ./tests
  • To run a specific unit test, e.g. to test core module (core.py):
pytest ./tests/test_core.py

Usage

Please refer to tutorials for the details on how to use the adapter. You can check out the Quickstart in our tutorials repository to try a ready-to-run control case. You need to install some of the required dependencies before running any tutorial:

python3 -m pip install gymprecice[tutorial]

Citing Us

If you use Gym-preCICE, please cite the following paper:

@misc{shams2023gymprecice,
      title={Gym-preCICE: Reinforcement Learning Environments for Active Flow Control},
      author={Mosayeb Shams and Ahmed H. Elsheikh},
      year={2023},
      eprint={2305.02033},
      archivePrefix={arXiv}
}

Contributing

See the contributing guidelines CONTRIBUTING.md for information on submitting issues and pull requests.

The Team

Gym-preCICE and its tutorials are primarily developed and maintained by:

  • Mosayeb Shams (@mosayebshams) - Lead Developer (Heriot-Watt University)
  • Ahmed H. Elsheikh(@ahmed-h-elsheikh) - Supervisor (Heriot-Watt University)

Acknowledgements

This work was supported by the Engineering and Physical Sciences Research Council grant number EP/V048899/1.

License

Gym-preCICE and its tutorials are MIT licensed.

Metadata

Release files for gymprecice 0.1.0

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for gymprecice 0.1.0
File Size Uploaded
gymprecice-0.1.0.tar.gz 23.0 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for gymprecice 0.1.0
File Interpreter ABI Platform
gymprecice-0.1.0-py3-none-any.whl Python 3 none any Details

Total release size: 44.3 kB

Release files / gymprecice-0.1.0.tar.gz

Download URL gymprecice-0.1.0.tar.gz
Size 23.0 kB
Tags Source
SHA-256 checksum
How to use checksums
5c44f45e2b26f38f06dc94211f5da5f97ba089da4df6284a54f30678407954e6
BLAKE2b-256 checksum
How to use checksums
d4f162fc43728d44a931f5c1c553591c7b7bc2ac7ee812006d9ec428a96d4ad3
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/4.0.2 CPython/3.8.16

Release files / gymprecice-0.1.0-py3-none-any.whl

Download URL gymprecice-0.1.0-py3-none-any.whl
Size 21.3 kB
Tags Python 3
SHA-256 checksum
How to use checksums
06352456ac2376d196c1fef673fe6d96ad4b399610302ed7afa1594a5a9f9285
BLAKE2b-256 checksum
How to use checksums
3837aa7c3be6dbc1f525c334241f3527f66e6db8a5125abd8f103074639a4394
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/4.0.2 CPython/3.8.16

Release history Release notifications | RSS feed

This release

0.1.0 This release

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page