WireSocketWaveguideTransitionFromPortLinear

class picazzo3.traces.socket_wg.WireSocketWaveguideTransitionFromPortLinear

Linear Transition between Wire and Socket Waveguides.

Parameters:
wire_only_wg_template: PCell and _TraceTemplate
modified_start_wg_template: PCell and _TraceTemplate

Modified start waveguide template (using the end_trace_template, but with the dimensions of the start_trace_template)

start_port: _PortInterface

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

end_trace_template: PCell and _TraceTemplate and WireWaveguideTemplate, SocketWaveguideTemplate
start_trace_template: PCell and _TraceTemplate and WireWaveguideTemplate, SocketWaveguideTemplate
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:
wire_only_length: ( float and Real, number and number >= 0 ), *None allowed*

Length of transition where shallow part is built up.

wire_only_cladding_width: float and number > 0

width of the cladding at the end of the wire_only_length

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

width of the wire core at its end point.

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.

We define a PCell with a port on the Layout level (position + angle). Then we use
WireWaveguideTransitionFromPortLinear to connect this port to a transition that creates
a transition to a wire waveguide.
"""
import si_fab.all as pdk  # noqa: F401
from ipkiss3 import all as i3
from picazzo3.traces.wire_wg import WireWaveguideTemplate
from picazzo3.traces.socket_wg import SocketWaveguideTemplate, WireSocketWaveguideTransitionFromPortLinear

wg_start = WireWaveguideTemplate()
wg_start.Layout(core_width=0.45, cladding_width=1.6)
wg_end = SocketWaveguideTemplate()
wg_end.Layout(core_width=0.85, cladding_width=2.0)

p = i3.OpticalPort(name="out", position=(5.0, 0.0), angle=20.0, trace_template=wg_start)

t = WireSocketWaveguideTransitionFromPortLinear(start_port=p, end_trace_template=wg_end)

t_lay = t.Layout(length=15.0, straight_extension=(0.5, 1.0))

t_lay.visualize(annotate=True)
../../../../../_images/picazzo3-traces-socket_wg-WireSocketWaveguideTransitionFromPortLinear-1.png