Metadata-Version: 2.1
Name: gyptis
Version: 0.4.1
Summary: Computational Photonics in Python
Home-page: https://gitlab.com/gyptis/gyptis
Author: Benjamin Vial
License: MIT
Project-URL: Code, https://gitlab.com/gyptis/gyptis
Project-URL: Documentation, https://gyptis.gitlab.io
Project-URL: Issues, https://gitlab.com/gyptis/gyptis/issues
Keywords: finite element method,diffraction,scattering,optics,photonics,metamaterials,modal analysis
Platform: UNKNOWN
Classifier: Development Status :: 4 - Beta
Classifier: Intended Audience :: Science/Research
Classifier: License :: OSI Approved :: MIT License
Classifier: Operating System :: OS Independent
Classifier: Programming Language :: Python
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3.6
Classifier: Programming Language :: Python :: 3.7
Classifier: Programming Language :: Python :: 3.8
Classifier: Programming Language :: Python :: 3.9
Classifier: Topic :: Scientific/Engineering
Classifier: Topic :: Scientific/Engineering :: Mathematics
Classifier: Topic :: Scientific/Engineering :: Physics
Requires-Python: >=3.6
Description-Content-Type: text/x-rst
License-File: LICENSE.txt



.. image:: https://img.shields.io/badge/dynamic/json.svg?label=release&url=https://gitlab.com/gyptis/gyptis/-/jobs/artifacts/master/file/badges.json?job=badge&query=release_tag&color=d25f5f&labelColor=dedede&style=for-the-badge&logo=data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiIHN0YW5kYWxvbmU9Im5vIj8+CjxzdmcKICAgeG1sbnM6ZGM9Imh0dHA6Ly9wdXJsLm9yZy9kYy9lbGVtZW50cy8xLjEvIgogICB4bWxuczpjYz0iaHR0cDovL2NyZWF0aXZlY29tbW9ucy5vcmcvbnMjIgogICB4bWxuczpyZGY9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkvMDIvMjItcmRmLXN5bnRheC1ucyMiCiAgIHhtbG5zOnN2Zz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciCiAgIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIKICAgeG1sbnM6c29kaXBvZGk9Imh0dHA6Ly9zb2RpcG9kaS5zb3VyY2Vmb3JnZS5uZXQvRFREL3NvZGlwb2RpLTAuZHRkIgogICB4bWxuczppbmtzY2FwZT0iaHR0cDovL3d3dy5pbmtzY2FwZS5vcmcvbmFtZXNwYWNlcy9pbmtzY2FwZSIKICAgd2lkdGg9IjQwbW0iCiAgIGhlaWdodD0iNDBtbSIKICAgdmlld0JveD0iMCAwIDQwIDQwIgogICB2ZXJzaW9uPSIxLjEiCiAgIGlkPSJzdmc4IgogICBpbmtzY2FwZTp2ZXJzaW9uPSIxLjAuMiAoZTg2Yzg3MDg3OSwgMjAyMS0wMS0xNSwgY3VzdG9tKSIKICAgc29kaXBvZGk6ZG9jbmFtZT0iZ3lwdGlzLnN2ZyIKICAgaW5rc2NhcGU6ZXhwb3J0LWZpbGVuYW1lPSIvaG9tZS9iZW5jaC9kZXYvZ3lwdGlzL2d5cHRpcy9kb2NzL19hc3NldHMvZ3lwdGlzLnBuZyIKICAgaW5rc2NhcGU6ZXhwb3J0LXhkcGk9IjYwMCIKICAgaW5rc2NhcGU6ZXhwb3J0LXlkcGk9IjYwMCI+CiAgPGRlZnMKICAgICBpZD0iZGVmczIiIC8+CiAgPHNvZGlwb2RpOm5hbWVkdmlldwogICAgIGlkPSJiYXNlIgogICAgIHBhZ2Vjb2xvcj0iI2ZmZmZmZiIKICAgICBib3JkZXJjb2xvcj0iIzY2NjY2NiIKICAgICBib3JkZXJvcGFjaXR5PSIxLjAiCiAgICAgaW5rc2NhcGU6cGFnZW9wYWNpdHk9IjAuMCIKICAgICBpbmtzY2FwZTpwYWdlc2hhZG93PSIyIgogICAgIGlua3NjYXBlOnpvb209IjQuMDQ1MDY3MSIKICAgICBpbmtzY2FwZTpjeD0iNDkuODM1Nzc4IgogICAgIGlua3NjYXBlOmN5PSI5OS4yMjIzNDIiCiAgICAgaW5rc2NhcGU6ZG9jdW1lbnQtdW5pdHM9Im1tIgogICAgIGlua3NjYXBlOmN1cnJlbnQtbGF5ZXI9ImxheWVyMSIKICAgICBpbmtzY2FwZTpkb2N1bWVudC1yb3RhdGlvbj0iMCIKICAgICBzaG93Z3JpZD0iZmFsc2UiCiAgICAgaW5rc2NhcGU6d2luZG93LXdpZHRoPSIxOTIwIgogICAgIGlua3NjYXBlOndpbmRvdy1oZWlnaHQ9IjEwODAiCiAgICAgaW5rc2NhcGU6d2luZG93LXg9IjAiCiAgICAgaW5rc2NhcGU6d2luZG93LXk9IjAiCiAgICAgaW5rc2NhcGU6d2luZG93LW1heGltaXplZD0iMSIgLz4KICA8bWV0YWRhdGEKICAgICBpZD0ibWV0YWRhdGE1Ij4KICAgIDxyZGY6UkRGPgogICAgICA8Y2M6V29yawogICAgICAgICByZGY6YWJvdXQ9IiI+CiAgICAgICAgPGRjOmZvcm1hdD5pbWFnZS9zdmcreG1sPC9kYzpmb3JtYXQ+CiAgICAgICAgPGRjOnR5cGUKICAgICAgICAgICByZGY6cmVzb3VyY2U9Imh0dHA6Ly9wdXJsLm9yZy9kYy9kY21pdHlwZS9TdGlsbEltYWdlIiAvPgogICAgICAgIDxkYzp0aXRsZT48L2RjOnRpdGxlPgogICAgICA8L2NjOldvcms+CiAgICA8L3JkZjpSREY+CiAgPC9tZXRhZGF0YT4KICA8ZwogICAgIGlua3NjYXBlOmxhYmVsPSJMYXllciAxIgogICAgIGlua3NjYXBlOmdyb3VwbW9kZT0ibGF5ZXIiCiAgICAgaWQ9ImxheWVyMSIKICAgICB0cmFuc2Zvcm09InRyYW5zbGF0ZSgtNDMuNTgwMjg1LC0zNC40ODU1MDgpIj4KICAgIDxwYXRoCiAgICAgICBpZD0icmVjdDg1NCIKICAgICAgIHN0eWxlPSJmaWxsOiNkMzVmNWY7ZmlsbC1vcGFjaXR5OjAuOTk2MDc4O3N0cm9rZTojOWIzNjAwO3N0cm9rZS13aWR0aDowIgogICAgICAgZD0iTSA3NS41ODk4NDQsMCA0NS4zNTM1MTYsMzAuMjM2MzI4IFYgMTIwLjk0NTMxIEwgNzUuNTg5ODQ0LDE1MS4xODE2NCAxNTEuMTgxNjQsNzUuNTg5ODQ0IDEyOC41MDU4Niw1Mi45MTQwNjIgSCA5MC43MDcwMzEgViA2OC4wMzEyNSBIIDEwNS44MjYxNyBWIDgzLjE0ODQzOCBIIDkwLjcwNzAzMSA3NS41ODk4NDQgViA2OC4wMzEyNSA1Mi45MTQwNjIgMzcuNzk0OTIyIEggOTAuNzA3MDMxIDExMy4zODY3MiBaIE0gMzAuMjM2MzI4LDQ1LjM1MzUxNiAwLDc1LjU4OTg0NCAzMC4yMzYzMjgsMTA1LjgyNjE3IFoiCiAgICAgICB0cmFuc2Zvcm09Im1hdHJpeCgwLjI2NDU4MzMzLDAsMCwwLjI2NDU4MzMzLDQzLjU4MDI4NSwzNC40ODU1MDgpIiAvPgogIDwvZz4KPC9zdmc+Cg==
  :target: https://gitlab.com/gyptis/gyptis/-/releases
  :alt: Release

.. image:: https://img.shields.io/gitlab/pipeline/gyptis/gyptis/master?logo=gitlab&labelColor=dedede&logoColor=ffffff&style=for-the-badge
   :target: https://gitlab.com/gyptis/gyptis/commits/master
   :alt: pipeline status

.. image:: https://img.shields.io/conda/vn/conda-forge/gyptis?logo=conda-forge&color=CD5C5C&logoColor=white&style=for-the-badge   
   :target: https://anaconda.org/conda-forge/gyptis
   :alt: Conda (channel only)

.. image:: https://img.shields.io/conda/dn/conda-forge/gyptis?logo=conda-forge&logoColor=white&style=for-the-badge
   :alt: Conda

.. image:: https://img.shields.io/conda/pn/conda-forge/gyptis?logo=conda-forge&logoColor=white&style=for-the-badge
   :alt: Conda


.. image:: https://img.shields.io/pypi/v/gyptis?color=blue&logo=pypi&logoColor=e9d672&style=for-the-badge   
  :target: https://pypi.org/project/gyptis/
  :alt: PyPI
  
.. image:: https://img.shields.io/pypi/dm/gyptis?logo=pypi&logoColor=e9d672&style=for-the-badge   
   :alt: PyPI - Downloads
   
.. image:: https://img.shields.io/pypi/status/gyptis?logo=pypi&logoColor=e9d672&style=for-the-badge   
  :alt: PyPI - Status

.. image:: https://img.shields.io/badge/code%20style-black-000000.svg?logo=python&logoColor=e9d672&style=for-the-badge
   :alt: Code style: black
 
.. image:: https://img.shields.io/gitlab/coverage/gyptis/gyptis/master?logo=python&logoColor=e9d672&style=for-the-badge
 :target: https://gitlab.com/gyptis/gyptis/commits/master
 :alt: coverage report 

.. image:: https://img.shields.io/codeclimate/maintainability/benvial/gyptis?logo=code-climate&style=for-the-badge   
   :target: https://codeclimate.com/github/benvial/gyptis
   :alt: Code Climate maintainability

.. image:: https://img.shields.io/badge/DOI-10.5281/zenodo.4938573-5fadad?logo=google-scholar&logoColor=ffffff&style=for-the-badge
 :target: https://doi.org/10.5281/zenodo.4938573
 
.. image:: https://img.shields.io/badge/license-MIT-blue?color=bb798f&logo=open-access&logoColor=white&style=for-the-badge
 :target: https://gitlab.com/gyptis/gyptis/-/blob/master/LICENCE.txt
 :alt: license

   
.. inclusion-marker-badges

GYPTIS
======

Computational Photonics in Python
---------------------------------

https://gyptis.gitlab.io

.. image:: https://gitlab.com/gyptis/gyptis/-/raw/master/docs/_assets/landing.png
   :align: center
   :alt: landing


Gyptis is a package to solve Maxwell's equations with the finite element method. 
It is in early stage and currently being actively developed, so features might 
come and go.



Installation
------------

.. inclusion-marker-install-start

Conda
~~~~~

The easiest way is using `conda <https://www.anaconda.com/>`_. 
First, add conda-forge to your channels with:

.. code-block:: bash
    
    conda config --add channels conda-forge
    conda config --set channel_priority strict

Once the conda-forge channel has been enabled, gyptis can be installed with:

.. code-block:: bash
  
  conda install gyptis


Alternatively, we provide an `environment.yml <https://gitlab.com/gyptis/gyptis/-/blob/master/environment.yml>`_ 
file with all the dependencies for the master branch. First create the environment:

.. code-block:: bash

  conda env create -f environment.yml

and then activate it with 

.. code-block:: bash

  conda activate gyptis
  

Pipy
~~~~

The package is `available on pipy <https://pypi.org/project/gyptis/>`_. 
To install, use:


.. code-block:: bash

  pip install gyptis
  

.. note::
  This does not install FeniCS, which should be built separately 
  (see `instructions <https://fenicsproject.org/download/>`_) 


Docker
~~~~~~

Prebuilt container images are available at `DockerHub <https://hub.docker.com/r/gyptis/gyptis>`_

A quick way of testing is to get the installation script

.. code-block:: bash

  curl -s https://gyptis.gitlab.io/get | bash
  

You will then be able to run the container with 

.. code-block:: bash

  gyptis run


Alternatively, you can pull the docker image

.. code-block:: bash

  docker pull gyptis/gyptis:latest
  
  
To run the image, use

.. code-block:: bash

  docker run -it gyptis/gyptis:latest
  
  
.. inclusion-marker-install-end


Documentation and examples
--------------------------

See the `documentation website <https://gyptis.gitlab.io>`_. 
A good starting point is to look at `examples of application <https://gyptis.gitlab.io/examples/index.html>`_ 
for typical problems encountered in photonics.


Contributing
------------

Pull requests are welcome. For major changes, please open an issue first 
to discuss what you would like to change.

Please make sure to update tests as appropriate.


License
-------

MIT, see `LICENSE.txt <https://gitlab.com/gyptis/gyptis/-/blob/master/LICENSE.txt>`_.


