mxpic.components.primitives.pic.couplers#
ring_bus_wg#
- 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:
objectring 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#
- 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:
objectADC 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#
- 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_2x2DC 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#
- 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_2x2BS 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#
- 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_2x2MDM 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#
- 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:
objectThis 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#
- 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:
objectDC 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)#