GNLSE package documentation

Pulse envelopes

This module allows one to model proper input envelope as the given initial conditions to solve Generalized Nonlinear Schrodiner Equation (GNLSE).

gnlse.SechEnvelope(Pmax, FWHM)

Amplitude envelope of hyperbolic secant pulse.

gnlse.GaussianEnvelope(Pmax, FWHM)

Amplitude envelope of gaussian pulse.

gnlse.LorentzianEnvelope(Pmax, FWHM)

Amplitude envelope of lorentzian pulse.

GNLSE model

This part of the module is its core, and it implements the split-step Fourier method to solve the GNLSE.

gnlse.GNLSESetup()

Model inputs for the GNLSE class.

gnlse.GNLSE(setup)

Models propagation of an optical pulse in a fiber by integrating the generalized non-linear Schrödinger equation.

gnlse.Solution([t, W, w_0, Z, At, AW, Aty, AWy])

Represents a solution to a GNLSE problem.

Dispersion operators

Package supports two dispersion operators: calculated from a Taylor expansion and calculated from effective refractive indices.

gnlse.DispersionFiberFromTaylor(loss, betas)

Calculates the dispersion in frequency domain

gnlse.DispersionFiberFromInterpolation(loss, ...)

Calculates the propagation function in frequency domain, using the extrapolation method based on delivered refractive indexes and corresponding wavelengths.

Nonlinear coefficient

The guided fiber mode has a certain effective mode area, which in general depends on frequency. Package supports two possibilites to account the parameter: by giving the scalar value for gamma at central wavelength or calculated values for freqency range from effective refractive indices and effective mode area (experimantal or simulated data) Mode profile dispersion in GNLSE is accounted based on algorithm described in [J07].

gnlse.NonlinearityFromEffectiveArea(neff, ...)

Calculate the nonlinearity coefficient in frequency domain based on modified gnlse example form J.

Raman responses

Package supports three Raman response functions: blowwood [BW89], linagrawal [LA06] and hollenbeck [HC02].

gnlse.raman_blowwood(T)

Raman scattering function for silica optical fibers, based on K.

gnlse.raman_holltrell(T)

Raman scattering function for silica optical fibers, based on Dawn Hollenbeck and Cyrus D.

gnlse.raman_linagrawal(T)

Raman scattering function for silica optical fibers, based on Q.

Visualisation

Various plotting functions for visualizing GNLSE simulations using Matplotlib library are prepared.

gnlse.plot_wavelength_vs_distance(solver[, ...])

Plotting results in linear scale in wavelength domain.

gnlse.plot_delay_vs_distance(solver[, ...])

Plotting normalized intensity in linear scale in time domain.

gnlse.quick_plot(solution)

Plotting results in time and frequency domain for default value of parameters.

Importing and exporting

The following functions allow one to read and write data as \*.mat files.

gnlse.read_mat(filename)

Imports *.mat file as dictionary.

gnlse.write_mat(dictionary, filename)

Exports dictionary to *.mat file.