mirror of
https://github.com/Telecominfraproject/oopt-gnpy.git
synced 2025-11-02 02:57:52 +00:00
Management of lumped losses along a fiber span
The lumped losses are used in the computation of the loss/gain profile through the fiber whether the Raman effect is considered or not. The computed power profile is used to calculate the related NLI impairment. Using the 'gn_model_analytic' method, the lumped losses are taken into account as the contribution of an additional total loss at the end of the fiber span. In case the 'ggn_spectrally_separated' is selected, the method uses the computed power profile according to the specified z and frequency arrays. The lumped losses are so considered within the NLI power evolution along the fiber. Change-Id: I73a6baa321aca4d041cafa180f47afed824ce267 Signed-off-by: Jan Kundrát <jan.kundrat@telecominfraproject.com>
This commit is contained in:
committed by
Jan Kundrát
parent
5e50ffbbf6
commit
aaf0480e9c
@@ -365,6 +365,15 @@ class Fiber(_Node):
|
||||
else:
|
||||
self._cr_function = lambda frequency: zeros(squeeze(frequency).shape)
|
||||
|
||||
# Lumped losses
|
||||
z_lumped_losses = array([lumped['position'] for lumped in self.params.lumped_losses]) # km
|
||||
lumped_losses_power = array([lumped['loss'] for lumped in self.params.lumped_losses]) # dB
|
||||
if not ((z_lumped_losses > 0) * (z_lumped_losses < 1e-3 * self.params.length)).all():
|
||||
raise NetworkTopologyError("Lumped loss positions must be between 0 and the fiber length "
|
||||
f"({1e-3 * self.params.length} km), boundaries excluded.")
|
||||
self.lumped_losses = db2lin(- lumped_losses_power) # [linear units]
|
||||
self.z_lumped_losses = array(z_lumped_losses) * 1e3 # [m]
|
||||
|
||||
@property
|
||||
def to_json(self):
|
||||
return {'uid': self.uid,
|
||||
|
||||
Reference in New Issue
Block a user