gdsfactory.cross_section.pin#
- gdsfactory.cross_section.pin(width=0.5, layer='WG', layer_slab='SLAB90', layers_via_stack1=('PPP',), layers_via_stack2=('NPP',), bbox_offsets_via_stack1=(0, -0.2), bbox_offsets_via_stack2=(0, -0.2), via_stack_width=9.0, via_stack_gap=0.55, slab_gap=-0.2, layer_via=None, via_width=1, via_offsets=None, sections=None, **kwargs)[source]#
Rib PIN doped cross_section.
- Parameters:
width (float) – ridge width.
layer (tuple[int, int] | str | int | LayerEnum) – ridge layer.
layer_slab (tuple[int, int] | str | int | LayerEnum) – slab layer.
layers_via_stack1 (Sequence[tuple[int, int] | str | int | LayerEnum]) – list of bot layer.
layers_via_stack2 (Sequence[tuple[int, int] | str | int | LayerEnum]) – list of top layer.
bbox_offsets_via_stack1 (tuple[float, ...]) – for bot.
bbox_offsets_via_stack2 (tuple[float, ...]) – for top.
via_stack_width (float) – in um.
via_stack_gap (float) – offset from via_stack to ridge edge.
slab_gap (float) – extra slab gap (negative: via_stack goes beyond slab).
layer_via (tuple[int, int] | str | int | LayerEnum | None) – for via.
via_width (float) – in um.
via_offsets (tuple[float, ...] | None) – in um.
sections (tuple[Section, ...] | None) – cross_section sections.
kwargs (Any) – cross_section settings.
- Return type:
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
)