Source code for gdsfactory.components.grating_coupler_loss_fiber_single
from __future__ import annotations
from functools import partial
import gdsfactory as gf
from gdsfactory.cell import cell
from gdsfactory.component import Component
from gdsfactory.components.grating_coupler_elliptical_trenches import grating_coupler_te
from gdsfactory.typings import ComponentSpec, CrossSectionSpec
[docs]
@cell
def grating_coupler_loss_fiber_single(
grating_coupler: ComponentSpec = grating_coupler_te,
cross_section: CrossSectionSpec = "xs_sc",
**kwargs,
) -> Component:
"""Returns grating coupler test structure.
for testing with single fiber input/output
Args:
grating_coupler: function.
cross_section: spec.
Keyword Args:
layer_label: for test and measurement label.
min_input_to_output_spacing: spacing from input to output fiber.
max_y0_optical: None.
get_input_labels_function: function to get input labels for grating couplers.
optical_routing_type: None: autoselection, 0: no extension.
get_input_label_text_function: for the grating couplers input label.
get_input_label_text_loopback_function: for the loopbacks input label.
"""
c = gf.Component()
grating_coupler = gf.get_component(grating_coupler)
_ = c << gf.routing.add_fiber_single(
component=gf.components.straight(cross_section=cross_section),
grating_coupler=grating_coupler,
cross_section=cross_section,
with_loopback=False,
component_name=grating_coupler.name,
**kwargs,
)
c.copy_child_info(grating_coupler)
return c
if __name__ == "__main__":
xs_strip2 = partial(gf.cross_section.strip, layer=(2, 0))
c = grating_coupler_loss_fiber_single(
min_input_to_output_spacing=300, cross_section=xs_strip2
)
c.show(show_ports=True)