lpmodes


Namelpmodes JSON
Version 1.0.1 PyPI version JSON
download
home_pageNone
SummarySolve modes for a step index multimode fibre and simulate beam coupling and propagation.
upload_time2024-09-06 09:58:19
maintainerNone
docs_urlNone
authorNone
requires_python>=3.8
licenseMIT License Copyright (c) 2024 Mike Hughes Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
keywords fibre fiber modes lp modes multimode simulation
VCS
bugtrack_url
requirements No requirements were recorded.
Travis-CI No Travis.
coveralls test coverage No coveralls.
            # lpmodes: Python Package for Simulation Multimode Fibres

The lpmodes package is a toolkit for finding, simulating, 
and manipulating linearly polarized (LP) modes in step index multimode optical fibers. 

Functions are provided to determine the allowed modes, compute their properties, 
and simulate coupling and propagation of beams.

A GUI, lpmodes_gui, allows modes to be solved, visualised and exported.

![Example modes](https://github.com/MikeHughesKent/lpmodes/raw/main/docs/source/modes.png)

Full documentation is on [Read the docs](https://lpmodes.readthedocs.io/en/latest/index.html). 

Also see the examples in the [examples folder](https://github.com/MikeHughesKent/lpmodes/tree/main/examples).


## Package Features

Functions are provided to:
* Find all allowed modes for step index fibres (weakly guided approximation)
* Export mode parameters as CSV
* Calculate fraction of power in core for all modes
* Plot amplitude or intensity of modes as numpy arrays
* Generate a single plot of all modes as a matplotlib figure
* Simulate coupling arbitary beams into the fibre (functions for generation of plane waves and Gaussian beams are provided)
* Calculate coupling efficiency
* Propagate coupled fields along a length of fibre, and visualise output amplitude and intensity


## GUI

A graphical user interface allow modes to be solved, visualised and exported.

![lpmodes GUI screenshot](https://github.com/MikeHughesKent/lpmodes/raw/main/docs/source/modes.png)

Parameters of the fibre (NAs, core radius) and wavelength are defined in the 
top left. Clicking 'Find Modes' then finds solutions. The table in the centre
is updated with the mode details. Power in core is not calculated immediately 
as this is more time consuming, click 'Find Power in Core' button to update
this. Select a line of the table to display an image of that mode on the 
right. There are options on the left to choose the image grid size, the 
physical size of the image as a multiple of the core size, whether to display
the amplitude or the intensity, and whether to display a circle showing the 
core size. The data can be exported as CSV, or the current mode image or all
mode images saved as tifs using buttons on the left.


## Contributing

Development is currently mainly by [Mike Hughes](https://research.kent.ac.uk/applied-optics/hughes/)' lab in the 
[Applied Optics Group](https://research.kent.ac.uk/applied-optics), Physics & Astronomy, University of Kent. 
I'm happy to collaborate with academic users to help your use case, and if you would like help using lpmodes for 
commercial purposes, consultancy is available, please contact [Mike Hughes](mailto:m.r.hughes@kent.ac.uk). 

Help testing and developing the package is welcome, and I'm happy for this to become a more collaborate effort and share credit,
please [get in touch](mailto:m.r.hughes@kent.ac.uk).


## Requirements

* Numpy
* Scipy
* Matplotlib
* PyQT5 (GUI only)
* PIL (GUI only)

            

Raw data

            {
    "_id": null,
    "home_page": null,
    "name": "lpmodes",
    "maintainer": null,
    "docs_url": null,
    "requires_python": ">=3.8",
    "maintainer_email": null,
    "keywords": "fibre, fiber, modes, lp modes, multimode, simulation",
    "author": null,
    "author_email": "Michael Hughes <m.r.hughes@kent.ac.uk>",
    "download_url": "https://files.pythonhosted.org/packages/a0/0b/dfe0ac19494dd33e960527441fcc1da8da832d3f3931fae6f71401f6d973/lpmodes-1.0.1.tar.gz",
    "platform": null,
    "description": "# lpmodes: Python Package for Simulation Multimode Fibres\r\n\r\nThe lpmodes package is a toolkit for finding, simulating, \r\nand manipulating linearly polarized (LP) modes in step index multimode optical fibers. \r\n\r\nFunctions are provided to determine the allowed modes, compute their properties, \r\nand simulate coupling and propagation of beams.\r\n\r\nA GUI, lpmodes_gui, allows modes to be solved, visualised and exported.\r\n\r\n![Example modes](https://github.com/MikeHughesKent/lpmodes/raw/main/docs/source/modes.png)\r\n\r\nFull documentation is on [Read the docs](https://lpmodes.readthedocs.io/en/latest/index.html). \r\n\r\nAlso see the examples in the [examples folder](https://github.com/MikeHughesKent/lpmodes/tree/main/examples).\r\n\r\n\r\n## Package Features\r\n\r\nFunctions are provided to:\r\n* Find all allowed modes for step index fibres (weakly guided approximation)\r\n* Export mode parameters as CSV\r\n* Calculate fraction of power in core for all modes\r\n* Plot amplitude or intensity of modes as numpy arrays\r\n* Generate a single plot of all modes as a matplotlib figure\r\n* Simulate coupling arbitary beams into the fibre (functions for generation of plane waves and Gaussian beams are provided)\r\n* Calculate coupling efficiency\r\n* Propagate coupled fields along a length of fibre, and visualise output amplitude and intensity\r\n\r\n\r\n## GUI\r\n\r\nA graphical user interface allow modes to be solved, visualised and exported.\r\n\r\n![lpmodes GUI screenshot](https://github.com/MikeHughesKent/lpmodes/raw/main/docs/source/modes.png)\r\n\r\nParameters of the fibre (NAs, core radius) and wavelength are defined in the \r\ntop left. Clicking 'Find Modes' then finds solutions. The table in the centre\r\nis updated with the mode details. Power in core is not calculated immediately \r\nas this is more time consuming, click 'Find Power in Core' button to update\r\nthis. Select a line of the table to display an image of that mode on the \r\nright. There are options on the left to choose the image grid size, the \r\nphysical size of the image as a multiple of the core size, whether to display\r\nthe amplitude or the intensity, and whether to display a circle showing the \r\ncore size. The data can be exported as CSV, or the current mode image or all\r\nmode images saved as tifs using buttons on the left.\r\n\r\n\r\n## Contributing\r\n\r\nDevelopment is currently mainly by [Mike Hughes](https://research.kent.ac.uk/applied-optics/hughes/)' lab in the \r\n[Applied Optics Group](https://research.kent.ac.uk/applied-optics), Physics & Astronomy, University of Kent. \r\nI'm happy to collaborate with academic users to help your use case, and if you would like help using lpmodes for \r\ncommercial purposes, consultancy is available, please contact [Mike Hughes](mailto:m.r.hughes@kent.ac.uk). \r\n\r\nHelp testing and developing the package is welcome, and I'm happy for this to become a more collaborate effort and share credit,\r\nplease [get in touch](mailto:m.r.hughes@kent.ac.uk).\r\n\r\n\r\n## Requirements\r\n\r\n* Numpy\r\n* Scipy\r\n* Matplotlib\r\n* PyQT5 (GUI only)\r\n* PIL (GUI only)\r\n",
    "bugtrack_url": null,
    "license": "MIT License  Copyright (c) 2024 Mike Hughes  Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the \"Software\"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:  The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.  THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. ",
    "summary": "Solve modes for a step index multimode fibre and simulate beam coupling and propagation.",
    "version": "1.0.1",
    "project_urls": {
        "Homepage": "https://github.com/MikeHughesKent/lpmodes/"
    },
    "split_keywords": [
        "fibre",
        " fiber",
        " modes",
        " lp modes",
        " multimode",
        " simulation"
    ],
    "urls": [
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "3ab7dcbbb5865fe241b395bfbec94b8f91849bc2dcf9bd6d41830cff608914c0",
                "md5": "abcae44275e7695d7b0145548b2c9430",
                "sha256": "689cb9c21de0e0c57827d19096ac85f4cd09495e83734e68b6266e34bd4b807c"
            },
            "downloads": -1,
            "filename": "lpmodes-1.0.1-py3-none-any.whl",
            "has_sig": false,
            "md5_digest": "abcae44275e7695d7b0145548b2c9430",
            "packagetype": "bdist_wheel",
            "python_version": "py3",
            "requires_python": ">=3.8",
            "size": 29483,
            "upload_time": "2024-09-06T09:58:18",
            "upload_time_iso_8601": "2024-09-06T09:58:18.004768Z",
            "url": "https://files.pythonhosted.org/packages/3a/b7/dcbbb5865fe241b395bfbec94b8f91849bc2dcf9bd6d41830cff608914c0/lpmodes-1.0.1-py3-none-any.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "a00bdfe0ac19494dd33e960527441fcc1da8da832d3f3931fae6f71401f6d973",
                "md5": "714ac24070a2c7e72947dad7c2942caa",
                "sha256": "2dee11fa590ae45527c75c647016e00311234f0a99c4fe5001ff6bed767c2699"
            },
            "downloads": -1,
            "filename": "lpmodes-1.0.1.tar.gz",
            "has_sig": false,
            "md5_digest": "714ac24070a2c7e72947dad7c2942caa",
            "packagetype": "sdist",
            "python_version": "source",
            "requires_python": ">=3.8",
            "size": 31419,
            "upload_time": "2024-09-06T09:58:19",
            "upload_time_iso_8601": "2024-09-06T09:58:19.368789Z",
            "url": "https://files.pythonhosted.org/packages/a0/0b/dfe0ac19494dd33e960527441fcc1da8da832d3f3931fae6f71401f6d973/lpmodes-1.0.1.tar.gz",
            "yanked": false,
            "yanked_reason": null
        }
    ],
    "upload_time": "2024-09-06 09:58:19",
    "github": true,
    "gitlab": false,
    "bitbucket": false,
    "codeberg": false,
    "github_user": "MikeHughesKent",
    "github_project": "lpmodes",
    "travis_ci": false,
    "coveralls": false,
    "github_actions": true,
    "requirements": [],
    "lcname": "lpmodes"
}
        
Elapsed time: 2.95793s