mnoptical.link¶

Module Contents¶

Classes¶

SRS_Effect_Model

Computation taken from : M. Zirngibl Analytical model of Raman gain effects in massive

Zirngibl_General_Model

The general form of the SRS model as proposed by M. Zirngibl in

Sylvestre_SRS_Model

SRS model proposed in 'Raman-Induced Power Tilt in Arbitrarily

Bigo_SRS_Model

SRS model proposed in the paper tilted:

Link

A Link refers to the connection between two network nodes (i.e., transceiver-ROADM or

Span

Attributes¶

SpanTuple

mnoptical.link.SpanTuple¶
class mnoptical.link.SRS_Effect_Model(span)¶

Computation taken from : M. Zirngibl Analytical model of Raman gain effects in massive wavelength division multiplexed transmission systems, 1998. - Equation 10. - Most accurate for uniform loading cases.

class mnoptical.link.Zirngibl_General_Model(span)¶

The general form of the SRS model as proposed by M. Zirngibl in Analytical model of Raman gain effects in massive wavelength division multiplexed transmission systems, 1998.” - Equation 7 - Most accurate for non-uniform loading cases.

class mnoptical.link.Sylvestre_SRS_Model(span)¶

SRS model proposed in ‘Raman-Induced Power Tilt in Arbitrarily Large Wavelength-Division-MUltiplexed Systems’ by T. Sylvestre et al., 2005 - Equation 6

class mnoptical.link.Bigo_SRS_Model(span)¶

SRS model proposed in the paper tilted: ‘Experimental Investigation of Stimulated Raman Scattering Limitation on WDM Transmission Over Various Types of Fiber Infrastructures’ by S.Bigo et al., 1999 - Equation 1 - Simplified form of the srs_effect_model() function

class mnoptical.link.Link(src_node, dst_node, src_out_port=-1, dst_in_port=-1, boost_amp=None, spans=None, debugger=False, **params)¶

Bases: object

A Link refers to the connection between two network nodes (i.e., transceiver-ROADM or ROADM-ROADM). In the future we must enable network-element-node to controller-node connectivity.

srs_models¶
srs_model¶
length()¶
Returns:

link length adding up span lengths in spans attribute

describe()¶
__repr__()¶

String representation

reset()¶

Remove all optical signals from Link

remove_optical_signal(optical_signal)¶
include_optical_signal_in(optical_signal, power=None, ase_noise=None, nli_noise=None, tup_key=None)¶

Include optical signal in optical_signals :param optical_signal: OpticalSignal object :param power: power level of OpticalSignal :param ase_noise: ase noise level of OpticalSignal :param nli_noise: nli noise level of OpticalSignal :param tup_key: tuple key composed of (Link, Span)

include_optical_signal_out(optical_signal, power=None, ase_noise=None, nli_noise=None)¶

Include optical signal in optical_signals_out :param optical_signal: OpticalSignal object :param power: power level of OpticalSignal :param ase_noise: ase noise level of OpticalSignal :param nli_noise: nli noise level of OpticalSignal :param tup_key: tuple key composed of (Link, Span)

propagate(is_last_port=False, safe_switch=False)¶

Propagate the signals across the link :param is_last_port: boolean, needed for propagation algorithm :param safe_switch: boolean, needed for propagation algorithm :return:

class mnoptical.link.Span(fibre_type='SMF', length=20.0, debugger=False, **params)¶

Bases: object

ids = 1¶
anonymous = True¶
describe()¶
__repr__()¶

String representation

reset()¶
get_fibre_spectral_attenuation()¶

Retrieve the WDL of the single mode fibre :return: WDL of the SMF

attenuation(signal_index=1)¶

Returns the attenuation value for each wavelength by the signal’s index :param signal_index:

beta2(ref_wavelength=1.55e-06)¶

Returns beta2 from dispersion parameter. Dispersion is entered in ps/nm/km. Translated from the GNPy project source code :param ref_wavelength: can be a numpy array; default: 1550nm

remove_optical_signal(optical_signal)¶
include_optical_signal_in(optical_signal, power=None, ase_noise=None, nli_noise=None, in_port=None)¶

Include optical signal in optical_signals :param optical_signal: OpticalSignal object :param power: power level of OpticalSignal :param ase_noise: ase noise level of OpticalSignal :param nli_noise: nli noise level of OpticalSignal

include_optical_signal_out(optical_signal, power=None, ase_noise=None, nli_noise=None)¶

Include optical signal in optical_signals_out :param optical_signal: OpticalSignal object :param power: power level of OpticalSignal :param ase_noise: ase noise level of OpticalSignal :param nli_noise: nli noise level of OpticalSignal

set_input_port(*args, **kwargs)¶
set_output_port(*args, **kwargs)¶
propagate(optical_signals=None, is_last_port=False, safe_switch=False)¶
output_nonlinear_noise()¶

Compute GN model and updates state data structures

gn_model()¶

Computes the nonlinear interference power on a single carrier. Translated from the GNPy project source code The method uses eq. 120 from arXiv:1209.0394. :return: carrier_nli: the amount of nonlinear interference in W on the carrier under analysis

static psi_factor(carrier, interfering_carrier, beta2, asymptotic_length)¶

Calculates eq. 123 from arXiv:1209.0394 Translated from the GNPy project source code

Mininet-Optical

Navigation

  • Welcome to Mininet-Optical
  • Installation and Walkthrough
  • Architecture Overview
  • API Overview
  • Tutorial
  • Visualization
  • API Reference
    • mnoptical

Related Topics

  • Documentation overview
    • API Reference
      • mnoptical
        • Previous: mnoptical.edfa_params
        • Next: mnoptical.network

Quick search

©2022, Mininet-Optical Project. | Powered by Sphinx 7.0.1 & Alabaster 0.7.13 | Page source