Commit Graph

81 Commits

Author SHA1 Message Date
Jean-Luc Auge
2940576681 Output VOA in EDFA implementation
new field 'out_voa_auto': true/false in eqpt_config json for elligible
amplifiers
if the field is set to true and the power_mode (in
eqpt_config[Spans]) is also set to true, a VOA value is calculated based
on available gain and power margins (EOL) to maximize amplifier gain and
improve its NF

Signed-off-by: Jean-Luc Auge <jeanluc.auge@orange.com>
2018-08-08 17:52:53 +02:00
Jean-Luc Auge
a49c137b78 Improve Select_edfa algorithm
can pick up the best NF amplifier among several amplifiers
sharing the same gain and/or power requirements when these requirements
are not satisfied (used to take the highest gain or the highest power)

Signed-off-by: Jean-Luc Auge <jeanluc.auge@orange.com>
2018-08-08 15:11:59 +02:00
Jean-Luc Auge
1437b6010e Small fixes
code cleanning
	consistency wiht path request
	generator bug fix
	select_edfa readibility enhancement
	set roadm_loss before design in power mode

Signed-off-by: Jean-Luc Auge <jeanluc.auge@orange.com>
2018-08-08 14:24:12 +02:00
Jean-Luc Auge
5fc203482d Amplifier selection with power constraints
amplifier selection in autodesign now takes into account
-required design gain
-required design power
-lowest NF among amplifiers satisfying the requirements

Signed-off-by: Jean-Luc Auge <jeanluc.auge@orange.com>
2018-08-07 17:03:18 +02:00
Jean-Luc Auge
ff6d81b749 Power setting refactor
separate in the code:
	* add egress amplifier
	* vs setting the amplifier parameters
=> prepare improvments in select_edfa and target_power code
regroup all network optimization operations in network.py (remove from
transmission_main)

Signed-off-by: Jean-Luc Auge <jeanluc.auge@orange.com>
2018-08-07 13:39:08 +02:00
Jean-Luc Auge
167e644bd0 Amplifier disable field
* toggle true/false in eqpt_config json file to allow the use of a given amplifier type in automatic design: eqpt_config[Edfa][allowed_for_design] : true/false
* automatic design is picking the best amplifier (gain, NF constraints)
among the available ones: if toggle to false, the type is deemed non
available. Only alternative before this feature was to remove the
amplifier from eqpt_config library.
* if set to false, the amplifier type can still be input in the network
topology file: it will be recongized.

Signed-off-by: Jean-Luc Auge <jeanluc.auge@orange.com>
2018-08-02 12:57:09 +02:00
Jean-Luc Auge
d1c7489768 Automatic design Delta power / span
* automatic design (when amplifiers are missing from network topology
input) finds the optimum power difference between spans
* The range of this optimum power difference is defined in
eqpt_config[Spans][delta_power_range_db] = [min, max, step]

Signed-off-by: Jean-Luc Auge <jeanluc.auge@orange.com>
2018-08-02 12:30:05 +02:00
Jean-Luc Auge
45bdd82864 Add padding support for Fused spans
=>small span padding now looks at the total loss of all spans spliced
together instead of individual span losses
=>the att_in padding attenuator is placed at the input of the 1st span
(the 1st of the serie of spans spliced together with Fused ne)

squashed with the fix to implement att_in attenuation in Fiber.propagate

Signed-off-by: Jean-Luc Auge <jeanluc.auge@orange.com>

intermediate bug fix to be squashed

Signed-off-by: Jean-Luc Auge <jeanluc.auge@orange.com>
2018-08-01 14:44:03 +02:00
Jean-Luc Auge
79c5cb6b78 PADDING of small spans
read [Spans][padding] in eqpt_config json file
    * add input attenuator on all fibers in the network with loss < padding
    * create new Fiber attribute: att_in, which is a fixed attenuator for
    padding purposes
    * define "padding" : 0 in eqpt_config will disable the feature
    effectively

    improve fiber splitting to take into account the padding target in the
    min fiber length and the target length is set accordingly to this min
    length

Signed-off-by: Jean-Luc Auge <jeanluc.auge@orange.com>
2018-08-01 12:15:36 +02:00
Jean-Luc Auge
63ade5fdef Fix bug when splitting fiber in calculated length
Signed-off-by: Jean-Luc Auge <jeanluc.auge@orange.com>
2018-08-01 12:13:08 +02:00
Jean-Luc Auge
853b8c7aa3 Code improvement: catch eqpt errors/remove outdated files
* Fiber or Edfa type_variety in the the network topology that are not
    defined in the eqpt_config json (for example Fiber ELEAF) no longer
    crash the code: instead there is a clear error message and the code exit
    gracioulsy
    * remove outdated network topology json files

Signed-off-by: Jean-Luc Auge <jeanluc.auge@orange.com>
2018-08-01 11:26:51 +02:00
Jean-Luc Auge
0655fb60de read fiber con_in, con_out, EOL & max_length default values
read fiber spans default values from eqpt_config.json[Spans]
	=>if con_in/con_out is None or not defined in params
Rename connector_loss_in/out to con_in/out for consistency
update parser tests to accept the new con_in/out syntax and the new default
values

Signed-off-by: Jean-Luc Auge <jeanluc.auge@orange.com>
2018-08-01 11:24:28 +02:00
Jean-Luc Auge
c6432e2c28 restore power management in transmission main
Signed-off-by: Jean-Luc Auge <jeanluc.auge@orange.com>
2018-07-13 18:15:21 +02:00
Jean-Luc Auge
53bedca50a parametrize and format power mode
Signed-off-by: Jean-Luc Auge <jeanluc.auge@orange.com>
2018-07-05 17:07:59 +02:00
Jean-Luc Auge
c86ea206d9 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>
2018-07-05 12:50:48 +02:00
Jean-Luc Auge
b810cf84c2 Power mode implementation
Signed-off-by: Jean-Luc Auge <jeanluc.auge@orange.com>
2018-07-05 12:50:23 +02:00
Jean-Luc Auge
4f5325acac small fixes
Signed-off-by: Jean-Luc Auge <jeanluc.auge@orange.com>
2018-06-21 16:14:25 +02:00
Jean-Luc Auge
25cfc375bc Amplifier selection
network design when no amplifiers are input in the json file
select_edfa chose the best amplifier in equipment list _from
eqpt_config.json_ wiht the following criteria in order:
1-amplifier wih sufficient gain
2-amplifier wiht sufficient power TODO
3-best NF amplifier staisfying 1 & 2

Signed-off-by: Jean-Luc Auge <jeanluc.auge@orange.com>
2018-06-07 11:39:09 +02:00
James Powell
f05e578f51 small fixes 2018-06-05 09:46:48 -04:00
Jean-Luc Auge
726e217205 merge debug
Signed-off-by: Jean-Luc Auge <jeanluc.auge@orange.com>
2018-05-24 16:06:15 +02:00
James Powell
695c538ee5 merge of major refactor
cherry pick of the major refactor commit
many conflicts resolved and code re-written
2018-05-24 12:35:39 +02:00
Jean-Luc Auge
0b1c7bfa30 Merge branch 'fused_spans-fixes' of https://github.com/dutc/gnpy into dutc-fused_spans
Signed-off-by: Jean-Luc Auge <jeanluc.auge@orange.com>
2018-04-27 12:17:41 +02:00
Jean-Luc Auge
80f8a345b5 Sanity checks and small code fix
xls convert:
	 sanity check Nodes vs Links sheets
	 column parsing limitation so user can add non code related
fields/information
code fix and eqpt_exists to check if an equipment is defined in the eqpt_config.json library

Signed-off-by: Jean-Luc Auge <jeanluc.auge@orange.com>
2018-04-27 11:36:25 +02:00
James Powell
14938ea7dd small fixes 2018-04-25 02:42:08 -04:00
Jean-Luc Auge
be0c052e5e source/destination nodes suggestion
fix bug in Fused span: adding ingress and egress directions
=> do not share the same NE between 2 directions

Signed-off-by: Jean-Luc Auge <jeanluc.auge@orange.com>
2018-04-24 15:16:20 +02:00
Jean-Luc Auge
af90a6658e Fused spans class and edfa gain adaptation
*new Fused spans class to support the connection between 2 fibers
without amplification
*add_egress_amplifier adjust the edfa gain to compensate the loss
of n fused spans
*eqpt not found in eqpt library is caught and stop the code

Signed-off-by: Jean-Luc Auge <jeanluc.auge@orange.com>

code fix for the eqpt sheet reading in xls parser

Signed-off-by: Jean-Luc Auge <jeanluc.auge@orange.com>

amplifier design and eqpt parser code fix

Signed-off-by: Jean-Luc Auge <jeanluc.auge@orange.com>
2018-04-24 15:15:59 +02:00
Jean-Luc Auge
d2724bb1a5 Code improvement in convert.py
improve code reading and clarity of topology parser:
*modify the connections binding
=>def fiber_dest_from_source to find all dest_city connected to a source_city
=>def fiber_link to return the fiber link from source_city to dest_city
*makes the parser algorithm more understandable
*prepare for the equipment parser

Signed-off-by: Jean-Luc Auge <jeanluc.auge@orange.com>
2018-04-22 19:06:35 -04:00
Jean-Luc Auge
8d6f69eb05 Equipment library implementation
-read eqpt_config.json with various EDFA and fiber type definitions
-std low gain and medium gain EDFA available
-clearer differentiation between the 2 edfa models:
	is the advanced_config_from_json field present or not?

Signed-off-by: Jean-Luc Auge <jeanluc.auge@orange.com>
2018-04-22 19:06:35 -04:00
James Powell
a6265c1b8d document modules 2018-03-20 21:32:02 -04:00
Jean-Luc Augé
2461385a94 add Roadm, coronet_conus support and amplifier pytests (#35)
* Add EDFA unitary pytests

check nf calculation, nf models comparison, ase noise profile
elements.py edfa _gain_profile: add div 0 checks when no ripple

Signed-off-by: Jean-Luc Auge <jeanluc.auge@orange.com>

* support of coronet.conus network and add class __repr__

adaptation of convert.py to new code json formating
add_egress_amplifier, split_fiber and calculate_new_length
subs in network.py
elements.py:
code cleaning
adding new attributes in Edfa class (pin_db, pout_db...)
adding or augmenting class __repr__

Signed-off-by: Jean-Luc Auge <jeanluc.auge@orange.com>

* augment amplifier unitary tests and code cleaning

add new tests in amplifier_test.py for pytest
Edfa class code cleaning in elements.py
recheck code coherence and results

Signed-off-by: Jean-Luc Auge <jeanluc.auge@orange.com>

* ROADM support in network.py, convert.py, coronet json, ROADM class

creation of a ROADM class with 20dB loss
convert.py json parser modification to include roadms
network.py modification to automate amplifier placing after roadm
elements.py inclusion of Roadm class

Signed-off-by: Jean-Luc Auge <jeanluc.auge@orange.com>
2018-03-12 14:43:58 -04:00
Gilad Goldfarb
a7d3c00e5b setup.py for package (#21) 2018-01-30 11:49:59 -05:00