Grating Couplers

Grating Couplers

class picwriter.components.GratingCoupler(wgt, theta=0.7853981633974483, length=30.0, taper_length=10.0, period=1.0, dutycycle=0.7, ridge=False, ridge_layers=(3, 0), teeth_list=None, port=(0, 0), direction=u'EAST')

Typical Grating Coupler Cell class.

Args:
  • wgt (WaveguideTemplate): WaveguideTemplate object
Keyword Args:
  • port (tuple): Cartesian coordinate of the input port
  • direction (string): Direction that the component will point towards, can be of type ‘NORTH’, ‘WEST’, ‘SOUTH’, ‘EAST’, OR an angle (float, in radians)
  • theta (float): Angle of the waveguide. Defaults to pi/4.0
  • length (float): Length of the total grating coupler region, measured from the output port. Defaults to 30.0
  • taper_length (float): Length of the taper before the grating coupler. Defaults to 10.0
  • period (float): Grating period. Defaults to 1.0
  • dutycycle (float): dutycycle, determines the size of the ‘gap’ by dutycycle=(period-gap)/period. Defaults to 0.7
  • ridge (boolean): If True, adds another layer to the grating coupler that can be used for partial etched gratings
  • ridge_layers (tuple): Tuple specifying the layer/datatype of the ridge region. Defaults to (3,0)
  • teeth_list (list): Can optionally pass a list of (gap, width) tuples to be used as the gap and teeth widths for irregularly spaced gratings. For example, [(0.6, 0.2), (0.7, 0.3), …] would be a gap of 0.6, then a tooth of width 0.2, then gap of 0.7 and tooth of 0.3, and so on. Overrides period, dutycycle, and length. Defaults to None.
Members:
portlist (dict): Dictionary with the relevant port information
Portlist format:
portlist[‘output’] = {‘port’: (x1,y1), ‘direction’: ‘dir1’}

Where in the above (x1,y1) is the same as the ‘port’ input, and ‘dir1’ is of type ‘NORTH’, ‘WEST’, ‘SOUTH’, ‘EAST’, or an angle in radians. ‘Direction’ points towards the waveguide that will connect to it.

../_images/gratingcoupler.png

Straight Grating Couplers

class picwriter.components.GratingCouplerStraight(wgt, port=(0, 0), direction=u'EAST', width=20, length=50, taper_length=20, period=1.0, dutycycle=0.5)

Straight Grating Coupler Cell class.

Args:
  • wgt (WaveguideTemplate): WaveguideTemplate object
Keyword Args:
  • port (tuple): Cartesian coordinate of the input port
  • direction (string): Direction that the component will point towards, can be of type ‘NORTH’, ‘WEST’, ‘SOUTH’, ‘EAST’, OR an angle (float, in radians)
  • width (float): Width of the grating region
  • length (float): Length of the grating region
  • taper_length (float): Length of the taper before the grating coupler
  • period (float): Grating period
  • dutycycle (float): dutycycle, determines the size of the ‘gap’ by dutycycle=(period-gap)/period.
Members:
portlist (dict): Dictionary with the relevant port information
Portlist format:
portlist[‘output’] = {‘port’: (x1,y1), ‘direction’: ‘dir1’}

Where in the above (x1,y1) is the same as the ‘port’ input, and ‘dir1’ is of type ‘NORTH’, ‘WEST’, ‘SOUTH’, ‘EAST’, or an angle in radians. ‘Direction’ points towards the waveguide that will connect to it.

../_images/gratingcouplerstraight.png

Focusing Grating Couplers

class picwriter.components.GratingCouplerFocusing(wgt, port=(0, 0), direction=u'EAST', focus_distance=None, width=20, length=50, period=1.0, dutycycle=0.5, wavelength=1.55, sin_theta=0.13917310096006544, evaluations=99)

Standard Focusing Grating Coupler Cell class.

Args:
  • wgt (WaveguideTemplate): WaveguideTemplate object
Keyword Args:
  • port (tuple): Cartesian coordinate of the input port
  • direction (string): Direction that the component will point towards, can be of type ‘NORTH’, ‘WEST’, ‘SOUTH’, ‘EAST’, OR an angle (float, in radians)
  • focus_distance (float): Distance over which the light is focused to the waveguide port
  • width (float): Width of the grating region
  • length (float): Length of the grating region
  • period (float): Grating period
  • dutycycle (float): dutycycle, determines the size of the ‘gap’ by dutycycle=(period-gap)/period.
  • wavelength (float): free space wavelength of the light
  • sin_theta (float): sine of the incident angle
  • evaluations (int): number of parameteric evaluations of path.parametric
Members:
portlist (dict): Dictionary with the relevant port information
Portlist format:
portlist[‘output’] = {‘port’: (x1,y1), ‘direction’: ‘dir1’}

Where in the above (x1,y1) is the same as the ‘port’ input, and ‘dir1’ is of type ‘NORTH’, ‘WEST’, ‘SOUTH’, ‘EAST’, or an angle in radians. ‘Direction’ points towards the waveguide that will connect to it.

../_images/gratingcouplerfocusing.png