gdsfactory.cross_section.pin#
- gdsfactory.cross_section.pin(width: float = 0.5, layer: tuple[int, int] | str | int | LayerEnum = 'WG', layer_slab: tuple[int, int] | str | int | LayerEnum = 'SLAB90', layers_via_stack1: Sequence[tuple[int, int] | str | int | LayerEnum] = ('PPP',), layers_via_stack2: Sequence[tuple[int, int] | str | int | LayerEnum] = ('NPP',), bbox_offsets_via_stack1: tuple[float, ...] = (0, -0.2), bbox_offsets_via_stack2: tuple[float, ...] = (0, -0.2), via_stack_width: float = 9.0, via_stack_gap: float = 0.55, slab_gap: float = -0.2, layer_via: tuple[int, int] | str | int | LayerEnum | None = None, via_width: float = 1, via_offsets: tuple[float, ...] | None = None, sections: tuple[Section, ...] | None = None, **kwargs: Any) CrossSection [source]#
Rib PIN doped cross_section.
- Parameters:
width – ridge width.
layer – ridge layer.
layer_slab – slab layer.
layers_via_stack1 – list of bot layer.
layers_via_stack2 – list of top layer.
bbox_offsets_via_stack1 – for bot.
bbox_offsets_via_stack2 – for top.
via_stack_width – in um.
via_stack_gap – offset from via_stack to ridge edge.
slab_gap – extra slab gap (negative: via_stack goes beyond slab).
layer_via – for via.
via_width – in um.
via_offsets – in um.
sections – cross_section sections.
kwargs – cross_section settings.
https://doi.org/10.1364/OE.26.029983
layer |<----width--->| _______________ via_stack_gap slab_gap | |<----------->| <--> ___ ____________________| |__________________________|___ | | | | | | | | P++ | undoped silicon | N++ | | |___|_________|_______________________________________|____________|___| <-----------> via_stack_width <----------------------------------------------------------------------> slab_width
import gdsfactory as gf xs = gf.cross_section.pin(width=0.5, via_stack_gap=1, via_stack_width=1) p = gf.path.arc(radius=10, angle=45) c = p.extrude(xs) c.plot()
(
Source code
,png
,hires.png
,pdf
)