mnoptical.link¶
Module Contents¶
Classes¶
| Computation taken from : M. Zirngibl Analytical model of Raman gain effects in massive | |
| The general form of the SRS model as proposed by M. Zirngibl in | |
| SRS model proposed in 'Raman-Induced Power Tilt in Arbitrarily | |
| SRS model proposed in the paper tilted: | |
| A Link refers to the connection between two network nodes (i.e., transceiver-ROADM or | |
Attributes¶
- 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