Advanced amp model .dgt vector reversal
cgkelly opened this issue · 10 comments
The example .dgt vector in the Juniper std_medium_gain_advanced_config.json file appears to be reversed.
The documentation on how to use is sparse, and the code does not appear to account for the possible
optimization of the amp design for minimum ripple at a tilt value other than zero.
-
Current Usage: The .dgt vector appears to define the gain ripple as a function of tilt:
Ripple = .dgt x tilt. To accommodate amplifiers that are designed for minimum ripple at a non zero tilt,
this should be modified to ripple = .dgt x (tilt-flat gain tilt). -
The sign convention for amplifier tilt needs to be defined/documented. My assumption is fiber tilt due to SRS is positive (lower loss or positive "gain" at higher wavelengths, thus, to counteract this, amplifiers require a negative tilt).
-
In trying to understand how to use the .dgt vector, it became apparent that the example vector is reversed.
The attached slides illustrate this, and also help clarify how this vector is derived and its usage.
It also suggests that if unknown, a default set of vector coefficients can be derived, as the expected shape from
simple fixed gain C band EDFA simulations match the (reversed) Juniper .dgt vector quite well, once any intrinsic
tilt within the .dgt vector itself is removed.
@cgkelly, I believe your suspicion is correct that the dgt vector in std_medium_gain_advanced_config.json (the Juniper-BoosterHG.json file seems to have the same problem) was originally given vs. wavelength. The dgt implementation was based on a proposal from Ciena and their original slides had a figure with DGT vs. wavelength. For reference, the first implementation (at least that I could find) is here:
About gain tilt when operating in the extended gain regime, it was discussed here:
@ggrammel, about the dgt values (and gain_ripple) in Juniper-BoosterHG.json, do you know for what frequencies they were measured and specifically whether they are given in increasing or decreasing frequency order?
(This file also has another problem: there are 48 dgt values, which I guess were measured on a 100 GHz grid. But still it specifies "f_min": 191.35e12
, which means the frequency values used for interpolation in interpol_params
in elements.py will be slightly offset.)
Just to clarify, even though this issue is titled "Advanced amp model ..." and refers to std_medium_gain_advanced_config.json, the same dgt values are used in default_edfa_config.json, which is used by all other amplifiers models. This means all amplifiers will have wrong gain vs. frequency values whenever a non-zero tilt_target is specified.
@ojnas attached the input data for the HGAmp. Note that the input data was measured in steps of 100GHz, while the converter script required 50GHz steps
Archive.zip
@cgkelly, all, I have pushed three commits to gerrit which address some of the issues:
https://review.gerrithub.io/c/Telecominfraproject/oopt-gnpy/+/514993
https://review.gerrithub.io/c/Telecominfraproject/oopt-gnpy/+/514994
https://review.gerrithub.io/c/Telecominfraproject/oopt-gnpy/+/514995
Please have a look if the changes make sense and let's continue discussing the other remaining issues.
@cgkelly, I'm thinking about implementing your suggestion to accommodate amplifiers designed for minimum ripple at non-zero tilt. This would require an additional amplifier parameter in the equipment input file defining this non-zero tilt value. Is there a commonly accepted name for this parameter (I think I've heard pre-tilt and built-in tilt)? Also, do you think the tilt_target defined in the topology input file should be an offset from this non-zero tilt or should it be the actual total tilt?