A package for light propagation in fiber optics.
Project description
.. list-table::
:widths: 10 25 25
:header-rows: 0
* - Meta
- |python|
- |docs|
* - Testing
- |ci/cd|
- |coverage|
* - PyPi
- |PyPi|
- |PyPi_download|
* - Anaconda
- |anaconda|
- |anaconda_download|
PyFiberModes
============
PyFiberModes is a Python package designed to simulate the propagation of modes in optical fibers. It supports all circularly symmetric geometries and provides tools for in-depth analysis of optical fiber properties and modal characteristics.
Key Features
------------
- **Comprehensive Simulations**: Supports step-index fibers, multilayer fibers, and custom refractive index profiles.
- **Extensive Mode Analysis**: Calculate mode profiles, propagation constants, effective indices, and more.
- **Open Source**: Designed for customization and extensibility.
----
Documentation
**************
The latest documentation is always available `here <https://martinpdes.github.io/PyFiberModes/>`_ or via the badge below:
|docs|
----
Installation
************
Using Pip
---------
Install the PyFiberModes package directly from PyPi. Ensure you have Python 3.10 or later:
.. code-block:: bash
pip install PyFiberModes
Manual Installation
-------------------
To manually install the package:
.. code-block:: bash
git clone https://github.com/MartinPdeS/PyFiberModes.git
cd PyFiberModes
pip install .
----
Testing
*******
PyFiberModes includes comprehensive tests. To run the tests locally:
.. code-block:: bash
git clone https://github.com/MartinPdeS/PyFiberModes.git
cd PyFiberModes
pip install .
coverage run --source=PyFiberModes --module pytest --verbose tests
coverage report --show-missing
This will generate a coverage report detailing untested portions of the code.
----
Examples and Usage
******************
Learn how to use PyFiberModes with detailed examples in the `Examples Section <https://martinpdes.github.io/PyFiberModes>`_ of the documentation. Examples include:
- Calculating the effective index for a given mode.
- Visualizing mode profiles in optical fibers.
- Evaluating fiber parameters like V-number and dispersion.
----
Get Involved
************
PyFiberModes is an actively maintained project, and contributions are highly encouraged! Whether it's a bug fix, feature request, or enhancement, your input is valuable.
- Report issues or request features on the `GitHub Issue Tracker <https://github.com/MartinPdeS/PyFiberModes/issues>`_.
- Open pull requests to improve the codebase.
Contact
*******
If you would like to collaborate, please reach out:
Author: `Martin Poinsinet de Sivry-Houle <https://github.com/MartinPdS>`_
Email: `martin.poinsinet-de-sivry@polymtl.ca <mailto:martin.poinsinet-de-sivry@polymtl.ca?subject=PyFiberModes>`_
----
.. |python| image:: https://img.shields.io/pypi/pyversions/pyfibermodes.svg
:target: https://www.python.org/
.. |docs| image:: https://github.com/martinpdes/pyfibermodes/actions/workflows/deploy_documentation.yml/badge.svg
:target: https://martinpdes.github.io/PyFiberModes/
:alt: Documentation Status
.. |coverage| image:: https://raw.githubusercontent.com/MartinPdeS/PyFiberModes/python-coverage-comment-action-data/badge.svg
:alt: Unittest coverage
:target: https://htmlpreview.github.io/?https://github.com/MartinPdeS/PyFiberModes/blob/python-coverage-comment-action-data/htmlcov/index.html
.. |PyPi| image:: https://badge.fury.io/py/PyFiberModes.svg
:target: https://pypi.org/project/PyFiberModes/
.. |PyPi_download| image:: https://img.shields.io/pypi/dm/PyFiberModes.svg
:target: https://pypistats.org/packages/pyfibermodes
.. |ci/cd| image:: https://github.com/martinpdes/pyfibermodes/actions/workflows/deploy_coverage.yml/badge.svg
:target: https://martinpdes.github.io/PyFiberModes/actions
:alt: Unittest Status
.. |anaconda_download| image:: https://anaconda.org/martinpdes/pyfibermodes/badges/downloads.svg
:alt: Anaconda downloads
:target: https://anaconda.org/martinpdes/pyfibermodes
.. |anaconda| image:: https://anaconda.org/martinpdes/pyfibermodes/badges/version.svg
:alt: Anaconda version
:target: https://anaconda.org/martinpdes/pyfibermodes
:widths: 10 25 25
:header-rows: 0
* - Meta
- |python|
- |docs|
* - Testing
- |ci/cd|
- |coverage|
* - PyPi
- |PyPi|
- |PyPi_download|
* - Anaconda
- |anaconda|
- |anaconda_download|
PyFiberModes
============
PyFiberModes is a Python package designed to simulate the propagation of modes in optical fibers. It supports all circularly symmetric geometries and provides tools for in-depth analysis of optical fiber properties and modal characteristics.
Key Features
------------
- **Comprehensive Simulations**: Supports step-index fibers, multilayer fibers, and custom refractive index profiles.
- **Extensive Mode Analysis**: Calculate mode profiles, propagation constants, effective indices, and more.
- **Open Source**: Designed for customization and extensibility.
----
Documentation
**************
The latest documentation is always available `here <https://martinpdes.github.io/PyFiberModes/>`_ or via the badge below:
|docs|
----
Installation
************
Using Pip
---------
Install the PyFiberModes package directly from PyPi. Ensure you have Python 3.10 or later:
.. code-block:: bash
pip install PyFiberModes
Manual Installation
-------------------
To manually install the package:
.. code-block:: bash
git clone https://github.com/MartinPdeS/PyFiberModes.git
cd PyFiberModes
pip install .
----
Testing
*******
PyFiberModes includes comprehensive tests. To run the tests locally:
.. code-block:: bash
git clone https://github.com/MartinPdeS/PyFiberModes.git
cd PyFiberModes
pip install .
coverage run --source=PyFiberModes --module pytest --verbose tests
coverage report --show-missing
This will generate a coverage report detailing untested portions of the code.
----
Examples and Usage
******************
Learn how to use PyFiberModes with detailed examples in the `Examples Section <https://martinpdes.github.io/PyFiberModes>`_ of the documentation. Examples include:
- Calculating the effective index for a given mode.
- Visualizing mode profiles in optical fibers.
- Evaluating fiber parameters like V-number and dispersion.
----
Get Involved
************
PyFiberModes is an actively maintained project, and contributions are highly encouraged! Whether it's a bug fix, feature request, or enhancement, your input is valuable.
- Report issues or request features on the `GitHub Issue Tracker <https://github.com/MartinPdeS/PyFiberModes/issues>`_.
- Open pull requests to improve the codebase.
Contact
*******
If you would like to collaborate, please reach out:
Author: `Martin Poinsinet de Sivry-Houle <https://github.com/MartinPdS>`_
Email: `martin.poinsinet-de-sivry@polymtl.ca <mailto:martin.poinsinet-de-sivry@polymtl.ca?subject=PyFiberModes>`_
----
.. |python| image:: https://img.shields.io/pypi/pyversions/pyfibermodes.svg
:target: https://www.python.org/
.. |docs| image:: https://github.com/martinpdes/pyfibermodes/actions/workflows/deploy_documentation.yml/badge.svg
:target: https://martinpdes.github.io/PyFiberModes/
:alt: Documentation Status
.. |coverage| image:: https://raw.githubusercontent.com/MartinPdeS/PyFiberModes/python-coverage-comment-action-data/badge.svg
:alt: Unittest coverage
:target: https://htmlpreview.github.io/?https://github.com/MartinPdeS/PyFiberModes/blob/python-coverage-comment-action-data/htmlcov/index.html
.. |PyPi| image:: https://badge.fury.io/py/PyFiberModes.svg
:target: https://pypi.org/project/PyFiberModes/
.. |PyPi_download| image:: https://img.shields.io/pypi/dm/PyFiberModes.svg
:target: https://pypistats.org/packages/pyfibermodes
.. |ci/cd| image:: https://github.com/martinpdes/pyfibermodes/actions/workflows/deploy_coverage.yml/badge.svg
:target: https://martinpdes.github.io/PyFiberModes/actions
:alt: Unittest Status
.. |anaconda_download| image:: https://anaconda.org/martinpdes/pyfibermodes/badges/downloads.svg
:alt: Anaconda downloads
:target: https://anaconda.org/martinpdes/pyfibermodes
.. |anaconda| image:: https://anaconda.org/martinpdes/pyfibermodes/badges/version.svg
:alt: Anaconda version
:target: https://anaconda.org/martinpdes/pyfibermodes
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
pyfibermodes-0.10.0.tar.gz
(240.5 kB
view details)
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file pyfibermodes-0.10.0.tar.gz.
File metadata
- Download URL: pyfibermodes-0.10.0.tar.gz
- Upload date:
- Size: 240.5 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.9.25
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
84fae3af426fb3814a82c79976b693728e52d6860fc22ee95f06ce6db79e7d33
|
|
| MD5 |
e3fb86bf1d7fe6b931e377d8e17689e8
|
|
| BLAKE2b-256 |
3c3a675695e8469184ff76b0d3ea17b174059d1cfe09723de3a72b7f634cd036
|
File details
Details for the file pyfibermodes-0.10.0-py3-none-any.whl.
File metadata
- Download URL: pyfibermodes-0.10.0-py3-none-any.whl
- Upload date:
- Size: 74.7 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.9.25
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
dd12c4579b6e8e61afbed6cd2e1b4ec62a93eff5cf39400bbefe8c257bc7d460
|
|
| MD5 |
4dd318220658842c2db273920791ac0d
|
|
| BLAKE2b-256 |
4b3ed6bf24307fd09344c9309b30e930dc40c548008a3d7deac028fb6942aabd
|