Skip to content

abstract.mux_demux

mux_demux(
*,
frequencies: Annotated[
collections.abc.Sequence[Annotated[float, minimum=0, units='Hz']],
minItems=1,
] = array(
[
1.937e14,
1.938e14,
1.939e14,
1.940e14,
1.941e14,
1.942e14,
1.943e14,
1.944e14,
1.945e14,
1.946e14,
1.947e14,
1.948e14,
1.949e14,
1.950e14,
1.951e14,
1.952e14,
1.953e14,
1.954e14,
1.955e14,
1.956e14,
1.957e14,
1.958e14,
1.959e14,
1.960e14,
1.961e14,
1.962e14,
1.963e14,
1.964e14,
1.965e14,
1.966e14,
1.967e14,
1.968e14,
1.969e14,
1.970e14,
1.971e14,
1.972e14,
]
),
bandwidth: Annotated[float, minimum=0, units='Hz'] = 100000000000.0,
order: Annotated[int, exclusiveMinimum=0] = 3,
insertion_loss: Annotated[float, minimum=0, units='dB'] = 0.5,
group_delay: Annotated[float, minimum=0, units='s'] = 0,
reflection: complex = 0,
temperature_sensitivity: Annotated[float, units='Hz/K'] = 0.0,
temperature: Annotated[float, minimum=0, units='K'] = 293.0,
reference_temperature: Annotated[float, minimum=0, units='K'] = 293.0,
) -> photonforge.Component

Abstract wavelength multiplexer/demultiplexer (WDM).

Based on MuxDemuxModel. Single-mode device with one common port and one port per channel.

Args

  • frequencies: Central frequency for each channel.
  • bandwidth: 3 dB bandwidth per channel.
  • order: Butterworth filter order for the passband shape.
  • insertion_loss: Insertion loss per channel.
  • group_delay: Constant group delay per channel.
  • reflection: Reflection coefficient for incident fields.
  • temperature_sensitivity: Temperature sensitivity for channel centers.
  • temperature: Operating temperature.
  • reference_temperature: Reference temperature.