mxpic.components.primitives.pic.couplers#

ring_bus_wg#

../../../../_images/ring_bus_wg.png
class mxpic.components.primitives.pic.couplers.ring_bus_wg(xs='strip', R_cp=20, w_bus=0.5, bend_DC=True, w_wg=0.5, dLc=10, dAc=10, euler_transistion=False, dL_trans=10, dA_trans=30, R_max_trans=100, w_trans=0.5, euler_anti_bend=False, R_max_anti=100, R_min_anti=10, A_anti=None, res=0.1, wg_Ltp=5, dL_p2p=None, sharp_patch=True, show_pins=False, end_patch=False, clothoid_order=1)#

Bases: object

ring bus wg primitive component.

This component builds the ring bus wg layout cell.

Parameters:
  • xs (str, optional) – Layer or cross-section name used by the device. Default is ‘strip’.

  • R_cp (int, optional) – Radius parameter in microns. Default is 20.

  • w_bus (float, optional) – Width parameter in microns. Default is 0.5.

  • bend_DC (bool, optional) – Value for the bend_DC parameter. Default is True.

  • w_wg (float, optional) – Width parameter in microns. Default is 0.5.

  • dLc (float, optional) – Value for the dLc parameter. Default is 10.

  • dAc (float, optional) – Value for the dAc parameter. Default is 10.

  • euler_transistion (bool, optional) – Value for the euler_transistion parameter. Default is False.

  • dL_trans (float, optional) – Value for the dL_trans parameter. Default is 10.

  • dA_trans (float, optional) – Value for the dA_trans parameter. Default is 30.

  • R_max_trans (int, optional) – Radius parameter in microns. Default is 100.

  • w_trans (float, optional) – Width parameter in microns. Default is 0.5.

  • euler_anti_bend (bool, optional) – Value for the euler_anti_bend parameter. Default is False.

  • R_max_anti (int, optional) – Radius parameter in microns. Default is 100.

  • R_min_anti (int, optional) – Radius parameter in microns. Default is 10.

  • A_anti (Any, optional) – Angle parameter in degrees. Default is None.

  • res (float, optional) – Value for the res parameter. Default is 0.1.

  • wg_Ltp (int, optional) – Value for the wg_Ltp parameter. Default is 5.

  • dL_p2p (Optional[float], optional) – Value for the dL_p2p parameter. Default is None.

  • sharp_patch (bool, optional) – Whether to add geometry patches for sharp corners or cladding continuity. Default is True.

  • show_pins (bool, optional) – Whether to draw pin markers in the generated layout. Default is False.

  • end_patch (bool, optional) – Value for the end_patch parameter. Default is False.

  • clothoid_order (int, optional) – Value for the clothoid_order parameter. Default is 1.

generate_gds(sharp_patch, show_pins=False)#

ADC_STD_2x2#

../../../../_images/ADC_STD_2x2.png
class mxpic.components.primitives.pic.couplers.ADC_STD_2x2(name=None, xs='strip', wu0=0.45, wu1=0.61, wu_in=0.45, wu_out=0.8, wd0=0.33, wd1=0.2, wd_in=0.45, wd_out=0.8, Lu=33, Ld=33, angle=20, g0=0.2, g1=0.2, sbend_type='euler', Rmax=None, Rmin=5, Ru0=0, Ru1=20, Rd0=20, Rd1=0, tp_angle=2, sharp_patch=True, show_pins=False, euler_points=64, res=0.1)#

Bases: object

ADC STD 2x2 primitive component.

This component builds the ADC STD 2x2 layout cell.

Parameters:
  • name (Optional[str], optional) – Unique identifier for the device cell. Default is None.

  • xs (str, optional) – Layer or cross-section name used by the device. Default is ‘strip’.

  • wu0 (float, optional) – Value for the wu0 parameter. Default is 0.45.

  • wu1 (float, optional) – Value for the wu1 parameter. Default is 0.61.

  • wu_in (float, optional) – Value for the wu_in parameter. Default is 0.45.

  • wu_out (float, optional) – Value for the wu_out parameter. Default is 0.8.

  • wd0 (float, optional) – Value for the wd0 parameter. Default is 0.33.

  • wd1 (float, optional) – Value for the wd1 parameter. Default is 0.2.

  • wd_in (float, optional) – Value for the wd_in parameter. Default is 0.45.

  • wd_out (float, optional) – Value for the wd_out parameter. Default is 0.8.

  • Lu (int, optional) – Length parameter in microns. Default is 33.

  • Ld (int, optional) – Length parameter in microns. Default is 33.

  • angle (float, optional) – Angle parameter in degrees. Default is 20.

  • g0 (float, optional) – Value for the g0 parameter. Default is 0.2.

  • g1 (float, optional) – Value for the g1 parameter. Default is 0.2.

  • sbend_type (str, optional) – Value for the sbend_type parameter. Default is ‘euler’.

  • Rmax (Any, optional) – Radius parameter in microns. Default is None.

  • Rmin (int, optional) – Radius parameter in microns. Default is 5.

  • Ru0 (int, optional) – Radius parameter in microns. Default is 0.

  • Ru1 (int, optional) – Radius parameter in microns. Default is 20.

  • Rd0 (int, optional) – Radius parameter in microns. Default is 20.

  • Rd1 (int, optional) – Radius parameter in microns. Default is 0.

  • tp_angle (int, optional) – Value for the tp_angle parameter. Default is 2.

  • sharp_patch (bool, optional) – Whether to add geometry patches for sharp corners or cladding continuity. Default is True.

  • show_pins (bool, optional) – Whether to draw pin markers in the generated layout. Default is False.

  • euler_points (int, optional) – Value for the euler_points parameter. Default is 64.

  • res (float, optional) – Value for the res parameter. Default is 0.1.

generate_err(err=0.02)#
generate_gds(err=0, show_pins=False)#
generate_test_gds(gc, dX_gc2gc=400, dY_gc2gc=80, sharp_patch=True)#

DC#

../../../../_images/DC.png
class mxpic.components.primitives.pic.couplers.DC(name=None, xs='strip', w_cp=0.45, w_wg=0.45, L_cp=30, angle=20, gap=0.2, sbend_type='circular', Rmax=None, Rmin=5, R0=10, tp_angle=2, sharp_patch=True, show_pins=False)#

Bases: ADC_STD_2x2

DC primitive component.

This component builds the DC layout cell.

Parameters:
  • name (Optional[str], optional) – Unique identifier for the device cell. Default is None.

  • xs (str, optional) – Layer or cross-section name used by the device. Default is ‘strip’.

  • w_cp (float, optional) – Width parameter in microns. Default is 0.45.

  • w_wg (float, optional) – Width parameter in microns. Default is 0.45.

  • L_cp (float, optional) – Length parameter in microns. Default is 30.

  • angle (float, optional) – Angle parameter in degrees. Default is 20.

  • gap (float, optional) – Spacing or gap parameter in microns. Default is 0.2.

  • sbend_type (str, optional) – Value for the sbend_type parameter. Default is ‘circular’.

  • Rmax (float, optional) – Radius parameter in microns. Default is None.

  • Rmin (float, optional) – Radius parameter in microns. Default is 5.

  • R0 (float, optional) – Radius parameter in microns. Default is 10.

  • tp_angle (float, optional) – Value for the tp_angle parameter. Default is 2.

  • sharp_patch (bool, optional) – Whether to add geometry patches for sharp corners or cladding continuity. Default is True.

  • show_pins (bool, optional) – Whether to draw pin markers in the generated layout. Default is False.

generate_test_gds(gc, dX_gc2gc=300, dY_gc2gc=40, sharp_patch=True)#

BS_tdc#

../../../../_images/BS_tdc.png
class mxpic.components.primitives.pic.couplers.BS_tdc(name=None, xs='strip', wa0=0.35, wa1=0.45, wb0=0.55, wb1=0.45, w_wg=0.45, gap=0.2, Lt=20, R0=30, angle=15, sbend_type='circle')#

Bases: ADC_STD_2x2

BS tdc primitive component.

This component builds the BS tdc layout cell.

Parameters:
  • name (Optional[str], optional) – Unique identifier for the device cell. Default is None.

  • xs (str, optional) – Layer or cross-section name used by the device. Default is ‘strip’.

  • wa0 (float, optional) – Value for the wa0 parameter. Default is 0.35.

  • wa1 (float, optional) – Value for the wa1 parameter. Default is 0.45.

  • wb0 (float, optional) – Value for the wb0 parameter. Default is 0.55.

  • wb1 (float, optional) – Value for the wb1 parameter. Default is 0.45.

  • w_wg (float, optional) – Width parameter in microns. Default is 0.45.

  • gap (float, optional) – Spacing or gap parameter in microns. Default is 0.2.

  • Lt (float, optional) – Length parameter in microns. Default is 20.

  • R0 (float, optional) – Radius parameter in microns. Default is 30.

  • angle (float, optional) – Angle parameter in degrees. Default is 15.

  • sbend_type (str, optional) – Value for the sbend_type parameter. Default is ‘circle’.

MDM#

../../../../_images/MDM.png
class mxpic.components.primitives.pic.couplers.MDM(name=None, xs='strip', wb0=0.45, wb1=0.61, wb_in=0.45, wb_out=0.88, w_wg=0.45, w0=0.33, w1=0.2, gap0=0.2, Lt_bus=20, R0=40, angle=22.5, Lt_cp=None, gap1=None, Lb0=None, symmetric_BUS=True, single_end=True, Rmin=8)#

Bases: ADC_STD_2x2

MDM primitive component.

This component builds the MDM layout cell.

Parameters:
  • name (Optional[str], optional) – Unique identifier for the device cell. Default is None.

  • xs (str, optional) – Layer or cross-section name used by the device. Default is ‘strip’.

  • wb0 (float, optional) – Value for the wb0 parameter. Default is 0.45.

  • wb1 (float, optional) – Value for the wb1 parameter. Default is 0.61.

  • wb_in (float, optional) – Value for the wb_in parameter. Default is 0.45.

  • wb_out (float, optional) – Value for the wb_out parameter. Default is 0.88.

  • w_wg (float, optional) – Width parameter in microns. Default is 0.45.

  • w0 (float, optional) – Width parameter in microns. Default is 0.33.

  • w1 (float, optional) – Width parameter in microns. Default is 0.2.

  • gap0 (float, optional) – Spacing or gap parameter in microns. Default is 0.2.

  • Lt_bus (float, optional) – Length parameter in microns. Default is 20.

  • R0 (float, optional) – Radius parameter in microns. Default is 40.

  • angle (float, optional) – Angle parameter in degrees. Default is 22.5.

  • Lt_cp (float, optional) – Length parameter in microns. Default is None.

  • gap1 (float, optional) – Spacing or gap parameter in microns. Default is None.

  • Lb0 (float, optional) – Length parameter in microns. Default is None.

  • symmetric_BUS (bool, optional) – Value for the symmetric_BUS parameter. Default is True.

  • single_end (bool, optional) – Value for the single_end parameter. Default is True.

  • Rmin (float, optional) – Radius parameter in microns. Default is 8.

generate_test_gds(gc, dX_gc2gc=300, dY_gc2gc=40, sharp_patch=True)#

DC_bend#

../../../../_images/DC_bend.png
class mxpic.components.primitives.pic.couplers.DC_bend(name=None, w_in=0.45, w_out=0.45, gap=0.2, r_in=40, theta_arc=30, w_wg=0.45, theta_ext=15, xs_wg='strip', sharp_patch=True, show_pins=False)#

Bases: object

This is a class for bend directional coupler for broadband and fabrication tolerant power splitting.

Parameters:
  • name (Optional[str], optional) – Unique identifier for the device cell. Default is None.

  • w_in (float, optional) – Width parameter in microns. Default is 0.45.

  • w_out (float, optional) – Width parameter in microns. Default is 0.45.

  • gap (float, optional) – Spacing or gap parameter in microns. Default is 0.2.

  • r_in (float, optional) – Radius parameter in microns. Default is 40.

  • theta_arc (float, optional) – Angle parameter in degrees. Default is 30.

  • w_wg (float, optional) – Width parameter in microns. Default is 0.45.

  • theta_ext (float, optional) – Angle parameter in degrees. Default is 15.

  • xs_wg (str, optional) – Layer or cross-section name used by the device. Default is ‘strip’.

  • sharp_patch (bool, optional) – Whether to add geometry patches for sharp corners or cladding continuity. Default is True.

  • show_pins (bool, optional) – Whether to draw pin markers in the generated layout. Default is False.

generate_gds(cellname='')#

Generate GDS.

generate_test_gds(gc, dX_gc2gc=300, dY_gc2gc=40, sharp_patch=True)#

DC_pX_3sg#

../../../../_images/DC_pX_3sg.png
class mxpic.components.primitives.pic.couplers.DC_pX_3sg(name=None, xs_wg='strip', Lc1=10, Lp1=5, Lc2=10, Lt=1, w_cp=0.5, dw=0.1, gap=0.2, R0=10, A=15, w_wg=0.45, pX_type='symmetric', port_symmetric=True, sharp_patch=True)#

Bases: object

DC pX 3sg primitive component.

This component builds the DC pX 3sg layout cell.

Parameters:
  • name (Optional[str], optional) – Unique identifier for the device cell. Default is None.

  • xs_wg (str, optional) – Layer or cross-section name used by the device. Default is ‘strip’.

  • Lc1 (float, optional) – Length parameter in microns. Default is 10.

  • Lp1 (float, optional) – Length parameter in microns. Default is 5.

  • Lc2 (float, optional) – Length parameter in microns. Default is 10.

  • Lt (float, optional) – Length parameter in microns. Default is 1.

  • w_cp (float, optional) – Width parameter in microns. Default is 0.5.

  • dw (float, optional) – Value for the dw parameter. Default is 0.1.

  • gap (float, optional) – Spacing or gap parameter in microns. Default is 0.2.

  • R0 (float, optional) – Radius parameter in microns. Default is 10.

  • A (float, optional) – Angle parameter in degrees. Default is 15.

  • w_wg (float, optional) – Width parameter in microns. Default is 0.45.

  • pX_type (str, optional) – Value for the pX_type parameter. Default is ‘symmetric’.

  • port_symmetric (bool, optional) – Value for the port_symmetric parameter. Default is True.

  • sharp_patch (bool, optional) – Whether to add geometry patches for sharp corners or cladding continuity. Default is True.

generate_gds(err=0)#
generate_test_gds(gc, dX_gc2gc=300, dY_gc2gc=40, sharp_patch=True)#