FiberNlse.jl

A non-linear Schrödinger equation solver for julia
Author brian-sinquin
Popularity
6 Stars
Updated Last
4 Months Ago
Started In
February 2022


DOI CI PkgEval codecov code style blue ColPrac: Contributor's Guide on Collaborative Practices for Community Packages

Documentation :


A non-linear Schrödinger equation solver for julia aimed towards fiber optics. (🚧 Under development)

Features

The FiberNlse.jl package simulates the propagation of an optical field envelope signal of duration T in an optical fiber of length L. The chromatic dispersion (D) and SPM (self-phase modulation) (γ) wich arises from Kerr non-linearity are taken as parameters.

The core of the simulation consists in the integration of the Non-Linear Schrödinger Equation with the desired signal as initial condition. The package uses the Fourier Split-Step Method algorithm.


Installation

To install you can simply type :

] add FiberNlse

in your julia terminal or clone this repository and include the src/FiberNlse.jl file in your project.

Roadmap

  • Implement Split-Step Method

  • Register DOI

  • Document code

  • Setup continuous integration

  • Add progress bar option

  • Add non constant dispersion (and higher order dispersion)

  • Add Self-steepening

  • Future version (2.0) -- (compatibility breaking)

  • Higher order integral solver (DifferentialEquations.jl)

  • Add wavelength dependence to dispersion

  • More complex material model API (GNLSE, Raman, SS, ...)

  • Many solvers (as in pychi)

  • Solver API (as DifferentialEquations.jl)

  • Better Data manipulation (maybe a standalone package?)

  • Make it compatible with AD for optimisation

Citation

Please cite this repository if you use it to publish data in a research paper.

@software{sinquin_fibernlse,
  author       = {Sinquin Brian},
  title        = {FiberNlse.jl},
  month        = mar,
  year         = 2022,
  publisher    = {Zenodo},
  doi          = {10.5281/zenodo.8251777},
  url          = {https://doi.org/10.5281/zenodo.8251777}
}

Used By Packages

No packages found.