Abstract base class for containers which add waveguides to the contents, such as fanout or for routing ports in certain directions
Waveguides are provided as a list of child cells. They will be bundled if bundled = True.
trace_template: ( PCell and _WaveguideTemplate ), *None allowed*
Template for all ports. If None, the waveguide templates of the ports will be used
waveguides: List with type restriction, allowed types: <class ‘ipkiss3.pcell.cell.pcell.PCell’>
waveguides added to the contents
auto_transition: ( bool, bool_, bool or int )
If True, automatically transition all ports of contents to the given trace template. If False, no transitions are applied, which might lead to a discontinuity in the waveguide. Also, if trace_template is None, no transitions are applied.
port_labels: ( List with type restriction, allowed types: <type ‘str’> ), *None allowed*
Labels of the ports to be processed. Set to None to process all ports.
the contents of the container: the child cell
Dictionary for remapping of the port names of the contents to the external ports
The unique name of the pcell
trace_templates: List with type restriction, allowed types: <class ‘ipkiss3.pcell.cell.pcell.PCell’>, locked
list of templates to apply to all ports
bundle: ( PCell ), locked, *None allowed*
bundle of waveguides added to the contents, generated based on the supplied waveguides list
view_name: str and ( Alphanumeric string or Contains _$ )
The name of the view
area_layer_on: ( bool, bool_, bool or int )
When True, the waveguide area will be covered by i3.Rectangles on all cover layers.
routes along which the waveguides will be generated
flatten_contents: ( bool, bool_, bool or int )
if True, it will insert the contents as elements in the layout, rather than as an Instance