Skip to content

abstract.directional_coupler

directional_coupler(
*,
coupling_ratio: Annotated[float, maximum=1, minimum=0] = 0.5,
propagation_length: Annotated[float, minimum=0, units='μm'] = 0.0,
cross_phase: Annotated[float, units='°'] = -90.0,
insertion_loss: Annotated[float, minimum=0, units='dB'] = 0.0,
isolation: complex = 0.0,
reflection: complex = 0.0,
n_eff: complex = 2.4,
n_group: float | None = None,
reference_frequency: Annotated[
float, minimum=0, units='Hz'
] = 193414489032258.06,
) -> photonforge.Component

Abstract directional coupler.

Based on DirectionalCouplerModel. The transmission and cross-port amplitudes are derived from the coupling ratio and insertion loss:

t=a1−κc=aκ ejθ\begin{aligned} t &= a \sqrt{1 - \kappa} \\ c &= a \sqrt{\kappa}\, e^{j\theta} \end{aligned}

in which a = 10^(-IL/20) and IL is the insertion loss.

Args

  • coupling_ratio: Fraction of input power coupled to the cross port.
  • propagation_length: Extra physical length contributing to phase delay.
  • cross_phase: Relative phase on the cross port.
  • insertion_loss: Total excess loss, including reflection and isolation contributions.
  • isolation: Complex leakage amplitude to the isolated port.
  • reflection: Complex reflection amplitude back into the input ports.
  • n_eff: Effective index used for phase accumulation.
  • n_group: Group index. If None, the value of n_eff is used.
  • reference_frequency: Reference frequency for dispersion.