1919~~~~
2020
2121The EDFA equipment library is a list of supported amplifiers. New amplifiers
22- can be added and existing ones removed. Three different noise models are available:
22+ can be added and existing ones removed. Various noise models are available.
2323
24241. ``'type_def': 'variable_gain' `` is a simplified model simulating a 2-coil EDFA with internal, input and output VOAs.
2525 The NF vs gain response is calculated accordingly based on the input parameters: ``nf_min ``, ``nf_max ``, and ``gain_flatmax ``.
@@ -35,8 +35,12 @@ can be added and existing ones removed. Three different noise models are availab
3535 A detailed JSON configuration file is required (by default `gnpy/example-data/std_medium_gain_advanced_config.json <https://github.com/Telecominfraproject/oopt-gnpy/blob/master/gnpy/example-data/std_medium_gain_advanced_config.json >`_).
3636 It uses a 3rd order polynomial where NF = f(gain), NF_ripple = f(frequency), gain_ripple = f(frequency), N-array dgt = f(frequency).
3737 Compared to the previous models, NF ripple and gain ripple are modelled.
38+ 6. ``'type_def': 'multi_band' `` defines an amplifier type corresponding to an amplification site composed of multiple amplifier elements, where each amplifies a different band of the spectrum.
39+ The ``amplifiers `` list contains the list of single-band amplifier type varieties that can compose such multiband
40+ amplifiers. Several options can be listed for the same spectrum band. Only one can be selected
41+ for the actual :ref: `Multiband_amplifier<multiband_amps> ` element.
3842
39- For all amplifier models:
43+ For all single band amplifier models:
4044
4145+------------------------+-----------+-----------------------------------------+
4246| field | type | description |
@@ -55,6 +59,30 @@ For all amplifier models:
5559| | | be used as a manual input (from JSON or |
5660| | | Excel template topology files.) |
5761+------------------------+-----------+-----------------------------------------+
62+ | ``f_min `` | (number) | Optional. In :math: `Hz`. Minimum and |
63+ | and ``f_max `` | | maximum frequency range for the |
64+ | | | amplifier. Signal must fit entirely |
65+ | | | within this range (center frequency and |
66+ | | | spectrum width). |
67+ | | | Default is 191.275e-12 Hz and |
68+ | | | 196.125e-12 (tunable in |
69+ | | | default_edfa_config.json) |
70+ +------------------------+-----------+-----------------------------------------+
71+
72+
73+ For multi_band amplifier models:
74+
75+ +------------------------+-----------+-----------------------------------------+
76+ | field | type | description |
77+ +========================+===========+=========================================+
78+ | ``type_variety `` | (string) | A unique name to ID the amplifier in the|
79+ | | | JSON template topology input file. |
80+ +------------------------+-----------+-----------------------------------------+
81+ | ``allowed_for_design `` | (boolean) | If false, the amplifier will not be |
82+ | | | picked by auto-design but it can still |
83+ | | | be used as a manual input (from JSON or |
84+ | | | Excel template topology files.) |
85+ +------------------------+-----------+-----------------------------------------+
5886
5987Fiber
6088~~~~~
@@ -447,14 +475,14 @@ Here is an example:
447475 "uid" : " roadm SITE1" ,
448476 "type" : " Roadm" ,
449477 "type_variety" : " detailed_impairments" ,
450- "params" : {
451- "per_degree_impairments" : [
452- {
453- "from_degree" : " trx SITE1" ,
454- "to_degree" : " east edfa in SITE1 to ILA1" ,
455- "impairment_id" : 1
456- }]
457- }
478+ "params" : {
479+ "per_degree_impairments" : [
480+ {
481+ "from_degree" : " trx SITE1" ,
482+ "to_degree" : " east edfa in SITE1 to ILA1" ,
483+ "impairment_id" : 1
484+ }]
485+ }
458486 }
459487
460488 It is not permitted to use a roadm-path-impairment-id for the wrong roadm path type (add impairment only for add path).
@@ -751,6 +779,10 @@ In the simplest case, homogeneous channel allocation can be defined via the ``Sp
751779+----------------------+-----------+-------------------------------------------+
752780| field | type | description |
753781+======================+===========+===========================================+
782+ | ``type_variety `` | (string) | Optional. Default: ``default `` |
783+ | | | A unique name to ID the band for |
784+ | | | propagation or design. |
785+ +----------------------+-----------+-------------------------------------------+
754786| ``f_min ``, | (number) | In Hz. Define spectrum boundaries. Note |
755787| ``f_max `` | | that due to backward compatibility, the |
756788| | | first channel central frequency is placed |
@@ -817,6 +849,13 @@ In the simplest case, homogeneous channel allocation can be defined via the ``Sp
817849| | | transceiver OSNR. |
818850+----------------------+-----------+-------------------------------------------+
819851
852+ It is possible to define a set of bands in the SI block. In this case, type_variety must be used.
853+ Each set defines a reference channel used for design functions and autodesign processes.
854+
855+ If no spectrum is defined (--spectrum or --services), then the same type of reference channel is
856+ also used for simulation.
857+
858+
820859.. _mixed-rate :
821860
822861Arbitrary channel definition
@@ -867,7 +906,7 @@ For example this example:
867906.. code-block :: json
868907
869908 {
870- "SI " :[
909+ "spectrum " :[
871910 {
872911 "f_min" : 191.4e12 ,
873912 "f_max" :193.1e12 ,
@@ -878,7 +917,7 @@ For example this example:
878917 },
879918 {
880919 "f_min" : 193.1625e12 ,
881- "f_max" :195e12 ,
920+ "f_max" : 195e12 ,
882921 "baud_rate" : 64e9 ,
883922 "delta_pdb" : 3 ,
884923 "slot_width" : 75e9 ,
@@ -1124,6 +1163,8 @@ the maximum achievable total power.
11241163
11251164The exact layout used by simulation can be retrieved thanks to --save-network option.
11261165
1166+ .. _operational_field :
1167+
11271168+----------------------+-----------+--------------------------------------------------+
11281169| field | type | description |
11291170+======================+===========+==================================================+
@@ -1179,6 +1220,63 @@ The exact layout used by simulation can be retrieved thanks to --save-network op
11791220 }
11801221 }
11811222
1223+ .. _multiband_amps :
1224+
1225+ Multiband_amplifier attributes
1226+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
1227+
1228+ +----------------------+-----------+--------------------------------------------------+
1229+ | field | type | description |
1230+ +======================+===========+==================================================+
1231+ | ``type `` | (string) | Mandatory: ``Multiband_amplifier `` |
1232+ +----------------------+-----------+--------------------------------------------------+
1233+ | ``type_variety `` | (string) | Optional, value must be listed in the library |
1234+ | | | to be a valid type. If not defined, autodesign |
1235+ | | | will pick one in the library among the |
1236+ | | | ``allowed_for_design ``. |
1237+ +----------------------+-----------+--------------------------------------------------+
1238+ | ``amplifiers `` | (list of | Optional, configuration settings of the |
1239+ | | dict) | amplifiers composing the multiband amplifier. |
1240+ | | | Single band amplifier can be set with the |
1241+ | | | parameters of tables: |
1242+ | | | :ref: `operational_field<operational_field> `: |
1243+ +----------------------+-----------+--------------------------------------------------+
1244+
1245+ Example of Multiband_amplifier element setting:
1246+
1247+ .. code-block :: json
1248+
1249+ {
1250+ "uid" : " east edfa in Site_A to Site_B" ,
1251+ "type" : " Multiband_amplifier" ,
1252+ "type_variety" : " std_medium_gain_multiband" ,
1253+ "amplifiers" : [{
1254+ "type_variety" : " std_medium_gain_C" ,
1255+ "operational" : {
1256+ "gain_target" : 22.55 ,
1257+ "delta_p" : 0.9 ,
1258+ "out_voa" : 3.0 ,
1259+ "tilt_target" : 0.0
1260+ }
1261+ }, {
1262+ "type_variety" : " std_medium_gain_L" ,
1263+ "operational" : {
1264+ "gain_target" : 21 ,
1265+ "delta_p" : 3.0 ,
1266+ "out_voa" : 3.0 ,
1267+ "tilt_target" : 0.0
1268+ }
1269+ }
1270+ ]
1271+ }
1272+
1273+ The frequency band of the element is the concatenation of the bands of each individual amplifier contained in
1274+ the Multiband_amplifier element. Only carriers within these bands are propagated through the Multiband_amplifier
1275+ element. If the user defines a spectrum larger than these bands, carriers that do not match the bands will be
1276+ filtered out. The user can define the bandwidth of the amplifiers in the library. f_min and f_max represent the
1277+ bandwidth of the amplifier (the entire channel must fit). The individual amplifier type_variety must be part of the
1278+ allowed ``amplifiers `` list defined in the library.
1279+
11821280Roadm
11831281~~~~~
11841282
@@ -1210,32 +1308,69 @@ Roadm
12101308| | dict) | defined, it overrides the general values defined |
12111309| | | by type_variety. |
12121310+----------------------------------------+-----------+----------------------------------------------------+
1311+ | ``design_bands `` | (list of | Optional. List of bands expressed as dictionnary, |
1312+ | | dict) | e.g. {"f_min": 191.3e12, "f_max": 195.1e12} |
1313+ | | | To be considered for autodesign on all degrees of |
1314+ | | | the ROADM, if nothing is defined on the degrees. |
1315+ +----------------------------------------+-----------+----------------------------------------------------+
1316+ | ``per_degree_design_bands `` | (dict of | Optional. If defined, it overrides ROADM's general |
1317+ | | string, | design_bands, on the degree identified with the |
1318+ | | list of | key string. Value is a list of bands defined by |
1319+ | | dict) | their frequency bounds ``f_min `` and ``f_max `` |
1320+ | | | expressed in THz. |
1321+ +----------------------------------------+-----------+----------------------------------------------------+
1322+
12131323
12141324Definition example:
12151325
1216- .. code-block :: json
1326+ .. code-block :: json
12171327
12181328 {
12191329 "uid" : " roadm SITE1" ,
12201330 "type" : " Roadm" ,
12211331 "type_variety" : " detailed_impairments" ,
1222- "params" : {
1223- "per_degree_impairments" : [
1224- {
1225- "from_degree" : " trx SITE1" ,
1226- "to_degree" : " east edfa in SITE1 to ILA1" ,
1227- "impairment_id" : 1
1228- }],
1229- "per_degree_pch_out_db" : {
1332+ "params" : {
1333+ "per_degree_impairments" : [
1334+ {
1335+ "from_degree" : " trx SITE1" ,
1336+ "to_degree" : " east edfa in SITE1 to ILA1" ,
1337+ "impairment_id" : 1
1338+ }],
1339+ "per_degree_pch_out_db" : {
12301340 "east edfa in SITE1 to ILA1" : -13.5
1231- }
1232- }
1341+ }
1342+ }
12331343 }
12341344
12351345 In this example, all «implicit» express roadm-path are assigned as roadm-path-impairment-id = 0, and the target power is
12361346set according to the value defined in the library except for the direction heading to "east edfa in SITE1 to ILA1", where
12371347constant power equalization is used to reach -13.5 dBm target power.
12381348
1349+ .. code-block :: json
1350+
1351+ {
1352+ "uid" : " roadm SITE1" ,
1353+ "type" : " Roadm" ,
1354+ "params" : {
1355+ "per_degree_design_bands" : {
1356+ "east edfa in SITE1 to ILA1" : [
1357+ {"f_min" : 191.3e12 , "f_max" : 196.0e12 },
1358+ {"f_min" : 187.0e12 , "f_max" : 190.0e12 }
1359+ ]
1360+ }
1361+ }
1362+ }
1363+
1364+ In this example the OMS starting from east edfa in SITE1 to ILA1 is defined as a multiband OMS. This means that
1365+ if there is no setting in all or some of the amplifiers in the OMS, the autodesign function will select amplifiers
1366+ from those that have ``multi_band `` ``type_def `` amplifiers.
1367+
1368+ The default ``design_bands `` is inferred from the :ref: `SI<spectral_info> ` block.
1369+
1370+ Note that ``design_bands `` and ``type_variety `` amplifiers must be consistent:
1371+ - you cannot mix single band and multiband amplifiers on the same OMS;
1372+ - the frequency range of the amplifiers must include ``design_bands ``.
1373+
12391374Fused
12401375~~~~~
12411376
@@ -1245,7 +1380,7 @@ A fused element connected to the egress of a ROADM will disable the automatic bo
12451380
12461381Fused ``params `` only contains a ``loss `` value in dB.
12471382
1248- .. code-block :: json
1383+ .. code-block :: json
12491384
12501385 "params" : {
12511386 "loss" : 2
0 commit comments