# Functions¶

This page lists the functions that are part of the IPKISS AWG Designer.

## Design¶

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

## Field profiles¶

 gaussian_field(waist, x[, center]) Gaussian field profile.

## Layouting¶

 delay_length_from_FSR(f_min, f_max, …) Get the delay length required to fulfill a specific FSR. fanout(ports, angle_out[, target_point, …]) Return the routes that fanout all the ports to an arbitrary direction angle_out. get_angles_out(delay_length, frequencies, …) Get the angles for the output grating, so that the output channels are positioned at the specified frequencies. get_apertures_angles_with_dummies(apertures, …) Helper function to add dummies to the apertures and angles get_FSR(delay_length, n_g_c) Get the actual FSR based on a delay_length and the group index at the center wavelength. get_R_grating(FSR, channel_spacing, …) Calculates the minimal grating radius such that all channels fit in the first order diffraction of the grating. get_star_coupler_apertures(apertures_arms, …) Get the MultiApertures for your StarCoupler, along with the transformations of the individual apertures. get_star_coupler_extended_contour(…[, …]) Get a free propagation region contour shape which fits the slab area. grating_aperture_angles(radius, pitch, …) Calculate the angles for the grating apertures, for a given grating pitch / grating radius. mounting_circular(center, radius, angles) Generates a list of transformations for star coupler elements on a circular mounting. mounting_rowland(pole_position, radius, angles) Generates a list of transformations for star coupler elements on a Rowland mounting.

## Analysis¶

 get_peaks(smatrix, input_pm, output_pms[, …]) Get the transmission peaks for certain output channels (output_pms). get_insertion_loss(smatrix, input_pm, output_pms) Calculate the insertion loss for each output channel get_crosstalk(smatrix, input_pm, output_pms, …) Get the crosstalk for each output port. get_nearest_neighbor_crosstalk(smatrix, …) Get the nearest neighbor cross-talk for each output port.

## Utilities¶

 frequency_to_wavelength(frequency) Converts frequency [GHz] into wavelength [um]. wavelength_to_frequency(wavelength) Converts wavelength [um] to frequency [GHz].

## Legacy methods¶

For backward compatibility reasons and to allow users the time to rewrite their code to the new syntax, we kept the original AWG building method to create a rectangular 1xM demux. See also: AWG porting in IPKISS 3.5.

 sample_designs.awg.demux1xM.build_awg_1xM(…) Build an 1xM rectangular form AWG demux PCell.