Giter VIP home page Giter VIP logo

pyglle's Introduction

pyGLLE

License: MIT

pyGLLE is a Python toolkit for simulating the propagation dynamics of dissipative solitons in a variant of the Lugiato-Lefever equation (LLE). Including dispersion terms of third and fourth order, this variant is here referred to as the generalised LLE (GLLE).

The provided software implements a solver for a variant of the LLE including dispersion terms of third and fourth order. It also includes the functionality to solve for stationary solutions of the standard LLE, containing one or several localized dissipative structures.

Prerequisites

The tools provided by the pyGLLE package require the functionality of

  • numpy (>=1.8.0rc1)
  • scipy (>=0.13.0b1)

Further, the figure generation scripts included with the examples require the funcality of

  • matplotlib (>=1.2.1)

Included materials

The repository follows a modular structure:

pyGLLE/
├── LICENSE.md
├── README.md
├── numExp01_stationarySolution
│   ├── data_stationary_solution
│   ├── main_findStationarySolution.py
│   ├── pp_figure
│   │   ├── FIGS
│   │   ├── generateFigure.sh
│   │   └── main_figure_stationarySolution.py
│   └── run.sh
├── numExp02_propagationScenarios
│   ├── data
│   ├── data_stationary_solution
│   ├── main_findStationarySolution.py
│   ├── main_propagateInitialCondition.py
│   ├── pp_figure_propagationScenarios
│   │   ├── FIGS
│   │   ├── figure_base_propagationDynamics.py
│   │   ├── generateFigures.sh
│   │   └── main_figure_propagationDynamics_stationarySolution.py
│   └── run.sh
├── scripts
│   └── pyGLLE.py
└── src
    ├── data_handler.py
    ├── solver.py
    └── stationary_solution.py

Subfolder /src contains Python modules implementing the basic functionality of the software:

  • data_handler.py: provides a class, handling data accumulation and data
  • ouput. Output data is stored using the numpy native npz-format.
  • stationary_solution.py: provides functions allowing to obtain stationary localized solution of the standard LLE.
  • solver.py: implements a solver for the numerical integration of the generalized LLE using a Runge-Kutta method.

The folder /scripts contains the main Python module implementing the interface between the user supplied code and the algorithms and data structures contained in the modules in folder \src:

  • pyGLLE.py: defines the main functions findStationarySolution and propagateInitialCondition.

Further, the folders \numExp01_stationarySolution and \numExp02_propagationScenarios contain scripts that implement example workflows ranging from the specification of a propagation scenario to the visualization of the generated raw data.

The repository further contains

  • LICENSE, a license file.
  • Readme.md, this file.

For a more detailed description of functions, defined in the above modules, their parameters and return values we refer to the example cases and documentation provided within the code.

Availability of the software

The pyGLLE software package is derived from our research software and is meant to work as a (system-)local software tool. There is no need to install it once you got a local clone of the repository, e.g. via

$ git clone https://github.com/omelchert/pyGLLE

We further prepared a pyGLLE compute capsule on Code Ocean, allowing to directly run and modify an exemplary simulation without the need to create a local copy of the repository.

Links

The pyGLLE software package is described in

O. Melchert, A. Demircan, "pyGLLE: A Python toolkit for solving the generalized Lugiato–Lefever equation," SoftwareX 15 (2021) 100741, DOI: 10.1016/j.softx.2021.100741.

The presented software has been extensively used in our research work, including the study of resonant emission of multi-frequency radiation by oscillating dissipative solitons in the LLE including third order dispersion

O. Melchert, A. Demircan, A. Yulin, "Multi-frequency radiation of dissipative solitons in optical fiber cavities," Scientific Reports 10 (2020) 8849, DOI: 10.1038/s41598-020-65426-x.

and the dynamics of localized dissipative structures in the generalized LLE with negative quartic group-velocity dispersion

O. Melchert, A. Yulin, A. Demircan, "Dynamics of localized dissipative structures in a generalized Lugiato-Lefever model with negative quartic group-velocity dispersion," Optics Letters 45 (2020) 2764, DOI: 10.1364/OL.392180.

License

This project is licensed under the MIT License - see the LICENSE.md file for details.

Acknowledgments

This work received funding from the Deutsche Forschungsgemeinschaft (DFG) under Germany’s Excellence Strategy within the Cluster of Excellence PhoenixD (Photonics, Optics, and Engineering – Innovation Across Disciplines) (EXC 2122, projectID 390833453).

pyglle's People

Contributors

danhickstein avatar omelchert avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar

pyglle's Issues

What are the units of d2, d3, d4?

Sorry about this basic question, I am new to the LLE. But what are the units of d2, d3, and d4? Are they related to the beta expansion coefficients, in units of ps^2/km or similar?

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.