SlottedWireWaveguideTransitionFromPortLinear

class picazzo3.traces.slot_wg.SlottedWireWaveguideTransitionFromPortLinear

Linear transition from/to a slotted waveguide to/from a wire waveguide.

You can provide either a slotted waveguide for the start, and a wire waveguide for the end, or vica versa.

Parameters:
start_port: _PortInterface

the port on which to extract trace template, position and angle

end_trace_template: PCell and _TraceTemplate and WireWaveguideTemplate, SlotWaveguideTemplate
start_trace_template: PCell and _TraceTemplate and WireWaveguideTemplate, SlotWaveguideTemplate
name: String that contains only ISO/IEC 8859-1 (extended ASCII py3) or pure ASCII (py2) characters

The unique name of the pcell

Other Parameters:
reverse_templates: ( bool, bool_ or int ), locked

When True, treat start_trace_template as end_trace_template and vice versa. To use the correct templates, use the _{start/stop}_trace_template properties. This should not be set manually, but calculated by the transition itself.

Views

class Layout
Parameters:
slot_extension_length: float and number > 0
tip_width: float and number > 0
straight_extension: Coord2 and number >= 0

tuple: straight extension at start and end of transition

length: float and Real, number and number >= 0

length of the transition

end_position: Coord2

end position of the transition

start_position: Coord2

start position of the transition

view_name: String that contains only alphanumeric characters from the ASCII set or contains _$. ASCII set is extended on PY3.

The name of the view

Examples

"""This example shows how to append a transition onto a component.
The component has a port, which is associated with a
WireWaveguideTemplate, and we want to taper to a SlotWaveguideTemplate.
"""
import si_fab.all as pdk  # noqa: F401
from picazzo3.traces.wire_wg import WireWaveguideTemplate
from picazzo3.traces.slot_wg import SlotWaveguideTemplate, SlottedWireWaveguideTransitionFromPortLinear
from ipkiss3 import all as i3

wg_start = WireWaveguideTemplate()
wg_start.Layout(core_width=0.6, cladding_width=0.6 + 2 * i3.TECH.WG.TRENCH_WIDTH)

wg_end = SlotWaveguideTemplate()
wg_end.Layout(slot_width=0.15, cladding_width=1.0)

class P(i3.PCell):
    out_trace_template = i3.TraceTemplateProperty()

    class Layout(i3.LayoutView):
        def _generate_ports(self, ports):
            return i3.OpticalPort(name="out", position=(3.0, 3.0), angle=10.0, trace_template=wg_start)

p = P(out_trace_template=wg_start)
p.Layout()

t = SlottedWireWaveguideTransitionFromPortLinear(start_port=(p, "out"), end_trace_template=wg_end)

t_lay = t.Layout(length=15.0, straight_extension=(0.0, 0.2))

t_lay.visualize(annotate=True)
../../../../../_images/picazzo3-traces-slot_wg-SlottedWireWaveguideTransitionFromPortLinear-1.png