Glossary
Terms used throughout this guide.
AREF - Array reference. A GDS construct that places a child cell on a regular grid as a single record, instead of N independent SRefs. lm.ARRAY emits one AREF per call.
Bend - How a route makes a turn. "circular" is a constant-radius arc; "euler" is a clothoid where curvature ramps linearly from zero at entry, peaks mid-bend, and ramps back to zero at exit. Custom bends are 90° PCells.
Bundle - A group of parallel routes. Created with c.Route(...).
Cell - A reusable hierarchical container of geometry, ports, sub-cells, and bookmarks. lm.CELL("Name") creates one.
Datatype - The second number in a (layer, datatype) pair. Foundries often use it to subclassify shapes on the same layer (e.g. layer 9 datatype 0 = drawn silicon, datatype 1 = exclusion).
Direct routing - A route geometry that uses Dubins arcs (arc-straight-arc) instead of Manhattan elbows. Picked automatically for non-cardinal port pairs.
Dubins path - The shortest curve connecting two oriented points subject to a turning radius constraint. Lumicron’s direct router uses Dubins paths to route between non-cardinal ports.
Fanout - The geometry that absorbs a port-pitch mismatch at the entry / exit of a bundle. Manhattan fanout uses staircased U-detours; S-bend fanout uses a 4-point diagonal bridge.
FlexRoute / FlexPath - gdstk’s parameterized polyline-with-bends primitive. Lumicron’s auto-router emits FlexRoute records for most paths.
Handle - The object returned by c.add(...). For sub-cells and arrays it carries placement and port-access methods.
Layer - A (layer_number, datatype) pair that names a process step (silicon, metal-1, oxide, …). PDK layers are Layer objects with design rules attached.
Manhattan routing - A route geometry where every segment is axis-aligned and turns are 90° elbows.
OASIS - A GDS-II successor format, more compact for large layouts. to_gds("foo.oas") writes OASIS.
PCell - A parametric cell. In Lumicron, any function decorated with @lm.pcell is a PCell - its parameters are hashed into the cell name so distinct calls produce distinct GDS cells.
PDK - Process Design Kit. A package of layers, design rules, components, route profiles, and transitions for a specific foundry process.
Bookmark - A named bbox bookmark on a cell. Surfaces in the Lumicron viewer’s Bookmarks panel. Not a GDS label.
Port - A named, oriented connection point on a cell. Carries a position, direction, width, layer, and optional route profile.
BookmarkGroup - A collection of bookmarks sharing a group="..." tag. Surfaces as a collapsible section in the viewer.
Route - A connection between two ports, emitted as one or more FlexRoute records plus optional taper / transition / bend PCells.
Route profile - A cross-section recipe: layers, widths, periodic features. Built with the @route_profile decorator (covered in the PDK Authoring Guide).
S-bend - A two-curve transition that shifts a route laterally without changing its primary direction. c.Route(a, b).go("NE", by=(dx, dy)) lays one.
SRef - Single Reference. A GDS placement of a child cell. c.add(child).Place(...).at(...) emits an SRef.
Section (of a route) - A stretch of a Route() chain between two .go() / .jog() calls (or between the start / a .go(), or a .go() / the end). Section-level chain modifiers (.style(), .radius(), .bend(), .width()) apply to the next section.
Transition - A PCell that bridges two layers (e.g. SiLC-to-SiLN). Registered in a TransitionRegistry; the router consults it when a route crosses layers.