# SquarePhCLayout¶

class picazzo3.phc.generic.cell.SquarePhCLayout(*args, **kwargs)

Generic Layouting cell for Photonic Crystals with square holes on a Rectangular lattice. The Layout of the cell is made up of a map, which is a multiline string representing the unit cells on a regular rectangular lattice. The letters in the ‘map’ correspond to the diameters of the holes in the dictionary ‘hole_sizes’.

Parameters: cell_instances: _PCellInstanceDict, optional name: optional The unique name of the pcell

Views

Layout
Parameters: pitch: float and Real, number and number >= 0, optional Lattice constant for a uniform square lattice. This property will be ignored if the property ‘pitches’ is set manually view_name: str, optional The name of the view cells: 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. The default value of this property is automatically calculated from the dictiornary ‘hole_sizes’. Only assign to this property if you want to override this value. If you do this, the property ‘hole_sizes’ will be ignored. hole_sizes: dict, optional dictionary of the hole sizes of the Photonic Crystal. The value should be of the form {‘x’: 0.25, ‘y’: 0.26}. The keys of the dictionary should be characters and each character can be used to identify the unit cell in the map. If the property ‘cells’ is set manually, hole_sizes’ will be ignored. process_wg: ProcessLayer, optional Process of the layer on which the holes should be drawn. purpose: PatternPurpose, optional Purpose of the layer on which the holes should be drawn. 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 pitches: Coord2, optional X and Y pitch of the photonic crystal 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

from technologies import silicon_photonics
from ipkiss3 import all as i3
TECH = i3.TECH
from picazzo3.phc.generic import SquarePhCLayout
my_phc_map = ["AAAAAAAA",
"AAAAAAAA",
"AA AA AA",
"BBBAABBB",
"AAAAAAAA"
]
cell = SquarePhCLayout(name="my_square_phc_layout1")
layout = cell.Layout(pitch = 0.45,
hole_sizes = {"A" : 0.290,
"B" : 0.190}, # two sizes
map = "\n".join(my_phc_map),
zero_line_y = 5, #count lines from the top
ports_coordinates = [((-0.5, 0), 180, TECH.PCELLS.WG.DEFAULT),
((10.5, 0), 0, TECH.PCELLS.WG.DEFAULT)
] # coordinates expressed in lattice pitches
)

layout.visualize()