Skip to content

abstract.fiber

fiber(
*,
length_km: Annotated[float, exclusiveMinimum=0, units='km'] = 80.0,
sections: Annotated[int, exclusiveMinimum=0] | None = None,
peak_power: Annotated[float, minimum=0, units='W'] = 0.0,
max_phase: Annotated[float, exclusiveMinimum=0] = 0.15,
fir_taps: Annotated[int, exclusiveMinimum=0] | None = None,
power_points: Annotated[int, exclusiveMinimum=0] = 400,
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,
dual_polarization: bool = False,
) -> photonforge.Component

A fiber, as one element stepped in one or more sections.

sections decides how many. A single section applies all the nonlinear phase and then all the dispersion, the lumped approximation, which is only right when the nonlinear phase is negligible. More sections interleave the two, a split-step scheme whose dispersion is split symmetrically around the nonlinear steps (see AnalyticWaveguideTimeStepper). sections=None chooses the count from the launch power, so a linear fiber stays a single section.

Args

  • length_km: Total fiber length.
  • sections: Number of sections. If None, chosen by fiber.section_count.
  • peak_power: Largest power the Kerr table has to cover, typically the launch peak power. Zero switches the Kerr effect off and leaves a linear fiber.
  • max_phase: Target nonlinear phase per section, in radians, used only when sections is None.
  • fir_taps: Length of each dispersion step’s filter. If None, the stepper sizes it at setup, once the time step is known; fiber.filter_taps computes the same number for one section.
  • power_points: Samples in the Kerr power table.
  • n_eff: Effective index, which sets only the constant propagation phase. See the note below; the default of 0 is deliberate.
  • wavelength: Operating wavelength.
  • attenuation: Power attenuation.
  • dispersion: DD.
  • dispersion_slope: SS.
  • effective_area: Nonlinear effective area.
  • kerr_index: n2n_2.
  • dual_polarization: Carry both polarizations, as two modes per port. Loss and dispersion act on each alike, and the Kerr effect follows their total power with n2n_2 scaled by 8/9, the Manakov average over the fiber’s random birefringence. Cascade with pmd_fiber for polarization-mode dispersion.

Note

The time stepper runs in the pulse frame with n_group 0. n_eff adds only a the constant phase.

Returns

Two-port component with model.