WireRibWaveguideTransitionLinear

class picazzo3.traces.rib_wg.WireRibWaveguideTransitionLinear(*args, **kwargs)

Transition from/to wire (deep etched) to/from rib (shallow etched) waveguides.

You can provide either a wire for the start, and rib for the end, or vica versa. The wire_only_length is the part of the transition in which the rib part is gradually built up. After this length, we abruptly change to the rib waveguide. If the rib part is sufficiently wide in the first part, there should be no reflections at the interface.

Parameters:

end_trace_template: PCell and _TraceTemplate and WireWaveguideTemplate, RibWaveguideTemplate, optional

modified_start_wg_template: PCell and _TraceTemplate, optional

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

start_trace_template: PCell and _TraceTemplate and WireWaveguideTemplate, RibWaveguideTemplate, optional

wire_only_wg_template: PCell and _TraceTemplate, optional

cell_instances: _PCellInstanceDict, optional

name: optional

The unique name of the pcell

reverse_templates: 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

Layout
Parameters:

grids_per_unit: optional

Number of grid cells per design unit

units_per_grid: optional

Ratio of grid cell and design unit

view_name: str, optional

The name of the view

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

width of the wire core at its end point.

wire_only_length: optional

Length of transition where shallow part is built up.

straight_extension: Coord2, optional

tuple: straight extension at start and end of transition

end_position: Coord2, optional

end position of the transition

start_position: Coord2, optional

start position of the transition

grid: float and number > 0, optional

design grid. Extracted by default from TECH.METRICS.GRID

unit: float and number > 0, optional

design unit. Extracted by default from TECH.METRICS.UNIT

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

length of the transition

Examples

"""This example shows how you transition from a wire to a rib waveguide.
"""
from technologies import silicon_photonics
import ipkiss3.all as i3

from picazzo3.traces.wire_wg import WireWaveguideTemplate
from picazzo3.traces.rib_wg import RibWaveguideTemplate
from picazzo3.traces.rib_wg import WireRibWaveguideTransitionLinear

wg_start = WireWaveguideTemplate()
wg_start.Layout(core_width=0.45,
                cladding_width=0.45 + 2*i3.TECH.WG.TRENCH_WIDTH)
wg_end = RibWaveguideTemplate()
wg_end.Layout(core_width=0.9,
              cladding_width=0.9+2*3.0)

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

t = WireRibWaveguideTransitionLinear(start_trace_template=wg_start,
                                     end_trace_template=wg_end,
                                     wire_only_wg_template=wg_deeponly)

t_lay = t.Layout(start_position=(10.0, 0.0),
                 end_position=(30.0, 0.0),
                 wire_only_length=5.0,
                 straight_extension=(0.3, 0.4))
t_lay.visualize()
../../../../_images/picazzo3-traces-rib_wg-WireRibWaveguideTransitionLinear-1.png