Example #1
0
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
Example #2
0
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
Example #3
0
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