AutoTransitionPorts

class picazzo3.container.transition_ports.AutoTransitionPorts(*args, **kwargs)

Pcell containing another PCell with transitions on all (labeled) ports, using AutoTraceTransitionFromPort. The target trace template is defined in trace_template.

Parameters
trace_template: ( PCell and _WaveguideTemplate ), *None allowed*

Template for all ports, defaults to TECH.PCELLS.WG.DEFAULT.When set to None, the waveguide templates of the ports will be used.

transition_database: AutoTransitionDatabase

AutoTransitionDatabase in which the correct transition between the two trace templates can be looked up.

transitions: List with type restriction, allowed types: <class ‘ipkiss3.pcell.cell.pcell.PCell’>

Transitions (of type WaveguideTransitionFromPort) attached the the ports given in port_labels. Should be in the same order as port_labels.

port_labels: ( List with type restriction, allowed types: <class ‘str’> ), *None allowed*

Labels of the ports to be processed. Set to None to process all ports.

contents: PCell

the contents of the container: the child cell

external_port_names: str

Dictionary for remapping of the port names of the contents to the external ports

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
trace_templates: List with type restriction, allowed types: <class ‘ipkiss3.pcell.cell.pcell.PCell’>, locked

list of templates to apply to all ports

Examples

Tapering ports to a wider width:

from technologies import silicon_photonics  # noqa: F401
from picazzo3.filters.ring import RingRect180DropFilter
from picazzo3.traces.wire_wg import WireWaveguideTemplate

my_ring = RingRect180DropFilter()
my_ring.Layout()
from picazzo3.container.transition_ports import AutoTransitionPorts

wire_t = WireWaveguideTemplate()
wire_t.Layout(core_width=0.7, cladding_width=0.7 + 2 * 2.0)
my_ring_tapered_auto = AutoTransitionPorts(
    contents=my_ring, port_labels=["W0", "W1", "E0"], trace_template=wire_t
)
my_ring_tapered_auto_layout = my_ring_tapered_auto.Layout()
my_ring_tapered_auto_layout.visualize(annotate=True)
../../../../_images/picazzo3-container-transition_ports-AutoTransitionPorts-1.png

Views

Layout = <class 'picazzo3.container.transition_ports.cell.AutoTransitionPorts.Layout'>