GenericW1Waveguide
- class picazzo3.phc.w1.cell.GenericW1Waveguide
A generic W1 Photonic Crystal waveguide. The unit cells can be specified as PCells, going outward as from the center line.
- Parameters:
- unit_cells: List with type restriction, allowed types: <class ‘ipkiss3.pcell.cell.pcell.PCell’>
List of unit cells: center row to outside rows (symmetric)
- name: String that contains only ISO/IEC 8859-1 (extended ASCII py3) or pure ASCII (py2) characters
The unique name of the pcell
Views
- class Layout
- Parameters:
- n_o_periods: int and number > 0
number of lattice periods in the propagation direction of the W1 waveguide
- start_even: ( bool, bool_ or int )
If true, start the crystal on an even row, if false, on an odd row.
- port_offset: float
Horizontal offset of the port width respect to the first and last column of the W1 waveguide.
- port_width: ( float and number > 0 ), *None allowed*
width of the waveguide ports of the photonic crystal waveguide. If none, a width of sqrt(3)*pitch is taken.
- port_row: ( int and number >= 0 ), *None allowed*
Row of the photonic crystal waveguide where the input/output ports are located. If none, it will be the center.
- pitch: float and Real, number and number >= 0
Lattice constant for a uniform triangular lattice. This property will be ignored if ‘lattice_pitches’ or ‘pitches’ are set manually
- lattice_pitches: Coord2 and number >= 0
Lattice constants along the horizontal and the oblique direction. Choose identical values for a regular grid. If ‘pitches’ is manually set, this property will be ignored. If this property is set, the property ‘pitch’ will be ignored.
- ports_coordinates:
list of tuple with (coordinate (in pitches), angle, waveguide_template, [name])
- zero_line_y: float
line in the map which corresponds to the coordinate y=0. This can be a fractional number, and the unit is relative to pitches.y .
- purpose_hfw: PatternPurpose
drawing purpose for underetching
- process_hfw: ProcessLayer
process for underetching
- map: str and String that contains only ISO/IEC 8859-1 (extended ASCII py3) or pure ASCII (py2) characters
Map of the photonic crystal. This property accepts a multi-line string. Every character in the string represents a unit cell of the photonic crystal, which can be found in the property cells
- cells: dict
dictionary of Unit Cells for a Photonic Crystal. The value should be of the form {‘x’: cell1, ‘y’: cell2}. The keys of the dictionary should be characters and each character can be used to identify the unit cell in the map
- pitches:
Cartesian (X, Y) pitches of the lattice. If this is specified, the properties ‘lattice_pitches’ and ‘pitch’ will be ignored
- 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
"""We will generate a W1 with a lattice pitch which is slightly different along the horizontal and oblique direction """ import si_fab.all as pdk # noqa: F401 from picazzo3.phc.generic import DodecHole from picazzo3.phc.w1 import GenericW1Waveguide radii = [0.11, 0.11, 0.12, 0.12] # inner holes are smaller than outer holes centers = [(0.10, 0), (0, 0), (0, 0), (0, 0)] # the inner rows are slightly displaced unit_cells = [DodecHole().Layout(center=c, radius=r, angle=0) for (r, c) in zip(radii, centers)] print(unit_cells) # add them together, with an empty cell in the center unit_cells = unit_cells[::-1] + [None] + unit_cells cell = GenericW1Waveguide(name="my_generic_phc_waveguide1", unit_cells=unit_cells) layout = cell.Layout( unit_cells=unit_cells, lattice_pitches=(0.43, 0.45), n_o_periods=22, ) layout.visualize(annotate=True)