- class picazzo3.wg.bend.cell.WgBend90¶
Fixed Waveguide bend of 90 degrees. This is a rounded waveguide, so it takes a rounding algorithm and a bend radius as a parameter, as well as a trace_template.
- trace_template: PCell and _WaveguideTemplate
- 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
- contents: PCell and _Trace, locked
- class Layout¶
- clockwise: ( bool, bool_, bool or int )
clockwise or counterclockwise propagation. By default it is calculated from ‘quadrant’
- quadrant: int and List with value restriction, allowed values: (-4, -3, -2, -1, 1, 2, 3, 4)
quadrant on the circle. (-4=>4)positive numbers is counterclockwise, negative numbers is clockwise
- start_angle: float
start_angle of the bend. By default it is calculated from ‘quadrant’
- cover_layers: List with type restriction, allowed types: <class ‘ipkiss.primitives.layer.Layer’>
layers that can be used to generate additional coverage of the trace (e.g. manhattan corners)
- output_port: TracePort
- shape: Shape
Shape from which the Trace is calculated
- trace_template_for_ports: _TraceTemplate.Layout
Trace template to be used for the ports.
- core_layer: __Layer__
layer used to define the core of the waveguide
- input_port: TracePort
- bend_radii: list<number > 0>
Bend radius for every individual bend.
- remove_straight_angles: ( bool, bool_, bool or int )
Removes the waypoints with straight angles. Set to False if the algorithm uses waypoint-specific information.
- reverse_bends: ( bool, bool_, bool or int )
When set to True, it will generate the bends backwards. This has only effect when the bend algorithm is not symmetric.
- reverse_individual_bends: list<( bool, bool_, bool or int )>
When set to True, it will generate the individual bends backwards. This has only effect when the bend algorithm is not symmetric. Should have length equal to the shape for closed shapes, but equal to shape-2 for open shapes.
Rounding algorithm for every individual bend. Can be circular, spline, … Should have length equal to the shape for closed shapes, but equal to shape-2 for open shapes.
The name of the view
- control_shape_layer: __Layer__
layer on which the control shape is drawn
- draw_control_shape: ( bool, bool_, bool or int )
draws the control shape on top of the waveguide
- contents_transformation: GenericNoDistortTransform
- flatten_contents: ( bool, bool_, bool or int )
if True, it will insert the contents as elements in the layout, rather than as an Instance
- manhattan: ( bool, bool_, bool or int )
Adds rectangular blocks in the bends to avoid as much as possible non-manhattan angles.
- angle_step: float and number > 0
Angle step for rounding.
- bend_radius: float and number > 0
Bend radius for the auto-generated bends.
Rounding algorithm used to generate the bends. Can be circular, spline, ….
- Other Parameters
- angle: locked
angle of the bend (locked at 90 degrees)
- center_line_shape: locked
Automatically calculated shape of the center line of the trace
from technologies import silicon_photonics # noqa: F401 from picazzo3.wg.bend import WgBend90 from picazzo3.traces.wire_wg.trace import WireWaveguideTemplate import ipkiss3.all as i3 wg_t = WireWaveguideTemplate() wg_t.Layout(core_width=0.550, cladding_width=i3.TECH.WG.CLADDING_WIDTH, core_process=i3.TECH.PROCESS.WG) C = WgBend90(trace_template=wg_t) layout = C.Layout(quadrant=-3, bend_radius=20.0) layout.visualize(annotate=True)