Folder structure simplfied
This commit is contained in:
@@ -7,10 +7,42 @@ import math
|
||||
from .taper import taper_xs2xs
|
||||
from ...routing import Route
|
||||
|
||||
from ...structures import *
|
||||
from ...geometry import *
|
||||
from ....technologies import *
|
||||
|
||||
class PBS_3wg:
|
||||
"""
|
||||
PBS 3wg primitive component.
|
||||
|
||||
This component builds the PBS 3wg 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'.
|
||||
Lcp : float, optional
|
||||
Length parameter in microns. Default is 11.7.
|
||||
w1_tp : float, optional
|
||||
Value for the w1_tp parameter. Default is 0.55.
|
||||
w2_tp : float, optional
|
||||
Value for the w2_tp parameter. Default is 0.3.
|
||||
w_m : float, optional
|
||||
Width parameter in microns. Default is 0.45.
|
||||
gap : float, optional
|
||||
Spacing or gap parameter in microns. Default is 0.25.
|
||||
R_bend : int, optional
|
||||
Radius parameter in microns. Default is 20.
|
||||
A_bend : float, optional
|
||||
Angle parameter in degrees. Default is 7.5.
|
||||
w_wg : float, optional
|
||||
Width parameter in microns. Default is 0.45.
|
||||
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,
|
||||
xs: str = 'strip',
|
||||
|
||||
@@ -4,15 +4,43 @@ import numpy as np
|
||||
import math
|
||||
from ...routing import Route
|
||||
|
||||
from ...structures import *
|
||||
from ...geometry import *
|
||||
from ....technologies import *
|
||||
|
||||
import pandas as pd
|
||||
from ...structures import _my_polygon
|
||||
from ...geometry import _my_polygon
|
||||
from scipy.interpolate import CubicSpline
|
||||
from ...basic import __cell_arg__
|
||||
|
||||
class YBranch:
|
||||
"""
|
||||
YBranch primitive component.
|
||||
|
||||
This component builds the YBranch layout cell.
|
||||
|
||||
Parameters
|
||||
----------
|
||||
name : 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 : list or np.ndarray, optional
|
||||
Width parameter in microns. Default is [1.2, 1.0, 1.8, 1.2, 1.0, 1.2, 1.2].
|
||||
L : float, optional
|
||||
Length parameter in microns. Default is 6.
|
||||
R_att : float, optional
|
||||
Radius parameter in microns. Default is 10.
|
||||
A_att : float, optional
|
||||
Angle parameter in degrees. Default is 10.
|
||||
w_port : float, optional
|
||||
Width parameter in microns. Default is 0.45.
|
||||
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.
|
||||
res : float, optional
|
||||
Value for the res parameter. Default is 0.1.
|
||||
"""
|
||||
def __init__(self,
|
||||
name : str = None,
|
||||
xs : str = 'strip',
|
||||
@@ -105,6 +133,38 @@ class YBranch:
|
||||
|
||||
|
||||
class Ybranch_3wg:
|
||||
"""
|
||||
Ybranch 3wg primitive component.
|
||||
|
||||
This component builds the Ybranch 3wg layout cell.
|
||||
|
||||
Parameters
|
||||
----------
|
||||
name : Optional[str], optional
|
||||
Unique identifier for the device cell. Default is None.
|
||||
w0 : float, optional
|
||||
Width parameter in microns. Default is 0.4.
|
||||
w1 : float, optional
|
||||
Width parameter in microns. Default is 0.2.
|
||||
gap : float, optional
|
||||
Spacing or gap parameter in microns. Default is 0.18.
|
||||
Lcp : float, optional
|
||||
Length parameter in microns. Default is 20.
|
||||
xs : str, optional
|
||||
Layer or cross-section name used by the device. Default is 'strip'.
|
||||
w_wg : float, optional
|
||||
Width parameter in microns. Default is 0.45.
|
||||
R0 : float, optional
|
||||
Radius parameter in microns. Default is 10.
|
||||
angle : float, optional
|
||||
Angle parameter in degrees. Default is 20.
|
||||
L_attach : float, optional
|
||||
Length parameter in microns. Default is 3.
|
||||
L_in_tp : float, optional
|
||||
Length parameter in microns. Default is 3.
|
||||
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,
|
||||
w0:float=0.4,
|
||||
|
||||
@@ -2,13 +2,43 @@ import nazca as nd
|
||||
import numpy as np
|
||||
|
||||
|
||||
from ...structures import *
|
||||
from ...geometry import *
|
||||
|
||||
from ...routing import Route
|
||||
from . import MDM
|
||||
|
||||
|
||||
class Bragg_apodized:
|
||||
"""
|
||||
Bragg apodized primitive component.
|
||||
|
||||
This component builds the Bragg apodized layout cell.
|
||||
|
||||
Parameters
|
||||
----------
|
||||
Period : float, optional
|
||||
Value for the Period parameter. Default is 0.3.
|
||||
w : float, optional
|
||||
Width parameter in microns. Default is 1.1.
|
||||
xs : str, optional
|
||||
Layer or cross-section name used by the device. Default is 'strip'.
|
||||
etch_type : str, optional
|
||||
Value for the etch_type parameter. Default is 'FETCH'.
|
||||
etch_shape : str, optional
|
||||
Value for the etch_shape parameter. Default is 'rectangle'.
|
||||
N : int, optional
|
||||
Value for the N parameter. Default is 200.
|
||||
eta_etch : float, optional
|
||||
Value for the eta_etch parameter. Default is 0.5.
|
||||
dT : float, optional
|
||||
Value for the dT parameter. Default is 0.15.
|
||||
b : int, optional
|
||||
Value for the b parameter. Default is 10.
|
||||
eta_ds : float, optional
|
||||
Value for the eta_ds parameter. Default is 0.5.
|
||||
show_pins : bool, optional
|
||||
Whether to draw pin markers in the generated layout. Default is False.
|
||||
"""
|
||||
def __init__(self,
|
||||
Period: float = 0.3,
|
||||
w: float = 1.1,
|
||||
@@ -138,6 +168,32 @@ class Bragg_apodized:
|
||||
return C
|
||||
|
||||
class Bragg(Bragg_apodized):
|
||||
"""
|
||||
Bragg primitive component.
|
||||
|
||||
This component builds the Bragg layout cell.
|
||||
|
||||
Parameters
|
||||
----------
|
||||
Period : float, optional
|
||||
Value for the Period parameter. Default is 0.3.
|
||||
w : float, optional
|
||||
Width parameter in microns. Default is 1.1.
|
||||
xs : str, optional
|
||||
Layer or cross-section name used by the device. Default is 'strip'.
|
||||
etch_type : str, optional
|
||||
Value for the etch_type parameter. Default is 'FETCH'.
|
||||
etch_shape : str, optional
|
||||
Value for the etch_shape parameter. Default is 'rectangle'.
|
||||
N : int, optional
|
||||
Value for the N parameter. Default is 200.
|
||||
eta_etch : float, optional
|
||||
Value for the eta_etch parameter. Default is 0.5.
|
||||
dT : float, optional
|
||||
Value for the dT parameter. Default is 0.15.
|
||||
show_pins : bool, optional
|
||||
Whether to draw pin markers in the generated layout. Default is False.
|
||||
"""
|
||||
def __init__(self, Period: float=0.3,
|
||||
w: float=1.1,
|
||||
xs: str='strip',
|
||||
|
||||
@@ -5,20 +5,74 @@ import numpy as np
|
||||
|
||||
from . import taper
|
||||
|
||||
from ...structures import *
|
||||
from ...geometry import *
|
||||
|
||||
from ...routing import Route
|
||||
# import nazca.interconnects as IC
|
||||
# class Route(IC.Interconnect):
|
||||
# pass
|
||||
|
||||
from ...structures import _my_polygon
|
||||
from ...geometry import _my_polygon
|
||||
|
||||
from ...basic import __cell_arg__
|
||||
|
||||
class ring_bus_wg :
|
||||
## two types:
|
||||
## DC, BDC
|
||||
"""
|
||||
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.
|
||||
"""
|
||||
def __init__(self,
|
||||
xs: str='strip',
|
||||
R_cp: int = 20,
|
||||
@@ -183,6 +237,68 @@ class ring_bus_wg :
|
||||
|
||||
|
||||
class ADC_STD_2x2:
|
||||
"""
|
||||
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.
|
||||
"""
|
||||
def __init__ (self,
|
||||
name: Optional[str] = None,
|
||||
xs: str='strip',
|
||||
@@ -504,6 +620,42 @@ class ADC_STD_2x2:
|
||||
|
||||
|
||||
class DC(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.
|
||||
"""
|
||||
def __init__(self,
|
||||
name: Optional[str] = None,
|
||||
xs:str='strip',
|
||||
@@ -580,6 +732,38 @@ class DC(ADC_STD_2x2):
|
||||
return C
|
||||
|
||||
class BS_tdc(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'.
|
||||
"""
|
||||
def __init__(self,
|
||||
name: Optional[str]=None,
|
||||
xs:str ='strip',
|
||||
@@ -622,6 +806,52 @@ class BS_tdc(ADC_STD_2x2):
|
||||
|
||||
|
||||
class MDM(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.
|
||||
"""
|
||||
def __init__(self,
|
||||
name: Optional[str] = None,
|
||||
xs:str='strip',
|
||||
@@ -749,10 +979,34 @@ class MDM(ADC_STD_2x2):
|
||||
|
||||
|
||||
class DC_bend :
|
||||
'''
|
||||
This is a class for bend directional coupler for broadband and fabrication tolerant power splitting.
|
||||
Written by HU GAOLEI at 2022.5.15.
|
||||
'''
|
||||
"""
|
||||
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.
|
||||
"""
|
||||
|
||||
def __init__(
|
||||
self,
|
||||
@@ -903,6 +1157,44 @@ class DC_bend :
|
||||
|
||||
|
||||
class DC_pX_3sg:
|
||||
"""
|
||||
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.
|
||||
"""
|
||||
def __init__(self,
|
||||
name: Optional[str] = None,
|
||||
xs_wg:str='strip',
|
||||
|
||||
@@ -4,13 +4,31 @@ import numpy as np
|
||||
import math
|
||||
from ...routing import Route
|
||||
|
||||
from ...structures import *
|
||||
from ...geometry import *
|
||||
from ....technologies import *
|
||||
|
||||
import pandas as pd
|
||||
from ...structures import _my_polygon
|
||||
from ...geometry import _my_polygon
|
||||
|
||||
class Cross:
|
||||
"""
|
||||
Cross primitive component.
|
||||
|
||||
This component builds the Cross layout cell.
|
||||
|
||||
Parameters
|
||||
----------
|
||||
name : Optional[str], optional
|
||||
Unique identifier for the device cell. Default is None.
|
||||
L : list, optional
|
||||
Length parameter in microns. Default is [0, 1, 2, 3, 4].
|
||||
w : list, optional
|
||||
Width parameter in microns. Default is [0.5, 0.45, 0.6, 0.4, 0.5].
|
||||
xs : str, optional
|
||||
Layer or cross-section name used by the device. Default is 'strip'.
|
||||
show_pins : bool, optional
|
||||
Whether to draw pin markers in the generated layout. Default is False.
|
||||
"""
|
||||
def __init__(self,
|
||||
name: Optional[str] = None,
|
||||
L: list = [0 , 1, 2, 3, 4],
|
||||
@@ -97,6 +115,26 @@ class Cross:
|
||||
return C
|
||||
|
||||
class Cross_Sine(Cross):
|
||||
"""
|
||||
Cross Sine primitive component.
|
||||
|
||||
This component builds the Cross Sine layout cell.
|
||||
|
||||
Parameters
|
||||
----------
|
||||
name : Optional[str], optional
|
||||
Unique identifier for the device cell. Default is None.
|
||||
res : list, optional
|
||||
Value for the res parameter. Default is [1, 1, 1, 1].
|
||||
w : list, optional
|
||||
Width parameter in microns. Default is [0.5, 0.45, 0.6, 0.4, 0.5].
|
||||
xs : str, optional
|
||||
Layer or cross-section name used by the device. Default is 'strip'.
|
||||
n_points : int, optional
|
||||
Value for the n_points parameter. Default is 4.
|
||||
show_pins : bool, optional
|
||||
Whether to draw pin markers in the generated layout. Default is False.
|
||||
"""
|
||||
def __init__(self,
|
||||
name: Optional[str] = None,
|
||||
res: list = [1,1,1,1],
|
||||
|
||||
@@ -3,8 +3,8 @@ import nazca as nd
|
||||
import numpy as np
|
||||
import math
|
||||
|
||||
from ...structures import *
|
||||
from ...structures import _my_polygon
|
||||
from ...geometry import *
|
||||
from ...geometry import _my_polygon
|
||||
from ...basic import __cell_arg__
|
||||
from ...routing import Route
|
||||
|
||||
@@ -13,26 +13,37 @@ import pandas as pd
|
||||
''' Class for nanoantenna '''
|
||||
class Nano_ant():
|
||||
|
||||
"""Class of nanoantenna for optical phased array.
|
||||
|
||||
This is the class of nanoantenna for optical phased array. GDS cell can be generated using this class. Simulation structure generation and simulation results analysis is going to be added in the future.
|
||||
|
||||
Args:
|
||||
- tapeout [class] (Default: CUMEC_CSiP130Cu)
|
||||
- w_wg [um] (Default: 0.5um)
|
||||
Width of input waveguide
|
||||
- vector [um] (Default: [0.5,..,0.5]])
|
||||
Vectors to define the length of each teeth
|
||||
- taper_length [um] (Default: 1um)
|
||||
Length of the linear taper region
|
||||
- width [um] (Default: 3um)
|
||||
Width of the nanoantenna
|
||||
- max_theta [degree](Default: 110)
|
||||
Open degree of linear taper
|
||||
- define_type [str] (Default: non-periodic)
|
||||
Way to define the antenna, including: "non-periodic", "periodic"
|
||||
- etch_depth [str] (Default: "DETCH")
|
||||
Define the etch depth, including: "FETCH", "METCH", "SETCH"
|
||||
"""
|
||||
Class of nanoantenna for optical phased array.
|
||||
|
||||
This is the class of nanoantenna for optical phased array. GDS cell can be generated using this class. Simulation structure generation and simulation results analysis is going to be added in the future.
|
||||
|
||||
Parameters
|
||||
----------
|
||||
w_wg : float, optional
|
||||
Width parameter in microns. Default is 0.41.
|
||||
xs_wg : str, optional
|
||||
Layer or cross-section name used by the device. Default is 'strip'.
|
||||
define_type : str, optional
|
||||
Value for the define_type parameter. Default is 'non-periodic'.
|
||||
vector : list, optional
|
||||
Value for the vector parameter. Default is [0.5, 0.5, 0.5, 0.5, 0.5, 0.5].
|
||||
taper_length : float, optional
|
||||
Value for the taper_length parameter. Default is 3.
|
||||
width : float, optional
|
||||
Width parameter in microns. Default is 6.
|
||||
max_theta : float, optional
|
||||
Value for the max_theta parameter. Default is 110.
|
||||
pitch : float, optional
|
||||
Spacing or gap parameter in microns. Default is 0.6.
|
||||
duty_cycle : float, optional
|
||||
Value for the duty_cycle parameter. Default is 0.3.
|
||||
teeth_number : float, optional
|
||||
Value for the teeth_number parameter. Default is 6.
|
||||
etch_depth : list, optional
|
||||
Value for the etch_depth parameter. Default is ['METCH'].
|
||||
show_pins : bool, optional
|
||||
Whether to draw pin markers in the generated layout. Default is True.
|
||||
"""
|
||||
|
||||
def __init__(
|
||||
@@ -193,6 +204,24 @@ class Nano_ant():
|
||||
''' Class for 2D antenna array for FMF grating '''
|
||||
class Taper() :
|
||||
|
||||
"""
|
||||
Taper primitive component.
|
||||
|
||||
This component builds the Taper layout cell.
|
||||
|
||||
Parameters
|
||||
----------
|
||||
width1 : float, optional
|
||||
Width parameter in microns. Default is 4.
|
||||
width2 : float, optional
|
||||
Width parameter in microns. Default is 0.45.
|
||||
length : float, optional
|
||||
Length parameter in microns. Default is 30.
|
||||
type : str, optional
|
||||
Value for the type parameter. Default is 'linear'.
|
||||
show_pins : bool, optional
|
||||
Whether to draw pin markers in the generated layout. Default is False.
|
||||
"""
|
||||
def __init__(self, width1: float=4, width2: float=0.45, length: float=30, type: str="linear", show_pins: bool=False) -> None:
|
||||
self.width1 = width1
|
||||
self.width2 = width2
|
||||
@@ -252,9 +281,36 @@ class Taper() :
|
||||
|
||||
|
||||
class Grating_2D_Hole() :
|
||||
'''
|
||||
This is a class for 2D Grating in IMEC.
|
||||
'''
|
||||
"""
|
||||
This is a class for 2D Grating in IMEC.
|
||||
|
||||
Parameters
|
||||
----------
|
||||
w_wg : float, optional
|
||||
Width parameter in microns. Default is 0.5.
|
||||
w_gt : float, optional
|
||||
Width parameter in microns. Default is 5.
|
||||
l_taper : float, optional
|
||||
Value for the l_taper parameter. Default is 30.
|
||||
type_taper : str, optional
|
||||
Value for the type_taper parameter. Default is 'parabolic'.
|
||||
gt_vector : list, optional
|
||||
Value for the gt_vector parameter. Default is [0.5, 0.5, 0.5, 0.5, 0.5].
|
||||
gt_diameter : float, optional
|
||||
Value for the gt_diameter parameter. Default is 0.4.
|
||||
gt_layer : str, optional
|
||||
Value for the gt_layer parameter. Default is 'STRIP_COR'.
|
||||
polysi_vector : list, optional
|
||||
Value for the polysi_vector parameter. Default is [0.5, 0.5, 0.5, 0.5, 0.5].
|
||||
polysi_diameter : float, optional
|
||||
Value for the polysi_diameter parameter. Default is 0.4.
|
||||
polysi_layer : str, optional
|
||||
Value for the polysi_layer parameter. Default is 'FCW_TRE'.
|
||||
reflector_vector : list, optional
|
||||
Value for the reflector_vector parameter. Default is [0.3, 0.3, 0.3, 0.3, 0.3, 0.3].
|
||||
l_field_center : float, optional
|
||||
Value for the l_field_center parameter. Default is 1.
|
||||
"""
|
||||
def __init__(
|
||||
self,
|
||||
w_wg: float=0.5,
|
||||
@@ -344,6 +400,22 @@ class Grating_2D_Hole() :
|
||||
|
||||
class Grating_2D_Hole_4Rec() :
|
||||
|
||||
"""
|
||||
Grating 2D Hole 4Rec primitive component.
|
||||
|
||||
This component builds the Grating 2D Hole 4Rec layout cell.
|
||||
|
||||
Parameters
|
||||
----------
|
||||
grating_unit : Any
|
||||
Grating unit cell or component used by this wrapper.
|
||||
mode_radius : int, optional
|
||||
Value for the mode_radius parameter. Default is 8.
|
||||
cell_name : Optional[str], optional
|
||||
Optional generated cell name. Default is None.
|
||||
show_pins : bool, optional
|
||||
Whether to draw pin markers in the generated layout. Default is False.
|
||||
"""
|
||||
def __init__(self, grating_unit: Any, mode_radius: int=8, cell_name: Optional[str]=None, show_pins: bool=False) -> None:
|
||||
self.gt_2D_class = grating_unit
|
||||
self.cell_unit = grating_unit.cell
|
||||
@@ -416,6 +488,22 @@ class Grating_2D_Hole_4Rec() :
|
||||
|
||||
class Grating_2D_Hole_3Rec() :
|
||||
|
||||
"""
|
||||
Grating 2D Hole 3Rec primitive component.
|
||||
|
||||
This component builds the Grating 2D Hole 3Rec layout cell.
|
||||
|
||||
Parameters
|
||||
----------
|
||||
grating_unit : Any
|
||||
Grating unit cell or component used by this wrapper.
|
||||
mode_radius : float, optional
|
||||
Value for the mode_radius parameter. Default is 6.5.
|
||||
cell_name : Optional[str], optional
|
||||
Optional generated cell name. Default is None.
|
||||
show_pins : bool, optional
|
||||
Whether to draw pin markers in the generated layout. Default is False.
|
||||
"""
|
||||
def __init__(self, grating_unit: Any, mode_radius: float=6.5, cell_name: Optional[str]=None, show_pins: bool=False) -> None:
|
||||
self.gt_2D_class = grating_unit
|
||||
self.cell_unit = grating_unit.cell
|
||||
@@ -484,6 +572,62 @@ class Grating_2D_Hole_3Rec() :
|
||||
|
||||
""" Renamed for simplification in 2023.04.02 """
|
||||
class GC_STD_2D:
|
||||
"""
|
||||
GC STD 2D primitive component.
|
||||
|
||||
This component builds the GC STD 2D layout cell.
|
||||
|
||||
Parameters
|
||||
----------
|
||||
name : Optional[str], optional
|
||||
Unique identifier for the device cell. Default is None.
|
||||
etch_type : str, optional
|
||||
Value for the etch_type parameter. Default is 'FETCH'.
|
||||
xs_wg : str, optional
|
||||
Layer or cross-section name used by the device. Default is 'grating'.
|
||||
Dx_hole : float, optional
|
||||
Value for the Dx_hole parameter. Default is 0.3.
|
||||
Dy_hole : float, optional
|
||||
Value for the Dy_hole parameter. Default is 0.3.
|
||||
hole_shape : str, optional
|
||||
Value for the hole_shape parameter. Default is 'circle'.
|
||||
shape : str, optional
|
||||
Value for the shape parameter. Default is 'circle'.
|
||||
xs_open : str, optional
|
||||
Layer or cross-section name used by the device. Default is None.
|
||||
Px : float, optional
|
||||
Value for the Px parameter. Default is 0.57.
|
||||
Py : float, optional
|
||||
Value for the Py parameter. Default is 0.57.
|
||||
num_x : float, optional
|
||||
Count or repetition parameter. Default is 25.
|
||||
num_y : float, optional
|
||||
Count or repetition parameter. Default is 25.
|
||||
Lx_taper : float, optional
|
||||
Length parameter in microns. Default is 50.
|
||||
Ly_taper : float, optional
|
||||
Length parameter in microns. Default is 0.
|
||||
Lx_end : float, optional
|
||||
Length parameter in microns. Default is 1.
|
||||
Ly_end : float, optional
|
||||
Length parameter in microns. Default is 1.
|
||||
Lx_side : float, optional
|
||||
Length parameter in microns. Default is 0.5.
|
||||
Ly_side : float, optional
|
||||
Length parameter in microns. Default is 0.5.
|
||||
Lx_port : float, optional
|
||||
Length parameter in microns. Default is 5.
|
||||
Ly_port : float, optional
|
||||
Length parameter in microns. Default is 5.
|
||||
w_wg : float, optional
|
||||
Width parameter in microns. Default is 0.5.
|
||||
show_pins : bool, optional
|
||||
Whether to draw pin markers in the generated layout. Default is False.
|
||||
P_AR : float, optional
|
||||
Value for the P_AR parameter. Default is 0.6.
|
||||
L_AR : float, optional
|
||||
Length parameter in microns. Default is 1.
|
||||
"""
|
||||
def __init__(self,
|
||||
name: Optional[str]=None,
|
||||
etch_type :str = 'FETCH',
|
||||
@@ -773,6 +917,46 @@ class GC_STD_2D:
|
||||
return C
|
||||
|
||||
class GC_STD_1D:
|
||||
"""
|
||||
GC STD 1D primitive component.
|
||||
|
||||
This component builds the GC STD 1D 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'.
|
||||
w_wg : float, optional
|
||||
Width parameter in microns. Default is 0.5.
|
||||
etch_type : str, optional
|
||||
Value for the etch_type parameter. Default is 'FETCH'.
|
||||
xs_open : str, optional
|
||||
Layer or cross-section name used by the device. Default is None.
|
||||
L_taper : float, optional
|
||||
Length parameter in microns. Default is 10.
|
||||
L_end : float, optional
|
||||
Length parameter in microns. Default is 2.
|
||||
A_taper : float, optional
|
||||
Angle parameter in degrees. Default is 30.
|
||||
Period : float, optional
|
||||
Value for the Period parameter. Default is 0.5.
|
||||
eta_etch : float, optional
|
||||
Value for the eta_etch parameter. Default is 0.5.
|
||||
num : float, optional
|
||||
Count or repetition parameter. Default is 20.
|
||||
sector_gc : bool, optional
|
||||
Value for the sector_gc parameter. Default is True.
|
||||
show_pins : bool, optional
|
||||
Whether to draw pin markers in the generated layout. Default is False.
|
||||
L_tail : int, optional
|
||||
Length parameter in microns. Default is 2.
|
||||
P_AR : float, optional
|
||||
Value for the P_AR parameter. Default is 1.
|
||||
L_AR : float, optional
|
||||
Length parameter in microns. Default is 2.
|
||||
"""
|
||||
def __init__ (self,
|
||||
name: Optional[str]=None,
|
||||
xs_wg : str = 'strip',
|
||||
@@ -1074,6 +1258,22 @@ class GC_STD_1D:
|
||||
return C
|
||||
|
||||
class FA:
|
||||
"""
|
||||
FA primitive component.
|
||||
|
||||
This component builds the FA layout cell.
|
||||
|
||||
Parameters
|
||||
----------
|
||||
fiber_coupler : Any
|
||||
Fiber coupler cell or component used by this array.
|
||||
pitch : float
|
||||
Spacing or gap parameter in microns.
|
||||
number : int
|
||||
Count or repetition parameter.
|
||||
show_pins : bool, optional
|
||||
Whether to draw pin markers in the generated layout. Default is False.
|
||||
"""
|
||||
def __init__(self,fiber_coupler: Any,pitch: float,number: int,show_pins: bool=False) -> None:
|
||||
|
||||
# if (isinstance(fiber_coupler,nd.Cell)):
|
||||
|
||||
@@ -7,13 +7,51 @@ import math
|
||||
from .taper import taper_xs2xs
|
||||
from ...routing import Route
|
||||
|
||||
from ...structures import *
|
||||
from ...geometry import *
|
||||
from ....technologies import *
|
||||
|
||||
from ...structures import _my_polygon,Conchoid
|
||||
from ...geometry import _my_polygon,Conchoid
|
||||
|
||||
""" Mono layer MMI """
|
||||
class MMI_ML:
|
||||
"""
|
||||
MMI ML primitive component.
|
||||
|
||||
This component builds the MMI ML layout cell.
|
||||
|
||||
Parameters
|
||||
----------
|
||||
name : Optional[str], optional
|
||||
Unique identifier for the device cell. Default is None.
|
||||
L_arm : list, optional
|
||||
Length parameter in microns. Default is [10].
|
||||
w_arm : list, optional
|
||||
Width parameter in microns. Default is [0.45, 1.35].
|
||||
xs : str, optional
|
||||
Layer or cross-section name used by the device. Default is 'strip'.
|
||||
arm_sine_width : bool, optional
|
||||
Value for the arm_sine_width parameter. Default is False.
|
||||
L_mmi : list, optional
|
||||
Length parameter in microns. Default is [10].
|
||||
w_mmi : list, optional
|
||||
Width parameter in microns. Default is [5, 5].
|
||||
mmi_sine_width : bool, optional
|
||||
Value for the mmi_sine_width parameter. Default is False.
|
||||
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.
|
||||
res : float, optional
|
||||
Value for the res parameter. Default is 0.01.
|
||||
N_out : int, optional
|
||||
Count or repetition parameter. Default is 3.
|
||||
N_in : int, optional
|
||||
Count or repetition parameter. Default is 1.
|
||||
Dp_out : float, optional
|
||||
Value for the Dp_out parameter. Default is 1.5.
|
||||
Dp_in : float, optional
|
||||
Value for the Dp_in parameter. Default is 1.5.
|
||||
"""
|
||||
def __init__(self,
|
||||
name: Optional[str]=None,
|
||||
L_arm: list=[10],
|
||||
@@ -163,6 +201,40 @@ class MMI_ML:
|
||||
|
||||
|
||||
class MMI_STD(MMI_ML):
|
||||
"""
|
||||
MMI STD primitive component.
|
||||
|
||||
This component builds the MMI STD layout cell.
|
||||
|
||||
Parameters
|
||||
----------
|
||||
name : Optional[str], optional
|
||||
Unique identifier for the device cell. Default is None.
|
||||
N_out : int, optional
|
||||
Count or repetition parameter. Default is 3.
|
||||
N_in : int, optional
|
||||
Count or repetition parameter. Default is 1.
|
||||
L_arm : int, optional
|
||||
Length parameter in microns. Default is 10.
|
||||
w_wg : float, optional
|
||||
Width parameter in microns. Default is 0.45.
|
||||
w_port : float, optional
|
||||
Width parameter in microns. Default is 1.2.
|
||||
xs : str, optional
|
||||
Layer or cross-section name used by the device. Default is 'strip'.
|
||||
L_mmi : int, optional
|
||||
Length parameter in microns. Default is 10.
|
||||
w_mmi : float, optional
|
||||
Width parameter in microns. Default is 5.
|
||||
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.
|
||||
Dp_out : float, optional
|
||||
Value for the Dp_out parameter. Default is 1.5.
|
||||
Dp_in : float, optional
|
||||
Value for the Dp_in parameter. Default is 1.5.
|
||||
"""
|
||||
def __init__(self,
|
||||
name: Optional[str]=None,
|
||||
N_out: int=3,
|
||||
|
||||
@@ -5,7 +5,7 @@ from .couplers import ring_bus_wg
|
||||
|
||||
from .taper import taper_xs2xs
|
||||
|
||||
from ...structures import Racetrack,Clothoid,circle,Elipse_dual
|
||||
from ...geometry import Racetrack,Clothoid,circle,Elipse_dual
|
||||
from . import ring_bus_wg
|
||||
from ...electronics import Vias
|
||||
import nazca.interconnects as IC
|
||||
@@ -18,6 +18,76 @@ class Route(IC.Interconnect):
|
||||
|
||||
|
||||
class RacetrackResonator:
|
||||
"""
|
||||
RacetrackResonator primitive component.
|
||||
|
||||
This component builds the RacetrackResonator layout cell.
|
||||
|
||||
Parameters
|
||||
----------
|
||||
R0 : Any
|
||||
Radius parameter in microns.
|
||||
w0 : float
|
||||
Width parameter in microns.
|
||||
R1 : Any
|
||||
Radius parameter in microns.
|
||||
w1 : float
|
||||
Width parameter in microns.
|
||||
dLy : float
|
||||
Value for the dLy parameter.
|
||||
dLx : float
|
||||
Value for the dLx parameter.
|
||||
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'.
|
||||
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.
|
||||
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.
|
||||
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.
|
||||
res : float, optional
|
||||
Value for the res parameter. Default is 0.01.
|
||||
show_pins : bool, optional
|
||||
Whether to draw pin markers in the generated layout. Default is False.
|
||||
"""
|
||||
def __init__(self,
|
||||
|
||||
R0: Any,
|
||||
@@ -147,6 +217,58 @@ class RacetrackResonator:
|
||||
|
||||
|
||||
class Racetrack_STD_Allpass(RacetrackResonator):
|
||||
"""
|
||||
Racetrack STD Allpass primitive component.
|
||||
|
||||
This component builds the Racetrack STD Allpass layout cell.
|
||||
|
||||
Parameters
|
||||
----------
|
||||
r_rck : float
|
||||
Radius parameter in microns.
|
||||
w_rck : float
|
||||
Width parameter in microns.
|
||||
dLy : float
|
||||
Value for the dLy parameter.
|
||||
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'.
|
||||
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.
|
||||
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 0.
|
||||
Ratt : int, optional
|
||||
Radius parameter in microns. Default is 10.
|
||||
w_ht : float, optional
|
||||
Width parameter in microns. Default is 0.
|
||||
w_mt : float, optional
|
||||
Width parameter in microns. Default is 10.
|
||||
via_h2m : Any, optional
|
||||
Via definition used between heater and metal layers. Default is None.
|
||||
xs_ht : str, optional
|
||||
Layer or cross-section name used by the device. Default is 'heater'.
|
||||
xs_mt : str, optional
|
||||
Layer or cross-section name used by the device. Default is 'metal'.
|
||||
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.
|
||||
res : float, optional
|
||||
Value for the res parameter. Default is 0.01.
|
||||
show_pins : bool, optional
|
||||
Whether to draw pin markers in the generated layout. Default is False.
|
||||
"""
|
||||
def __init__(self,
|
||||
r_rck: float, w_rck: float,
|
||||
dLy: float,
|
||||
@@ -232,6 +354,54 @@ class Racetrack_STD_Allpass(RacetrackResonator):
|
||||
|
||||
|
||||
class Racetrack_MM_Allpass(RacetrackResonator):
|
||||
"""
|
||||
Racetrack MM Allpass primitive component.
|
||||
|
||||
This component builds the Racetrack MM Allpass layout cell.
|
||||
|
||||
Parameters
|
||||
----------
|
||||
r1_rck : float
|
||||
Value for the r1_rck parameter.
|
||||
w1_rck : float
|
||||
Value for the w1_rck parameter.
|
||||
r0_rck : float
|
||||
Value for the r0_rck parameter.
|
||||
w0_rck : float
|
||||
Value for the w0_rck parameter.
|
||||
dLy : float
|
||||
Value for the dLy parameter.
|
||||
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'.
|
||||
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 : int, optional
|
||||
Radius parameter in microns. Default is 50.
|
||||
R_att_min : int, optional
|
||||
Radius parameter in microns. Default is 10.
|
||||
A_att : int, optional
|
||||
Angle parameter in degrees. Default is 15.
|
||||
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.
|
||||
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.
|
||||
res : float, optional
|
||||
Value for the res parameter. Default is 0.01.
|
||||
show_pins : bool, optional
|
||||
Whether to draw pin markers in the generated layout. Default is False.
|
||||
"""
|
||||
def __init__(self,
|
||||
r1_rck: float, w1_rck: float,
|
||||
r0_rck: float, w0_rck: float,
|
||||
@@ -264,6 +434,54 @@ class Racetrack_MM_Allpass(RacetrackResonator):
|
||||
|
||||
|
||||
class Racetrack_MM_Adddrop(RacetrackResonator):
|
||||
"""
|
||||
Racetrack MM Adddrop primitive component.
|
||||
|
||||
This component builds the Racetrack MM Adddrop layout cell.
|
||||
|
||||
Parameters
|
||||
----------
|
||||
r1_rck : float
|
||||
Value for the r1_rck parameter.
|
||||
w1_rck : float
|
||||
Value for the w1_rck parameter.
|
||||
r0_rck : float
|
||||
Value for the r0_rck parameter.
|
||||
w0_rck : float
|
||||
Value for the w0_rck parameter.
|
||||
dLy : float
|
||||
Value for the dLy parameter.
|
||||
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'.
|
||||
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 : int, optional
|
||||
Radius parameter in microns. Default is 50.
|
||||
R_att_min : int, optional
|
||||
Radius parameter in microns. Default is 10.
|
||||
A_att : int, optional
|
||||
Angle parameter in degrees. Default is 15.
|
||||
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.
|
||||
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.
|
||||
res : float, optional
|
||||
Value for the res parameter. Default is 0.01.
|
||||
show_pins : bool, optional
|
||||
Whether to draw pin markers in the generated layout. Default is False.
|
||||
"""
|
||||
def __init__(self,
|
||||
r1_rck: float, w1_rck: float,
|
||||
r0_rck: float, w0_rck: float,
|
||||
|
||||
@@ -5,7 +5,7 @@ from .couplers import ring_bus_wg
|
||||
|
||||
from .taper import taper_xs2xs
|
||||
|
||||
from ...structures import *
|
||||
from ...geometry import *
|
||||
# import nazca.interconnects as IC
|
||||
from ...routing import Route
|
||||
|
||||
@@ -20,6 +20,76 @@ from ...basic import __cell_arg__
|
||||
""" NOTE: n_points will not be used in any future class, res will be the accurancy parameter """
|
||||
|
||||
class AED_ring :
|
||||
"""
|
||||
AED ring primitive component.
|
||||
|
||||
This component builds the AED ring 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.65.
|
||||
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 : 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.
|
||||
res : float, optional
|
||||
Value for the res parameter. Default is 0.01.
|
||||
show_pins : bool, optional
|
||||
Whether to draw pin markers in the generated layout. Default is False.
|
||||
"""
|
||||
def __init__(self,
|
||||
name: Optional[str]=None,
|
||||
ORx: float = 10,
|
||||
@@ -247,6 +317,72 @@ class AED_ring :
|
||||
return C
|
||||
|
||||
class STD_PIC_Rings(AED_ring):
|
||||
"""
|
||||
STD PIC Rings primitive component.
|
||||
|
||||
This component builds the STD PIC Rings 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 10.
|
||||
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 : 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.
|
||||
res : float, optional
|
||||
Value for the res parameter. Default is 0.001.
|
||||
show_pins : bool, optional
|
||||
Whether to draw pin markers in the generated layout. Default is False.
|
||||
"""
|
||||
def __init__(self,
|
||||
name: Optional[str] = None,
|
||||
r_ring: float=10,
|
||||
|
||||
@@ -7,14 +7,66 @@ import math
|
||||
from .taper import taper_xs2xs
|
||||
from ...routing import Route
|
||||
|
||||
from ...structures import *
|
||||
from ...geometry import *
|
||||
from ....technologies import *
|
||||
|
||||
from ...structures import _my_polygon,Conchoid,_my_poly_spiral
|
||||
from ...geometry import _my_polygon,Conchoid,_my_poly_spiral
|
||||
|
||||
from scipy import optimize
|
||||
|
||||
class spiral:
|
||||
"""
|
||||
spiral primitive component.
|
||||
|
||||
This component builds the spiral layout cell.
|
||||
|
||||
Parameters
|
||||
----------
|
||||
name : str, optional
|
||||
Unique identifier for the device cell. Default is None.
|
||||
shape : str, optional
|
||||
Value for the shape parameter. Default is 'circle'.
|
||||
Dmin : float, optional
|
||||
Value for the Dmin parameter. Default is 50.
|
||||
R_bend : float, optional
|
||||
Radius parameter in microns. Default is 10.
|
||||
Rmin_euler : float, optional
|
||||
Radius parameter in microns. Default is 10.
|
||||
Lmin : float, optional
|
||||
Length parameter in microns. Default is 50.
|
||||
width : float, optional
|
||||
Width parameter in microns. Default is 2.
|
||||
w_port : float, optional
|
||||
Width parameter in microns. Default is 0.45.
|
||||
w_bend_center : float, optional
|
||||
Width parameter in microns. Default is 1.
|
||||
Rmin_bend_center : float, optional
|
||||
Radius parameter in microns. Default is 10.
|
||||
gap : float, optional
|
||||
Spacing or gap parameter in microns. Default is 1.
|
||||
cycles : float, optional
|
||||
Count or repetition parameter. Default is 20.
|
||||
xs : str, optional
|
||||
Layer or cross-section name used by the device. Default is 'strip'.
|
||||
layer : str, optional
|
||||
Layer or cross-section name used by the device. Default is None.
|
||||
w_bend_port : Optional[float], optional
|
||||
Width parameter in microns. Default is None.
|
||||
Ltp_port : int, optional
|
||||
Length parameter in microns. Default is 10.
|
||||
res : float, optional
|
||||
Value for the res parameter. Default is 0.5.
|
||||
rib2strip : bool, optional
|
||||
Value for the rib2strip parameter. Default is True.
|
||||
port_angle : float, optional
|
||||
Value for the port_angle parameter. Default is 180.
|
||||
Euler_bend : bool, optional
|
||||
Value for the Euler_bend parameter. Default is False.
|
||||
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: str = None,
|
||||
shape: str = 'circle',
|
||||
@@ -350,6 +402,58 @@ class spiral:
|
||||
return C
|
||||
|
||||
class spiral_rectangle:
|
||||
"""
|
||||
spiral rectangle primitive component.
|
||||
|
||||
This component builds the spiral rectangle layout cell.
|
||||
|
||||
Parameters
|
||||
----------
|
||||
name : str, optional
|
||||
Unique identifier for the device cell. Default is None.
|
||||
Dmin : float, optional
|
||||
Value for the Dmin parameter. Default is 50.
|
||||
Rmax_bend : float, optional
|
||||
Radius parameter in microns. Default is 10.
|
||||
Rmin_bend : float, optional
|
||||
Radius parameter in microns. Default is 10.
|
||||
wmin_bend : float, optional
|
||||
Value for the wmin_bend parameter. Default is 10.
|
||||
Lmin : float, optional
|
||||
Length parameter in microns. Default is 50.
|
||||
width : float, optional
|
||||
Width parameter in microns. Default is 2.
|
||||
w_port : float, optional
|
||||
Width parameter in microns. Default is None.
|
||||
gap : float, optional
|
||||
Spacing or gap parameter in microns. Default is 1.
|
||||
cycles : float, optional
|
||||
Count or repetition parameter. Default is 20.
|
||||
xs : str, optional
|
||||
Layer or cross-section name used by the device. Default is 'strip'.
|
||||
layer : str, optional
|
||||
Layer or cross-section name used by the device. Default is None.
|
||||
w_bend_port : Optional[float], optional
|
||||
Width parameter in microns. Default is None.
|
||||
Lport : int, optional
|
||||
Length parameter in microns. Default is 10.
|
||||
Ltp : int, optional
|
||||
Length parameter in microns. Default is 10.
|
||||
res : float, optional
|
||||
Value for the res parameter. Default is 0.5.
|
||||
cell_xs_transition : Any, optional
|
||||
Cell or component dependency used by this device. Default is None.
|
||||
port_angle : float, optional
|
||||
Value for the port_angle parameter. Default is 180.
|
||||
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.
|
||||
in_out_align : bool, optional
|
||||
Value for the in_out_align parameter. Default is True.
|
||||
Lpatch : float, optional
|
||||
Length parameter in microns. Default is 0.05.
|
||||
"""
|
||||
def __init__(self,
|
||||
name: str = None,
|
||||
Dmin: float = 50,
|
||||
@@ -653,6 +757,48 @@ class spiral_rectangle:
|
||||
return C
|
||||
|
||||
class Spiral_Rect_STD(spiral_rectangle):
|
||||
"""
|
||||
Spiral Rect STD primitive component.
|
||||
|
||||
This component builds the Spiral Rect STD layout cell.
|
||||
|
||||
Parameters
|
||||
----------
|
||||
name : str, optional
|
||||
Unique identifier for the device cell. Default is None.
|
||||
Dmin : float, optional
|
||||
Value for the Dmin parameter. Default is 50.
|
||||
R_bend : float, optional
|
||||
Radius parameter in microns. Default is 10.
|
||||
Lmin : float, optional
|
||||
Length parameter in microns. Default is 50.
|
||||
width : float, optional
|
||||
Width parameter in microns. Default is 2.
|
||||
w_port : float, optional
|
||||
Width parameter in microns. Default is 0.45.
|
||||
gap : float, optional
|
||||
Spacing or gap parameter in microns. Default is 1.
|
||||
cycles : float, optional
|
||||
Count or repetition parameter. Default is 20.
|
||||
xs : str, optional
|
||||
Layer or cross-section name used by the device. Default is 'strip'.
|
||||
layer : str, optional
|
||||
Layer or cross-section name used by the device. Default is None.
|
||||
Lport : int, optional
|
||||
Length parameter in microns. Default is 10.
|
||||
in_out_align : bool, optional
|
||||
Value for the in_out_align parameter. Default is True.
|
||||
res : float, optional
|
||||
Value for the res parameter. Default is 0.5.
|
||||
cell_xs_transition : Any, optional
|
||||
Cell or component dependency used by this device. Default is None.
|
||||
port_angle : float, optional
|
||||
Value for the port_angle parameter. Default is 180.
|
||||
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: str = None,
|
||||
Dmin: float = 50,
|
||||
@@ -693,6 +839,50 @@ class Spiral_Rect_STD(spiral_rectangle):
|
||||
in_out_align=in_out_align)
|
||||
|
||||
class spiral_circle:
|
||||
"""
|
||||
spiral circle primitive component.
|
||||
|
||||
This component builds the spiral circle layout cell.
|
||||
|
||||
Parameters
|
||||
----------
|
||||
name : str, optional
|
||||
Unique identifier for the device cell. Default is None.
|
||||
Dmin : float, optional
|
||||
Value for the Dmin parameter. Default is 50.
|
||||
width : float, optional
|
||||
Width parameter in microns. Default is 2.
|
||||
w_port : float, optional
|
||||
Width parameter in microns. Default is 0.45.
|
||||
w_bend_center : float, optional
|
||||
Width parameter in microns. Default is 1.
|
||||
gap : float, optional
|
||||
Spacing or gap parameter in microns. Default is 1.
|
||||
cycles : float, optional
|
||||
Count or repetition parameter. Default is 20.
|
||||
xs : str, optional
|
||||
Layer or cross-section name used by the device. Default is 'strip'.
|
||||
layer : str, optional
|
||||
Layer or cross-section name used by the device. Default is None.
|
||||
Lport : int, optional
|
||||
Length parameter in microns. Default is 10.
|
||||
res : float, optional
|
||||
Value for the res parameter. Default is 0.5.
|
||||
rib2strip : bool, optional
|
||||
Value for the rib2strip parameter. Default is True.
|
||||
port_angle : float, optional
|
||||
Value for the port_angle parameter. Default is 180.
|
||||
Euler_Sbend : bool, optional
|
||||
Value for the Euler_Sbend parameter. Default is False.
|
||||
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.
|
||||
strict_condition : bool, optional
|
||||
Value for the strict_condition parameter. Default is False.
|
||||
R_ratio_mamnual : Any, optional
|
||||
Radius parameter in microns. Default is None.
|
||||
"""
|
||||
def __init__(self,
|
||||
name: str = None,
|
||||
Dmin: float = 50,
|
||||
@@ -942,6 +1132,46 @@ class spiral_circle:
|
||||
return C
|
||||
|
||||
class Spiral_Cicle_MM(spiral_circle):
|
||||
"""
|
||||
Spiral Cicle MM primitive component.
|
||||
|
||||
This component builds the Spiral Cicle MM layout cell.
|
||||
|
||||
Parameters
|
||||
----------
|
||||
name : str, optional
|
||||
Unique identifier for the device cell. Default is None.
|
||||
Dmin : float, optional
|
||||
Value for the Dmin parameter. Default is 50.
|
||||
width : float, optional
|
||||
Width parameter in microns. Default is 2.
|
||||
w_port : float, optional
|
||||
Width parameter in microns. Default is 0.45.
|
||||
w_bend_center : float, optional
|
||||
Width parameter in microns. Default is 1.
|
||||
gap : float, optional
|
||||
Spacing or gap parameter in microns. Default is 1.
|
||||
cycles : float, optional
|
||||
Count or repetition parameter. Default is 20.
|
||||
xs : str, optional
|
||||
Layer or cross-section name used by the device. Default is 'strip'.
|
||||
layer : str, optional
|
||||
Layer or cross-section name used by the device. Default is None.
|
||||
Lport : int, optional
|
||||
Length parameter in microns. Default is 10.
|
||||
res : float, optional
|
||||
Value for the res parameter. Default is 0.5.
|
||||
rib2strip : bool, optional
|
||||
Value for the rib2strip parameter. Default is True.
|
||||
port_angle : float, optional
|
||||
Value for the port_angle parameter. Default is 180.
|
||||
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.
|
||||
strict_condition : bool, optional
|
||||
Value for the strict_condition parameter. Default is False.
|
||||
"""
|
||||
def __init__(self,
|
||||
name: str = None,
|
||||
Dmin: float = 50,
|
||||
@@ -974,6 +1204,44 @@ class Spiral_Cicle_MM(spiral_circle):
|
||||
strict_condition=strict_condition)
|
||||
|
||||
class Spiral_Cicle_STD(spiral_circle):
|
||||
"""
|
||||
Spiral Cicle STD primitive component.
|
||||
|
||||
This component builds the Spiral Cicle STD layout cell.
|
||||
|
||||
Parameters
|
||||
----------
|
||||
name : str, optional
|
||||
Unique identifier for the device cell. Default is None.
|
||||
Dmin : float, optional
|
||||
Value for the Dmin parameter. Default is 50.
|
||||
width : float, optional
|
||||
Width parameter in microns. Default is 2.
|
||||
w_port : float, optional
|
||||
Width parameter in microns. Default is 0.45.
|
||||
gap : float, optional
|
||||
Spacing or gap parameter in microns. Default is 1.
|
||||
cycles : float, optional
|
||||
Count or repetition parameter. Default is 20.
|
||||
xs : str, optional
|
||||
Layer or cross-section name used by the device. Default is 'strip'.
|
||||
layer : str, optional
|
||||
Layer or cross-section name used by the device. Default is None.
|
||||
Lport : int, optional
|
||||
Length parameter in microns. Default is 10.
|
||||
res : float, optional
|
||||
Value for the res parameter. Default is 0.5.
|
||||
rib2strip : bool, optional
|
||||
Value for the rib2strip parameter. Default is True.
|
||||
port_angle : float, optional
|
||||
Value for the port_angle parameter. Default is 180.
|
||||
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.
|
||||
strict_condition : bool, optional
|
||||
Value for the strict_condition parameter. Default is False.
|
||||
"""
|
||||
def __init__(self,
|
||||
name: str = None,
|
||||
Dmin: float = 50,
|
||||
|
||||
@@ -3,14 +3,44 @@ import numpy as np
|
||||
import math
|
||||
from ...routing import Route
|
||||
|
||||
from ...structures import *
|
||||
from ...geometry import *
|
||||
from ....technologies import *
|
||||
|
||||
import pandas as pd
|
||||
from ...structures import _my_polygon
|
||||
from ...geometry import _my_polygon
|
||||
|
||||
""" NEW Classes :: Transistion area of rib to strip, to minize the loss """
|
||||
class transition:
|
||||
"""
|
||||
transition primitive component.
|
||||
|
||||
This component builds the transition layout cell.
|
||||
|
||||
Parameters
|
||||
----------
|
||||
layer_FETCH : str, optional
|
||||
Layer or cross-section name used by the device. Default is 'STRIP_TRE'.
|
||||
layer_METCH : str, optional
|
||||
Layer or cross-section name used by the device. Default is 'RIB_TRE'.
|
||||
w_rib : float, optional
|
||||
Width parameter in microns. Default is 1.1.
|
||||
dw_tolerance : float, optional
|
||||
Value for the dw_tolerance parameter. Default is 0.2.
|
||||
w_grow_rib : float, optional
|
||||
Width parameter in microns. Default is 2.
|
||||
w_grow_strip : float, optional
|
||||
Width parameter in microns. Default is 2.
|
||||
Ltp1 : int, optional
|
||||
Length parameter in microns. Default is 15.
|
||||
Ltp2 : int, optional
|
||||
Length parameter in microns. Default is 10.
|
||||
Ltrans : int, optional
|
||||
Length parameter in microns. Default is 5.
|
||||
L_port : int, optional
|
||||
Length parameter in microns. Default is 2.
|
||||
show_pins : bool, optional
|
||||
Whether to draw pin markers in the generated layout. Default is False.
|
||||
"""
|
||||
def __init__(self,
|
||||
layer_FETCH: str="STRIP_TRE",
|
||||
layer_METCH: str="RIB_TRE",
|
||||
@@ -59,6 +89,26 @@ class transition:
|
||||
self.cell = C
|
||||
|
||||
class taper_xs2xs:
|
||||
"""
|
||||
taper xs2xs primitive component.
|
||||
|
||||
This component builds the taper xs2xs layout cell.
|
||||
|
||||
Parameters
|
||||
----------
|
||||
xs_1 : str, optional
|
||||
Layer or cross-section name used by the device. Default is 'rib'.
|
||||
xs_2 : str, optional
|
||||
Layer or cross-section name used by the device. Default is 'strip'.
|
||||
L_taper : float, optional
|
||||
Length parameter in microns. Default is 10.
|
||||
w_1 : float, optional
|
||||
Width parameter in microns. Default is 0.45.
|
||||
w_2 : float, optional
|
||||
Width parameter in microns. Default is 0.45.
|
||||
L_port : float, optional
|
||||
Length parameter in microns. Default is 0.
|
||||
"""
|
||||
def __init__ (self,
|
||||
xs_1:str='rib',
|
||||
xs_2:str='strip',
|
||||
@@ -157,7 +207,32 @@ class taper_xs2xs:
|
||||
|
||||
class PSR:
|
||||
"""
|
||||
Polarization Splitter & rotator
|
||||
Polarization Splitter & rotator.
|
||||
|
||||
Parameters
|
||||
----------
|
||||
name : str, optional
|
||||
Unique identifier for the device cell. Default is 'PSR_unit'.
|
||||
xs : str, optional
|
||||
Layer or cross-section name used by the device. Default is 'rib'.
|
||||
layer_u : str, optional
|
||||
Layer or cross-section name used by the device. Default is None.
|
||||
layer_d : str, optional
|
||||
Layer or cross-section name used by the device. Default is None.
|
||||
w : list, optional
|
||||
Width parameter in microns. Default is [0.45, 0.45, 0.55, 1.2, 1.2].
|
||||
Lt_rib : list, optional
|
||||
Length parameter in microns. Default is [10, 30, 30, 10].
|
||||
ws : list, optional
|
||||
Value for the ws parameter. Default is [0.45, 2, 1.2].
|
||||
Lt_slab : list, optional
|
||||
Length parameter in microns. Default is [40, 40].
|
||||
shape : str, optional
|
||||
Value for the shape parameter. Default is 'sine'.
|
||||
L_port : float, optional
|
||||
Length parameter in microns. Default is 5.
|
||||
res : float, optional
|
||||
Value for the res parameter. Default is 0.01.
|
||||
"""
|
||||
def __init__ (self,
|
||||
|
||||
|
||||
Reference in New Issue
Block a user