fiber.fiber_parameters
fiber_parameters( *, n_eff: float = 0.0, wavelength: Annotated[float, exclusiveMinimum=0, units='μm'] = 1.55, attenuation: Annotated[float, minimum=0, units='dB/km'] = 0.2, dispersion: Annotated[float, units='ps/(nm·km)'] = 17.0, dispersion_slope: Annotated[float, units='ps/(nm²·km)'] = 0.056, effective_area: Annotated[ float, exclusiveMinimum=0, units='μm²' ] = 80.0, kerr_index: Annotated[float, units='m²/W'] = 2.6e-20,) -> dictConvert a fibre datasheet into PhotonForge units.
The conversions, spelled out because each one is a place to lose a factor of 10⁶:
======================== ========================== ====================== quantity datasheet PhotonForge ======================== ========================== ====================== attenuation dB/km dB/μm, divide by 1e9 dispersion ps/(nm km) s/μm², times 1e-18 slope ps/(nm² km) s/μm³, times 1e-15 ======================== ========================== ======================
Also returns the derived quantities a span calculation actually needs: , and the nonlinear coefficient .
Args
- n_eff: Effective index, which sets only the constant propagation phase. See the note below; the default of 0 is deliberate.
- wavelength: Operating wavelength, in μm.
- attenuation: Power attenuation, in dB/km.
- dispersion: Dispersion parameter , in ps/(nm km). Positive is anomalous, the usual sign for standard fibre above 1310 nm.
- dispersion_slope: , in ps/(nm² km).
- effective_area: Nonlinear effective area, in μm².
- kerr_index: , in m^2/W.
Returns
Dict with keys propagation_loss, dispersion,
dispersion_slope and reference_frequency ready to splat into the
stepper, plus beta2 (s^2/m), gamma (1/W/m), alpha (1/m) and
wavelength.