gdsfactory.cross_section.pn_with_trenches_asymmetric#
- gdsfactory.cross_section.pn_with_trenches_asymmetric(width=0.5, layer='WG', layer_trench='DEEP_ETCH', gap_low_doping=(0.0, 0.0), gap_medium_doping=(0.5, 0.2), gap_high_doping=(1.0, 0.8), width_doping=8.0, slab_offset=0.3, width_slab=None, width_trench=2.0, layer_p='P', layer_pp='PP', layer_ppp='PPP', layer_n='N', layer_np='NP', layer_npp='NPP', layer_via=None, width_via=1.0, layer_metal=None, width_metal=1.0, port_names=('o1', 'o2'), cladding_layers=None, cladding_offsets=None, wg_marking_layer=None, sections=None, **kwargs)[source]#
Rib PN doped cross_section with asymmetric dimensions left and right.
- Parameters:
width (float) – width of the ridge in um.
layer (tuple[int, int] | str | int | LayerEnum) – ridge layer. None adds only ridge.
layer_trench (tuple[int, int] | str | int | LayerEnum) – layer to etch trenches.
gap_low_doping (float | tuple[float, float]) – from waveguide center to low doping. Only used for PIN. If a list, it considers the first element is [p_side, n_side]. If a number, it assumes the same for both sides.
gap_medium_doping (float | tuple[float, float] | None) – from waveguide center to medium doping. None removes it. If a list, it considers the first element is [p_side, n_side]. If a number, it assumes the same for both sides.
gap_high_doping (float | tuple[float, float] | None) – from center to high doping. None removes it. If a list, it considers the first element is [p_side, n_side]. If a number, it assumes the same for both sides.
width_doping (float) – in um.
slab_offset (float | None) – from the edge of the trench to the edge of the slab.
width_slab (float | None) – in um.
width_trench (float) – in um.
layer_p (tuple[int, int] | str | int | LayerEnum | None) – p doping layer.
layer_pp (tuple[int, int] | str | int | LayerEnum | None) – p+ doping layer.
layer_ppp (tuple[int, int] | str | int | LayerEnum | None) – p++ doping layer.
layer_n (tuple[int, int] | str | int | LayerEnum | None) – n doping layer.
layer_np (tuple[int, int] | str | int | LayerEnum | None) – n+ doping layer.
layer_npp (tuple[int, int] | str | int | LayerEnum | None) – n++ doping layer.
layer_via (tuple[int, int] | str | int | LayerEnum | None) – via layer.
width_via (float) – via width in um.
layer_metal (tuple[int, int] | str | int | LayerEnum | None) – metal layer.
width_metal (float) – metal width in um.
port_names (tuple[str, str]) – input and output port names.
cladding_layers (Sequence[tuple[int, int]] | None) – optional list of cladding layers.
cladding_offsets (Sequence[float] | None) – optional list of cladding offsets.
wg_marking_layer (tuple[int, int] | str | int | LayerEnum | None) – layer to draw over the actual waveguide.
sections (tuple[Section, ...] | None) – optional list of sections.
kwargs (Any) – cross_section settings.
- Return type:
gap_low_doping[1] <------> | | wg junction center center slab_offset | | <------> _____ ______________|_______ ______ ________ | | | | | | | |________| | |_________| | P | | N | width_p | width_n | <-------------------------------->|<--------------------->| <-------> | | N+ | width_trench | | width_n | | |<------------->| |<------------->| gap_medium_doping[1] <------------------------------------------------------------> width_slab
import gdsfactory as gf xs = gf.cross_section.pn_with_trenches_assymmetric(width=0.5, gap_low_doping=0, width_doping=2.) p = gf.path.arc(radius=10, angle=45) c = p.extrude(xs) c.plot()