fiber_parameters

photonforge.fiber.fiber_parameters(*, n_eff=0.0, wavelength=.55, attenuation=0.2, dispersion=7.0, dispersion_slope=056, effective_area=.0, kerr_index=.6e-20)[source]

Convert a fibre datasheet into PhotonForge units.

The conversions, spelled out because each one is a place to lose a factor of \(10^6\):

quantity

datasheet

PhotonForge

attenuation

dB/km

dB/μm, divide by 1e9

dispersion \(D\)

ps/(nm km)

s/μm², times 1e-18

slope \(S\)

ps/(nm² km)

s/μm³, times 1e-15

Also returns the derived quantities a span calculation actually needs: \(\beta_2 = -\lambda^2 D/2\pi c\), and the nonlinear coefficient \(\gamma = 2\pi n_2/\lambda A_{\rm eff}\).

Parameters:
  • n_eff (float) – Effective index, which sets only the constant propagation phase. See the note below; the default of 0 is deliberate.

  • wavelength (Annotated[float, exclusiveMinimum=0, units='μm']) – Operating wavelength, in μm.

  • attenuation (Annotated[float, minimum=0, units='dB/km']) – Power attenuation, in dB/km.

  • dispersion (Annotated[float, units='ps/(nm·km)']) – Dispersion parameter \(D\), in ps/(nm km). Positive is anomalous, the usual sign for standard fibre above 1310 nm.

  • dispersion_slope (Annotated[float, units='ps/(nm²·km)']) – \({\rm d}D/{\rm d}\lambda\), in ps/(nm² km).

  • effective_area (Annotated[float, exclusiveMinimum=0, units='μm²']) – Nonlinear effective area, in μm².

  • kerr_index (Annotated[float, units='m²/W']) – \(n_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.

Return type:

dict