gdsfactory.cross_section.pn_with_trenches#
- gdsfactory.cross_section.pn_with_trenches(width: float = 0.5, layer: tuple[int, int] | str | int | LayerEnum = 'WG', layer_trench: tuple[int, int] | str | int | LayerEnum = 'DEEP_ETCH', gap_low_doping: float = 0.0, gap_medium_doping: float | None = 0.5, gap_high_doping: float | None = 1.0, offset_low_doping: float = 0.0, width_doping: float = 8.0, slab_offset: float | None = 0.3, width_slab: float | None = None, width_trench: float = 2.0, layer_p: tuple[int, int] | str | int | LayerEnum | None = 'P', layer_pp: tuple[int, int] | str | int | LayerEnum | None = 'PP', layer_ppp: tuple[int, int] | str | int | LayerEnum | None = 'PPP', layer_n: tuple[int, int] | str | int | LayerEnum | None = 'N', layer_np: tuple[int, int] | str | int | LayerEnum | None = 'NP', layer_npp: tuple[int, int] | str | int | LayerEnum | None = 'NPP', layer_via: tuple[int, int] | str | int | LayerEnum | None = None, width_via: float = 1.0, layer_metal: tuple[int, int] | str | int | LayerEnum | None = None, width_metal: float = 1.0, port_names: tuple[str, str] = ('o1', 'o2'), cladding_layers: Sequence[tuple[int, int]] | None = None, cladding_offsets: Sequence[float] | None = None, cladding_simplify: Sequence[float] | None = None, wg_marking_layer: tuple[int, int] | str | int | LayerEnum | None = None, sections: tuple[Section, ...] | None = None, **kwargs: Any) CrossSection [source]#
Rib PN doped cross_section.
- Parameters:
width – width of the ridge in um.
layer – ridge layer. None adds only ridge.
layer_trench – layer to etch trenches.
gap_low_doping – from waveguide center to low doping. Only used for PIN.
gap_medium_doping – from waveguide center to medium doping. None removes it.
gap_high_doping – from center to high doping. None removes it.
offset_low_doping – from center to junction center.
width_doping – in um.
slab_offset – from the edge of the trench to the edge of the slab.
width_slab – in um.
width_trench – in um.
layer_p – p doping layer.
layer_pp – p+ doping layer.
layer_ppp – p++ doping layer.
layer_n – n doping layer.
layer_np – n+ doping layer.
layer_npp – n++ doping layer.
layer_via – via layer.
width_via – via width in um.
layer_metal – metal layer.
width_metal – metal width in um.
port_names – input and output port names.
cladding_layers – optional list of cladding layers.
cladding_offsets – optional list of cladding offsets.
cladding_simplify – Optional Tolerance value for the simplification algorithm. All points that can be removed without changing the resulting. polygon by more than the value listed here will be removed.
wg_marking_layer – layer to draw over the actual waveguide.
sections – optional list of sections.
kwargs – cross_section settings.
offset_low_doping <------> | | wg junction center center slab_offset | | <------> _____ ______________|_______ ______ ________ | | | | | | | |________| | |_________| | P | | N | width_p | width_n | <-------------------------------->|<--------------------->| <-------> | | N+ | width_trench | | width_n | | |<------------->| |<------------->| gap_medium_doping <------------------------------------------------------------> width_slab
import gdsfactory as gf xs = gf.cross_section.pn_with_trenches(width=0.5, gap_low_doping=0, width_doping=2.) p = gf.path.arc(radius=10, angle=45) c = p.extrude(xs) c.plot()
(
Source code
,png
,hires.png
,pdf
)