mirror of
				https://github.com/Telecominfraproject/oopt-gnpy.git
				synced 2025-10-31 10:07:57 +00:00 
			
		
		
		
	bug fix CORONET_GLOBAL_Topology example
bugs from the last refactor merge - fix #1: update fiber length after split - fix #2: add egress amp after fiber split Signed-off-by: Jean-Luc Auge <jeanluc.auge@orange.com>
This commit is contained in:
		| @@ -51,7 +51,7 @@ def main(network, equipment, source, sink): | ||||
|     build_network(network, equipment=equipment) | ||||
|     path = dijkstra_path(network, source, sink) | ||||
|     gain_mode = False | ||||
|     if gain_mode: | ||||
|     if not gain_mode: | ||||
|         path_amps = [amp for amp in path if isinstance(amp, Edfa)] | ||||
|         set_edfa_dp(network, path_amps) | ||||
|     spans = [s.length for s in path if isinstance(s, Fiber)] | ||||
|   | ||||
| @@ -572,5 +572,5 @@ class Edfa(Node): | ||||
|     def __call__(self, spectral_info): | ||||
|         carriers = tuple(self.propagate(spectral_info.pref, *spectral_info.carriers)) | ||||
|         pref = self.update_pref(spectral_info.pref) | ||||
|         print('after edfa pi',pref.pi) | ||||
|         print('pch_i edfa output',pref.pi) | ||||
|         return spectral_info.update(carriers=carriers, pref=pref) | ||||
|   | ||||
| @@ -179,6 +179,7 @@ def split_fiber(network, fiber, bounds, target, equipment): | ||||
|     prev_node = [n for n in network.predecessors(fiber)][0] | ||||
|     network.remove_edge(fiber, next_node) | ||||
|     network.remove_edge(prev_node, fiber) | ||||
|     network.remove_node(fiber) | ||||
|     new_spans = [ | ||||
|         Fiber( | ||||
|             uid =      f'{fiber.uid}_({span}/{n_spans})', | ||||
| @@ -186,12 +187,18 @@ def split_fiber(network, fiber, bounds, target, equipment): | ||||
|             params = fiber.params._asdict() | ||||
|         ) for span in range(n_spans) | ||||
|     ] | ||||
|     for new_span in new_spans: | ||||
|     new_spans[0].length = new_length | ||||
|     network.add_node(new_spans[0]) | ||||
|     network.add_edge(prev_node, new_spans[0]) | ||||
|     prev_node = new_spans[0] | ||||
|     for new_span in new_spans[1:]: | ||||
|         new_span.length = new_length | ||||
|         network.add_node(new_span) | ||||
|         network.add_edge(prev_node, new_span) | ||||
|         add_egress_amplifier(network, new_span, equipment) | ||||
|         add_egress_amplifier(network, prev_node, equipment) | ||||
|         prev_node = new_span | ||||
|     network.add_edge(prev_node, next_node) | ||||
|     add_egress_amplifier(network, prev_node, equipment) | ||||
|  | ||||
| def build_network(network, equipment, bounds=range(75_000, 150_000), target=100_000): | ||||
|     fibers = [f for f in network.nodes() if isinstance(f, Fiber)] | ||||
|   | ||||
		Reference in New Issue
	
	Block a user
	 Jean-Luc Auge
					Jean-Luc Auge