# get_layout_params_1xM_demux_um¶

awg_designer.all.get_layout_params_1xM_demux_um(aperture_in, aperture_arms, aperture_out, waveguide_template, output_spacing, M, center_wavelength, channel_spacing, FSR=None, grating_period=None, N_arms=None, alpha_factor=1.6, use_same_radius_for_input=True, verbose=False)

Calculate the layout parameters for building a 1xM AWG (1 input, M outputs), with channels equidistant in wavelength.

Parameters
aperture_in, aperture_arms, aperture_out: PCells

Aperture component for input, output and arms.

waveguide_template: PCell template

Waveguide template for the delay lines.

output_spacing: float

Minimum spacing (center to center) of output apertures. Increasing this value means less cross-talk but also more power lost between two channels.

M: integer

Number of output channels.

center_wavelength: float

Center frequency of the filter [um].

channel_spacing: float

Channel spacing [um].

FSR: float (default=None)

Free spectral range [um]. if None, use M * channel_spacing.

grating_period: float or None (default=None)

Period of the grating apertures. If None, it uses a value as small as possible (the width of the aperture + 0.2 um).

N_arms: integer or None (default=None)

Number of waveguide arms. If None, calculate automatically. Automatic calculation is done based on the spreading angle of the output aperture and R_grating.

alpha_factor: float (default=1.6)

Scaling of the divergence angle (NA) of input and output. The actual spreading angle used equals divergence angle * alpha_factor.

When True, use the same radius for the input star coupler as for the output (i.e., R_input=R_grating)

verbose: boolean (default=False)

When True, print the intermediate design parameters (useful for debugging)

Returns
A dictionary of layout parameters, including delay_length, N_arms,
R_grating, R_input, angles_arms_in, angles_arms_out, angles_out
* delay_length:

Delay line length to give the specified FSR. It is optimized to be centered at center_frequency, so the actual FSR may be slightly different. See also delay_length_from_FSR().

* N_arms (only calculated if None was specified):

Calculate the number of arms that fit into the spreading angle of the output aperture. Depends on: R_grating, grating_period, and divergence angle of aperture_out. If manually specified, this may increase the R_grating.

* R_grating:

Radius of the grating. This is determined in such a way that the first order diffraction of the grating falls outside of the range of the output apertures. See also get_R_grating(). Depends on: FSR / channel_spacing, grating_period, output_spacing, and slab material properties.

* R_input:

When use_same_radius_for_input is True, equals R_grating. Otherwise, based on the divergence angle of the input aperture.

* angles_arms_in, angles_arms_out:

Angles at which to position the grating apertures for the input/output star coupler, respectively.

* angles_out:

Angles at which to position the output apertures. See also get_angles_out().

awg_designer.sample_designs.awg.demux1xM.build_awg_1xM
Note that in an AWG, the channel with the lowest wavelength ($$\lambda_1$$) is oriented at the same side as the side with the longest delay line.