directional_coupler¶
- photonforge.abstract.directional_coupler(*, coupling_ratio=0.5, propagation_length=0.0, cross_phase=-90.0, insertion_loss=0.0, isolation=0.0, reflection=0.0, n_eff=2.4, n_group=None, reference_frequency=C_0 / 1.55)[source]¶
Abstract directional coupler.
Based on
photonforge.DirectionalCouplerModel. The transmission and cross-port amplitudes are derived from the coupling ratio and insertion loss:\[ \begin{align}\begin{aligned}t &= a \sqrt{1 - \kappa}\\c &= a \sqrt{\kappa}\, e^{j\theta}\end{aligned}\end{align} \]in which
a = 10^(-IL/20)andILis the insertion loss.- Parameters:
coupling_ratio (Annotated[float, maximum=1, minimum=0]) – Fraction of input power coupled to the cross port.
propagation_length (Annotated[float, minimum=0, units='μm']) – Extra physical length contributing to phase delay.
cross_phase (Annotated[float, units='°']) – Relative phase on the cross port.
insertion_loss (Annotated[float, minimum=0, units='dB']) – Total excess loss, including reflection and isolation contributions.
isolation (complex) – Complex leakage amplitude to the isolated port.
reflection (complex) – Complex reflection amplitude back into the input ports.
n_eff (complex) – Effective index used for phase accumulation.
n_group (float | None) – Group index. If
None, the value ofn_effis used.reference_frequency (Annotated[float, minimum=0, units='Hz']) – Reference frequency for dispersion.
- Return type: