A generalized nonlinear Schrödinger Python module implementing different models of input pulse quantum noise

We provide Python tools enabling numerical simulation and analysis of the propagation dynamics of ultrashort laser pulses in nonlinear waveguides.  The modeling approach is based on the widely used generalized nonlinear Schrödinger equation for the pulse envelope. The provided software implements the effects of linear dispersion, pulse self-steepening, and the Raman effect. The focus lies on the implementation of input pulse shot noise, i.e. classical background fields that mimic quantum noise, which are often not thoroughly presented in the scientific literature. We discuss and implement commonly adopted quantum noise models based on pure spectral phase noise, as well as Gaussian noise.  Coherence properties of the resulting spectra can be calculated. We demonstrate the functionality of the software by reproducing results for a supercontinuum generation process in a photonic crystal fiber, documented in the scientific literature. The presented Python tools are open-source and released under the MIT license in a publicly available software repository.

Platform: Python, using the functionality of numpy, scipy and matplotlib.

Read more and download the code from here:  
https://github.com/ElsevierSoftwareX/SOFTX-D-22-00165.git

We prepared a Code Ocean capsule, allowing to directly run and modify an exemplary simulation without the need to create a local copy of the repository under the link:
https://codeocean.com/capsule/4658074/tree

The work is done by the team of Prof. Ayhan Demircan

Reference

[1] Melchert, Oliver and Demircan, Ayhan.  GNLStools.py: A generalized nonlinear Schrödinger Python module implementing different models of input pulse quantum noise. SoftwareX 20 (2022): 101232.

[2] Melchert, Oliver et al. Soliton compression and supercontinuum spectra in nonlinear diamond photonics. Diamond & Related Materials 136 (2023): 109939.