GenericW1Waveguide¶
-
class
picazzo3.phc.w1.cell.
GenericW1Waveguide
(*args, **kwargs)¶ 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’>, optional
List of unit cells: center row to outside rows (symmetric)
cell_instances: _PCellInstanceDict, optional
name: optional
The unique name of the pcell
Views
-
Layout
¶ Parameters: view_name: str, optional
The name of the view
n_o_periods: int and number > 0, optional
number of lattice periods in the propagation direction of the W1 waveguide
port_offset: float, optional
Horizontal offset of the port width respect to the first and last column of the W1 waveguide.
port_row: optional
Row of the photonic crystal waveguide where the input/output ports are located. If none, it will be the center.
port_width: optional
width of the waveguide ports of the photonic crystal waveguide. If none, a width of sqrt(3)*pitch is taken.
start_even: optional
If true, start the crystal on an even row, if false, on an odd row.
lattice_pitches: Coord2, optional
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.
pitch: float and Real, number and number >= 0, optional
Lattice constant for a uniform triangular lattice. This property will be ignored if ‘lattice_pitches’ or ‘pitches’ are set manually
pitches: optional
Cartesian (X, Y) pitches of the lattice. If this is specified, the properties ‘lattice_pitches’ and ‘pitch’ will be ignored
cells: dict, optional
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
map: str, optional
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
ports_coordinates: optional
list of tuple with (coordinate (in pitches), angle, waveguide_template, [name])
process_hfw: ProcessLayer, optional
process for underetching
purpose_hfw: PatternPurpose, optional
drawing purpose for underetching
zero_line_y: float, optional
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 .
grids_per_unit: locked
Number of grid cells per design unit
units_per_grid: locked
Ratio of grid cell and design unit
grid: float and number > 0, locked
design grid. Extracted by default from TECH.METRICS.GRID
unit: float and number > 0, locked
design unit. Extracted by default from TECH.METRICS.UNIT
Examples
""" We will generate a W1 with a lattice pitch which is slightly different along the horizontal and oblique direction """ from technologies import silicon_photonics from ipkiss3 import all as i3 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()
-