Skip to main content

A scattering matrix formalism to solve Maxwell's equations in a multilayered structure.

Project description

# 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

If you use PyMoosh and if this is relevant, please cite the [paper associated with Moosh](https://openresearchsoftware.metajnl.com/articles/10.5334/jors.100/). Another paper is on its way, hopefully…

` @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

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.

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

PyMoosh-3.1.tar.gz (115.2 kB view details)

Uploaded Source

Built Distribution

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

PyMoosh-3.1-py3-none-any.whl (114.7 kB view details)

Uploaded Python 3

File details

Details for the file PyMoosh-3.1.tar.gz.

File metadata

  • Download URL: PyMoosh-3.1.tar.gz
  • Upload date:
  • Size: 115.2 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.2 CPython/3.10.12

File hashes

Hashes for PyMoosh-3.1.tar.gz
Algorithm Hash digest
SHA256 045455a2f4e5db835018fcb340295526d0442f50a3b7970b7def487d97b7d06f
MD5 102b394a241634bf2b8275c4a1320e51
BLAKE2b-256 c16ea4de10662f08235450d38a33a7ca942dac3fb9fa5aaed730c96a277c08b0

See more details on using hashes here.

File details

Details for the file PyMoosh-3.1-py3-none-any.whl.

File metadata

  • Download URL: PyMoosh-3.1-py3-none-any.whl
  • Upload date:
  • Size: 114.7 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.2 CPython/3.10.12

File hashes

Hashes for PyMoosh-3.1-py3-none-any.whl
Algorithm Hash digest
SHA256 094add22def193e493d228c47f4b37e917ba6ca89afdd1778b784a01b61343d8
MD5 36c4f2e20f7734c2765f07e9f434a4b6
BLAKE2b-256 195df47bc2be5178894c90cd3c0da8bee86697e2c025378e208aca20dbf2401a

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