gdsfactory.cross_section.pin

Contents

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)

../_images/gdsfactory-cross_section-pin-1.png