| Parameters: |
|
|---|
Note
Use of Lambda, and NOT the Python reserved word lambda
| Returns: | Information string |
|---|---|
| Return type: | string |
Output information on Domain.
list of weak references to the object (if defined)
Speed of light in a vacuum. Unit: nm / ps
| Parameters: | nu (double) – Frequency to convert. Unit: THz |
|---|---|
| Returns: | Angular frequency. Unit: rad / ps |
| Return type: | double |
Convert from frequency to angular frequency
| Parameters: | nu (double) – Frequency to convert. Unit: THz |
|---|---|
| Returns: | Wavelength. Unit: nm |
| Return type: | double |
Convert from frequency to wavelength
| Parameters: | omega (double) – Angular frequency to convert. Unit: rad / ps |
|---|---|
| Returns: | Frequency. Unit: THz |
| Return type: | double |
Convert from angular frequency to frequency
| Parameters: | omega (double) – Angular frequency to convert. Unit: rad / ps |
|---|---|
| Returns: | Wavelength. Unit: nm |
| Return type: | double |
Convert from angular frequency to wavelength
| Parameters: | Lambda (double) – Wavelength to convert. Unit: nm |
|---|---|
| Returns: | Frequency. Unit: THz |
| Return type: | double |
Convert from wavelength to frequency
| Parameters: | Lambda (double) – Wavelength to convert. Unit: nm |
|---|---|
| Returns: | Angular frequency. Unit: rad / ps |
| Return type: | double |
Convert from wavelength to angular frequency
| Parameters: |
|
|---|---|
| Returns: | Small increment in wavelength. Unit: nm |
| Return type: | double |
Convert a small change in frequency to a small change in wavelength, with reference to centre frequency
| Parameters: |
|
|---|---|
| Returns: | Small increment in frequency. Unit: THz |
| Return type: | double |
Convert a small change in wavelength to a small change in frequency, with reference to a centre wavelength
| Parameters: |
|
|---|---|
| Returns: | Array of power values |
| Return type: | array_like |
Generate an array of temporal power values from complex amplitudes array.
| Parameters: |
|
|---|---|
| Returns: | Array of power values |
| Return type: | array_like |
Generate an array of spectral power values from complex amplitudes array. Note: Expect input field to be in temporal domain. Never input A_nu!
| Parameters: |
|
|---|---|
| Returns: | Array of phase angle values |
| Return type: | array_like |
Generate an array of phase angles from complex amplitudes array.
| Parameters: |
|
|---|---|
| Returns: | Array of chirp values |
| Return type: | array_like |
Generate an array of chirp values from complex amplitudes array.
| Parameters: | A_t (array_like) – Input field array in the temporal domain |
|---|---|
| Returns: | Output field array in the spectral domain |
| Return type: | array_like |
Fourier transform field from temporal domain to spectral domain. Note: Physics convention – positive sign in exponential term.
| Parameters: | A_nu (array_like) – Input field array in the spectral domain |
|---|---|
| Returns: | Output field array in the temporal domain |
| Return type: | array_like |
Inverse Fourier transform field from spectral domain to temporal domain. Note: Physics convention – negative sign in exponential term.
| Parameters: | A_nu (array_like) – Input field array in the spectral domain |
|---|---|
| Returns: | Shifted field array in the spectral domain |
| Return type: | array_like |
Shift the field values from “FFT order” to “consecutive order”.
| Parameters: | A_nu (array_like) – Input field array in the spectral domain |
|---|---|
| Returns: | Shifted field array in the spectral domain |
| Return type: | array_like |
Shift the field values from “consecutive order” to “FFT order”.
Calculate useful metrics using a domain and a field. An example metric is Q.
| Parameters: |
|
|---|---|
| Returns: | Maximum nonlinear phase and a factor indicating regeneration |
| Return type: | double, double |
| Parameters: | domain (object) – A domain to be used with contained modules |
|---|
A system consists of a list of modules, each of which may be called with a domain and field as parameters. The result of each module call is stored in a dictionary.
Clear contents of all fields. Clear (remove) all modules if requested.
| Parameters: |
|
|---|
Simple amplifier provides gain but no noise
| Parameters: |
|
|---|
Each bit is represented by a pulse.
| Parameters: |
|
|---|---|
| Returns: | Bitstream |
| Return type: | object |
Generate a list of bits, each of which describes a pulse. Each pulse is a variation of the pulse described by input parameter: ‘bit’.
| Parameters: |
|
|---|
Generate a continuous wave (CW) source. Add this to appropriate field.
list of weak references to the object (if defined)
| Parameters: |
|
|---|
Dispersion is used by fibre to generate a fairly general dispersion array.
| Parameters: | alpha_dB (double) – Logarithmic attenuation factor |
|---|---|
| Returns: | Linear attenuation factor |
| Return type: | double |
Converts a logarithmic attenuation factor to a linear attenuation factor
| Parameters: | alpha_linear (double) – Linear attenuation factor |
|---|---|
| Returns: | Logarithmic attenuation factor |
| Return type: | double |
Converts a linear attenuation factor to a logarithmic attenuation factor
| Parameters: |
|
|---|---|
| Returns: | Second and third order dispersion |
| Return type: | double, double |
Require D and S. Return a tuple containing beta_2 and beta_3.
| Parameters: |
|
|---|---|
| Returns: | Dispersion, dispersion slope |
| Return type: | double, double |
Require beta_2 and beta_3. Return a tuple containing D and S.
| Parameters: |
|
|---|
sim_type is either default or wdm.
traces: If greater than 1, will save the field at uniformly-spaced points during fibre propagation. If zero, will output all saved points used. This is useful if using an adaptive stepper which will likely save points non-uniformly.
method: simulation method such as RK4IP, ARK4IP.
total_steps: If a non-adaptive stepper is used, this will be used to set the step-size between successive points along the fibre.
local_error: Relative local error to aim for between propagtion points.
| Parameters: |
|
|---|
Generate a super-Gaussian filter. A HWIeM bandwidth is used internally; a FWHM bandwidth will be converted on initialisation.
| Parameters: |
|
|---|---|
| Returns: | Array of values. |
| Return type: | Dvector |
Generate an array representing the filter power transfer function.
| Parameters: |
|
|---|
Generates a pulse with a Gaussian profile. A HWIeM pulse width is used internally; a FWHM pulse width will be converted on initialisation.
| Parameters: |
|
|---|---|
| Returns: | Field after modification by Gaussian |
| Return type: | Object |
| Returns: | Information string |
|---|---|
| Return type: | string |
Output information on Gaussian.
list of weak references to the object (if defined)
| Parameters: | t (Dvector) – Temporal domain array |
|---|---|
| Returns: | Array of complex values. Unit: ![]() |
| Return type: | Cvector |
Generate an array of complex values representing a Gaussian pulse.
| Parameters: |
|
|---|
Generate a pulse with Gaussian or hyperbolic secant shape. Add this pulse to appropriate field, determined by channel.
| Parameters: |
|
|---|---|
| Returns: | Field after modification by Generator |
| Return type: | Object |
list of weak references to the object (if defined)
Nonlinearity is used by fibre to generate a nonlinear factor.
list of weak references to the object (if defined)
| Parameters: |
|
|---|---|
| Returns: | Nonlinear parameter. |
| Return type: | double |
Calculate nonlinear parameter from the nonlinear index and effective area.
| Parameters: |
|
|---|---|
| Returns: | Raman response function |
| Return type: | double |
Calculate raman response function from tau_1 and tau_2.
| Parameters: |
|
|---|
Generate a map plot.
| Parameters: |
|
|---|
Generate a waterfall plot.
| Parameters: |
|
|---|
Generate a single plot.
| Parameters: |
|
|---|
Generate a double plot. The two plots will be arranged vertically, one above the other.
| Parameters: |
|
|---|
Generate multiple overlapping plots.
| Parameters: |
|
|---|
Generate four plots arranged in a two-by-two square.
| Parameters: |
|
|---|
Generate an animated plot, either interactive or saved as a video.
| Parameters: |
|
|---|
Convert video to ogv, webm, or mp4 type.
| Parameters: |
|
|---|
Generates a pulse with a Sech profile. A HWIeM pulse width is used internally; a FWHM pulse width will be converted on initialisation.
| Parameters: |
|
|---|---|
| Returns: | Field after modification by Sech |
| Return type: | Object |
| Returns: | Information string |
|---|---|
| Return type: | string |
Output information on Sech.
list of weak references to the object (if defined)
| Parameters: | t (Dvector) – Temporal domain array |
|---|---|
| Returns: | Array of complex values. Unit: ![]() |
| Return type: | Cvector |
Generate an array of complex values representing a Sech pulse.
| Parameters: |
|
|---|
Solver consists of both explicit and embedded routines for ODE integration.
Note
For embedded methods: Even though the calculated error applies to A_coarse, it has become common to use a weighted combination of A_coarse and A_fine to produce a higher order result (local extrapolation). It is for this reason that the embedded methods only return A_fine rather than A_coarse, or even both (A_coarse, A_fine). To be strict, return A_coarse in the methods.
Return A_fine, calculated by method.
list of weak references to the object (if defined)
Bogacki-Shampine method (local orders: three and two)
Cash-Karp method (local order: four and five)
Dormand-Prince method (local orders: four and five)
Euler method
Midpoint method
Runge-Kutta fourth-order method
Runge-Kutta in the interaction picture method
Runge-Kutta-Fehlberg method (local orders: four and five)
Agrawal (iterative) split-step method
Reduced split-step method
Simple split-step method
Symmetric split-step method (midpoint method for nonlinear)
Symmetric split-step method (classical Runge-Kutta for nonlinear)
Symmetric split-step method
| Parameters: |
|
|---|
Each method may use an adaptive stepper by prepending an ‘A’ to the name.
0 – Store A for each succesful step;
1 – Store A at final value (length) only;
values for equally spaced z-values, calculated using traces.
Delegate to appropriate function, adaptive- or standard-stepper
list of weak references to the object (if defined)
Take multiple steps, with variable length, until target reached
Calculate an estimate of the relative local error
Take a fixed number of steps, each of equal length
Contains A arrays for multiple z values. Also contains t array and functions to modify the stored data.
list of weak references to the object (if defined)
| Parameters: |
|
|---|
Append current fibre distance and field to stored array
| Parameters: |
|
|---|---|
| Returns: | Index and element of array corresponding to value |
| Return type: | Uint, double |
| Parameters: |
|
|---|---|
| Returns: | Data for x, y, and z axis |
| Return type: | Tuple |
Generate data suitable for plotting. Includes temporal/spectral axis, temporal/spectral power array, and array of z values for the x,y data.
| Parameters: |
|
|---|---|
| Returns: | Interpolated As |
| Return type: | array_like |
Interpolate array of A values, stored at non-uniform z-values, over a uniform array of new z-values (zs).
| Parameters: | zs (array_like) – Array of z values for which A is required |
|---|
Split into separate arrays, interpolate each, then re-join.
Resets the global variable located in the field module.
Store current value of the global variable in the field module.
| Parameters: |
|
|---|---|
| Returns: | Reduced x and y arrays |
| Return type: | array_like, array_like |
From a range given by first_value and last_value, attempt to reduce x array to required range while also reducing corresponding y array.