fiber¶
- photonforge.abstract.fiber(*, length_km=80.0, sections=None, peak_power=0.0, max_phase=0.05, fir_taps=None, power_points=400, n_eff=0.0, wavelength=.55, attenuation=0.2, dispersion=7.0, dispersion_slope=056, effective_area=.0, kerr_index=.6e-20)[source]¶
A fiber, as one lumped element or a split-step chain of them.
sectionsdecides which. 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. Chaining N sections and letting the circuit drive them interleaves the two, which is a split-step scheme.sections=Nonechooses the count from the launch power, so a linear fiber stays a single element.- Parameters:
length_km (Annotated[float, exclusiveMinimum=0, units='km']) – Total fiber length.
sections (Annotated[int, exclusiveMinimum=0] | None) – Number of sections. If
None, chosen byphotonforge.fiber.section_count().peak_power (Annotated[float, minimum=0, units='W']) – 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 (Annotated[float, exclusiveMinimum=0]) – Target nonlinear phase per section, in radians, used only when
sectionsisNone.fir_taps (Annotated[int, exclusiveMinimum=0] | None) – Length of each section’s dispersion filter. If
None, each section’s stepper sizes its own at setup, once the time step is known;photonforge.fiber.filter_taps()computes the same number.power_points (Annotated[int, exclusiveMinimum=0]) – Samples in the Kerr power table.
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.
attenuation (Annotated[float, minimum=0, units='dB/km']) – Power attenuation.
dispersion (Annotated[float, units='ps/(nm·km)']) – \(D\).
dispersion_slope (Annotated[float, units='ps/(nm²·km)']) – \(S\).
effective_area (Annotated[float, exclusiveMinimum=0, units='μm²']) – Nonlinear effective area.
kerr_index (Annotated[float, units='m²/W']) – \(n_2\).
- Return type:
Note
The time stepper runs in the pulse frame with
n_group0.n_effadds only a the constant phase.- Returns:
Two-port component with model.
- Parameters:
length_km (Annotated[float, exclusiveMinimum=0, units='km'])
sections (Annotated[int, exclusiveMinimum=0] | None)
peak_power (Annotated[float, minimum=0, units='W'])
max_phase (Annotated[float, exclusiveMinimum=0])
fir_taps (Annotated[int, exclusiveMinimum=0] | None)
power_points (Annotated[int, exclusiveMinimum=0])
n_eff (float)
wavelength (Annotated[float, exclusiveMinimum=0, units='μm'])
attenuation (Annotated[float, minimum=0, units='dB/km'])
dispersion (Annotated[float, units='ps/(nm·km)'])
dispersion_slope (Annotated[float, units='ps/(nm²·km)'])
effective_area (Annotated[float, exclusiveMinimum=0, units='μm²'])
kerr_index (Annotated[float, units='m²/W'])
- Return type: