From 58bcf65cf6427c26a2e6ac3aab64f0fbe18cec81 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jan=20Kundr=C3=A1t?= Date: Wed, 7 Aug 2019 23:45:44 +0200 Subject: [PATCH] Raman: do not introduce a new copy of the equipment library Compared to `eqpt_config.json`, the only extra content in the new copy was the `RamanFiber` block. There's no disadvantage in just using one equipment library; the traditional code can easily ignore the RamanFiber stanza. --- examples/eqpt_config.json | 30 ++ examples/eqpt_with_raman_config.json | 308 ------------------ .../transmission_with_raman_main_example.py | 4 +- 3 files changed, 32 insertions(+), 310 deletions(-) delete mode 100644 examples/eqpt_with_raman_config.json diff --git a/examples/eqpt_config.json b/examples/eqpt_config.json index 07050906..bf9d7c1e 100644 --- a/examples/eqpt_config.json +++ b/examples/eqpt_config.json @@ -159,6 +159,36 @@ "gamma": 0.000843 } ], + "RamanFiber":[{ + "type_variety": "SSMF", + "dispersion": 1.67e-05, + "gamma": 0.00127, + "raman_efficiency": { + "cr":[ + 0, 9.4E-06, 2.92E-05, 4.88E-05, 6.82E-05, 8.31E-05, 9.4E-05, 0.0001014, 0.0001069, 0.0001119, + 0.0001217, 0.0001268, 0.0001365, 0.000149, 0.000165, 0.000181, 0.0001977, 0.0002192, 0.0002469, + 0.0002749, 0.0002999, 0.0003206, 0.0003405, 0.0003592, 0.000374, 0.0003826, 0.0003841, 0.0003826, + 0.0003802, 0.0003756, 0.0003549, 0.0003795, 0.000344, 0.0002933, 0.0002024, 0.0001158, 8.46E-05, + 7.14E-05, 6.86E-05, 8.5E-05, 8.93E-05, 9.01E-05, 8.15E-05, 6.67E-05, 4.37E-05, 3.28E-05, 2.96E-05, + 2.65E-05, 2.57E-05, 2.81E-05, 3.08E-05, 3.67E-05, 5.85E-05, 6.63E-05, 6.36E-05, 5.5E-05, 4.06E-05, + 2.77E-05, 2.42E-05, 1.87E-05, 1.6E-05, 1.4E-05, 1.13E-05, 1.05E-05, 9.8E-06, 9.8E-06, 1.13E-05, + 1.64E-05, 1.95E-05, 2.38E-05, 2.26E-05, 2.03E-05, 1.48E-05, 1.09E-05, 9.8E-06, 1.05E-05, 1.17E-05, + 1.25E-05, 1.21E-05, 1.09E-05, 9.8E-06, 8.2E-06, 6.6E-06, 4.7E-06, 2.7E-06, 1.9E-06, 1.2E-06, 4E-07, + 2E-07, 1E-07 + ], + "frequency_offset":[ + 0, 0.5e12, 1e12, 1.5e12, 2e12, 2.5e12, 3e12, 3.5e12, 4e12, 4.5e12, 5e12, 5.5e12, 6e12, 6.5e12, 7e12, + 7.5e12, 8e12, 8.5e12, 9e12, 9.5e12, 10e12, 10.5e12, 11e12, 11.5e12, 12e12, 12.5e12, 12.75e12, + 13e12, 13.25e12, 13.5e12, 14e12, 14.5e12, 14.75e12, 15e12, 15.5e12, 16e12, 16.5e12, 17e12, + 17.5e12, 18e12, 18.25e12, 18.5e12, 18.75e12, 19e12, 19.5e12, 20e12, 20.5e12, 21e12, 21.5e12, + 22e12, 22.5e12, 23e12, 23.5e12, 24e12, 24.5e12, 25e12, 25.5e12, 26e12, 26.5e12, 27e12, 27.5e12, 28e12, + 28.5e12, 29e12, 29.5e12, 30e12, 30.5e12, 31e12, 31.5e12, 32e12, 32.5e12, 33e12, 33.5e12, 34e12, 34.5e12, + 35e12, 35.5e12, 36e12, 36.5e12, 37e12, 37.5e12, 38e12, 38.5e12, 39e12, 39.5e12, 40e12, 40.5e12, 41e12, + 41.5e12, 42e12 + ] + } + } + ], "Span":[{ "power_mode":true, "delta_power_range_db": [-2,3,0.5], diff --git a/examples/eqpt_with_raman_config.json b/examples/eqpt_with_raman_config.json deleted file mode 100644 index 581fb630..00000000 --- a/examples/eqpt_with_raman_config.json +++ /dev/null @@ -1,308 +0,0 @@ -{ "Edfa":[{ - "type_variety": "high_detail_model_example", - "type_def": "advanced_model", - "gain_flatmax": 25, - "gain_min": 15, - "p_max": 21, - "advanced_config_from_json": "std_medium_gain_advanced_config.json", - "out_voa_auto": false, - "allowed_for_design": false - }, - { - "type_variety": "Juniper_BoosterHG", - "type_def": "advanced_model", - "gain_flatmax": 25, - "gain_min": 10, - "p_max": 21, - "advanced_config_from_json": "Juniper-BoosterHG.json", - "out_voa_auto": false, - "allowed_for_design": false - }, - { - "type_variety": "operator_model_example", - "type_def": "variable_gain", - "gain_flatmax": 26, - "gain_min": 15, - "p_max": 23, - "nf_min": 6, - "nf_max": 10, - "out_voa_auto": false, - "allowed_for_design": false - }, - { - "type_variety": "low_noise", - "type_def": "openroadm", - "gain_flatmax": 27, - "gain_min": 12, - "p_max": 22, - "nf_coef": [-8.104e-4,-6.221e-2,-5.889e-1,37.62], - "allowed_for_design": false - }, - { - "type_variety": "standard", - "type_def": "openroadm", - "gain_flatmax": 27, - "gain_min": 12, - "p_max": 22, - "nf_coef": [-5.952e-4,-6.250e-2,-1.071,28.99], - "allowed_for_design": false - }, - { - "type_variety": "std_high_gain", - "type_def": "variable_gain", - "gain_flatmax": 35, - "gain_min": 25, - "p_max": 21, - "nf_min": 5.5, - "nf_max": 7, - "out_voa_auto": false, - "allowed_for_design": true - }, - { - "type_variety": "std_medium_gain", - "type_def": "variable_gain", - "gain_flatmax": 26, - "gain_min": 15, - "p_max": 23, - "nf_min": 6, - "nf_max": 10, - "out_voa_auto": false, - "allowed_for_design": true - }, - { - "type_variety": "std_low_gain", - "type_def": "variable_gain", - "gain_flatmax": 16, - "gain_min": 8, - "p_max": 23, - "nf_min": 6.5, - "nf_max": 11, - "out_voa_auto": false, - "allowed_for_design": true - }, - { - "type_variety": "high_power", - "type_def": "variable_gain", - "gain_flatmax": 16, - "gain_min": 8, - "p_max": 25, - "nf_min": 9, - "nf_max": 15, - "out_voa_auto": false, - "allowed_for_design": false - }, - { - "type_variety": "std_fixed_gain", - "type_def": "fixed_gain", - "gain_flatmax": 21, - "gain_min": 20, - "p_max": 21, - "nf0": 5.5, - "allowed_for_design": false - }, - { - "type_variety": "4pumps_raman", - "type_def": "fixed_gain", - "gain_flatmax": 12, - "gain_min": 12, - "p_max": 21, - "nf0": -1, - "allowed_for_design": false - }, - { - "type_variety": "hybrid_4pumps_lowgain", - "type_def": "dual_stage", - "raman": true, - "gain_min": 25, - "preamp_variety": "4pumps_raman", - "booster_variety": "std_low_gain", - "allowed_for_design": true - }, - { - "type_variety": "hybrid_4pumps_mediumgain", - "type_def": "dual_stage", - "raman": true, - "gain_min": 25, - "preamp_variety": "4pumps_raman", - "booster_variety": "std_medium_gain", - "allowed_for_design": true - }, - { - "type_variety": "medium+low_gain", - "type_def": "dual_stage", - "gain_min": 25, - "preamp_variety": "std_medium_gain", - "booster_variety": "std_low_gain", - "allowed_for_design": true - }, - { - "type_variety": "medium+high_power", - "type_def": "dual_stage", - "gain_min": 25, - "preamp_variety": "std_medium_gain", - "booster_variety": "high_power", - "allowed_for_design": false - } - ], - "RamanFiber":[{ - "type_variety": "SSMF", - "dispersion": 1.67e-05, - "gamma": 0.00127, - "raman_efficiency": { - "cr":[ - 0, 9.4E-06, 2.92E-05, 4.88E-05, 6.82E-05, 8.31E-05, 9.4E-05, 0.0001014, 0.0001069, 0.0001119, - 0.0001217, 0.0001268, 0.0001365, 0.000149, 0.000165, 0.000181, 0.0001977, 0.0002192, 0.0002469, - 0.0002749, 0.0002999, 0.0003206, 0.0003405, 0.0003592, 0.000374, 0.0003826, 0.0003841, 0.0003826, - 0.0003802, 0.0003756, 0.0003549, 0.0003795, 0.000344, 0.0002933, 0.0002024, 0.0001158, 8.46E-05, - 7.14E-05, 6.86E-05, 8.5E-05, 8.93E-05, 9.01E-05, 8.15E-05, 6.67E-05, 4.37E-05, 3.28E-05, 2.96E-05, - 2.65E-05, 2.57E-05, 2.81E-05, 3.08E-05, 3.67E-05, 5.85E-05, 6.63E-05, 6.36E-05, 5.5E-05, 4.06E-05, - 2.77E-05, 2.42E-05, 1.87E-05, 1.6E-05, 1.4E-05, 1.13E-05, 1.05E-05, 9.8E-06, 9.8E-06, 1.13E-05, - 1.64E-05, 1.95E-05, 2.38E-05, 2.26E-05, 2.03E-05, 1.48E-05, 1.09E-05, 9.8E-06, 1.05E-05, 1.17E-05, - 1.25E-05, 1.21E-05, 1.09E-05, 9.8E-06, 8.2E-06, 6.6E-06, 4.7E-06, 2.7E-06, 1.9E-06, 1.2E-06, 4E-07, - 2E-07, 1E-07 - ], - "frequency_offset":[ - 0, 0.5e12, 1e12, 1.5e12, 2e12, 2.5e12, 3e12, 3.5e12, 4e12, 4.5e12, 5e12, 5.5e12, 6e12, 6.5e12, 7e12, - 7.5e12, 8e12, 8.5e12, 9e12, 9.5e12, 10e12, 10.5e12, 11e12, 11.5e12, 12e12, 12.5e12, 12.75e12, - 13e12, 13.25e12, 13.5e12, 14e12, 14.5e12, 14.75e12, 15e12, 15.5e12, 16e12, 16.5e12, 17e12, - 17.5e12, 18e12, 18.25e12, 18.5e12, 18.75e12, 19e12, 19.5e12, 20e12, 20.5e12, 21e12, 21.5e12, - 22e12, 22.5e12, 23e12, 23.5e12, 24e12, 24.5e12, 25e12, 25.5e12, 26e12, 26.5e12, 27e12, 27.5e12, 28e12, - 28.5e12, 29e12, 29.5e12, 30e12, 30.5e12, 31e12, 31.5e12, 32e12, 32.5e12, 33e12, 33.5e12, 34e12, 34.5e12, - 35e12, 35.5e12, 36e12, 36.5e12, 37e12, 37.5e12, 38e12, 38.5e12, 39e12, 39.5e12, 40e12, 40.5e12, 41e12, - 41.5e12, 42e12 - ] - } - } - ], - "Fiber":[{ - "type_variety": "SSMF", - "dispersion": 1.67e-05, - "gamma": 0.00127 - }, - { - "type_variety": "NZDF", - "dispersion": 0.5e-05, - "gamma": 0.00146 - }, - { - "type_variety": "LOF", - "dispersion": 2.2e-05, - "gamma": 0.000843 - } - ], - "Span":[{ - "power_mode":true, - "delta_power_range_db": [-2,3,0.5], - "max_fiber_lineic_loss_for_raman": 0.25, - "target_extended_gain": 2.5, - "max_length": 150, - "length_units": "km", - "max_loss": 28, - "padding": 10, - "EOL": 0, - "con_in": 0, - "con_out": 0 - } - ], - "Roadm":[{ - "target_pch_out_db": -20, - "add_drop_osnr": 38, - "restrictions": { - "preamp_variety_list":[], - "booster_variety_list":[] - } - }], - "SI":[{ - "f_min": 191.3e12, - "baud_rate": 32e9, - "f_max":195.1e12, - "spacing": 50e9, - "power_dbm": 0, - "power_range_db": [0,0,1], - "roll_off": 0.15, - "tx_osnr": 40, - "sys_margins": 2 - }], - "Transceiver":[ - { - "type_variety": "vendorA_trx-type1", - "frequency":{ - "min": 191.35e12, - "max": 196.1e12 - }, - "mode":[ - { - - "format": "mode 1", - "baud_rate": 32e9, - "OSNR": 11, - "bit_rate": 100e9, - "roll_off": 0.15, - "tx_osnr": 40, - "min_spacing": 37.5e9, - "cost":1 - }, - { - "format": "mode 2", - "baud_rate": 66e9, - "OSNR": 15, - "bit_rate": 200e9, - "roll_off": 0.15, - "tx_osnr": 40, - "min_spacing": 75e9, - "cost":1 - } - ] - }, - { - "type_variety": "Voyager", - "frequency":{ - "min": 191.35e12, - "max": 196.1e12 - }, - "mode":[ - { - "format": "mode 1", - "baud_rate": 32e9, - "OSNR": 12, - "bit_rate": 100e9, - "roll_off": 0.15, - "tx_osnr": 40, - "min_spacing": 37.5e9, - "cost":1 - }, - { - "format": "mode 3", - "baud_rate": 44e9, - "OSNR": 18, - "bit_rate": 300e9, - "roll_off": 0.15, - "tx_osnr": 40, - "min_spacing": 62.5e9, - "cost":1 - }, - { - "format": "mode 2", - "baud_rate": 66e9, - "OSNR": 21, - "bit_rate": 400e9, - "roll_off": 0.15, - "tx_osnr": 40, - "min_spacing": 75e9, - "cost":1 - }, - { - "format": "mode 4", - "baud_rate": 66e9, - "OSNR": 16, - "bit_rate": 200e9, - "roll_off": 0.15, - "tx_osnr": 40, - "min_spacing": 75e9, - "cost":1 - } - ] - } - ] - -} diff --git a/examples/transmission_with_raman_main_example.py b/examples/transmission_with_raman_main_example.py index ed4357b0..90bdf428 100755 --- a/examples/transmission_with_raman_main_example.py +++ b/examples/transmission_with_raman_main_example.py @@ -118,7 +118,7 @@ def main(network, equipment, source, destination, sim_params, req = None): power_mode = equipment['Span']['default'].power_mode print('\n'.join([f'Power mode is set to {power_mode}', - f'=> it can be modified in eqpt_with_raman_config.json - Span'])) + f'=> it can be modified in eqpt_config.json - Span'])) pref_ch_db = lin2db(req.power*1e3) #reference channel power / span (SL=20dB) pref_total_db = pref_ch_db + lin2db(req.nb_channel) #reference total power / span (SL=20dB) @@ -183,7 +183,7 @@ def main(network, equipment, source, destination, sim_params, req = None): parser = ArgumentParser() parser.add_argument('-e', '--equipment', type=Path, - default=Path(__file__).parent / 'eqpt_with_raman_config.json') + default=Path(__file__).parent / 'eqpt_config.json') parser.add_argument('-sim', '--sim-params', type=Path, default=Path(__file__).parent / 'sim_params.json', help='Path to the json containing simulation parameters') parser.add_argument('-pl', '--plot', action='store_true')