PyMoosh


NamePyMoosh JSON
Version 3.2 PyPI version JSON
download
home_pagehttps://github.com/AnMoreau/PyMoosh
SummaryA scattering matrix formalism to solve Maxwell's equations in a multilayered structure.
upload_time2024-01-24 09:10:35
maintainer
docs_urlNone
authorAntoine Moreau
requires_python
licenseGPLv3+
keywords moosh maxwell optics multilayers plasmonics photovoltaics
VCS
bugtrack_url
requirements No requirements were recorded.
Travis-CI No Travis.
coveralls test coverage No coveralls.
            # PyMoosh

## About PyMoosh

PyMoosh is a swiss knife for the study of multilayered structures from an optical point of view, written in Python. 

PyMoosh is now much more advanced than Moosh, the original octave/matlab program we used in the past. Importantly, the use of Moosh is illustrated by many Jupyter notebooks (collabs are coming) and even more are planned. PyMoosh can be used for teaching or research purposes. It is especially written to be stable and quick, for its use in an optimization framework for instance.

![What Moosh (green) can do...](field.png)

## Installation

You can do something as simple as 

``` pip install pymoosh ```

## For specialists

PyMoosh is based on a scattering matrix formalism to solve Maxwell's equations in a multilayered structure. This makes PyMoosh unconditionally stable, allowing to explore even advanced properties of such multilayers, find poles and zeros of the scattering matrix (and thus guided modes), and many other things... We have included all the known kind of formalism to solve Maxwell's equations in such structures (admittance formalism, Abeles matrices, transfer matrices...).

## References

PyMoosh is described in detail in this [preprint on ArXiV which will hopefully be published soon](https://arxiv.org/abs/2309.00654). If you want to cite the repository, the 3.1 version of PyMoosh has been given a DOI :

[![DOI](https://zenodo.org/badge/DOI/10.5281/zenodo.8341954.svg)](https://doi.org/10.5281/zenodo.8341954)


In the meantime, please cite the [paper associated with Moosh](https://openresearchsoftware.metajnl.com/articles/10.5334/jors.100/).

```
@article{defrance2016moosh,
title={Moosh: A numerical swiss army knife for the optics of multilayers in octave/matlab},
author={Defrance, Josselin and Lema{\^\i}tre, Caroline and Ajib, Rabih and Benedicto, Jessica and Mallet, Emilien and Poll{\`e}s, R{\'e}mi and Plumey, Jean-Pierre and Mihailovic, Martine and Centeno, Emmanuel and Cirac{\`\i}, Cristian and others},
journal={Journal of Open Research Software},
volume={4},
number={1},
year={2016},
publisher={Ubiquity Press}
}
```

Even if PyMoosh is quite simple, this is a research-grade program. We actually do research with it. We've done cool things, like [comparing evolutionary algorithms and real evolution for the first time in history](https://www.nature.com/articles/s41598-020-68719-3).

## Contributors

Here is a list of contributors to PyMoosh (one way or another) so far:

* Pauline Bennet (@Ellawin)
* Peter Wiecha
* Denis Langevin (@Milloupe)
* Olivier Teytaud (@teytaud)
* Demetrio Macias
* Anorld Capo-Chichi
* Pierre Chevalier

and the contributors to the original Moosh program should not be forgotten : Josselin Defrance, Rémi Pollès, Fabien Krayzel, Paul-Henri Tichit, Jessica Benedicto mainly, but David R. Smith and Cristian Ciraci too ! Special thanks to Gérard Granet and Jean-Pierre Plumey.



            

Raw data

            {
    "_id": null,
    "home_page": "https://github.com/AnMoreau/PyMoosh",
    "name": "PyMoosh",
    "maintainer": "",
    "docs_url": null,
    "requires_python": "",
    "maintainer_email": "",
    "keywords": "Moosh,Maxwell,Optics,Multilayers,Plasmonics,Photovoltaics",
    "author": "Antoine Moreau",
    "author_email": "antoine.moreau@uca.fr",
    "download_url": "https://files.pythonhosted.org/packages/cf/e1/d6cac831f1a0458f28a92d82191f3f8f26c4aedbd8113b67b695b9cd9fa9/PyMoosh-3.2.tar.gz",
    "platform": null,
    "description": "# PyMoosh\n\n## About PyMoosh\n\nPyMoosh is a swiss knife for the study of multilayered structures from an optical point of view, written in Python. \n\nPyMoosh is now much more advanced than Moosh, the original octave/matlab program we used in the past. Importantly, the use of Moosh is illustrated by many Jupyter notebooks (collabs are coming) and even more are planned. PyMoosh can be used for teaching or research purposes. It is especially written to be stable and quick, for its use in an optimization framework for instance.\n\n![What Moosh (green) can do...](field.png)\n\n## Installation\n\nYou can do something as simple as \n\n``` pip install pymoosh ```\n\n## For specialists\n\nPyMoosh is based on a scattering matrix formalism to solve Maxwell's equations in a multilayered structure. This makes PyMoosh unconditionally stable, allowing to explore even advanced properties of such multilayers, find poles and zeros of the scattering matrix (and thus guided modes), and many other things... We have included all the known kind of formalism to solve Maxwell's equations in such structures (admittance formalism, Abeles matrices, transfer matrices...).\n\n## References\n\nPyMoosh is described in detail in this [preprint on ArXiV which will hopefully be published soon](https://arxiv.org/abs/2309.00654). If you want to cite the repository, the 3.1 version of PyMoosh has been given a DOI :\n\n[![DOI](https://zenodo.org/badge/DOI/10.5281/zenodo.8341954.svg)](https://doi.org/10.5281/zenodo.8341954)\n\n\nIn the meantime, please cite the [paper associated with Moosh](https://openresearchsoftware.metajnl.com/articles/10.5334/jors.100/).\n\n```\n@article{defrance2016moosh,\ntitle={Moosh: A numerical swiss army knife for the optics of multilayers in octave/matlab},\nauthor={Defrance, Josselin and Lema{\\^\\i}tre, Caroline and Ajib, Rabih and Benedicto, Jessica and Mallet, Emilien and Poll{\\`e}s, R{\\'e}mi and Plumey, Jean-Pierre and Mihailovic, Martine and Centeno, Emmanuel and Cirac{\\`\\i}, Cristian and others},\njournal={Journal of Open Research Software},\nvolume={4},\nnumber={1},\nyear={2016},\npublisher={Ubiquity Press}\n}\n```\n\nEven if PyMoosh is quite simple, this is a research-grade program. We actually do research with it. We've done cool things, like [comparing evolutionary algorithms and real evolution for the first time in history](https://www.nature.com/articles/s41598-020-68719-3).\n\n## Contributors\n\nHere is a list of contributors to PyMoosh (one way or another) so far:\n\n* Pauline Bennet (@Ellawin)\n* Peter Wiecha\n* Denis Langevin (@Milloupe)\n* Olivier Teytaud (@teytaud)\n* Demetrio Macias\n* Anorld Capo-Chichi\n* Pierre Chevalier\n\nand the contributors to the original Moosh program should not be forgotten : Josselin Defrance, R\u00e9mi Poll\u00e8s, Fabien Krayzel, Paul-Henri Tichit, Jessica Benedicto mainly, but David R. Smith and Cristian Ciraci too ! Special thanks to G\u00e9rard Granet and Jean-Pierre Plumey.\n\n\n",
    "bugtrack_url": null,
    "license": "GPLv3+",
    "summary": "A scattering matrix formalism to solve Maxwell's equations in a multilayered structure.",
    "version": "3.2",
    "project_urls": {
        "Homepage": "https://github.com/AnMoreau/PyMoosh"
    },
    "split_keywords": [
        "moosh",
        "maxwell",
        "optics",
        "multilayers",
        "plasmonics",
        "photovoltaics"
    ],
    "urls": [
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "a9275d3b5fdb7f1a0f5986b1dc10a362c8a265c47739dd4feaf29cde5b76f471",
                "md5": "c80c45814731b3cec11f0c8c01e1c384",
                "sha256": "c1a587242b637b4b50b982cf05775485937125954566da1e2f108513a7a8159d"
            },
            "downloads": -1,
            "filename": "PyMoosh-3.2-py3-none-any.whl",
            "has_sig": false,
            "md5_digest": "c80c45814731b3cec11f0c8c01e1c384",
            "packagetype": "bdist_wheel",
            "python_version": "py3",
            "requires_python": null,
            "size": 115688,
            "upload_time": "2024-01-24T09:10:34",
            "upload_time_iso_8601": "2024-01-24T09:10:34.238172Z",
            "url": "https://files.pythonhosted.org/packages/a9/27/5d3b5fdb7f1a0f5986b1dc10a362c8a265c47739dd4feaf29cde5b76f471/PyMoosh-3.2-py3-none-any.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "cfe1d6cac831f1a0458f28a92d82191f3f8f26c4aedbd8113b67b695b9cd9fa9",
                "md5": "53611e2f7adfd5263beed2d745c90c60",
                "sha256": "d431c371d4470700c1f295fa125b27b2a12878417d9290d8e4e19b6f5044ec53"
            },
            "downloads": -1,
            "filename": "PyMoosh-3.2.tar.gz",
            "has_sig": false,
            "md5_digest": "53611e2f7adfd5263beed2d745c90c60",
            "packagetype": "sdist",
            "python_version": "source",
            "requires_python": null,
            "size": 115974,
            "upload_time": "2024-01-24T09:10:35",
            "upload_time_iso_8601": "2024-01-24T09:10:35.862524Z",
            "url": "https://files.pythonhosted.org/packages/cf/e1/d6cac831f1a0458f28a92d82191f3f8f26c4aedbd8113b67b695b9cd9fa9/PyMoosh-3.2.tar.gz",
            "yanked": false,
            "yanked_reason": null
        }
    ],
    "upload_time": "2024-01-24 09:10:35",
    "github": true,
    "gitlab": false,
    "bitbucket": false,
    "codeberg": false,
    "github_user": "AnMoreau",
    "github_project": "PyMoosh",
    "travis_ci": false,
    "coveralls": false,
    "github_actions": true,
    "requirements": [],
    "lcname": "pymoosh"
}
        
Elapsed time: 0.17015s