# Simulation of Systems of interacting mean-field Particles with High Efficiency
<p align="center">
<img src="./doc/_static/ball.png" alt="logo" width="224"/>
</p>
Please visit the [website](https://sisyphe.readthedocs.io/en/latest/) for a full documentation.
------------------------------------------------------------------------------------------------
The SiSyPHE library builds on recent advances in hardware and software for the efficient simulation of **large scale interacting particle systems**, both on the **GPU** and on the CPU. The implementation is based on recent libraries originally developed for machine learning purposes to significantly accelerate tensor (array) computations, namely the [PyTorch](https://github.com/pytorch/pytorch) package and the [KeOps](https://www.kernel-operations.io/keops/index.html) library. The **versatile object-oriented Python interface** is well suited to the comparison of new and classical many-particle models, enabling ambitious numerical experiments and leading to novel conjectures. The SiSyPHE library speeds up both traditional Python and low-level implementations by **one to three orders of magnitude** for systems with up to **several millions** of particles.
<p align="center">
<img src="./doc/_static/mill.gif" alt="mill">
</p>
## Citation
If you use SiSyPHE in a research paper, please cite the [JOSS publication](https://joss.theoj.org/papers/10.21105/joss.03653#) :
```
@article{Diez2021,
doi = {10.21105/joss.03653},
url = {https://doi.org/10.21105/joss.03653},
year = {2021},
publisher = {The Open Journal},
volume = {6},
number = {65},
pages = {3653},
author = {Antoine Diez},
title = {`SiSyPHE`: A Python package for the Simulation of Systems of interacting mean-field Particles with High Efficiency},
journal = {Journal of Open Source Software}
}
```
Diez, A., (2021). SiSyPHE: A Python package for the Simulation of Systems of interacting mean-field Particles with High Efficiency. Journal of Open Source Software, 6(65), 3653, https://doi.org/10.21105/joss.03653
[![DOI](https://joss.theoj.org/papers/10.21105/joss.03653/status.svg)](https://doi.org/10.21105/joss.03653)
## Installation
### Requirements
- **Python 3** with packages **NumPy** and **SciPy**
- **PyTorch** : version>= 1.5
- **PyKeops** : version>= 1.5
### Using pip
In a terminal, type:
```
pip install sisyphe
```
### On Google Colab
The easiest way to get a working version of SiSyPHE is to use the free virtual machines provided by [Google Colab](https://colab.research.google.com).
1. On a new Colab notebook, navigate to Edit→Notebook Settings and select GPU from the Hardware Accelerator drop-down.
2. Install PyKeops with the Colab specifications **first** by typing
```
!pip install pykeops[colab]
```
3. Install SiSyPHE by typing
```
!pip install sisyphe
```
### Testing the installation
In a Python terminal, type
```python
import sisyphe
sisyphe.test_sisyphe()
```
<p align="center">
<img src="./doc/_static/band.gif" alt="band">
</p>
## Contributing
Contributions to make SiSyPHE grow are warmly welcome! Examples of possible (and ongoing) developments include the following.
* The implementation of new models.
* The implementation of more complex boundary conditions and of models on *non-flat* manifolds.
* An improved visualization method (currently only basic visualization functions relying on [Matplotlib](https://matplotlib.org/) are implemented).
Contributions can be made by opening an issue on the GitHub repository, via a pull request or by contacting directly the author.
## Author
- [Antoine Diez](https://antoinediez.gitlab.io), Imperial College London
### Acknowledgments
The development of this library would not have been possible without the help of [Jean Feydy](https://www.jeanfeydy.com/), his constant support and precious advice. This project was initiated by [Pierre Degond](https://sites.google.com/site/degond/) and has grown out of many discussions with him.
Raw data
{
"_id": null,
"home_page": "https://sisyphe.readthedocs.io",
"name": "sisyphe",
"maintainer": "",
"docs_url": null,
"requires_python": ">=3",
"maintainer_email": "",
"keywords": "particles gpu self-organization swarming mean-field",
"author": "Antoine Diez",
"author_email": "antoine.diez18@imperial.ac.uk",
"download_url": "https://files.pythonhosted.org/packages/73/44/573dcff27e8aef6c7fb1dab5ea96ee51ed0e29e9ddb0996c7a0e24be7905/sisyphe-1.2.1.tar.gz",
"platform": null,
"description": "# Simulation of Systems of interacting mean-field Particles with High Efficiency\n\n<p align=\"center\">\n<img src=\"./doc/_static/ball.png\" alt=\"logo\" width=\"224\"/>\n</p>\n\nPlease visit the [website](https://sisyphe.readthedocs.io/en/latest/) for a full documentation.\n\n------------------------------------------------------------------------------------------------\n\n\nThe SiSyPHE library builds on recent advances in hardware and software for the efficient simulation of **large scale interacting particle systems**, both on the **GPU** and on the CPU. The implementation is based on recent libraries originally developed for machine learning purposes to significantly accelerate tensor (array) computations, namely the [PyTorch](https://github.com/pytorch/pytorch) package and the [KeOps](https://www.kernel-operations.io/keops/index.html) library. The **versatile object-oriented Python interface** is well suited to the comparison of new and classical many-particle models, enabling ambitious numerical experiments and leading to novel conjectures. The SiSyPHE library speeds up both traditional Python and low-level implementations by **one to three orders of magnitude** for systems with up to **several millions** of particles. \n\n<p align=\"center\">\n<img src=\"./doc/_static/mill.gif\" alt=\"mill\">\n</p>\n\n## Citation \n\nIf you use SiSyPHE in a research paper, please cite the [JOSS publication](https://joss.theoj.org/papers/10.21105/joss.03653#) :\n\n```\n@article{Diez2021,\n doi = {10.21105/joss.03653},\n url = {https://doi.org/10.21105/joss.03653},\n year = {2021},\n publisher = {The Open Journal},\n volume = {6},\n number = {65},\n pages = {3653},\n author = {Antoine Diez},\n title = {`SiSyPHE`: A Python package for the Simulation of Systems of interacting mean-field Particles with High Efficiency},\n journal = {Journal of Open Source Software}\n}\n```\n\nDiez, A., (2021). SiSyPHE: A Python package for the Simulation of Systems of interacting mean-field Particles with High Efficiency. Journal of Open Source Software, 6(65), 3653, https://doi.org/10.21105/joss.03653\n\n[![DOI](https://joss.theoj.org/papers/10.21105/joss.03653/status.svg)](https://doi.org/10.21105/joss.03653)\n\n## Installation \n\n### Requirements\n\n- **Python 3** with packages **NumPy** and **SciPy** \n- **PyTorch** : version>= 1.5\n- **PyKeops** : version>= 1.5\n\n### Using pip\n\nIn a terminal, type:\n\n```\npip install sisyphe\n```\n \n### On Google Colab\n\nThe easiest way to get a working version of SiSyPHE is to use the free virtual machines provided by [Google Colab](https://colab.research.google.com).\n\n1. On a new Colab notebook, navigate to Edit\u2192Notebook Settings and select GPU from the Hardware Accelerator drop-down.\n\n2. Install PyKeops with the Colab specifications **first** by typing\n\n``` \n!pip install pykeops[colab]\n```\n\n3. Install SiSyPHE by typing \n\n```\n!pip install sisyphe\n``` \n\n### Testing the installation\n\nIn a Python terminal, type \n\n```python\nimport sisyphe\nsisyphe.test_sisyphe()\n``` \n\n<p align=\"center\">\n<img src=\"./doc/_static/band.gif\" alt=\"band\">\n</p> \n\n## Contributing\n\nContributions to make SiSyPHE grow are warmly welcome! Examples of possible (and ongoing) developments include the following. \n\n* The implementation of new models.\n\n* The implementation of more complex boundary conditions and of models on *non-flat* manifolds. \n\n* An improved visualization method (currently only basic visualization functions relying on [Matplotlib](https://matplotlib.org/) are implemented). \n\nContributions can be made by opening an issue on the GitHub repository, via a pull request or by contacting directly the author. \n\n\n## Author\n\n- [Antoine Diez](https://antoinediez.gitlab.io), Imperial College London \n\n### Acknowledgments\n\nThe development of this library would not have been possible without the help of [Jean Feydy](https://www.jeanfeydy.com/), his constant support and precious advice. This project was initiated by [Pierre Degond](https://sites.google.com/site/degond/) and has grown out of many discussions with him. \n",
"bugtrack_url": null,
"license": "",
"summary": "Simulation of Systems of interacting mean-field Particles with High Efficiency",
"version": "1.2.1",
"project_urls": {
"Bug Reports": "https://github.com/antoinediez/Sisyphe/issues",
"Homepage": "https://sisyphe.readthedocs.io",
"Source": "https://github.com/antoinediez/Sisyphe"
},
"split_keywords": [
"particles",
"gpu",
"self-organization",
"swarming",
"mean-field"
],
"urls": [
{
"comment_text": "",
"digests": {
"blake2b_256": "7344573dcff27e8aef6c7fb1dab5ea96ee51ed0e29e9ddb0996c7a0e24be7905",
"md5": "cc27418e31acef8005981e4f38917fec",
"sha256": "dfea0913d12e12123365ba4d9cecf6290c951bddd883ebfba0f9467e80dada0a"
},
"downloads": -1,
"filename": "sisyphe-1.2.1.tar.gz",
"has_sig": false,
"md5_digest": "cc27418e31acef8005981e4f38917fec",
"packagetype": "sdist",
"python_version": "source",
"requires_python": ">=3",
"size": 41678,
"upload_time": "2023-10-28T07:19:18",
"upload_time_iso_8601": "2023-10-28T07:19:18.662048Z",
"url": "https://files.pythonhosted.org/packages/73/44/573dcff27e8aef6c7fb1dab5ea96ee51ed0e29e9ddb0996c7a0e24be7905/sisyphe-1.2.1.tar.gz",
"yanked": false,
"yanked_reason": null
}
],
"upload_time": "2023-10-28 07:19:18",
"github": true,
"gitlab": false,
"bitbucket": false,
"codeberg": false,
"github_user": "antoinediez",
"github_project": "Sisyphe",
"travis_ci": false,
"coveralls": false,
"github_actions": true,
"requirements": [],
"lcname": "sisyphe"
}