Parametric Cells for the Generic PDK.
Consider them a foundation from which you can draw inspiration. Feel free to modify their cross-sections and layers to tailor a unique PDK suited for any foundry of your choice.
By doing so, you'll possess a versatile, retargetable PDK, empowering you to design your circuits with speed and flexibility.
.. autofunction:: gdsfactory.components.C
.. plot:: :include-source: import gdsfactory as gf c = gf.components.C(width=1.0, size=[10.0, 20.0], layer='WG') c.plot()
.. autofunction:: gdsfactory.components.L
.. plot:: :include-source: import gdsfactory as gf c = gf.components.L(width=1, size=[10, 20], layer='MTOP', port_type='electrical') c.plot()
.. autofunction:: gdsfactory.components.add_fiber_array_optical_south_electrical_north
.. plot:: :include-source: import gdsfactory as gf c = gf.components.add_fiber_array_optical_south_electrical_north(with_loopback=True, pad_spacing=100.0, fiber_spacing=127.0, pad_gc_spacing=250.0, electrical_port_orientation=90, xs_metal='xs_metal_routing') c.plot()
.. autofunction:: gdsfactory.components.add_fiducials
.. plot:: :include-source: import gdsfactory as gf c = gf.components.add_fiducials(gap=50, left='cross', right='cross', offset=[0, 0]) c.plot()
.. autofunction:: gdsfactory.components.add_fiducials_offsets
.. plot:: :include-source: import gdsfactory as gf c = gf.components.add_fiducials_offsets(fiducial='cross', offsets=[[0, 100], [0, -100]]) c.plot()
.. autofunction:: gdsfactory.components.add_frame
.. plot:: :include-source: import gdsfactory as gf c = gf.components.add_frame(width=10.0, spacing=10.0, layer='WG') c.plot()
.. autofunction:: gdsfactory.components.add_grating_couplers
.. plot:: :include-source: import gdsfactory as gf c = gf.components.add_grating_couplers(gc_port_name='o1') c.plot()
.. autofunction:: gdsfactory.components.add_grating_couplers_fiber_array
.. plot:: :include-source: import gdsfactory as gf c = gf.components.add_grating_couplers_fiber_array(grating_separation=127.0, gc_port_name='o1', gc_rotation=-90, straight_separation=5.0, with_loopback=False, cross_section='xs_sc', loopback_yspacing=4.0) c.plot()
.. autofunction:: gdsfactory.components.add_grating_couplers_with_loopback_fiber_array
.. plot:: :include-source: import gdsfactory as gf c = gf.components.add_grating_couplers_with_loopback_fiber_array(grating_separation=127.0, gc_port_name='o1', gc_rotation=-90, straight_separation=5.0, with_loopback=True, cross_section='xs_sc', loopback_yspacing=4.0) c.plot()
.. autofunction:: gdsfactory.components.add_grating_couplers_with_loopback_fiber_single
.. plot:: :include-source: import gdsfactory as gf c = gf.components.add_grating_couplers_with_loopback_fiber_single(component='spiral_inner_io_fiber_single', gc_port_name='o1', with_loopback=True, loopback_xspacing=5.0, rotation=90) c.plot()
.. autofunction:: gdsfactory.components.add_trenches
.. plot:: :include-source: import gdsfactory as gf c = gf.components.add_trenches(cross_section='xs_rc_with_trenches', top=True, bot=True, right=False, left=False) c.plot()
.. autofunction:: gdsfactory.components.add_trenches90
.. plot:: :include-source: import gdsfactory as gf c = gf.components.add_trenches90(cross_section='xs_rc_with_trenches', top=False, bot=True, right=True, left=False) c.plot()
.. autofunction:: gdsfactory.components.align_wafer
.. plot:: :include-source: import gdsfactory as gf c = gf.components.align_wafer(width=10.0, spacing=10.0, cross_length=80.0, layer='WG', square_corner='bottom_left') c.plot()
.. autofunction:: gdsfactory.components.array
.. plot:: :include-source: import gdsfactory as gf c = gf.components.array(component='pad', spacing=[150.0, 150.0], columns=6, rows=1, add_ports=True) c.plot()
.. autofunction:: gdsfactory.components.array_with_fanout
.. plot:: :include-source: import gdsfactory as gf c = gf.components.array_with_fanout(component='pad', columns=3, pitch=150.0, waveguide_pitch=10.0, start_straight_length=5.0, end_straight_length=40.0, component_port_name='e4', bend='bend_euler', cross_section='xs_sc') c.plot()
.. autofunction:: gdsfactory.components.array_with_fanout_2d
.. plot:: :include-source: import gdsfactory as gf c = gf.components.array_with_fanout_2d(pitch=150.0, columns=3, rows=2) c.plot()
.. autofunction:: gdsfactory.components.array_with_via
.. plot:: :include-source: import gdsfactory as gf c = gf.components.array_with_via(columns=3, spacing=150.0, via_spacing=10.0, straight_length=60.0, via_stack_dy=0, port_orientation=180) c.plot()
.. autofunction:: gdsfactory.components.array_with_via_2d
.. plot:: :include-source: import gdsfactory as gf c = gf.components.array_with_via_2d(spacing=[150.0, 150.0], columns=3, rows=2) c.plot()
.. autofunction:: gdsfactory.components.awg
.. plot:: :include-source: import gdsfactory as gf c = gf.components.awg(arms=10, outputs=3, fpr_spacing=50.0) c.plot()
.. autofunction:: gdsfactory.components.bbox
.. plot:: :include-source: import gdsfactory as gf c = gf.components.bbox(bbox=[[-1.0, -1.0], [3.0, 4.0]], layer=[1, 0], top=0, bottom=0, left=0, right=0) c.plot()
.. autofunction:: gdsfactory.components.bend_circular
.. plot:: :include-source: import gdsfactory as gf c = gf.components.bend_circular(angle=90.0, cross_section='xs_sc') c.plot()
.. autofunction:: gdsfactory.components.bend_circular_heater
.. plot:: :include-source: import gdsfactory as gf c = gf.components.bend_circular_heater(angle=90, heater_to_wg_distance=1.2, heater_width=0.5, layer_heater='HEATER', cross_section='xs_sc') c.plot()
.. autofunction:: gdsfactory.components.bend_euler
.. plot:: :include-source: import gdsfactory as gf c = gf.components.bend_euler(angle=90.0, p=0.5, with_arc_floorplan=True, direction='ccw', cross_section='xs_sc') c.plot()
.. autofunction:: gdsfactory.components.bend_euler_s
.. plot:: :include-source: import gdsfactory as gf c = gf.components.bend_euler_s() c.plot()
.. autofunction:: gdsfactory.components.bend_euler_trenches
.. plot:: :include-source: import gdsfactory as gf c = gf.components.bend_euler_trenches(cross_section='xs_rc_with_trenches', top=False, bot=True, right=True, left=False) c.plot()
.. autofunction:: gdsfactory.components.bend_s
.. plot:: :include-source: import gdsfactory as gf c = gf.components.bend_s(size=[11.0, 1.8], npoints=99, cross_section='xs_sc') c.plot()
.. autofunction:: gdsfactory.components.bend_straight_bend
.. plot:: :include-source: import gdsfactory as gf c = gf.components.bend_straight_bend(straight_length=10.0, angle=90, p=0.5, with_arc_floorplan=True, npoints=720, direction='ccw') c.plot()
.. autofunction:: gdsfactory.components.bezier
.. plot:: :include-source: import gdsfactory as gf c = gf.components.bezier(control_points=[[0.0, 0.0], [5.0, 0.0], [5.0, 1.8], [10.0, 1.8]], npoints=201, with_manhattan_facing_angles=True, cross_section='xs_sc') c.plot()
.. autofunction:: gdsfactory.components.cavity
.. plot:: :include-source: import gdsfactory as gf c = gf.components.cavity(coupler='coupler', length=0.1, gap=0.2) c.plot()
.. autofunction:: gdsfactory.components.cdc
.. plot:: :include-source: import gdsfactory as gf c = gf.components.cdc(length=30.0, gap=0.5, period=0.22, dc=0.5, dx=10.0, dy=1.8, width_top=2.0, width_bot=0.75, fins=False, fin_size=[0.2, 0.05]) c.plot()
.. autofunction:: gdsfactory.components.cdsem_all
.. plot:: :include-source: import gdsfactory as gf c = gf.components.cdsem_all(widths=[0.4, 0.45, 0.5, 0.6, 0.8, 1.0], dense_lines_width=0.3, dense_lines_width_difference=0.02, dense_lines_gap=0.3, dense_lines_labels=['DL', 'DM', 'DH'], straight='straight', bend90='bend_circular', cross_section='xs_sc') c.plot()
.. autofunction:: gdsfactory.components.cdsem_bend180
.. plot:: :include-source: import gdsfactory as gf c = gf.components.cdsem_bend180(width=0.5, radius=10.0, wg_length=420.0, straight='straight', bend90='bend_circular', cross_section='xs_sc') c.plot()
.. autofunction:: gdsfactory.components.cdsem_coupler
.. plot:: :include-source: import gdsfactory as gf c = gf.components.cdsem_coupler(length=420.0, gaps=[0.15, 0.2, 0.25], cross_section='xs_sc', spacing=7.0) c.plot()
.. autofunction:: gdsfactory.components.cdsem_straight
.. plot:: :include-source: import gdsfactory as gf c = gf.components.cdsem_straight(widths=[0.4, 0.45, 0.5, 0.6, 0.8, 1.0], length=420.0, cross_section='xs_sc', spacing=7.0) c.plot()
.. autofunction:: gdsfactory.components.cdsem_straight_density
.. plot:: :include-source: import gdsfactory as gf c = gf.components.cdsem_straight_density(widths=[0.3, 0.3, 0.3, 0.3, 0.3, 0.3, 0.3, 0.3, 0.3, 0.3], gaps=[0.3, 0.3, 0.3, 0.3, 0.3, 0.3, 0.3, 0.3, 0.3, 0.3], length=420.0, label='', cross_section='xs_sc') c.plot()
.. autofunction:: gdsfactory.components.circle
.. plot:: :include-source: import gdsfactory as gf c = gf.components.circle(radius=10.0, angle_resolution=2.5, layer='WG') c.plot()
.. autofunction:: gdsfactory.components.coh_rx_dual_pol
.. plot:: :include-source: import gdsfactory as gf c = gf.components.coh_rx_dual_pol(cross_section='xs_sc', lo_splitter='mmi1x2', single_pol_rx_spacing=50.0, splitter_coh_rx_spacing=40.0) c.plot()
.. autofunction:: gdsfactory.components.coh_rx_single_pol
.. plot:: :include-source: import gdsfactory as gf c = gf.components.coh_rx_single_pol(bend='bend_euler', cross_section='xs_sc', det_spacing=[60.0, 50.0], with_pads=True, pad_det_spacing=80.0, in_wg_length=20.0) c.plot()
.. autofunction:: gdsfactory.components.coh_tx_dual_pol
.. plot:: :include-source: import gdsfactory as gf c = gf.components.coh_tx_dual_pol(splitter='mmi1x2', spol_coh_tx='coh_tx_single_pol', yspacing=10.0, xspacing=40.0, cross_section='xs_sc') c.plot()
.. autofunction:: gdsfactory.components.coh_tx_single_pol
.. plot:: :include-source: import gdsfactory as gf c = gf.components.coh_tx_single_pol(balanced_phase_shifters=False, mzm_y_spacing=50.0, phase_shifter='straight_pin', phase_shifter_length=100.0, mzm_ps_spacing=40.0, splitter='mmi1x2', mzm_length=200.0, with_pads=False, xspacing=40.0, pad_array='pad_array', cross_section='xs_sc') c.plot()
.. autofunction:: gdsfactory.components.compass
.. plot:: :include-source: import gdsfactory as gf c = gf.components.compass(size=[4.0, 2.0], layer='WG', port_type='electrical', port_inclusion=0.0, port_orientations=[180, 90, 0, -90]) c.plot()
.. autofunction:: gdsfactory.components.compensation_path
.. plot:: :include-source: import gdsfactory as gf c = gf.components.compensation_path(direction='top', cross_section='xs_sc') c.plot()
.. autofunction:: gdsfactory.components.component_lattice
.. autofunction:: gdsfactory.components.component_lattice_generic
.. plot:: :include-source: import gdsfactory as gf c = gf.components.component_lattice_generic() c.plot()
.. autofunction:: gdsfactory.components.component_sequence
.. autofunction:: gdsfactory.components.copy_layers
.. plot:: :include-source: import gdsfactory as gf c = gf.components.copy_layers(layers=[[1, 0], [2, 0]]) c.plot()
.. autofunction:: gdsfactory.components.coupler
.. plot:: :include-source: import gdsfactory as gf c = gf.components.coupler(gap=0.236, length=20.0, dy=4.0, dx=10.0, cross_section='xs_sc') c.plot()
.. autofunction:: gdsfactory.components.coupler90
.. plot:: :include-source: import gdsfactory as gf c = gf.components.coupler90(gap=0.2, radius=10.0, cross_section='xs_sc') c.plot()
.. autofunction:: gdsfactory.components.coupler90bend
.. plot:: :include-source: import gdsfactory as gf c = gf.components.coupler90bend(radius=10.0, gap=0.2, cross_section_inner='xs_sc', cross_section_outer='xs_sc') c.plot()
.. autofunction:: gdsfactory.components.coupler90circular
.. plot:: :include-source: import gdsfactory as gf c = gf.components.coupler90circular(gap=0.2, radius=10.0, cross_section='xs_sc') c.plot()
.. autofunction:: gdsfactory.components.coupler_adiabatic
.. plot:: :include-source: import gdsfactory as gf c = gf.components.coupler_adiabatic(length1=20.0, length2=50.0, length3=30.0, wg_sep=1.0, input_wg_sep=3.0, output_wg_sep=3.0, dw=0.1, cross_section='xs_sc') c.plot()
.. autofunction:: gdsfactory.components.coupler_asymmetric
.. plot:: :include-source: import gdsfactory as gf c = gf.components.coupler_asymmetric(gap=0.234, dy=2.5, dx=10.0, cross_section='xs_sc_no_pins') c.plot()
.. autofunction:: gdsfactory.components.coupler_bend
.. plot:: :include-source: import gdsfactory as gf c = gf.components.coupler_bend(radius=10.0, coupler_gap=0.2, coupling_angle_coverage=120.0, cross_section_inner='xs_sc', cross_section_outer='xs_sc') c.plot()
.. autofunction:: gdsfactory.components.coupler_bent
.. plot:: :include-source: import gdsfactory as gf c = gf.components.coupler_bent(gap=0.2, radius=26, length=8.6, width1=0.4, width2=0.4, length_straight=10, cross_section='xs_sc') c.plot()
.. autofunction:: gdsfactory.components.coupler_broadband
.. plot:: :include-source: import gdsfactory as gf c = gf.components.coupler_broadband(w_sc=0.5, gap_sc=0.2, w_top=0.6, gap_pc=0.3, legnth_taper=1.0, length_coupler_straight=12.4, lenght_coupler_big_gap=4.7, cross_section='xs_sc', radius=10.0) c.plot()
.. autofunction:: gdsfactory.components.coupler_full
.. plot:: :include-source: import gdsfactory as gf c = gf.components.coupler_full(coupling_length=40.0, dx=10.0, dy=4.8, gap=0.5, dw=0.1, cross_section='xs_sc') c.plot()
.. autofunction:: gdsfactory.components.coupler_ring
.. plot:: :include-source: import gdsfactory as gf c = gf.components.coupler_ring(gap=0.2, radius=5.0, length_x=4.0, cross_section='xs_sc', length_extension=3) c.plot()
.. autofunction:: gdsfactory.components.coupler_ring_point
.. plot:: :include-source: import gdsfactory as gf c = gf.components.coupler_ring_point() c.plot()
.. autofunction:: gdsfactory.components.coupler_straight
.. plot:: :include-source: import gdsfactory as gf c = gf.components.coupler_straight(length=10.0, gap=0.27, cross_section='xs_sc_no_pins') c.plot()
.. autofunction:: gdsfactory.components.coupler_straight_asymmetric
.. plot:: :include-source: import gdsfactory as gf c = gf.components.coupler_straight_asymmetric(length=10.0, gap=0.27, width_top=0.5, width_bot=1, cross_section='xs_sc') c.plot()
.. autofunction:: gdsfactory.components.coupler_symmetric
.. plot:: :include-source: import gdsfactory as gf c = gf.components.coupler_symmetric(gap=0.234, dy=4.0, dx=10.0, cross_section='xs_sc_no_pins') c.plot()
.. autofunction:: gdsfactory.components.coupler_trenches
.. plot:: :include-source: import gdsfactory as gf c = gf.components.coupler_trenches(cross_section='xs_rc_with_trenches', top=True, bot=True, right=False, left=False) c.plot()
.. autofunction:: gdsfactory.components.cross
.. plot:: :include-source: import gdsfactory as gf c = gf.components.cross(length=10.0, width=3.0, layer='WG') c.plot()
.. autofunction:: gdsfactory.components.crossing
.. plot:: :include-source: import gdsfactory as gf c = gf.components.crossing(cross_section='xs_sc') c.plot()
.. autofunction:: gdsfactory.components.crossing45
.. plot:: :include-source: import gdsfactory as gf c = gf.components.crossing45(port_spacing=40.0, alpha=0.08, npoints=101, cross_section='xs_sc', cross_section_bends='xs_sc_no_pins') c.plot()
.. autofunction:: gdsfactory.components.crossing_arm
.. plot:: :include-source: import gdsfactory as gf c = gf.components.crossing_arm(r1=3.0, r2=1.1, w=1.2, L=3.4, layer_slab='SLAB150', cross_section='xs_sc') c.plot()
.. autofunction:: gdsfactory.components.crossing_etched
.. plot:: :include-source: import gdsfactory as gf c = gf.components.crossing_etched(width=0.5, r1=3.0, r2=1.1, w=1.2, L=3.4, layer_wg='WG', layer_slab='SLAB150') c.plot()
.. autofunction:: gdsfactory.components.crossing_from_taper
.. plot:: :include-source: import gdsfactory as gf c = gf.components.crossing_from_taper() c.plot()
.. autofunction:: gdsfactory.components.cutback_2x2
.. plot:: :include-source: import gdsfactory as gf c = gf.components.cutback_2x2(cols=4, rows=5, port1='o1', port2='o2', port3='o3', port4='o4', mirror=False, cross_section='xs_sc') c.plot()
.. autofunction:: gdsfactory.components.cutback_bend
.. plot:: :include-source: import gdsfactory as gf c = gf.components.cutback_bend(straight_length=5.0, rows=6, cols=5) c.plot()
.. autofunction:: gdsfactory.components.cutback_bend180
.. plot:: :include-source: import gdsfactory as gf c = gf.components.cutback_bend180(straight_length=5.0, rows=6, cols=6, spacing=3) c.plot()
.. autofunction:: gdsfactory.components.cutback_bend180circular
.. plot:: :include-source: import gdsfactory as gf c = gf.components.cutback_bend180circular(straight_length=5.0, rows=6, cols=6, spacing=3) c.plot()
.. autofunction:: gdsfactory.components.cutback_bend90
.. plot:: :include-source: import gdsfactory as gf c = gf.components.cutback_bend90(straight_length=5.0, rows=6, cols=6, spacing=5) c.plot()
.. autofunction:: gdsfactory.components.cutback_bend90circular
.. plot:: :include-source: import gdsfactory as gf c = gf.components.cutback_bend90circular(straight_length=5.0, rows=6, cols=6, spacing=5) c.plot()
.. autofunction:: gdsfactory.components.cutback_component
.. plot:: :include-source: import gdsfactory as gf c = gf.components.cutback_component(cols=4, rows=5, port1='o1', port2='o2', mirror=False, mirror1=False, mirror2=False, cross_section='xs_sc') c.plot()
.. autofunction:: gdsfactory.components.cutback_component_mirror
.. plot:: :include-source: import gdsfactory as gf c = gf.components.cutback_component_mirror(cols=4, rows=5, port1='o1', port2='o2', mirror=True, mirror1=False, mirror2=False, cross_section='xs_sc') c.plot()
.. autofunction:: gdsfactory.components.cutback_splitter
.. plot:: :include-source: import gdsfactory as gf c = gf.components.cutback_splitter(cols=4, rows=5, port1='o1', port2='o2', port3='o3', mirror=False, cross_section='xs_sc') c.plot()
.. autofunction:: gdsfactory.components.dbr
.. plot:: :include-source: import gdsfactory as gf c = gf.components.dbr(w1=0.475, w2=0.525, l1=0.159, l2=0.159, n=10, cross_section='xs_sc') c.plot()
.. autofunction:: gdsfactory.components.dbr_tapered
.. plot:: :include-source: import gdsfactory as gf c = gf.components.dbr_tapered(length=10.0, period=0.85, dc=0.5, w1=0.4, w2=1.0, taper_length=20.0, fins=False, fin_size=[0.2, 0.05], cross_section='xs_sc') c.plot()
.. autofunction:: gdsfactory.components.delay_snake
.. plot:: :include-source: import gdsfactory as gf c = gf.components.delay_snake(length=1600.0, L0=5.0, n=2, bend='bend_euler', cross_section='xs_sc') c.plot()
.. autofunction:: gdsfactory.components.delay_snake2
.. plot:: :include-source: import gdsfactory as gf c = gf.components.delay_snake2(length=1600.0, length0=0.0, length2=0.0, n=2, bend180='bend_euler180', cross_section='xs_sc') c.plot()
.. autofunction:: gdsfactory.components.delay_snake3
.. plot:: :include-source: import gdsfactory as gf c = gf.components.delay_snake3(length=1600.0, length0=0.0, length2=0.0, n=2, cross_section='xs_sc') c.plot()
.. autofunction:: gdsfactory.components.delay_snake_sbend
.. plot:: :include-source: import gdsfactory as gf c = gf.components.delay_snake_sbend(length=100.0, length1=0.0, length4=0.0, radius=5.0, waveguide_spacing=5.0, bend='bend_euler', sbend='bend_s', sbend_xsize=100.0, cross_section='xs_sc') c.plot()
.. autofunction:: gdsfactory.components.dicing_lane
.. plot:: :include-source: import gdsfactory as gf c = gf.components.dicing_lane(size=[50, 300], layer_dicing='DICING') c.plot()
.. autofunction:: gdsfactory.components.die
.. plot:: :include-source: import gdsfactory as gf c = gf.components.die(size=[10000.0, 10000.0], street_width=100.0, street_length=1000.0, die_name='chip99', text_size=100.0, text_location='SW', layer='FLOORPLAN', bbox_layer='FLOORPLAN', draw_corners=False) c.plot()
.. autofunction:: gdsfactory.components.die_bbox
.. plot:: :include-source: import gdsfactory as gf c = gf.components.die_bbox(street_width=100.0, text_size=100.0, text_anchor='sw', layer='MTOP', padding=10.0) c.plot()
.. autofunction:: gdsfactory.components.die_bbox_frame
.. plot:: :include-source: import gdsfactory as gf c = gf.components.die_bbox_frame(bbox=[[-1.0, -1.0], [3.0, 4.0]], street_width=100.0, street_length=1000.0, text_size=100.0, text_anchor='sw', layer='MTOP', padding=10.0) c.plot()
.. autofunction:: gdsfactory.components.disk
.. plot:: :include-source: import gdsfactory as gf c = gf.components.disk(radius=10.0, gap=0.2, wrap_angle_deg=180.0, parity=1, cross_section='xs_sc') c.plot()
.. autofunction:: gdsfactory.components.disk_heater
.. plot:: :include-source: import gdsfactory as gf c = gf.components.disk_heater(radius=10.0, gap=0.2, wrap_angle_deg=180.0, parity=1, cross_section='xs_sc', heater_layer='HEATER', via_stack='via_stack_heater_mtop', heater_width=5.0, heater_extent=2.0, via_width=10.0, port_orientation=90) c.plot()
.. autofunction:: gdsfactory.components.edge_coupler_array
.. plot:: :include-source: import gdsfactory as gf c = gf.components.edge_coupler_array(n=5, pitch=127.0, x_reflection=False, text_offset=[10, 20], text_rotation=0, text_mirror=False, angle=0, place_x_by_port=True, space_y_by_port=False, alignment_port='o1') c.plot()
.. autofunction:: gdsfactory.components.edge_coupler_array_with_loopback
.. plot:: :include-source: import gdsfactory as gf c = gf.components.edge_coupler_array_with_loopback(cross_section='xs_sc', radius=30, n=8, pitch=127.0, extension_length=1.0, right_loopback=True, x_reflection=False, text_offset=[0, 0], text_rotation=0, text_mirror=False, angle=0, place_x_by_port=True, space_y_by_port=False, alignment_port='o1') c.plot()
.. autofunction:: gdsfactory.components.edge_coupler_silicon
.. plot:: :include-source: import gdsfactory as gf c = gf.components.edge_coupler_silicon(length=100, width1=0.5, width2=0.2, with_two_ports=True, cross_section='xs_sc', port_names=['o1', 'o2'], port_types=['optical', 'optical']) c.plot()
.. autofunction:: gdsfactory.components.ellipse
.. plot:: :include-source: import gdsfactory as gf c = gf.components.ellipse(radii=[10.0, 5.0], angle_resolution=2.5, layer='WG') c.plot()
.. autofunction:: gdsfactory.components.extend_port
.. autofunction:: gdsfactory.components.extend_ports
.. plot:: :include-source: import gdsfactory as gf c = gf.components.extend_ports(length=5.0, port_type='optical', centered=False) c.plot()
.. autofunction:: gdsfactory.components.extend_ports_list
.. autofunction:: gdsfactory.components.fiber
.. plot:: :include-source: import gdsfactory as gf c = gf.components.fiber(core_diameter=10, cladding_diameter=125, layer_core='WG', layer_cladding='WGCLAD') c.plot()
.. autofunction:: gdsfactory.components.fiber_array
.. plot:: :include-source: import gdsfactory as gf c = gf.components.fiber_array(n=8, pitch=127.0, core_diameter=10, cladding_diameter=125, layer_core='WG', layer_cladding='WGCLAD') c.plot()
.. autofunction:: gdsfactory.components.fiducial_squares
.. plot:: :include-source: import gdsfactory as gf c = gf.components.fiducial_squares(layer='WG', size=[5.0, 5.0], offset=0.14) c.plot()
.. autofunction:: gdsfactory.components.ge_detector_straight_si_contacts
.. plot:: :include-source: import gdsfactory as gf c = gf.components.ge_detector_straight_si_contacts(length=80.0, via_stack_width=10.0, via_stack_spacing=5.0, via_stack_offset=0.0) c.plot()
.. autofunction:: gdsfactory.components.grating_coupler_array
.. plot:: :include-source: import gdsfactory as gf c = gf.components.grating_coupler_array(pitch=127.0, n=6, port_name='o1', rotation=0, with_loopback=False, cross_section='xs_sc', grating_coupler_spacing=0.0) c.plot()
.. autofunction:: gdsfactory.components.grating_coupler_dual_pol
.. plot:: :include-source: import gdsfactory as gf c = gf.components.grating_coupler_dual_pol(period_x=0.58, period_y=0.58, x_span=11, y_span=11, length_taper=150.0, width_taper=10.0, polarization='dual', wavelength=1.55, base_layer='WG', cross_section='xs_sc') c.plot()
.. autofunction:: gdsfactory.components.grating_coupler_elliptical
.. plot:: :include-source: import gdsfactory as gf c = gf.components.grating_coupler_elliptical(polarization='te', taper_length=16.6, taper_angle=40.0, wavelength=1.554, fiber_angle=15.0, grating_line_width=0.343, neff=2.638, nclad=1.443, n_periods=30, big_last_tooth=False, layer_slab='SLAB150', slab_xmin=-1.0, slab_offset=2.0, spiked=True, cross_section='xs_sc') c.plot()
.. autofunction:: gdsfactory.components.grating_coupler_elliptical_arbitrary
.. plot:: :include-source: import gdsfactory as gf c = gf.components.grating_coupler_elliptical_arbitrary(gaps=[0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1], widths=[0.5, 0.5, 0.5, 0.5, 0.5, 0.5, 0.5, 0.5, 0.5, 0.5], taper_length=16.6, taper_angle=60.0, wavelength=1.554, fiber_angle=15.0, nclad=1.443, layer_slab='SLAB150', taper_to_slab_offset=-3.0, polarization='te', spiked=True, bias_gap=0, cross_section='xs_sc') c.plot()
.. autofunction:: gdsfactory.components.grating_coupler_elliptical_lumerical
.. plot:: :include-source: import gdsfactory as gf c = gf.components.grating_coupler_elliptical_lumerical(parameters=[-2.429836, 0.1, 0.48007, 0.1, 0.607398, 0.1, 0.449884, 0.1, 0.427412, 0.1, 0.47579, 0.1, 0.502665, 0.100029, 0.510037, 0.1, 0.4944, 0.10796, 0.474006, 0.149727, 0.432728, 0.183953, 0.387202, 0.236018, 0.360322, 0.242618, 0.357704, 0.260664, 0.35261, 0.246682, 0.371749, 0.229208, 0.377696, 0.224653, 0.376544, 0.220418, 0.380476, 0.219236, 0.379887, 0.217004, 0.382917, 0.218278, 0.364132, 0.237291, 0.367683, 0.248651, 0.344151, 0.273357, 0.330623, 0.273504], layer='WG', layer_slab='SLAB150', taper_angle=55, taper_length=12.6, fiber_angle=5, bias_gap=0) c.plot()
.. autofunction:: gdsfactory.components.grating_coupler_elliptical_trenches
.. plot:: :include-source: import gdsfactory as gf c = gf.components.grating_coupler_elliptical_trenches(polarization='te', taper_length=16.6, taper_angle=30.0, trenches_extra_angle=9.0, wavelength=1.53, fiber_angle=15.0, grating_line_width=0.343, neff=2.638, ncladding=1.443, layer_trench='SHALLOW_ETCH', p_start=26, n_periods=30, end_straight_length=0.2, cross_section='xs_sc') c.plot()
.. autofunction:: gdsfactory.components.grating_coupler_elliptical_uniform
.. plot:: :include-source: import gdsfactory as gf c = gf.components.grating_coupler_elliptical_uniform(n_periods=20, period=0.75, fill_factor=0.5) c.plot()
.. autofunction:: gdsfactory.components.grating_coupler_loss_fiber_array
.. plot:: :include-source: import gdsfactory as gf c = gf.components.grating_coupler_loss_fiber_array(pitch=127.0, port_name='o1', cross_section='xs_sc') c.plot()
.. autofunction:: gdsfactory.components.grating_coupler_loss_fiber_array4
.. plot:: :include-source: import gdsfactory as gf c = gf.components.grating_coupler_loss_fiber_array4(pitch=127.0) c.plot()
.. autofunction:: gdsfactory.components.grating_coupler_loss_fiber_single
.. plot:: :include-source: import gdsfactory as gf c = gf.components.grating_coupler_loss_fiber_single(cross_section='xs_sc') c.plot()
.. autofunction:: gdsfactory.components.grating_coupler_rectangular
.. plot:: :include-source: import gdsfactory as gf c = gf.components.grating_coupler_rectangular(n_periods=20, period=0.75, fill_factor=0.5, width_grating=11.0, length_taper=150.0, polarization='te', wavelength=1.55, slab_xmin=-1.0, slab_offset=1.0, cross_section='xs_sc') c.plot()
.. autofunction:: gdsfactory.components.grating_coupler_rectangular_arbitrary
.. plot:: :include-source: import gdsfactory as gf c = gf.components.grating_coupler_rectangular_arbitrary(gaps=[0.2, 0.2, 0.2, 0.2, 0.2, 0.2, 0.2, 0.2, 0.2, 0.2], widths=[0.5, 0.5, 0.5, 0.5, 0.5, 0.5, 0.5, 0.5, 0.5, 0.5], width_grating=11.0, length_taper=150.0, polarization='te', wavelength=1.55, slab_xmin=-1.0, slab_offset=1.0, cross_section='xs_sc') c.plot()
.. autofunction:: gdsfactory.components.grating_coupler_rectangular_arbitrary_slab
.. plot:: :include-source: import gdsfactory as gf c = gf.components.grating_coupler_rectangular_arbitrary_slab(gaps=[0.2, 0.2, 0.2, 0.2, 0.2, 0.2, 0.2, 0.2, 0.2, 0.2], widths=[0.5, 0.5, 0.5, 0.5, 0.5, 0.5, 0.5, 0.5, 0.5, 0.5], width_grating=11.0, length_taper=150.0, polarization='te', wavelength=1.55, layer_slab='SLAB150', slab_offset=2.0, fiber_angle=15, cross_section='xs_sc') c.plot()
.. autofunction:: gdsfactory.components.grating_coupler_tree
.. plot:: :include-source: import gdsfactory as gf c = gf.components.grating_coupler_tree(n=4, straight_spacing=4.0, with_loopback=False, bend='bend_euler', fanout_length=0.0) c.plot()
.. autofunction:: gdsfactory.components.greek_cross
.. plot:: :include-source: import gdsfactory as gf c = gf.components.greek_cross(length=30, layers=['WG', 'N'], widths=[2.0, 3.0]) c.plot()
.. autofunction:: gdsfactory.components.greek_cross_offset_pads
.. plot:: :include-source: import gdsfactory as gf c = gf.components.greek_cross_offset_pads(cross_struct_length=30.0, cross_struct_width=1.0, cross_struct_layers=['WG'], cross_implant_length=30.0, cross_implant_width=2.0, cross_implant_layers=['N'], contact_layers=['WG', 'NPP'], contact_offset=10, contact_buffer=10, pad_width=50) c.plot()
.. autofunction:: gdsfactory.components.greek_cross_with_pads
.. plot:: :include-source: import gdsfactory as gf c = gf.components.greek_cross_with_pads(pad_spacing=150.0) c.plot()
.. autofunction:: gdsfactory.components.hexagon
.. plot:: :include-source: import gdsfactory as gf c = gf.components.hexagon(sides=6, side_length=10, layer='WG', port_type='placement', snap_to_grid=True) c.plot()
.. autofunction:: gdsfactory.components.hline
.. plot:: :include-source: import gdsfactory as gf c = gf.components.hline(length=10.0, width=0.5, layer='WG', port_type='optical') c.plot()
.. autofunction:: gdsfactory.components.interdigital_capacitor
.. plot:: :include-source: import gdsfactory as gf c = gf.components.interdigital_capacitor(fingers=4, finger_length=20.0, finger_gap=2.0, thickness=5.0, layer='WG') c.plot()
.. autofunction:: gdsfactory.components.interdigital_capacitor_enclosed
.. plot:: :include-source: import gdsfactory as gf c = gf.components.interdigital_capacitor_enclosed(cpw_dimensions=[10, 6], gap_to_ground=5, gap_layer='DEEPTRENCH', metal_layer='WG') c.plot()
.. autofunction:: gdsfactory.components.litho_calipers
.. plot:: :include-source: import gdsfactory as gf c = gf.components.litho_calipers(notch_size=[2.0, 5.0], notch_spacing=2.0, num_notches=11, offset_per_notch=0.1, row_spacing=0.0, layer1='WG', layer2='SLAB150') c.plot()
.. autofunction:: gdsfactory.components.litho_ruler
.. plot:: :include-source: import gdsfactory as gf c = gf.components.litho_ruler(height=2, width=0.5, spacing=2.0, scale=[3, 1, 1, 1, 1, 2, 1, 1, 1, 1], num_marks=21, layer='WG') c.plot()
.. autofunction:: gdsfactory.components.litho_steps
.. plot:: :include-source: import gdsfactory as gf c = gf.components.litho_steps(line_widths=[1.0, 2.0, 4.0, 8.0, 16.0], line_spacing=10.0, height=100.0, layer='WG') c.plot()
.. autofunction:: gdsfactory.components.logo
.. plot:: :include-source: import gdsfactory as gf c = gf.components.logo(text='GDSFACTORY') c.plot()
.. autofunction:: gdsfactory.components.loop_mirror
.. plot:: :include-source: import gdsfactory as gf c = gf.components.loop_mirror(bend90='bend_euler') c.plot()
.. autofunction:: gdsfactory.components.loss_deembedding_ch12_34
.. plot:: :include-source: import gdsfactory as gf c = gf.components.loss_deembedding_ch12_34(pitch=127.0, port_name='o1', cross_section='xs_sc') c.plot()
.. autofunction:: gdsfactory.components.loss_deembedding_ch13_24
.. plot:: :include-source: import gdsfactory as gf c = gf.components.loss_deembedding_ch13_24(pitch=127.0, cross_section='xs_sc', port_name='o1') c.plot()
.. autofunction:: gdsfactory.components.loss_deembedding_ch14_23
.. plot:: :include-source: import gdsfactory as gf c = gf.components.loss_deembedding_ch14_23(pitch=127.0, cross_section='xs_sc', port_name='o1') c.plot()
.. autofunction:: gdsfactory.components.mmi
.. plot:: :include-source: import gdsfactory as gf c = gf.components.mmi(inputs=1, outputs=4, width_taper=1.0, length_taper=10.0, length_mmi=5.5, width_mmi=5, gap_input_tapers=0.25, gap_output_tapers=0.25, cross_section='xs_sc') c.plot()
.. autofunction:: gdsfactory.components.mmi1x2
.. plot:: :include-source: import gdsfactory as gf c = gf.components.mmi1x2(width_taper=1.0, length_taper=10.0, length_mmi=5.5, width_mmi=2.5, gap_mmi=0.25, cross_section='xs_sc') c.plot()
.. autofunction:: gdsfactory.components.mmi1x2_with_sbend
.. plot:: :include-source: import gdsfactory as gf c = gf.components.mmi1x2_with_sbend(with_sbend=True, cross_section='xs_sc') c.plot()
.. autofunction:: gdsfactory.components.mmi2x2
.. plot:: :include-source: import gdsfactory as gf c = gf.components.mmi2x2(width_taper=1.0, length_taper=10.0, length_mmi=5.5, width_mmi=2.5, gap_mmi=0.25, cross_section='xs_sc') c.plot()
.. autofunction:: gdsfactory.components.mmi2x2_with_sbend
.. plot:: :include-source: import gdsfactory as gf c = gf.components.mmi2x2_with_sbend(with_sbend=True, cross_section='xs_sc') c.plot()
.. autofunction:: gdsfactory.components.mmi_90degree_hybrid
.. plot:: :include-source: import gdsfactory as gf c = gf.components.mmi_90degree_hybrid(width=0.5, width_taper=1.7, length_taper=40.0, length_mmi=175.0, width_mmi=10.0, gap_mmi=0.8, cross_section='xs_sc') c.plot()
.. autofunction:: gdsfactory.components.mode_converter
.. plot:: :include-source: import gdsfactory as gf c = gf.components.mode_converter(gap=0.3, length=10, mm_width=1.2, mc_mm_width=1, sm_width=0.5, taper_length=25, cross_section='xs_sc') c.plot()
.. autofunction:: gdsfactory.components.mzi
.. plot:: :include-source: import gdsfactory as gf c = gf.components.mzi(delta_length=10.0, length_y=2.0, length_x=0.1, splitter='mmi1x2', with_splitter=True, port_e1_splitter='o2', port_e0_splitter='o3', port_e1_combiner='o2', port_e0_combiner='o3', nbends=2, cross_section='xs_sc', mirror_bot=False, add_optical_ports_arms=False, add_electrical_ports_bot=True) c.plot()
.. autofunction:: gdsfactory.components.mzi1x2_2x2
.. plot:: :include-source: import gdsfactory as gf c = gf.components.mzi1x2_2x2(delta_length=10.0, length_y=2.0, length_x=0.1, splitter='mmi1x2', with_splitter=True, port_e1_splitter='o2', port_e0_splitter='o3', port_e1_combiner='o3', port_e0_combiner='o4', nbends=2, cross_section='xs_sc', mirror_bot=False, add_optical_ports_arms=False, add_electrical_ports_bot=True) c.plot()
.. autofunction:: gdsfactory.components.mzi2x2_2x2_phase_shifter
.. plot:: :include-source: import gdsfactory as gf c = gf.components.mzi2x2_2x2_phase_shifter(delta_length=10.0, length_y=2.0, length_x=200, straight_x_top='straight_heater_metal', with_splitter=True, port_e1_splitter='o3', port_e0_splitter='o4', port_e1_combiner='o3', port_e0_combiner='o4', nbends=2, cross_section='xs_sc', mirror_bot=False, add_optical_ports_arms=False, add_electrical_ports_bot=True) c.plot()
.. autofunction:: gdsfactory.components.mzi_arm
.. plot:: :include-source: import gdsfactory as gf c = gf.components.mzi_arm(length_y_left=0.8, length_y_right=0.8, length_x=0.1) c.plot()
.. autofunction:: gdsfactory.components.mzi_lattice
.. plot:: :include-source: import gdsfactory as gf c = gf.components.mzi_lattice(coupler_lengths=[10.0, 20.0], coupler_gaps=[0.2, 0.3], delta_lengths=[10.0]) c.plot()
.. autofunction:: gdsfactory.components.mzi_lattice_mmi
.. plot:: :include-source: import gdsfactory as gf c = gf.components.mzi_lattice_mmi(coupler_widths=[None, None], coupler_widths_tapers=[1.0, 1.0], coupler_lengths_tapers=[10.0, 10.0], coupler_lengths_mmis=[5.5, 5.5], coupler_widths_mmis=[2.5, 2.5], coupler_gaps_mmis=[0.25, 0.25], taper_functions_mmis=[{'function': 'taper'}, {'function': 'taper'}], cross_sections_mmis=['xs_sc', 'xs_sc'], delta_lengths=[10.0]) c.plot()
.. autofunction:: gdsfactory.components.mzi_pads_center
.. plot:: :include-source: import gdsfactory as gf c = gf.components.mzi_pads_center(length_x=500, length_y=40, mzi_sig_top='top_r_e2', mzi_gnd_top='top_l_e2', mzi_sig_bot='bot_l_e2', mzi_gnd_bot='bot_r_e2', pad_sig_bot='e1_1_1', pad_sig_top='e3_1_3', pad_gnd_bot='e4_1_2', pad_gnd_top='e2_1_2', delta_length=40.0, cross_section='xs_sc', cross_section_metal='xs_metal_routing', pad_spacing='pad_spacing') c.plot()
.. autofunction:: gdsfactory.components.mzi_phase_shifter
.. plot:: :include-source: import gdsfactory as gf c = gf.components.mzi_phase_shifter(delta_length=10.0, length_y=2.0, length_x=200, straight_x_top='straight_heater_metal', splitter='mmi1x2', with_splitter=True, port_e1_splitter='o2', port_e0_splitter='o3', port_e1_combiner='o2', port_e0_combiner='o3', nbends=2, cross_section='xs_sc', mirror_bot=False, add_optical_ports_arms=False, add_electrical_ports_bot=True) c.plot()
.. autofunction:: gdsfactory.components.mzit
.. plot:: :include-source: import gdsfactory as gf c = gf.components.mzit(w0=0.5, w1=0.45, w2=0.55, dy=2.0, delta_length=10.0, length=1.0, coupler_length1=5.0, coupler_length2=10.0, coupler_gap1=0.2, coupler_gap2=0.3, taper_length=5.0, cross_section='xs_sc') c.plot()
.. autofunction:: gdsfactory.components.mzit_lattice
.. plot:: :include-source: import gdsfactory as gf c = gf.components.mzit_lattice(coupler_lengths=[10.0, 20.0], coupler_gaps=[0.2, 0.3], delta_lengths=[10.0]) c.plot()
.. autofunction:: gdsfactory.components.mzm
.. plot:: :include-source: import gdsfactory as gf c = gf.components.mzm(length_x=500, length_y=2.0, delta_length=0.0, splitter='mmi1x2', combiner='mmi1x2', with_splitter=True, port_e1_splitter='o2', port_e0_splitter='o3', port_e1_combiner='o2', port_e0_combiner='o3', nbends=2, cross_section='xs_sc', mirror_bot=False) c.plot()
.. autofunction:: gdsfactory.components.nxn
.. plot:: :include-source: import gdsfactory as gf c = gf.components.nxn(west=1, east=4, north=0, south=0, wg_width=0.5, layer='WG', wg_margin=1.0) c.plot()
.. autofunction:: gdsfactory.components.octagon
.. plot:: :include-source: import gdsfactory as gf c = gf.components.octagon(sides=8, side_length=10, layer='WG', port_type='placement', snap_to_grid=True) c.plot()
.. autofunction:: gdsfactory.components.optimal_90deg
.. plot:: :include-source: import gdsfactory as gf c = gf.components.optimal_90deg(width=100, num_pts=15, length_adjust=1, layer=[1, 0]) c.plot()
.. autofunction:: gdsfactory.components.optimal_hairpin
.. plot:: :include-source: import gdsfactory as gf c = gf.components.optimal_hairpin(width=0.2, pitch=0.6, length=10, turn_ratio=4, num_pts=50, layer=[1, 0]) c.plot()
.. autofunction:: gdsfactory.components.optimal_step
.. plot:: :include-source: import gdsfactory as gf c = gf.components.optimal_step(start_width=10, end_width=22, num_pts=50, width_tol=0.001, anticrowding_factor=1.2, symmetric=False, layer=[1, 0]) c.plot()
.. autofunction:: gdsfactory.components.pack_doe
.. plot:: :include-source: import gdsfactory as gf c = gf.components.pack_doe(doe='mmi1x2', do_permutations=False) c.plot()
.. autofunction:: gdsfactory.components.pack_doe_grid
.. plot:: :include-source: import gdsfactory as gf c = gf.components.pack_doe_grid(doe='mmi1x2', do_permutations=False, with_text=False) c.plot()
.. autofunction:: gdsfactory.components.pad
.. plot:: :include-source: import gdsfactory as gf c = gf.components.pad(size=[100.0, 100.0], layer='MTOP', port_inclusion=0) c.plot()
.. autofunction:: gdsfactory.components.pad_array
.. plot:: :include-source: import gdsfactory as gf c = gf.components.pad_array(pad='pad', spacing=[150.0, 150.0], columns=6, rows=1, orientation=270) c.plot()
.. autofunction:: gdsfactory.components.pad_array0
.. plot:: :include-source: import gdsfactory as gf c = gf.components.pad_array0(pad='pad', spacing=[150.0, 150.0], columns=1, rows=3, orientation=0) c.plot()
.. autofunction:: gdsfactory.components.pad_array180
.. plot:: :include-source: import gdsfactory as gf c = gf.components.pad_array180(pad='pad', spacing=[150.0, 150.0], columns=1, rows=3, orientation=180) c.plot()
.. autofunction:: gdsfactory.components.pad_array270
.. plot:: :include-source: import gdsfactory as gf c = gf.components.pad_array270(pad='pad', spacing=[150.0, 150.0], columns=6, rows=1, orientation=270) c.plot()
.. autofunction:: gdsfactory.components.pad_array90
.. plot:: :include-source: import gdsfactory as gf c = gf.components.pad_array90(pad='pad', spacing=[150.0, 150.0], columns=6, rows=1, orientation=90) c.plot()
.. autofunction:: gdsfactory.components.pad_gsg_open
.. plot:: :include-source: import gdsfactory as gf c = gf.components.pad_gsg_open(size=[22, 7], layer_metal='MTOP', metal_spacing=5.0, short=False, pad_spacing=150) c.plot()
.. autofunction:: gdsfactory.components.pad_gsg_short
.. plot:: :include-source: import gdsfactory as gf c = gf.components.pad_gsg_short(size=[22, 7], layer_metal='MTOP', metal_spacing=5.0, short=True, pad_spacing=150) c.plot()
.. autofunction:: gdsfactory.components.pad_rectangular
.. plot:: :include-source: import gdsfactory as gf c = gf.components.pad_rectangular(size='pad_size', layer='MTOP', port_inclusion=0) c.plot()
.. autofunction:: gdsfactory.components.pads_shorted
.. plot:: :include-source: import gdsfactory as gf c = gf.components.pads_shorted(columns=8, pad_spacing=150.0, layer_metal='MTOP', metal_width=10) c.plot()
.. autofunction:: gdsfactory.components.pixel
.. plot:: :include-source: import gdsfactory as gf c = gf.components.pixel(size=1.0, layer='WG') c.plot()
.. autofunction:: gdsfactory.components.polarization_splitter_rotator
.. plot:: :include-source: import gdsfactory as gf c = gf.components.polarization_splitter_rotator(width_taper_in=[0.54, 0.69, 0.83], length_taper_in=[4.0, 44.0], width_coupler=[0.9, 0.405], length_coupler=7.0, gap=0.15, width_out=0.54, length_out=14.33, dy=5.0, cross_section='xs_sc') c.plot()
.. autofunction:: gdsfactory.components.qrcode
.. plot:: :include-source: import gdsfactory as gf c = gf.components.qrcode(data='mask01', psize=1, layer='WG') c.plot()
.. autofunction:: gdsfactory.components.ramp
.. plot:: :include-source: import gdsfactory as gf c = gf.components.ramp(length=10.0, width1=5.0, width2=8.0, layer='WG') c.plot()
.. autofunction:: gdsfactory.components.rectangle
.. plot:: :include-source: import gdsfactory as gf c = gf.components.rectangle(size=[4.0, 2.0], layer='WG', centered=False, port_type='electrical', port_orientations=[180, 90, 0, -90], round_corners_east_west=False, round_corners_north_south=False) c.plot()
.. autofunction:: gdsfactory.components.rectangle_with_slits
.. plot:: :include-source: import gdsfactory as gf c = gf.components.rectangle_with_slits(size=[100.0, 200.0], layer='WG', layer_slit='SLAB150', centered=False, slit_size=[1.0, 1.0], slit_spacing=[20, 20], slit_enclosure=10) c.plot()
.. autofunction:: gdsfactory.components.rectangles
.. plot:: :include-source: import gdsfactory as gf c = gf.components.rectangles(size=[4.0, 2.0], offsets=[0, 1], layers=['WG', 'SLAB150'], centered=True) c.plot()
.. autofunction:: gdsfactory.components.rectangular_ring
.. plot:: :include-source: import gdsfactory as gf c = gf.components.rectangular_ring(enclosed_size=[4.0, 2.0], width=0.5, layer='WG', centered=False) c.plot()
.. autofunction:: gdsfactory.components.regular_polygon
.. plot:: :include-source: import gdsfactory as gf c = gf.components.regular_polygon(sides=6, side_length=10, layer='WG', port_type='placement', snap_to_grid=True) c.plot()
.. autofunction:: gdsfactory.components.resistance_meander
.. plot:: :include-source: import gdsfactory as gf c = gf.components.resistance_meander(pad_size=[50.0, 50.0], num_squares=1000, width=1.0, res_layer='MTOP', pad_layer='MTOP', gnd_layer='MTOP') c.plot()
.. autofunction:: gdsfactory.components.resistance_sheet
.. plot:: :include-source: import gdsfactory as gf c = gf.components.resistance_sheet(width=10, layers=['SLAB90', 'NPP'], layer_offsets=[0, 0.2], pad_pitch=100.0, port_orientation1=180, port_orientation2=0) c.plot()
.. autofunction:: gdsfactory.components.ring
.. plot:: :include-source: import gdsfactory as gf c = gf.components.ring(radius=10.0, width=0.5, angle_resolution=2.5, layer='WG', angle=360) c.plot()
.. autofunction:: gdsfactory.components.ring_crow
.. plot:: :include-source: import gdsfactory as gf c = gf.components.ring_crow() c.plot()
.. autofunction:: gdsfactory.components.ring_crow_couplers
.. plot:: :include-source: import gdsfactory as gf c = gf.components.ring_crow_couplers() c.plot()
.. autofunction:: gdsfactory.components.ring_double
.. plot:: :include-source: import gdsfactory as gf c = gf.components.ring_double(gap=0.2, radius=10.0, length_x=0.01, length_y=0.01, cross_section='xs_sc') c.plot()
.. autofunction:: gdsfactory.components.ring_double_heater
.. plot:: :include-source: import gdsfactory as gf c = gf.components.ring_double_heater(gap=0.2, radius=10.0, length_x=1.0, length_y=0.01, cross_section_heater='xs_heater_metal', cross_section_waveguide_heater='xs_sc_heater_metal', cross_section='xs_sc', via_stack_offset=[1, 0]) c.plot()
.. autofunction:: gdsfactory.components.ring_double_pn
.. plot:: :include-source: import gdsfactory as gf c = gf.components.ring_double_pn(add_gap=0.3, drop_gap=0.3, radius=5.0, doping_angle=85, doped_heater=True, doped_heater_angle_buffer=10, doped_heater_layer='NPP', doped_heater_width=0.5, doped_heater_waveguide_offset=2.175) c.plot()
.. autofunction:: gdsfactory.components.ring_double_trenches
.. plot:: :include-source: import gdsfactory as gf c = gf.components.ring_double_trenches(cross_section='xs_rc_with_trenches', top=True, bot=True, right=False, left=False) c.plot()
.. autofunction:: gdsfactory.components.ring_section_based
.. plot:: :include-source: import gdsfactory as gf c = gf.components.ring_section_based(gap=0.3, radius=5.0, add_drop=False, cross_sections_sequence='AB', start_angle=10.0, bus_cross_section='xs_sc', ang_res=0.1) c.plot()
.. autofunction:: gdsfactory.components.ring_single
.. plot:: :include-source: import gdsfactory as gf c = gf.components.ring_single(gap=0.2, radius=10.0, length_x=4.0, length_y=0.6, cross_section='xs_sc', pass_cross_section_to_bend=True) c.plot()
.. autofunction:: gdsfactory.components.ring_single_array
.. plot:: :include-source: import gdsfactory as gf c = gf.components.ring_single_array(spacing=5.0, cross_section='xs_sc') c.plot()
.. autofunction:: gdsfactory.components.ring_single_bend_coupler
.. plot:: :include-source: import gdsfactory as gf c = gf.components.ring_single_bend_coupler(radius=5.0, gap=0.2, coupling_angle_coverage=180.0, length_x=0.6, length_y=0.6, cross_section_inner='xs_sc', cross_section_outer='xs_sc') c.plot()
.. autofunction:: gdsfactory.components.ring_single_dut
.. plot:: :include-source: import gdsfactory as gf c = gf.components.ring_single_dut(gap=0.2, length_x=4, length_y=0, radius=5.0, with_component=True, port_name='o1') c.plot()
.. autofunction:: gdsfactory.components.ring_single_heater
.. plot:: :include-source: import gdsfactory as gf c = gf.components.ring_single_heater(gap=0.2, radius=10.0, length_x=4.0, length_y=0.6, cross_section_waveguide_heater='xs_sc_heater_metal', cross_section='xs_sc', via_stack_offset=[0, 0]) c.plot()
.. autofunction:: gdsfactory.components.ring_single_pn
.. plot:: :include-source: import gdsfactory as gf c = gf.components.ring_single_pn(gap=0.3, radius=5.0, doping_angle=250, doped_heater=True, doped_heater_angle_buffer=10, doped_heater_layer='NPP', doped_heater_width=0.5, doped_heater_waveguide_offset=2.175) c.plot()
.. autofunction:: gdsfactory.components.ring_single_trenches
.. plot:: :include-source: import gdsfactory as gf c = gf.components.ring_single_trenches(cross_section='xs_rc_with_trenches', top=True, bot=True, right=False, left=False) c.plot()
.. autofunction:: gdsfactory.components.seal_ring
.. plot:: :include-source: import gdsfactory as gf c = gf.components.seal_ring(bbox=[[-1.0, -1.0], [3.0, 4.0]], width=10, padding=10.0, with_north=True, with_south=True, with_east=True, with_west=True) c.plot()
.. autofunction:: gdsfactory.components.seal_ring_segmented
.. plot:: :include-source: import gdsfactory as gf c = gf.components.seal_ring_segmented(bbox=[[-1.0, -1.0], [3.0, 4.0]], length_segment=10, width_segment=3, spacing_segment=2, with_north=True, with_south=True, with_east=True, with_west=True, padding=10.0) c.plot()
.. autofunction:: gdsfactory.components.snspd
.. plot:: :include-source: import gdsfactory as gf c = gf.components.snspd(wire_width=0.2, wire_pitch=0.6, size=[10, 8], turn_ratio=4, terminals_same_side=False, layer=[1, 0]) c.plot()
.. autofunction:: gdsfactory.components.spiral_double
.. plot:: :include-source: import gdsfactory as gf c = gf.components.spiral_double(min_bend_radius=10.0, separation=2.0, number_of_loops=3, npoints=1000, cross_section='xs_sc') c.plot()
.. autofunction:: gdsfactory.components.spiral_external_io
.. plot:: :include-source: import gdsfactory as gf c = gf.components.spiral_external_io(N=6, x_inner_length_cutback=300.0, x_inner_offset=0.0, y_straight_inner_top=0.0, xspacing=3.0, yspacing=3.0, cross_section='xs_sc', with_inner_ports=False, y_straight_outer_offset=0.0, inner_loop_spacing_offset=0.0, mirror_straight=False) c.plot()
.. autofunction:: gdsfactory.components.spiral_inner_io
.. plot:: :include-source: import gdsfactory as gf c = gf.components.spiral_inner_io(N=6, x_straight_inner_right=150.0, x_straight_inner_left=50.0, y_straight_inner_top=50.0, y_straight_inner_bottom=10.0, grating_spacing=127.0, waveguide_spacing=3.0, cross_section='xs_sc', asymmetric_cross_section=False) c.plot()
.. autofunction:: gdsfactory.components.spiral_inner_io_fiber_array
.. plot:: :include-source: import gdsfactory as gf c = gf.components.spiral_inner_io_fiber_array(N=6, x_straight_inner_right=150.0, x_straight_inner_left=50.0, y_straight_inner_top=50.0, y_straight_inner_bottom=10.0, grating_spacing=127.0, waveguide_spacing=3.0, length=20000.0, cross_section='xs_sc', cross_section_loopback='xs_sc', asymmetric_cross_section=False) c.plot()
.. autofunction:: gdsfactory.components.spiral_inner_io_fiber_single
.. plot:: :include-source: import gdsfactory as gf c = gf.components.spiral_inner_io_fiber_single(cross_section='xs_sc', x_straight_inner_right=40.0, x_straight_inner_left=75.0, y_straight_inner_top=10.0, y_straight_inner_bottom=0.0, grating_spacing=200.0) c.plot()
.. autofunction:: gdsfactory.components.spiral_meander
.. plot:: :include-source: import gdsfactory as gf c = gf.components.spiral_meander(length=1000.0, spacing=2.0, heater_width=2.5, extension_length=15.0, via_stack='via_stack_heater_mtop', heater_taper_length=10.0, taper_length=10, n=3) c.plot()
.. autofunction:: gdsfactory.components.spiral_racetrack
.. plot:: :include-source: import gdsfactory as gf c = gf.components.spiral_racetrack(min_radius=5.0, straight_length=20.0, spacings=[2, 2, 3, 3, 2, 2], cross_section='xs_sc', with_inner_ports=False, extra_90_deg_bend=False) c.plot()
.. autofunction:: gdsfactory.components.spiral_racetrack_fixed_length
.. plot:: :include-source: import gdsfactory as gf c = gf.components.spiral_racetrack_fixed_length(length=1000, in_out_port_spacing=150, n_straight_sections=8, min_radius=5.0, min_spacing=5.0, cross_section='xs_sc', with_inner_ports=False) c.plot()
.. autofunction:: gdsfactory.components.spiral_racetrack_heater_doped
.. plot:: :include-source: import gdsfactory as gf c = gf.components.spiral_racetrack_heater_doped(straight_length=30, spacing=2, num=8, waveguide_cross_section='xs_sc', heater_cross_section='xs_npp') c.plot()
.. autofunction:: gdsfactory.components.spiral_racetrack_heater_metal
.. plot:: :include-source: import gdsfactory as gf c = gf.components.spiral_racetrack_heater_metal(straight_length=30, spacing=2, num=8, waveguide_cross_section='xs_sc', heater_cross_section='xs_heater_metal') c.plot()
.. autofunction:: gdsfactory.components.splitter_chain
.. plot:: :include-source: import gdsfactory as gf c = gf.components.splitter_chain(columns=3) c.plot()
.. autofunction:: gdsfactory.components.splitter_tree
.. plot:: :include-source: import gdsfactory as gf c = gf.components.splitter_tree(noutputs=4, spacing=[90.0, 50.0], cross_section='xs_sc') c.plot()
.. autofunction:: gdsfactory.components.staircase
.. plot:: :include-source: import gdsfactory as gf c = gf.components.staircase(length_v=5.0, length_h=5.0, rows=4) c.plot()
.. autofunction:: gdsfactory.components.straight
.. plot:: :include-source: import gdsfactory as gf c = gf.components.straight(length=10.0, npoints=2, cross_section='xs_sc') c.plot()
.. autofunction:: gdsfactory.components.straight_array
.. plot:: :include-source: import gdsfactory as gf c = gf.components.straight_array(n=4, spacing=4.0, length=10.0, cross_section='xs_sc') c.plot()
.. autofunction:: gdsfactory.components.straight_heater_doped_rib
.. plot:: :include-source: import gdsfactory as gf c = gf.components.straight_heater_doped_rib(length=320.0, nsections=3, via_stack_metal_size=[10.0, 10.0], via_stack_size=[10.0, 10.0], heater_width=2.0, heater_gap=0.8, via_stack_gap=0.0, width=0.5, xoffset_tip1=0.2, xoffset_tip2=0.4) c.plot()
.. autofunction:: gdsfactory.components.straight_heater_doped_strip
.. plot:: :include-source: import gdsfactory as gf c = gf.components.straight_heater_doped_strip(length=320.0, nsections=3, via_stack_metal_size=[10.0, 10.0], via_stack_size=[10.0, 10.0], heater_width=2.0, heater_gap=0.8, via_stack_gap=0.0, width=0.5, xoffset_tip1=0.2, xoffset_tip2=0.4) c.plot()
.. autofunction:: gdsfactory.components.straight_heater_meander
.. plot:: :include-source: import gdsfactory as gf c = gf.components.straight_heater_meander(length=300.0, spacing=2.0, heater_width=2.5, extension_length=15.0, layer_heater='HEATER', via_stack='via_stack_heater_mtop', heater_taper_length=10.0, straight_widths=[0.8, 0.9, 0.8], taper_length=10) c.plot()
.. autofunction:: gdsfactory.components.straight_heater_meander_doped
.. plot:: :include-source: import gdsfactory as gf c = gf.components.straight_heater_meander_doped(length=300.0, spacing=2.0, cross_section='xs_sc', heater_width=1.5, extension_length=15.0, layers_doping=['P', 'PP', 'PPP'], radius=5.0, straight_widths=[0.8, 0.9, 0.8], taper_length=10) c.plot()
.. autofunction:: gdsfactory.components.straight_heater_metal
.. plot:: :include-source: import gdsfactory as gf c = gf.components.straight_heater_metal(length=320.0, length_undercut_spacing=6.0, length_undercut=30.0, length_straight=0.1, length_straight_input=15.0, cross_section='xs_sc', cross_section_heater='xs_heater_metal', cross_section_waveguide_heater='xs_sc_heater_metal', cross_section_heater_undercut='xs_sc_heater_metal_undercut', with_undercut=False, via_stack='via_stack_heater_mtop', heater_taper_length=5.0) c.plot()
.. autofunction:: gdsfactory.components.straight_heater_metal_90_90
.. plot:: :include-source: import gdsfactory as gf c = gf.components.straight_heater_metal_90_90(length=320.0, length_undercut_spacing=6.0, length_undercut=30.0, length_straight=0.1, length_straight_input=15.0, cross_section='xs_sc', cross_section_heater='xs_heater_metal', cross_section_waveguide_heater='xs_sc_heater_metal', cross_section_heater_undercut='xs_sc_heater_metal_undercut', with_undercut=False, via_stack='via_stack_heater_mtop', port_orientation1=90, port_orientation2=90, heater_taper_length=5.0) c.plot()
.. autofunction:: gdsfactory.components.straight_heater_metal_simple
.. plot:: :include-source: import gdsfactory as gf c = gf.components.straight_heater_metal_simple(length=320.0, cross_section_heater='xs_heater_metal', cross_section_waveguide_heater='xs_sc_heater_metal', via_stack='via_stack_heater_mtop', heater_taper_length=5.0) c.plot()
.. autofunction:: gdsfactory.components.straight_heater_metal_undercut
.. plot:: :include-source: import gdsfactory as gf c = gf.components.straight_heater_metal_undercut(length=320.0, length_undercut_spacing=6.0, length_undercut=30.0, length_straight=0.1, length_straight_input=15.0, cross_section='xs_sc', cross_section_heater='xs_heater_metal', cross_section_waveguide_heater='xs_sc_heater_metal', cross_section_heater_undercut='xs_sc_heater_metal_undercut', with_undercut=True, via_stack='via_stack_heater_mtop', heater_taper_length=5.0) c.plot()
.. autofunction:: gdsfactory.components.straight_heater_metal_undercut_90_90
.. plot:: :include-source: import gdsfactory as gf c = gf.components.straight_heater_metal_undercut_90_90(length=320.0, length_undercut_spacing=6.0, length_undercut=30.0, length_straight=0.1, length_straight_input=15.0, cross_section='xs_sc', cross_section_heater='xs_heater_metal', cross_section_waveguide_heater='xs_sc_heater_metal', cross_section_heater_undercut='xs_sc_heater_metal_undercut', with_undercut=False, via_stack='via_stack_heater_mtop', port_orientation1=90, port_orientation2=90, heater_taper_length=5.0) c.plot()
.. autofunction:: gdsfactory.components.straight_pin
.. plot:: :include-source: import gdsfactory as gf c = gf.components.straight_pin(length=500.0, via_stack_width=10.0, via_stack_spacing=2) c.plot()
.. autofunction:: gdsfactory.components.straight_pin_slot
.. plot:: :include-source: import gdsfactory as gf c = gf.components.straight_pin_slot(length=500.0, via_stack_width=10.0, via_stack_spacing=3.0, via_stack_slab_spacing=2.0) c.plot()
.. autofunction:: gdsfactory.components.straight_pn
.. plot:: :include-source: import gdsfactory as gf c = gf.components.straight_pn(length=2000, via_stack_width=10.0, via_stack_spacing=2) c.plot()
.. autofunction:: gdsfactory.components.straight_rib
.. plot:: :include-source: import gdsfactory as gf c = gf.components.straight_rib(length=10.0, npoints=2) c.plot()
.. autofunction:: gdsfactory.components.straight_rib_tapered
.. plot:: :include-source: import gdsfactory as gf c = gf.components.straight_rib_tapered(length=5.0, port1='o2', port2='o1', port_type='optical', centered=False) c.plot()
.. autofunction:: gdsfactory.components.switch_tree
.. plot:: :include-source: import gdsfactory as gf c = gf.components.switch_tree(noutputs=4, spacing=[500, 100], cross_section='xs_sc') c.plot()
.. autofunction:: gdsfactory.components.taper
.. plot:: :include-source: import gdsfactory as gf c = gf.components.taper(length=10.0, width1=0.5, with_two_ports=True, cross_section='xs_sc', port_names=['o1', 'o2'], port_types=['optical', 'optical']) c.plot()
.. autofunction:: gdsfactory.components.taper_adiabatic
.. plot:: :include-source: import gdsfactory as gf c = gf.components.taper_adiabatic(width1=0.5, width2=5.0, length=0, alpha=1, wavelength=1.55, npoints=200, cross_section='xs_sc') c.plot()
.. autofunction:: gdsfactory.components.taper_cross_section
.. plot:: :include-source: import gdsfactory as gf c = gf.components.taper_cross_section(cross_section2='xs_rc', length=10, npoints=100, linear=False, width_type='sine') c.plot()
.. autofunction:: gdsfactory.components.taper_cross_section_linear
.. plot:: :include-source: import gdsfactory as gf c = gf.components.taper_cross_section_linear(cross_section2='xs_rc', length=10, npoints=2, linear=True, width_type='sine') c.plot()
.. autofunction:: gdsfactory.components.taper_cross_section_parabolic
.. plot:: :include-source: import gdsfactory as gf c = gf.components.taper_cross_section_parabolic(cross_section2='xs_rc', length=10, npoints=101, linear=False, width_type='parabolic') c.plot()
.. autofunction:: gdsfactory.components.taper_cross_section_sine
.. plot:: :include-source: import gdsfactory as gf c = gf.components.taper_cross_section_sine(cross_section2='xs_rc', length=10, npoints=101, linear=False, width_type='sine') c.plot()
.. autofunction:: gdsfactory.components.taper_from_csv
.. plot:: :include-source: import gdsfactory as gf c = gf.components.taper_from_csv(cross_section='xs_sc') c.plot()
.. autofunction:: gdsfactory.components.taper_parabolic
.. plot:: :include-source: import gdsfactory as gf c = gf.components.taper_parabolic(length=20, width1=0.5, width2=5.0, exp=0.5, npoints=100, layer='WG') c.plot()
.. autofunction:: gdsfactory.components.taper_sc_nc
.. plot:: :include-source: import gdsfactory as gf c = gf.components.taper_sc_nc(length=20.0, width1=0.5, width2=0.15, w_slab1=0.15, w_slab2=1.0, layer_wg='WG', layer_slab='WGN', cross_section='xs_sc') c.plot()
.. autofunction:: gdsfactory.components.taper_strip_to_ridge
.. plot:: :include-source: import gdsfactory as gf c = gf.components.taper_strip_to_ridge(length=10.0, width1=0.5, width2=0.5, w_slab1=0.15, w_slab2=6.0, layer_wg='WG', layer_slab='SLAB90', cross_section='xs_sc') c.plot()
.. autofunction:: gdsfactory.components.taper_strip_to_ridge_trenches
.. plot:: :include-source: import gdsfactory as gf c = gf.components.taper_strip_to_ridge_trenches(length=10.0, width=0.5, slab_offset=3.0, trench_width=2.0, trench_layer='DEEP_ETCH', layer_wg='WG', trench_offset=0.1) c.plot()
.. autofunction:: gdsfactory.components.terminator
.. plot:: :include-source: import gdsfactory as gf c = gf.components.terminator(length=50, tapered_width=0.2, doping_layers=['NPP'], doping_offset=1.0) c.plot()
.. autofunction:: gdsfactory.components.text
.. plot:: :include-source: import gdsfactory as gf c = gf.components.text(text='abcd', size=10.0, position=[0, 0], justify='left', layer='WG') c.plot()
.. autofunction:: gdsfactory.components.text_freetype
.. plot:: :include-source: import gdsfactory as gf c = gf.components.text_freetype(text='abcd', size=10, justify='left', layer='WG') c.plot()
.. autofunction:: gdsfactory.components.text_lines
.. plot:: :include-source: import gdsfactory as gf c = gf.components.text_lines(text=['Chip', '01'], size=0.4, layer='WG') c.plot()
.. autofunction:: gdsfactory.components.text_rectangular
.. plot:: :include-source: import gdsfactory as gf c = gf.components.text_rectangular(text='abcd', size=10.0, position=[0.0, 0.0], justify='left', layer='WG') c.plot()
.. autofunction:: gdsfactory.components.text_rectangular_multi_layer
.. plot:: :include-source: import gdsfactory as gf c = gf.components.text_rectangular_multi_layer(text='abcd', layers=['WG', 'M1', 'M2', 'MTOP']) c.plot()
.. autofunction:: gdsfactory.components.triangle
.. plot:: :include-source: import gdsfactory as gf c = gf.components.triangle(x=10, xtop=0, y=20, ybot=0, layer='WG') c.plot()
.. autofunction:: gdsfactory.components.verniers
.. plot:: :include-source: import gdsfactory as gf c = gf.components.verniers(widths=[0.1, 0.2, 0.3, 0.4, 0.5], gap=0.1, xsize=100.0, layer_label='TEXT') c.plot()
.. autofunction:: gdsfactory.components.version_stamp
.. plot:: :include-source: import gdsfactory as gf c = gf.components.version_stamp(labels=['demo_label'], with_qr_code=False, layer='WG', pixel_size=1, text_size=10) c.plot()
.. autofunction:: gdsfactory.components.via_chain
.. plot:: :include-source: import gdsfactory as gf c = gf.components.via_chain(num_vias=100, cols=10, layers_bot=['M1'], layers_top=['M2'], offsets_top=[0], offsets_bot=[0], via_min_enclosure=1.0, min_metal_spacing=1.0, via_xoffset=0.0) c.plot()
.. autofunction:: gdsfactory.components.via_corner
.. plot:: :include-source: import gdsfactory as gf c = gf.components.via_corner(cross_section=[[{'function': 'cross_section', 'settings': {'layer': 'M2', 'width': 10.0, 'port_names': ['e1', 'e2'], 'port_types': ['electrical', 'electrical'], 'radius': None, 'min_length': 5, 'gap': 5}, 'module': 'gdsfactory.cross_section'}, [0, 180]], [{'function': 'cross_section', 'settings': {'layer': 'M3', 'width': 10.0, 'port_names': ['e1', 'e2'], 'port_types': ['electrical', 'electrical'], 'radius': None, 'min_length': 5, 'gap': 5}, 'module': 'gdsfactory.cross_section'}, [90, 270]]], layers_labels=['m2', 'm3']) c.plot()
.. autofunction:: gdsfactory.components.via_cutback
.. plot:: :include-source: import gdsfactory as gf c = gf.components.via_cutback(num_vias=200.0, wire_width=10.0, via_width=5.0, via_spacing=30.0, min_pad_spacing=10.0, pad_size=[100, 100], layer1='HEATER', layer2='M1', via_layer='VIAC', wire_pad_inclusion=2.0) c.plot()
.. autofunction:: gdsfactory.components.via_stack
.. plot:: :include-source: import gdsfactory as gf c = gf.components.via_stack(size=[11.0, 11.0], layers=['M1', 'M2', 'MTOP'], correct_size=True, slot_horizontal=False, slot_vertical=False) c.plot()
.. autofunction:: gdsfactory.components.via_stack_corner45
.. plot:: :include-source: import gdsfactory as gf c = gf.components.via_stack_corner45(width=10, layers=['M1', 'M2', 'MTOP'], correct_size=True) c.plot()
.. autofunction:: gdsfactory.components.via_stack_corner45_extended
.. plot:: :include-source: import gdsfactory as gf c = gf.components.via_stack_corner45_extended(width=3, length=10) c.plot()
.. autofunction:: gdsfactory.components.via_stack_from_rules
.. plot:: :include-source: import gdsfactory as gf c = gf.components.via_stack_from_rules(size=[1.2, 1.2], layers=['M1', 'M2', 'MTOP'], via_min_size=[[0.2, 0.2], [0.2, 0.2]], via_min_gap=[[0.1, 0.1], [0.1, 0.1]], via_min_enclosure=[0.15, 0.25]) c.plot()
.. autofunction:: gdsfactory.components.via_stack_slot
.. plot:: :include-source: import gdsfactory as gf c = gf.components.via_stack_slot(size=[11.0, 11.0], layers=['M1', 'M2'], layer_offsets=[0, 1.0], enclosure=1.0, ysize=0.5, yspacing=2.0) c.plot()
.. autofunction:: gdsfactory.components.via_stack_with_offset
.. plot:: :include-source: import gdsfactory as gf c = gf.components.via_stack_with_offset(layers=['PPP', 'M1'], size=[10, 10]) c.plot()
.. autofunction:: gdsfactory.components.wafer
.. plot:: :include-source: import gdsfactory as gf c = gf.components.wafer(cols=[2, 6, 6, 8, 8, 6, 6, 2], die_name_col_row=False) c.plot()
.. autofunction:: gdsfactory.components.wire_corner
.. plot:: :include-source: import gdsfactory as gf c = gf.components.wire_corner(cross_section='xs_metal_routing') c.plot()
.. autofunction:: gdsfactory.components.wire_corner45
.. plot:: :include-source: import gdsfactory as gf c = gf.components.wire_corner45(cross_section='xs_metal_routing', radius=10, with_corner90_ports=True) c.plot()
.. autofunction:: gdsfactory.components.wire_sbend
.. plot:: :include-source: import gdsfactory as gf c = gf.components.wire_sbend(dx=20.0, dy=10.0) c.plot()
.. autofunction:: gdsfactory.components.wire_straight
.. plot:: :include-source: import gdsfactory as gf c = gf.components.wire_straight(length=10.0, npoints=2, cross_section='xs_metal_routing') c.plot()