optical_pulse¶
- photonforge.abstract.optical_pulse(*, energy=1e-12, width=50e-12, offset=None, repetition_rate=0, phase=0, chirp=0, order=1, frequency=None, rel_intensity_noise=0, linewidth=0, jitter=0, prbs=0, reflection=0, seed=None)[source]¶
Abstract optical pulse source.
Based on
photonforge.OpticalPulseTimeStepper.- Parameters:
energy (Annotated[float, minimum=0, units='J']) – Total pulse energy.
width (Annotated[float, minimum=0, units='s']) – Full-width at half-maximum (FWHM) of the pulse intensity.
offset (Annotated[float, minimum=0, units='s'] | None) – Time shift for the center of the first pulse. If
None, a value is chosen automatically.repetition_rate (Annotated[float, minimum=0, units='Hz']) – If positive, generates a periodic train of pulses at this rate.
phase (Annotated[float, units='°'] | Sequence[Annotated[float, units='°']]) – Phase shift applied to the pulse. A sequence of values can be used to define the phase of each pulse in a periodic train. The sequence is wrapped around if necessary.
chirp (Annotated[float, units='°']) – Chirp parameter for adding quadratic phase across the pulse.
order (Annotated[float, minimum=1]) – Order of the super-Gaussian pulse.
frequency (Annotated[float, minimum=0, units='Hz'] | None) – Absolute laser frequency. If
None, equals the carrier frequency. If detuned from the carrier by Δf, the output envelope rotates at 2πΔf.rel_intensity_noise (Annotated[float, minimum=0, units='1/Hz']) – One-sided relative intensity noise (RIN) power spectral density.
linewidth (Annotated[float, minimum=0, units='Hz']) – Full-width at half-maximum (FWHM) of the laser’s Lorentzian shape.
jitter (Annotated[float, minimum=0, units='s']) – RMS clock jitter for pulse trains.
prbs (Literal[0, 7, 15, 31]) – PRBS polynomial degree. Value 0 disables PRBS.
reflection (complex) – Reflection coefficient for incident fields.
seed (Annotated[int, minimum=0] | None) – Random number generator seed to ensure reproducibility.
- Return type: