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. . Unit: |
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.