mirror of
https://github.com/Telecominfraproject/oopt-gnpy.git
synced 2025-10-30 01:32:21 +00:00
Merge changes Idc473762,I004de102
* changes: Fix calculation of power target for Edfa in gain mode Fix calculation of gain for first Edfa after Roadm
This commit is contained in:
@@ -239,7 +239,7 @@ def set_amplifier_voa(amp, power_target, power_mode):
|
||||
amp.out_voa = voa
|
||||
|
||||
|
||||
def set_egress_amplifier(network, this_node, equipment, pref_total_db):
|
||||
def set_egress_amplifier(network, this_node, equipment, pref_ch_db, pref_total_db):
|
||||
""" this node can be a transceiver or a ROADM (same function called in both cases)
|
||||
"""
|
||||
power_mode = equipment['Span']['default'].power_mode
|
||||
@@ -256,16 +256,16 @@ def set_egress_amplifier(network, this_node, equipment, pref_total_db):
|
||||
if this_node_degree:
|
||||
# find the target power on this degree
|
||||
if node.uid in this_node_degree.keys():
|
||||
prev_dp = this_node_degree[node.uid]
|
||||
prev_dp = this_node_degree[node.uid] - pref_ch_db
|
||||
else:
|
||||
# if no target power is defined on this degree use the global one
|
||||
# if target_pch_out_db is not an attribute, then the element must be a transceiver
|
||||
prev_dp = getattr(this_node.params, 'target_pch_out_db', 0)
|
||||
prev_dp = getattr(this_node.params, 'target_pch_out_db', 0) - pref_ch_db
|
||||
this_node_degree[node.uid] = prev_dp
|
||||
else:
|
||||
# if no per degree target power is given use the global one
|
||||
# if target_pch_out_db is not an attribute, then the element must be a transceiver
|
||||
prev_dp = getattr(this_node.params, 'target_pch_out_db', 0)
|
||||
prev_dp = getattr(this_node.params, 'target_pch_out_db', 0) - pref_ch_db
|
||||
this_node_degree[node.uid] = prev_dp
|
||||
dp = prev_dp
|
||||
prev_voa = 0
|
||||
@@ -284,7 +284,7 @@ def set_egress_amplifier(network, this_node, equipment, pref_total_db):
|
||||
gain_target = node_loss + dp - prev_dp + prev_voa
|
||||
else: # gain mode with effective_gain
|
||||
gain_target = node.effective_gain
|
||||
dp = prev_dp - node_loss + gain_target
|
||||
dp = prev_dp - node_loss - prev_voa + gain_target
|
||||
|
||||
power_target = pref_total_db + dp
|
||||
|
||||
@@ -484,10 +484,10 @@ def build_network(network, equipment, pref_ch_db, pref_total_db):
|
||||
|
||||
roadms = [r for r in amplified_nodes if isinstance(r, elements.Roadm)]
|
||||
for roadm in roadms:
|
||||
set_egress_amplifier(network, roadm, equipment, pref_total_db)
|
||||
set_egress_amplifier(network, roadm, equipment, pref_ch_db, pref_total_db)
|
||||
|
||||
# support older json input topology wo Roadms:
|
||||
if len(roadms) == 0:
|
||||
trx = [t for t in network.nodes() if isinstance(t, elements.Transceiver)]
|
||||
for t in trx:
|
||||
set_egress_amplifier(network, t, equipment, pref_total_db)
|
||||
set_egress_amplifier(network, t, equipment, 0, pref_total_db)
|
||||
|
||||
Reference in New Issue
Block a user