Skip to content

fiber.section_count

section_count(
length_km: Annotated[float, exclusiveMinimum=0],
peak_power: Annotated[float, minimum=0],
*,
max_phase: Annotated[float, exclusiveMinimum=0] = 0.15,
minimum: Annotated[int, exclusiveMinimum=0] = 1,
**fiber: object,
) -> int

Sections needed to keep the nonlinear phase per section below a limit.

Split-step error is governed by the phase applied in one lumped step, so the count follows from γPL/N<ϕmax⁡\gamma P L / N < \phi_{\max}. It uses the launch power rather than the average, which is conservative: loss means later sections carry less phase than the first.

Returns 1 when the launch power is zero, since a linear span needs no splitting at all for the nonlinearity, though dispersion still wants enough sections if it is interleaved with anything.

Args

  • length_km: Span length, in km.
  • peak_power: Launch peak power, in W.
  • max_phase: Largest nonlinear phase per section, in radians. 0.15 keeps the split step at least as accurate as the earlier first-order scheme at 0.05, the usual working value for it.
  • minimum: Floor on the returned count.
  • fiber: Passed to fiber_parameters.

Returns

Number of sections.