ubcpdk.components.straight_heater_metal

ubcpdk.components.straight_heater_metal#

ubcpdk.components.straight_heater_metal(length: float = 320.0, length_undercut_spacing: float = 6.0, length_undercut: float = 30.0, length_straight: float = 0.1, length_straight_input: float = 15.0, cross_section: CrossSectionSpec = 'xs_sc', cross_section_heater: CrossSectionSpec = 'xs_heater_metal', cross_section_waveguide_heater: CrossSectionSpec = 'xs_sc_heater_metal', cross_section_heater_undercut: CrossSectionSpec = 'xs_sc_heater_metal_undercut', *, with_undercut: bool = False, via_stack: ComponentSpec | None = 'via_stack_heater_mtop', port_orientation1: int | None = None, port_orientation2: int | None = None, heater_taper_length: float | None = 5.0, ohms_per_square: float | None = None, straight: ComponentSpec = <function straight>) Component#

Returns a thermal phase shifter.

dimensions from https://doi.org/10.1364/OE.27.010456

Parameters:
  • length – of the waveguide.

  • length_undercut_spacing – from undercut regions.

  • length_undercut – length of each undercut section.

  • length_straight – from where the trenches start to the via_stack.

  • length_straight_input – from input port to where trenches start.

  • cross_section – for waveguide ports.

  • cross_section_heater – for heated sections. heater metal only.

  • cross_section_waveguide_heater – for heated sections.

  • cross_section_heater_undercut – for heated sections with undercut.

  • with_undercut – isolation trenches for higher efficiency.

  • via_stack – via stack.

  • port_orientation1 – left via stack port orientation.

  • port_orientation2 – right via stack port orientation.

  • heater_taper_length – minimizes current concentrations from heater to via_stack.

  • ohms_per_square – to calculate resistance.

  • straight – straight component.