section_count

photonforge.fiber.section_count(length_km, peak_power, *, max_phase=0.05, minimum=1, **fiber)[source]

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 \(\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.

Parameters:
  • length_km (Annotated[float, exclusiveMinimum=0]) – Span length, in km.

  • peak_power (Annotated[float, minimum=0]) – Launch peak power, in W.

  • max_phase (Annotated[float, exclusiveMinimum=0]) – Largest nonlinear phase per section, in radians. 0.05 is a common working value.

  • minimum (Annotated[int, exclusiveMinimum=0]) – Floor on the returned count.

  • fiber (object) – Passed to fiber_parameters().

Returns:

Number of sections.

Return type:

int