def spiral_tm(width: float = 0.5, length: float = 20e3) -> Component: """Waveguide Spiral with TM grating_coupler. Args: width: um lenght: um """ c = spiral_inner_io(width=width, length=length, dx=10, dy=10, N=5) c = gf.c.extend_ports(c) cc = add_grating_couplers_with_loopback_fiber_array( component=c, grating_coupler=gf.components.grating_coupler_elliptical_tm, bend=gf.components.bend_circular, ) return cc
def spiral_te(width: float = 0.5, length: int = 2) -> Component: """Spiral with TE grating_coupler Args: width: waveguide width um lenght: cm """ c = gf.c.spiral_inner_io(width=width, length=length) ce = gf.c.extend_ports(c) cc = add_grating_couplers_with_loopback_fiber_array( component=ce, grating_coupler=gf.components.grating_coupler_elliptical_te, bend=gf.components.bend_euler, layer_label=layer_label, component_name=c.name, ) return cc
def spiral_tm(width=0.5, length=20e3): """Spiral with TM grating_coupler Args: width: waveguide width um length: um """ c = gf.c.spiral_inner_io(width=width, length=length, waveguide_spacing=10, N=5) ce = gf.c.extend_ports(c) cc = add_grating_couplers_with_loopback_fiber_array( component=ce, grating_coupler=gf.components.grating_coupler_elliptical_tm, bend=gf.components.bend_euler, layer_label=layer_label, component_name=c.name, ) return cc