Folder structure simplfied

This commit is contained in:
=
2026-06-06 16:43:26 +08:00
parent 8da92ced57
commit 8a17f1dde0
138 changed files with 10429 additions and 1432 deletions
+721 -26
View File
@@ -4,7 +4,7 @@ import numpy as np
from ...basic import __xs_exist__
from ...structures import *
from ...geometry import *
import nazca.interconnects as IC
class Route(IC.Interconnect):
@@ -21,9 +21,42 @@ from ...basic import __xs_exist__
class SOCR():
'''
This is the class for normal Strong Over Coupled Ring for phase modulation.
'''
"""
This is the class for normal Strong Over Coupled Ring for phase modulation.
Parameters
----------
w_wg : float, optional
Width parameter in microns. Default is 0.45.
w_cp : float, optional
Width parameter in microns. Default is 0.45.
w_ring : float, optional
Width parameter in microns. Default is 0.45.
r_ring : float, optional
Radius parameter in microns. Default is 6.
gap : float, optional
Spacing or gap parameter in microns. Default is 0.2.
theta_arc : float, optional
Angle parameter in degrees. Default is 100.
Ls : float, optional
Length parameter in microns. Default is 2.
xs_ring : str, optional
Layer or cross-section name used by the device. Default is 'strip'.
w_heater : float, optional
Width parameter in microns. Default is 1.5.
xs_heater : str, optional
Layer or cross-section name used by the device. Default is 'heater'.
w_metal : float, optional
Width parameter in microns. Default is 6.
xs_metal : str, optional
Layer or cross-section name used by the device. Default is 'metal'.
via_h2m : Any, optional
Via definition used between heater and metal layers. 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 True.
"""
def __init__(
self,
@@ -365,22 +398,65 @@ class SOCR():
return C
class SOCR_Cband(SOCR):
'''
This is the class for already designed SOCR with multimode waveguide to suppres the phase noise.
'''
def __init__(self, w_wg : float = 0.45, show_pins : bool = True) -> None:
"""
This is the class for already designed SOCR with multimode waveguide to suppres the phase noise.
Parameters
----------
w_wg : float, optional
Width parameter in microns. Default is 0.45.
via_h2m : Any, optional
Via definition used between heater and metal layers. Default is None.
show_pins : bool, optional
Whether to draw pin markers in the generated layout. Default is True.
"""
def __init__(self, w_wg : float = 0.45, via_h2m: Any = None, show_pins : bool = True) -> None:
super().__init__(
w_wg=w_wg,
w_cp=0.45, w_ring=0.8, r_ring=5.6, gap=0.18, theta_arc=150, Ls=1, w_heater=1.5,
via_h2m=via_h2m,
show_pins=show_pins
)
class SOCR_Adiabatic(SOCR):
'''
This is the class for adiabatic Strong Over Coupled Ring(SOCR) for phase modulation.
See detail in:
[1] Liang, G., Huang, H., Mohanty, A. et al. Robust, efficient, micrometre-scale phase modulators at visible wavelengths. Nat. Photon. 15, 908913 (2021).
'''
"""
This is the class for adiabatic Strong Over Coupled Ring(SOCR) for phase modulation.
Parameters
----------
w_wg : float, optional
Width parameter in microns. Default is 0.45.
w_cp : float, optional
Width parameter in microns. Default is 0.45.
w_in : float, optional
Width parameter in microns. Default is 0.45.
w_out : float, optional
Width parameter in microns. Default is 2.
r_out : float, optional
Radius parameter in microns. Default is 6.
gap : float, optional
Spacing or gap parameter in microns. Default is 0.2.
theta_arc : float, optional
Angle parameter in degrees. Default is 100.
Ls : float, optional
Length parameter in microns. Default is 2.
xs_ring : str, optional
Layer or cross-section name used by the device. Default is 'strip'.
w_heater : float, optional
Width parameter in microns. Default is 1.5.
xs_heater : str, optional
Layer or cross-section name used by the device. Default is 'heater'.
w_metal : float, optional
Width parameter in microns. Default is 6.
xs_metal : str, optional
Layer or cross-section name used by the device. Default is 'metal'.
via_h2m : Any, optional
Via definition used between heater and metal layers. 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 True.
"""
def __init__(
self,
@@ -588,27 +664,122 @@ class SOCR_Adiabatic(SOCR):
return super().generate_gds()
class SOCR_Adiabatic_Cband(SOCR_Adiabatic):
'''
This is already designed SOCR at C-band.
"""
This is already designed SOCR at C-band.
Parameters
----------
w_wg : float, optional
Width parameter in microns. Default is 0.45.
via_h2m : Any, optional
Via definition used between heater and metal layers. Default is None.
show_pins : bool, optional
Whether to draw pin markers in the generated layout. Default is True.
"""
Args:
- Gap: 200nm
- w_wg: 450nm
- w_in: 510nm
- w_out: 2um
- gap: 200nm
- theta_arc: 120degree
- Ls: 1um
'''
def __init__(self, w_wg : float=0.45, show_pins : bool = True) -> None:
def __init__(self, w_wg : float=0.45, via_h2m: Any = None, show_pins : bool = True) -> None:
super().__init__(
w_wg=w_wg,
w_cp=0.45, w_in=0.51, w_out=2, r_out=9, gap=0.2, theta_arc=120, Ls=1,
via_h2m=via_h2m,
show_pins=show_pins
)
class MRR_AED(AED_ring):
"""
MRR AED primitive component.
This component builds the MRR AED layout cell.
Parameters
----------
name : Optional[str], optional
Unique identifier for the device cell. Default is None.
ORx : float, optional
Value for the ORx parameter. Default is 10.
ORy : float, optional
Value for the ORy parameter. Default is 10.
IRx : float, optional
Value for the IRx parameter. Default is 10 - 0.45.
IRy : float, optional
Value for the IRy parameter. Default is 10 - 0.5.
gap1 : float, optional
Spacing or gap parameter in microns. Default is 0.2.
gap2 : float, optional
Spacing or gap parameter in microns. Default is 0.2.
w1_bus : float, optional
Value for the w1_bus parameter. Default is 0.45.
w2_bus : float, optional
Value for the w2_bus parameter. Default is 0.45.
R1_cp : Any, optional
Radius parameter in microns. Default is None.
R2_cp : Any, optional
Radius parameter in microns. Default is None.
A1_cp : int, optional
Angle parameter in degrees. Default is 0.
A2_cp : int, optional
Angle parameter in degrees. Default is 0.
offset_X : float, optional
Value for the offset_X parameter. Default is 0.
offset_Y : float, optional
Value for the offset_Y parameter. Default is 0.
w_wg : float, optional
Width parameter in microns. Default is 0.45.
R1_att : float, optional
Radius parameter in microns. Default is 20.
R2_att : float, optional
Radius parameter in microns. Default is 20.
R2_att_min : float, optional
Radius parameter in microns. Default is 10.
R1_att_min : float, optional
Radius parameter in microns. Default is 10.
A1_att : float, optional
Angle parameter in degrees. Default is 30.
A2_att : float, optional
Angle parameter in degrees. Default is 20.
Ltp_bus : int, optional
Length parameter in microns. Default is 10.
dL_p2p : Optional[float], optional
Value for the dL_p2p parameter. Default is None.
L_tilt : int, optional
Length parameter in microns. Default is 10.
xs_ring : 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.
cell_xs_transition : Any, optional
Cell or component dependency used by this device. Default is None.
Euler_trasition : bool, optional
Value for the Euler_trasition parameter. Default is False.
show_pins : bool, optional
Whether to draw pin markers in the generated layout. Default is False.
xs_heater : str, optional
Layer or cross-section name used by the device. Default is None.
w_heater : float, optional
Width parameter in microns. Default is 0.
xs_metal : str, optional
Layer or cross-section name used by the device. Default is None.
w_metal : float, optional
Width parameter in microns. Default is 0.
via_h2m : Any, optional
Via definition used between heater and metal layers. Default is None.
isl : Any, optional
Isolation-trench definition used by the electrical layout. Default is None.
A_ht : float, optional
Angle parameter in degrees. Default is 270.
ht_notch_dual : bool, optional
Value for the ht_notch_dual parameter. Default is True.
epin_dX : int, optional
Value for the epin_dX parameter. Default is 0.
epin_dY : int, optional
Value for the epin_dY parameter. Default is 0.
res : float, optional
Value for the res parameter. Default is 0.05.
res_eic : float, optional
Value for the res_eic parameter. Default is 0.5.
ht_rot : bool, optional
Value for the ht_rot parameter. Default is False.
"""
def __init__(self,
name: Optional[str] =None,
ORx: float=10,
@@ -842,6 +1013,96 @@ class MRR_AED(AED_ring):
class MRR_STD_Ring(MRR_AED) :
"""
MRR STD Ring primitive component.
This component builds the MRR STD Ring layout cell.
Parameters
----------
name : Optional[str], optional
Unique identifier for the device cell. Default is None.
r_ring : float, optional
Radius parameter in microns. Default is 10.
w_ring : float, optional
Width parameter in microns. Default is 0.45.
gap1 : float, optional
Spacing or gap parameter in microns. Default is 0.2.
gap2 : float, optional
Spacing or gap parameter in microns. Default is 0.2.
w1_bus : float, optional
Value for the w1_bus parameter. Default is 0.45.
w2_bus : float, optional
Value for the w2_bus parameter. Default is 0.
R1_cp : Any, optional
Radius parameter in microns. Default is None.
R2_cp : Any, optional
Radius parameter in microns. Default is None.
A1_cp : int, optional
Angle parameter in degrees. Default is 0.
A2_cp : int, optional
Angle parameter in degrees. Default is 0.
offset_X : float, optional
Value for the offset_X parameter. Default is 0.
offset_Y : float, optional
Value for the offset_Y parameter. Default is 0.
w_wg : float, optional
Width parameter in microns. Default is 0.45.
R1_att : float, optional
Radius parameter in microns. Default is 20.
R2_att : float, optional
Radius parameter in microns. Default is 20.
R2_att_min : float, optional
Radius parameter in microns. Default is 10.
R1_att_min : float, optional
Radius parameter in microns. Default is 10.
A1_att : float, optional
Angle parameter in degrees. Default is 30.
A2_att : float, optional
Angle parameter in degrees. Default is 20.
Ltp_bus : int, optional
Length parameter in microns. Default is 10.
dL_p2p : Optional[float], optional
Value for the dL_p2p parameter. Default is None.
L_tilt : int, optional
Length parameter in microns. Default is 10.
xs_ring : 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.
cell_xs_transition : Any, optional
Cell or component dependency used by this device. Default is None.
Euler_trasition : bool, optional
Value for the Euler_trasition parameter. Default is False.
show_pins : bool, optional
Whether to draw pin markers in the generated layout. Default is False.
xs_heater : str, optional
Layer or cross-section name used by the device. Default is 'heater'.
w_heater : float, optional
Width parameter in microns. Default is 0.
xs_metal : str, optional
Layer or cross-section name used by the device. Default is 'metal'.
w_metal : float, optional
Width parameter in microns. Default is 0.
via_h2m : Any, optional
Via definition used between heater and metal layers. Default is None.
isl : Any, optional
Isolation-trench definition used by the electrical layout. Default is None.
A_ht : float, optional
Angle parameter in degrees. Default is 270.
ht_notch_dual : bool, optional
Value for the ht_notch_dual parameter. Default is False.
epin_dX : int, optional
Value for the epin_dX parameter. Default is 0.
epin_dY : int, optional
Value for the epin_dY parameter. Default is 0.
res : float, optional
Value for the res parameter. Default is 0.05.
res_eic : float, optional
Value for the res_eic parameter. Default is 0.5.
ht_rot : bool, optional
Value for the ht_rot parameter. Default is False.
"""
def __init__(self,
name: Optional[str]=None,
r_ring: float=10,
@@ -950,6 +1211,68 @@ class MRR_STD_Ring(MRR_AED) :
""" Simplified classed for Standard ring """
class MRR_STD_Allpass(MRR_STD_Ring):
"""
MRR STD Allpass primitive component.
This component builds the MRR STD Allpass layout cell.
Parameters
----------
name : str
Unique identifier for the device cell.
r_ring : float
Radius parameter in microns.
w_ring : float
Width parameter in microns.
gap : float
Spacing or gap parameter in microns.
w_bus : float
Width parameter in microns.
A_cp : Any
Angle parameter in degrees.
w_wg : float, optional
Width parameter in microns. Default is 0.45.
R_att : float, optional
Radius parameter in microns. Default is 20.
Ltp_bus : int, optional
Length parameter in microns. Default is 10.
dL_p2p : Optional[float], optional
Value for the dL_p2p parameter. Default is None.
L_tilt : int, optional
Length parameter in microns. Default is 10.
xs_ring : 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.
cell_xs_transition : Any, optional
Cell or component dependency used by this device. Default is None.
show_pins : bool, optional
Whether to draw pin markers in the generated layout. Default is False.
xs_heater : str, optional
Layer or cross-section name used by the device. Default is 'heater'.
w_heater : float, optional
Width parameter in microns. Default is 0.
xs_metal : str, optional
Layer or cross-section name used by the device. Default is 'metal'.
w_metal : float, optional
Width parameter in microns. Default is 0.
via_h2m : Any, optional
Via definition used between heater and metal layers. Default is None.
isl : Any, optional
Isolation-trench definition used by the electrical layout. Default is None.
A_ht : float, optional
Angle parameter in degrees. Default is 270.
epin_dX : int, optional
Value for the epin_dX parameter. Default is 0.
epin_dY : int, optional
Value for the epin_dY parameter. Default is 0.
res : float, optional
Value for the res parameter. Default is 0.05.
res_eic : float, optional
Value for the res_eic parameter. Default is 0.5.
ht_rot : bool, optional
Value for the ht_rot parameter. Default is False.
"""
def __init__(self, name: str,
r_ring: float,
w_ring: float,
@@ -1048,6 +1371,68 @@ class MRR_STD_Allpass(MRR_STD_Ring):
ht_rot=ht_rot)
class MRR_STD_Adddrop(MRR_STD_Ring):
"""
MRR STD Adddrop primitive component.
This component builds the MRR STD Adddrop layout cell.
Parameters
----------
name : str
Unique identifier for the device cell.
r_ring : float
Radius parameter in microns.
w_ring : float
Width parameter in microns.
gap : float
Spacing or gap parameter in microns.
w_bus : float
Width parameter in microns.
A_cp : Any
Angle parameter in degrees.
w_wg : float, optional
Width parameter in microns. Default is 0.45.
R_att : float, optional
Radius parameter in microns. Default is 20.
Ltp_bus : int, optional
Length parameter in microns. Default is 10.
dL_p2p : Optional[float], optional
Value for the dL_p2p parameter. Default is None.
L_tilt : int, optional
Length parameter in microns. Default is 10.
xs_ring : 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.
cell_xs_transition : Any, optional
Cell or component dependency used by this device. Default is None.
show_pins : bool, optional
Whether to draw pin markers in the generated layout. Default is False.
xs_heater : str, optional
Layer or cross-section name used by the device. Default is 'heater'.
w_heater : float, optional
Width parameter in microns. Default is 0.
xs_metal : str, optional
Layer or cross-section name used by the device. Default is 'metal'.
w_metal : float, optional
Width parameter in microns. Default is 0.
via_h2m : Any, optional
Via definition used between heater and metal layers. Default is None.
isl : Any, optional
Isolation-trench definition used by the electrical layout. Default is None.
A_ht : float, optional
Angle parameter in degrees. Default is 270.
epin_dX : int, optional
Value for the epin_dX parameter. Default is 0.
epin_dY : int, optional
Value for the epin_dY parameter. Default is 0.
res : float, optional
Value for the res parameter. Default is 0.05.
res_eic : float, optional
Value for the res_eic parameter. Default is 0.5.
ht_rot : bool, optional
Value for the ht_rot parameter. Default is False.
"""
def __init__(self, name: str,
r_ring: float,
w_ring: float,
@@ -1121,6 +1506,70 @@ class MRR_STD_Adddrop(MRR_STD_Ring):
""" Multimode ring simplified """
class MRR_MM_Allpass(MRR_STD_Ring):
"""
MRR MM Allpass primitive component.
This component builds the MRR MM Allpass layout cell.
Parameters
----------
name : Optional[str], optional
Unique identifier for the device cell. Default is None.
r_ring : float, optional
Radius parameter in microns. Default is 10.
w_ring : float, optional
Width parameter in microns. Default is 0.45.
gap : float, optional
Spacing or gap parameter in microns. Default is 0.2.
w_bus : float, optional
Width parameter in microns. Default is 0.45.
A_cp : int, optional
Angle parameter in degrees. Default is 0.
w_wg : float, optional
Width parameter in microns. Default is 0.45.
R_att : float, optional
Radius parameter in microns. Default is 20.
R_att_min : float, optional
Radius parameter in microns. Default is 10.
A_att : float, optional
Angle parameter in degrees. Default is 30.
Ltp_bus : int, optional
Length parameter in microns. Default is 10.
dL_p2p : Optional[float], optional
Value for the dL_p2p parameter. Default is None.
xs_ring : 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.
cell_xs_transition : Any, optional
Cell or component dependency used by this device. Default is None.
show_pins : bool, optional
Whether to draw pin markers in the generated layout. Default is False.
xs_heater : str, optional
Layer or cross-section name used by the device. Default is 'heater'.
w_heater : float, optional
Width parameter in microns. Default is 0.
xs_metal : str, optional
Layer or cross-section name used by the device. Default is 'metal'.
w_metal : float, optional
Width parameter in microns. Default is 0.
via_h2m : Any, optional
Via definition used between heater and metal layers. Default is None.
isl : Any, optional
Isolation-trench definition used by the electrical layout. Default is None.
A_ht : float, optional
Angle parameter in degrees. Default is 270.
epin_dX : int, optional
Value for the epin_dX parameter. Default is 0.
epin_dY : int, optional
Value for the epin_dY parameter. Default is 0.
res : float, optional
Value for the res parameter. Default is 0.05.
res_eic : float, optional
Value for the res_eic parameter. Default is 0.5.
ht_rot : bool, optional
Value for the ht_rot parameter. Default is False.
"""
def __init__(self, name: Optional[str]=None,
r_ring: float=10,
w_ring: float=0.45,
@@ -1200,6 +1649,70 @@ class MRR_MM_Allpass(MRR_STD_Ring):
ht_rot=ht_rot)
class MRR_MM_Adddrop(MRR_STD_Ring):
"""
MRR MM Adddrop primitive component.
This component builds the MRR MM Adddrop layout cell.
Parameters
----------
name : Optional[str], optional
Unique identifier for the device cell. Default is None.
r_ring : float, optional
Radius parameter in microns. Default is 10.
w_ring : float, optional
Width parameter in microns. Default is 0.45.
gap : float, optional
Spacing or gap parameter in microns. Default is 0.2.
w_bus : float, optional
Width parameter in microns. Default is 0.45.
A_cp : int, optional
Angle parameter in degrees. Default is 0.
w_wg : float, optional
Width parameter in microns. Default is 0.45.
R_att : float, optional
Radius parameter in microns. Default is 20.
R_att_min : float, optional
Radius parameter in microns. Default is 10.
A_att : float, optional
Angle parameter in degrees. Default is 30.
Ltp_bus : int, optional
Length parameter in microns. Default is 10.
dL_p2p : Optional[float], optional
Value for the dL_p2p parameter. Default is None.
xs_ring : 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.
cell_xs_transition : Any, optional
Cell or component dependency used by this device. Default is None.
show_pins : bool, optional
Whether to draw pin markers in the generated layout. Default is False.
xs_heater : str, optional
Layer or cross-section name used by the device. Default is 'heater'.
w_heater : float, optional
Width parameter in microns. Default is 0.
xs_metal : str, optional
Layer or cross-section name used by the device. Default is 'metal'.
w_metal : float, optional
Width parameter in microns. Default is 0.
via_h2m : Any, optional
Via definition used between heater and metal layers. Default is None.
isl : Any, optional
Isolation-trench definition used by the electrical layout. Default is None.
A_ht : float, optional
Angle parameter in degrees. Default is 270.
epin_dX : int, optional
Value for the epin_dX parameter. Default is 0.
epin_dY : int, optional
Value for the epin_dY parameter. Default is 0.
res : float, optional
Value for the res parameter. Default is 0.05.
res_eic : float, optional
Value for the res_eic parameter. Default is 0.5.
ht_rot : bool, optional
Value for the ht_rot parameter. Default is False.
"""
def __init__(self, name: Optional[str]=None,
r_ring: float=10,
w_ring: float=0.45,
@@ -1275,6 +1788,72 @@ class MRR_MM_Adddrop(MRR_STD_Ring):
""" Dual width controled ring with Euler shape coupler """
class MRR_DW_Adddrop(MRR_AED):
"""
MRR DW Adddrop primitive component.
This component builds the MRR DW Adddrop layout cell.
Parameters
----------
name : str
Unique identifier for the device cell.
r_ring : float
Radius parameter in microns.
w0_ring : float
Value for the w0_ring parameter.
w1_ring : float
Value for the w1_ring parameter.
gap : float, optional
Spacing or gap parameter in microns. Default is 0.2.
w_bus : float, optional
Width parameter in microns. Default is 0.45.
A_cp : int, optional
Angle parameter in degrees. Default is 0.
w_wg : float, optional
Width parameter in microns. Default is 0.45.
R_att : float, optional
Radius parameter in microns. Default is 20.
R_att_min : float, optional
Radius parameter in microns. Default is 10.
A_att : float, optional
Angle parameter in degrees. Default is 30.
Ltp_bus : int, optional
Length parameter in microns. Default is 10.
dL_p2p : Optional[float], optional
Value for the dL_p2p parameter. Default is None.
xs_ring : 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.
cell_xs_transition : Any, optional
Cell or component dependency used by this device. Default is None.
show_pins : bool, optional
Whether to draw pin markers in the generated layout. Default is False.
xs_heater : str, optional
Layer or cross-section name used by the device. Default is 'heater'.
w_heater : float, optional
Width parameter in microns. Default is 0.
xs_metal : str, optional
Layer or cross-section name used by the device. Default is 'metal'.
w_metal : float, optional
Width parameter in microns. Default is 0.
via_h2m : Any, optional
Via definition used between heater and metal layers. Default is None.
isl : Any, optional
Isolation-trench definition used by the electrical layout. Default is None.
A_ht : float, optional
Angle parameter in degrees. Default is 270.
epin_dX : int, optional
Value for the epin_dX parameter. Default is 0.
epin_dY : int, optional
Value for the epin_dY parameter. Default is 0.
res : float, optional
Value for the res parameter. Default is 0.05.
res_eic : float, optional
Value for the res_eic parameter. Default is 0.5.
ht_rot : bool, optional
Value for the ht_rot parameter. Default is False.
"""
def __init__(self, name: str,
r_ring: float,
w0_ring: float,
@@ -1338,6 +1917,72 @@ class MRR_DW_Adddrop(MRR_AED):
epin_dX=epin_dX, epin_dY=epin_dY, res=res, res_eic=res_eic,ht_rot=ht_rot)
class MRR_DW_Allpass(MRR_AED):
"""
MRR DW Allpass primitive component.
This component builds the MRR DW Allpass layout cell.
Parameters
----------
name : str
Unique identifier for the device cell.
r_ring : float
Radius parameter in microns.
w0_ring : float
Value for the w0_ring parameter.
w1_ring : float
Value for the w1_ring parameter.
gap : float, optional
Spacing or gap parameter in microns. Default is 0.2.
w_bus : float, optional
Width parameter in microns. Default is 0.45.
A_cp : int, optional
Angle parameter in degrees. Default is 0.
w_wg : float, optional
Width parameter in microns. Default is 0.45.
R_att : float, optional
Radius parameter in microns. Default is 20.
R_att_min : float, optional
Radius parameter in microns. Default is 10.
A_att : float, optional
Angle parameter in degrees. Default is 30.
Ltp_bus : int, optional
Length parameter in microns. Default is 10.
dL_p2p : Optional[float], optional
Value for the dL_p2p parameter. Default is None.
xs_ring : 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.
cell_xs_transition : Any, optional
Cell or component dependency used by this device. Default is None.
show_pins : bool, optional
Whether to draw pin markers in the generated layout. Default is False.
xs_heater : str, optional
Layer or cross-section name used by the device. Default is 'heater'.
w_heater : float, optional
Width parameter in microns. Default is 0.
xs_metal : str, optional
Layer or cross-section name used by the device. Default is 'metal'.
w_metal : float, optional
Width parameter in microns. Default is 0.
via_h2m : Any, optional
Via definition used between heater and metal layers. Default is None.
isl : Any, optional
Isolation-trench definition used by the electrical layout. Default is None.
A_ht : float, optional
Angle parameter in degrees. Default is 270.
epin_dX : int, optional
Value for the epin_dX parameter. Default is 0.
epin_dY : int, optional
Value for the epin_dY parameter. Default is 0.
res : float, optional
Value for the res parameter. Default is 0.05.
res_eic : float, optional
Value for the res_eic parameter. Default is 0.5.
ht_rot : bool, optional
Value for the ht_rot parameter. Default is False.
"""
def __init__(self, name: str,
r_ring: float,
w0_ring: float,
@@ -1403,6 +2048,56 @@ class MRR_DW_Allpass(MRR_AED):
""" NEW CLASS: 2023.03.21"""
class STD_ring_AMZI_adddrop:
"""
STD ring AMZI adddrop primitive component.
This component builds the STD ring AMZI adddrop layout cell.
Parameters
----------
name : Optional[str], optional
Unique identifier for the device cell. Default is None.
r_ring : float, optional
Radius parameter in microns. Default is 30.
w_ring : float, optional
Width parameter in microns. Default is 0.45.
w_wg : float, optional
Width parameter in microns. Default is 0.45.
xs_wg : str, optional
Layer or cross-section name used by the device. Default is 'strip'.
w_bus : float, optional
Width parameter in microns. Default is 0.45.
gap : float, optional
Spacing or gap parameter in microns. Default is 0.2.
dAc : float, optional
Value for the dAc parameter. Default is 10.
L_tilt : int, optional
Length parameter in microns. Default is 1.
dL_arm : float, optional
Value for the dL_arm parameter. Default is 10.
w_heater : float, optional
Width parameter in microns. Default is 2.5.
xs_heater : str, optional
Layer or cross-section name used by the device. Default is 'heater'.
w_metal : float, optional
Width parameter in microns. Default is 6.
xs_metal : str, optional
Layer or cross-section name used by the device. Default is 'metal'.
via_h2m : Any, optional
Via definition used between heater and metal layers. Default is None.
isl : Any, optional
Isolation-trench definition used by the electrical layout. Default is None.
res : float, optional
Value for the res parameter. Default is 0.1.
R_bend : int, optional
Radius parameter in microns. Default is 10.
L_tp : int, optional
Length parameter in microns. Default is 5.
show_pins : bool, optional
Whether to draw pin markers in the generated layout. Default is False.
sharp_patch : bool, optional
Whether to add geometry patches for sharp corners or cladding continuity. Default is True.
"""
def __init__(self,
name: Optional[str]=None,
r_ring: float = 30,