Skip to content

abstract.awg

awg(
*,
num_channels: Annotated[int, exclusiveMinimum=0] = 8,
channel_spacing: Annotated[
float, exclusiveMinimum=0, units='μm'
] = 0.0016,
center_wavelength: Annotated[
float, exclusiveMinimum=0, units='μm'
] = 1.55,
bandwidth: Annotated[float, exclusiveMinimum=0, units='μm'] = 0.00122,
free_spectral_range: Annotated[float, minimum=0, units='μm'] = 0.0194,
periodic_orders: Annotated[int, minimum=0] = 3,
insertion_loss: Annotated[float, minimum=0, units='dB'] = 4.18,
nonuniformity: Annotated[float, minimum=0, units='dB'] = 0.494,
crosstalk: Annotated[float, units='dB'] = -12.68,
order: Annotated[int, exclusiveMinimum=0] = 2,
) -> photonforge.Component

Abstract arrayed waveguide grating.

A demultiplexer with one common port and num_channels outputs, built on MuxDemuxModel.

Args

  • num_channels: Number of output channels.
  • channel_spacing: Spacing between channel centres.
  • center_wavelength: Centre of the channel comb.
  • bandwidth: 3 dB bandwidth per channel.
  • free_spectral_range: Response period, in μm. Zero disables aliasing.
  • periodic_orders: How many grating orders each side of the design one are represented.
  • insertion_loss: Loss of the centre channel.
  • nonuniformity: Edge-to-centre transmission drop.
  • crosstalk: Crosstalk floor.
  • order: Butterworth order. 1 to 2 for a Gaussian-like passband, higher for flat-top.

Returns

Component with num_channels + 1 optical ports. The first is the common port.