# Arrayed Waveguide Gratings¶

The ArrayedWaveguideGrating class is used to compose an AWG based on an input star coupler, a waveguide array and an output star coupler. The ArrayedWaveguideGrating class then makes sure these subcomponents are connected properly for layout and simulation. Users can choose between predefined waveguide array or write their own.

 ArrayedWaveguideGrating Generic component to compose 2 star couplers and a waveguide array together into an AWG.

## Legacy Arrayed Waveguide Gratings¶

For backward compatibility reasons and to allow users the time to rewrite their code to the new syntax, we kept the original AWG classes.

 RectangularAWG Rectangular AWG component. RectangularExpandedAWG Rectangular AWG component which expands waveguides in the straight sections.

The components below automatically build the full AWG based on the layout parameters. However, as mentioned earlier, it is recommended to use ArrayedWaveguideGrating instead.

 sample_designs.awg.demux1xM.RectangularAWGNxM(…) Rectangular AWG with N inputs, M outputs and N_arms.