from typing import Optional import numpy as np import nazca as nd from ..primitives.passive import * from ..gds_devices import generate_gds_lib """ test passed, in ANT-20230228 submission """ class DC_pX3_50_50_Cband(DC_pX_3sg): def __init__(self, w_wg: float=0.5,gds_lib_generate: bool=False,name: Optional[str]=None) -> None: # DC_50_50_pX3 = mx.passive.DC_pX_3sg(name="DC_50_50_pX3",Lc1=33, Lp1=0.55, Lc2=15, Lt=1, w_cp=0.5, dw=0.1, gap=0.2, R0=17.5, A=20, w_wg=0.5, pX_type='symmetric', sharp_patch=True) super().__init__(name=name,xs_wg='strip', Lc1=33, Lp1=0.55, Lc2=15, Lt=1, w_cp=0.5, dw=0.1, gap=0.2, R0=17.5, A=20, w_wg=w_wg, pX_type='symmetric', sharp_patch=True) if (gds_lib_generate): self.generate_gds_lib() def generate_gds_lib(self): generate_gds_lib("DC_pX3_50_50_Cband",self.cell,with_txt=True) class MMG_1D_D14um_1550_2modes(GC_STD_1D): def __init__(self, w_wg: float = 0.5, gds_lib_generate:bool=False) -> None: pitch_1D_apodized = np.linspace(0.602,0.602,40) eta_1D_apodized = np.linspace(0.389,0.613,40) super().__init__(xs_wg='strip', w_wg=w_wg, etch_type='SETCH', xs_open='gc_open', L_taper=500, L_end=5, A_taper=2.5, Pitch=pitch_1D_apodized, eta_etch=eta_1D_apodized, num=len(eta_1D_apodized), shape='rectangle') if (gds_lib_generate): self.generate_gds_lib() def generate_gds_lib(self): generate_gds_lib("MMG_1D_D14um_1550_2modes",self.cell,with_txt=True) """ Aborted due to failure testing, 2022.12.30 """ class MDM_ADC_TE1_1550(MDM): def __init__(self,w_wg: float=0.45,gds_lib_generate: bool=False) -> None: """ w_wg the single mode input for the device """ self.wb0 = 0.44 self.wb1 = 0.61 self.wb_in = 0.45 self.wb_out = 0.85 self.w0 = 0.33 self.w1 = 0.2 self.w_wg = w_wg self.xs='strip' self.Lt_bus = 22 self.Lt_cp = 22 self.R0 = 40 self.Rmin=8 self.angle=22.5 self.gap0=0.2 self.gap1=0.2 super().__init__(xs=self.xs, wb0=self.wb0, wb1=self.wb1, wb_in=self.wb_in, wb_out=self.wb_out, w_wg=self.w_wg, w0=self.w0, w1=self.w1, gap0=self.gap0, Lt_bus=self.Lt_bus, R0=self.R0, angle=self.angle, Lt_cp=self.Lt_cp, gap1=self.gap1, name=None, Lb0=None, symmetric_BUS=False, single_end=True) if (gds_lib_generate): self.generate_gds_lib() def generate_gds_lib(self): generate_gds_lib("MDM_ADC_TE1_1550",self.cell,with_txt=True) class MDM_ADC_TE2_1550(MDM): def __init__(self,w_wg: float=0.45,gds_lib_generate: bool=False) -> None: """ w_wg the single mode input for the device """ self.wb0 = 0.85 self.wb1 = 1.04 self.wb_in = 0.85 self.wb_out = 1.2 self.w0 = 0.33 self.w1 = 0.2 self.w_wg = w_wg self.xs='strip' self.Lt_bus = 32 self.Lt_cp = 32 self.R0 = 40 self.Rmin=8 self.angle=22.5 self.gap0=0.2 self.gap1=0.2 super().__init__(xs=self.xs, wb0=self.wb0, wb1=self.wb1, wb_in=self.wb_in, wb_out=self.wb_out, w_wg=self.w_wg, w0=self.w0, w1=self.w1, gap0=self.gap0, Lt_bus=self.Lt_bus, R0=self.R0, angle=self.angle, Lt_cp=self.Lt_cp, gap1=self.gap1, name=None, Lb0=None, symmetric_BUS=False, single_end=None) if (gds_lib_generate): self.generate_gds_lib() def generate_gds_lib(self): generate_gds_lib("MDM_ADC_TE2_1550",self.cell,with_txt=True) class MDM_ADC_TE3_1550(MDM): def __init__(self,w_wg: float=0.45,gds_lib_generate: bool=False) -> None: """ w_wg the single mode input for the device """ self.wb0 = 1.25 self.wb1 = 1.41 self.wb_in = 1.2 self.wb_out = 1.8 self.w0 = 0.33 self.w1 = 0.2 self.w_wg = w_wg self.xs = 'strip' self.Lt_bus = 70 self.Lt_cp = 70 self.R0 = 40 self.Rmin=8 self.angle=22.5 self.gap0=0.2 self.gap1=0.2 super().__init__(xs=self.xs, wb0=self.wb0, wb1=self.wb1, wb_in=self.wb_in, wb_out=self.wb_out, w_wg=self.w_wg, w0=self.w0, w1=self.w1, gap0=self.gap0, Lt_bus=self.Lt_bus, R0=self.R0, angle=self.angle, Lt_cp=self.Lt_cp, gap1=self.gap1, name=None, Lb0=None, symmetric_BUS=False, single_end=None) if (gds_lib_generate): self.generate_gds_lib() def generate_gds_lib(self): generate_gds_lib("MDM_ADC_TE3_1550",self.cell,with_txt=True)