Skip to content

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,
) -> dict

Convert 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 DD ps/(nm km) s/μm², times 1e-18 slope SS ps/(nm² km) s/μm³, times 1e-15 ======================== ========================== ======================

Also returns the derived quantities a span calculation actually needs: β2=−λ2D/2πc\beta_2 = -\lambda^2 D/2\pi c, and the nonlinear coefficient γ=2πn2/λAeff\gamma = 2\pi n_2/\lambda A_{\rm eff}.

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 DD, in ps/(nm km). Positive is anomalous, the usual sign for standard fibre above 1310 nm.
  • dispersion_slope: dD/dλ{\rm d}D/{\rm d}\lambda, in ps/(nm² km).
  • effective_area: Nonlinear effective area, in μm².
  • kerr_index: n2n_2, 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.