def __init__(self): # Important: initialize the super class super(Waveguide, self).__init__() # declare the parameters from SiEPIC.utils import get_technology_by_name TECHNOLOGY = get_technology_by_name('GSiP') self.param("path", self.TypeShape, "Path", default=DPath([DPoint(0, 0), DPoint(10, 0), DPoint(10, 10)], 0.5)) self.param("radius", self.TypeDouble, "Radius", default=5) self.param("width", self.TypeDouble, "Width", default=0.5) self.param("adiab", self.TypeBoolean, "Adiabatic", default=False) self.param("bezier", self.TypeDouble, "Bezier Parameter", default=0.35) self.param("layers", self.TypeList, "Layers", default=['Waveguide']) self.param("widths", self.TypeList, "Widths", default=[0.5]) self.param("offsets", self.TypeList, "Offsets", default=[0]) self.param("CML", self.TypeString, "Compact Model Library (CML)", default='GSiP') self.param("model", self.TypeString, "CML Model name", default='wg_strip_integral_1550') self.cellName = "Waveguide"
def __init__(self): # Important: initialize the super class super(SWG_Ring, self).__init__() TECHNOLOGY = get_technology_by_name('EBeam') # declare the parameters self.param("pitch", self.TypeDouble, "Period [um]", default=0.2) self.param("w", self.TypeDouble, "Waveguide Width [um]", default=0.5) self.param("r", self.TypeDouble, "Radius [um]", default=5) # minimum radius is 5 um in TE self.param("ff", self.TypeDouble, "Duty Cycle", default=0.5) self.param("angle", self.TypeDouble, "Angle", default=360) self.param("gap", self.TypeDouble, "Bus Gap [um]", default=0.06) self.param("W_ratio", self.TypeDouble, "Lin/Lout", default=1) self.param("doublebus", self.TypeBoolean, "Bus Type (Single=False, Double=True)", default=False) self.param("layer", self.TypeLayer, "Layer", default=TECHNOLOGY['Waveguide']) self.param("pinrec", self.TypeLayer, "PinRec Layer", default=TECHNOLOGY['PinRec']) self.param("devrec", self.TypeLayer, "DevRec Layer", default=TECHNOLOGY['DevRec'])
def __init__(self): # Important: initialize the super class super(MultiBox_Ring, self).__init__() TECHNOLOGY = get_technology_by_name('EBeam') # declare the parameters self.param("pitch", self.TypeDouble, "Period [um]", default=0.24) self.param("w", self.TypeDouble, "Waveguide Width [um]", default=0.18) self.param("r", self.TypeDouble, "Radius [um]", default=35) # minimum radius is 5 um in TE self.param("ff", self.TypeDouble, "Duty Cycle", default=0.75) self.param("angle", self.TypeDouble, "Angle", default=360) self.param("gap", self.TypeDouble, "Row Gap [um]", default=0.06) self.param("gap2", self.TypeDouble, "Bus Gap [um]", default=0.06) self.param("row", self.TypeDouble, "Number of Rows", default=5) self.param("busL", self.TypeDouble, "Bus Length [um]", default=10) self.param("taperL", self.TypeDouble, "Taper Length [um]", default=25) #self.param("doublebus", self.TypeBoolean, "Bus Type (Single=False, Double=True)", default = False) self.param("layer", self.TypeLayer, "Layer", default=TECHNOLOGY['Waveguide']) self.param("pinrec", self.TypeLayer, "PinRec Layer", default=TECHNOLOGY['PinRec']) self.param("devrec", self.TypeLayer, "DevRec Layer", default=TECHNOLOGY['DevRec'])
def __init__(self): # Important: initialize the super class super(DoubleBus_Ring, self).__init__() TECHNOLOGY = get_technology_by_name('EBeam') # declare the parameters self.param("silayer", self.TypeLayer, "Si Layer", default=TECHNOLOGY['Waveguide']) self.param("s", self.TypeShape, "", default=DPoint(0, 0)) self.param("r", self.TypeDouble, "Radius", default=10) self.param("w", self.TypeDouble, "Waveguide Width", default=0.5) self.param("g", self.TypeDouble, "Gap", default=0.2) self.param("textpolygon", self.TypeInt, "Draw text polygon label? 0/1", default=1) self.param("textl", self.TypeLayer, "Text Layer", default=LayerInfo(10, 0)) self.param("pinrec", self.TypeLayer, "PinRec Layer", default=TECHNOLOGY['PinRec']) self.param("devrec", self.TypeLayer, "DevRec Layer", default=TECHNOLOGY['DevRec'])
def __init__(self): # Important: initialize the super class super(Tapered_Ring, self).__init__() TECHNOLOGY = get_technology_by_name('EBeam') # declare the parameters self.param("w_top", self.TypeDouble, "Top width", default=.5) self.param("w_bot", self.TypeDouble, "Bottom width (>Top Width)", default=2) self.param("radius", self.TypeDouble, "Radius", default=10) self.param("LayerSi", self.TypeLayer, "Si Layer", default=TECHNOLOGY['Waveguide']) self.param("pinrec", self.TypeLayer, "PinRec Layer", default=TECHNOLOGY['PinRec']) self.param("devrec", self.TypeLayer, "DevRec Layer", default=TECHNOLOGY['DevRec'])
def __init__(self): # Important: initialize the super class super(cavity_hole, self).__init__() TECHNOLOGY = get_technology_by_name('EBeam') # declare the parameters self.param("x", self.TypeDouble, "x coordinate", default=0) self.param("y", self.TypeDouble, "y coordinate", default=0) self.param("radius", self.TypeDouble, "hole radius", default=10) self.param("gap", self.TypeDouble, "half of the gap between surrounding holes (microns)", default=2) self.param("LayerSi", self.TypeLayer, "Si Layer", default=TECHNOLOGY['Waveguide']) self.param("pinrec", self.TypeLayer, "PinRec Layer", default=TECHNOLOGY['PinRec']) self.param("devrec", self.TypeLayer, "DevRec Layer", default=TECHNOLOGY['DevRec'])
def __init__(self): # Important: initialize the super class super(ebeam_dc, self).__init__() TECHNOLOGY = get_technology_by_name('EBeam') # declare the parameters self.param("Lc", self.TypeDouble, "Coupler Length", default=10.0) self.param("r", self.TypeDouble, "Radius", default=10) self.param("w", self.TypeDouble, "Waveguide Width", default=0.5) self.param("g", self.TypeDouble, "Gap", default=0.2) self.param("silayer", self.TypeLayer, "Si Layer", default=[TECHNOLOGY['Waveguide']]) self.param("pinrec", self.TypeLayer, "PinRec Layer", default=TECHNOLOGY['PinRec']) self.param("devrec", self.TypeLayer, "DevRec Layer", default=TECHNOLOGY['DevRec']) self.param("textl", self.TypeLayer, "Text Layer", default=LayerInfo(10, 0))
def __init__(self): # Important: initialize the super class super(MMI_2x2, self).__init__() TECHNOLOGY = get_technology_by_name('EBeam') # declare the parameters self.param("silayer", self.TypeLayer, "Si Layer", default=TECHNOLOGY['Waveguide']) self.param("w", self.TypeDouble, "Waveguide Width", default=0.5) self.param("w_mmi", self.TypeDouble, "Waveguide Width", default=6.0) self.param("w_a", self.TypeDouble, "Access waveguide Width", default=1.5) self.param("L_mmi", self.TypeDouble, "MMI Length", default=130.5) self.param("L_a", self.TypeDouble, "Access waveguide Length", default=10.0) self.param("pinrec", self.TypeLayer, "PinRec Layer", default=TECHNOLOGY['PinRec']) self.param("devrec", self.TypeLayer, "DevRec Layer", default=TECHNOLOGY['DevRec']) self.param("textl", self.TypeLayer, "Text Layer", default=LayerInfo(10, 0))
def __init__(self): # Important: initialize the super class super(phc_H0c, self).__init__() self.param("a", self.TypeDouble, "lattice constant (microns)", default = 0.744) self.param("n", self.TypeInt, "Number of holes in x and y direction", default = 30) self.param("r", self.TypeDouble, "hole radius (microns)", default = 0.179) self.param("wg_dis", self.TypeInt, "Waveguide distance (number of holes)", default = 3) self.param("n_bus", self.TypeInt, "Bus number, 1 or 2 ", default = 2) self.param("n_vertices", self.TypeInt, "Vertices of a hole", default = 32) self.param("S1x", self.TypeDouble, "S1x shift", default = 0.28) self.param("S2x", self.TypeDouble, "S2x shift", default = 0.193) self.param("S3x", self.TypeDouble, "S3x shift", default = 0.194) self.param("S4x", self.TypeDouble, "S4x shift", default = 0.162) self.param("S5x", self.TypeDouble, "S5x shift", default = 0.113) self.param("S1y", self.TypeDouble, "S1y shift", default = -0.016) self.param("S2y", self.TypeDouble, "S2y shift", default = 0.134) self.param("etch_condition", self.TypeInt, "etch = 1 if etch box, etch = 2 if no etch box", default = 1) TECHNOLOGY = get_technology_by_name('EBeam') self.param("layer", self.TypeLayer, "Layer", default = TECHNOLOGY['Waveguide']) self.param("pinrec", self.TypeLayer, "PinRec Layer", default = TECHNOLOGY['PinRec']) self.param("devrec", self.TypeLayer, "DevRec Layer", default = TECHNOLOGY['DevRec']) self.param("textl", self.TypeLayer, "Text Layer", default = TECHNOLOGY['Text']) self.param("etch", self.TypeLayer, "oxide etch layer", default = pya.LayerInfo(12, 0))
def __init__(self): super(Ring_Modulator_DB, self).__init__() # declare the parameters from SiEPIC.utils import get_technology_by_name TECHNOLOGY = get_technology_by_name('GSiP') self.param("silayer", self.TypeLayer, "Si Layer", default = TECHNOLOGY['Si']) self.param("s", self.TypeShape, "", default = pya.DPoint(0, 0)) self.param("r", self.TypeDouble, "Radius", default = 10) self.param("w", self.TypeDouble, "Waveguide Width", default = 0.5) self.param("g", self.TypeDouble, "Gap", default = 0.2) self.param("gmon", self.TypeDouble, "Gap Monitor", default = 0.5) self.param("component_ID", self.TypeInt, "Component_ID (>0)", default = 0) self.param("si3layer", self.TypeLayer, "SiEtch2(Rib) Layer", default = TECHNOLOGY['SiEtch2']) self.param("nlayer", self.TypeLayer, "N Layer", default = TECHNOLOGY['Si N']) self.param("player", self.TypeLayer, "P Layer", default = TECHNOLOGY['Si P']) self.param("nplayer", self.TypeLayer, "N+ Layer", default = TECHNOLOGY['Si N+']) self.param("pplayer", self.TypeLayer, "P+ Layer", default = TECHNOLOGY['Si P+']) self.param("npplayer", self.TypeLayer, "N++ Layer", default = TECHNOLOGY['Si N++']) self.param("ppplayer", self.TypeLayer, "P++ Layer", default = TECHNOLOGY['Si P++']) self.param("vclayer", self.TypeLayer, "VC Layer", default = TECHNOLOGY['VC']) self.param("m1layer", self.TypeLayer, "M1 Layer", default = TECHNOLOGY['M1']) self.param("vllayer", self.TypeLayer, "VL Layer", default = TECHNOLOGY['VL']) self.param("mllayer", self.TypeLayer, "ML Layer", default = TECHNOLOGY['ML']) self.param("mhlayer", self.TypeLayer, "MH Layer", default = TECHNOLOGY['M Heater']) self.param("textpolygon", self.TypeInt, "Draw text polygon label? 0/1", default = 1) self.param("textl", self.TypeLayer, "Text Layer", default = TECHNOLOGY['Text']) self.param("pinrec", self.TypeLayer, "PinRec Layer", default = TECHNOLOGY['PinRec']) self.param("devrec", self.TypeLayer, "DevRec Layer", default = TECHNOLOGY['DevRec'])
def __init__(self): # Important: initialize the super class super(Waveguide_SBend, self).__init__() TECHNOLOGY = get_technology_by_name('EBeam') # declare the parameters self.param("length", self.TypeDouble, "Waveguide length", default=10.0) self.param("height", self.TypeDouble, "Waveguide offset height", default=2) self.param("wg_width", self.TypeDouble, "Waveguide width (microns)", default=0.5) self.param("radius", self.TypeDouble, "Waveguide bend radius (microns)", default=5) self.param("layer", self.TypeLayer, "Layer", default=TECHNOLOGY['Si']) self.param("pinrec", self.TypeLayer, "PinRec Layer", default=TECHNOLOGY['PinRec']) self.param("devrec", self.TypeLayer, "DevRec Layer", default=TECHNOLOGY['DevRec'])
def __init__(self): # Important: initialize the super class super(Waveguide_SWG_Assist, self).__init__() TECHNOLOGY = get_technology_by_name('EBeam') # declare the parameters self.param("length", self.TypeDouble, "Waveguide length", default=10.0) self.param("target_period", self.TypeDouble, "Target period (microns)", default=0.200) self.param("swg_wg_width", self.TypeDouble, "SWG Waveguide width", default=0.5) self.param("strip_wg_width", self.TypeDouble, "Strip Waveguide width", default=0.06) self.param("duty", self.TypeDouble, "Duty Cycle (0 to 1)", default=0.5) self.param("layer", self.TypeLayer, "Layer", default=TECHNOLOGY['Waveguide']) self.param("pinrec", self.TypeLayer, "PinRec Layer", default=TECHNOLOGY['PinRec']) self.param("devrec", self.TypeLayer, "DevRec Layer", default=TECHNOLOGY['DevRec'])
def __init__(self): # Important: initialize the super class super(DirectionalCoupler_SeriesRings, self).__init__() TECHNOLOGY = get_technology_by_name('EBeam') # declare the parameters self.param("silayer", self.TypeLayer, "Si Layer", default=TECHNOLOGY['Si']) self.param("r2", self.TypeDouble, "Radius of Upper Ring", default=3) self.param("r1", self.TypeDouble, "Radius of Lower Ring", default=3) self.param("w", self.TypeDouble, "Waveguide Width", default=0.5) self.param("g", self.TypeDouble, "Gap", default=0.2) self.param("Lc", self.TypeDouble, "Coupler Length", default=0.0) self.param("pinrec", self.TypeLayer, "PinRec Layer", default=TECHNOLOGY['PinRec']) self.param("devrec", self.TypeLayer, "DevRec Layer", default=TECHNOLOGY['DevRec']) self.param("textl", self.TypeLayer, "Text Layer", default=LayerInfo(10, 0))
def __init__(self): # Important: initialize the super class super(Bezier_Bend, self).__init__() TECHNOLOGY = get_technology_by_name('EBeam') # declare the parameters self.param("bezier_num", self.TypeDouble, "Bezier factor", default=25) self.param("eff_r", self.TypeDouble, "Effective bend radius (microns)", default=5) self.param("wg_width", self.TypeDouble, "Waveguide width (microns)", default=0.500) self.param("layer", self.TypeLayer, "Layer", default=TECHNOLOGY['Waveguide']) self.param("pinrec", self.TypeLayer, "PinRec Layer", default=TECHNOLOGY['PinRec']) self.param("devrec", self.TypeLayer, "DevRec Layer", default=TECHNOLOGY['DevRec'])
def __init__(self): # Important: initialize the super class super(Waveguide_Bend, self).__init__() TECHNOLOGY = get_technology_by_name('EBeam') # declare the parameters self.param("silayer", self.TypeLayer, "Si Layer", default=TECHNOLOGY['Si']) self.param("radius", self.TypeDouble, "Radius", default=10) self.param("wg_width", self.TypeDouble, "Waveguide Width", default=0.5) self.param("pinrec", self.TypeLayer, "PinRec Layer", default=TECHNOLOGY['PinRec']) self.param("devrec", self.TypeLayer, "DevRec Layer", default=TECHNOLOGY['DevRec']) # hidden parameters, can be used to query this component: self.param("p1", self.TypeShape, "DPoint location of pin1", default=Point(-10000, 0), hidden=True, readonly=True) self.param("p2", self.TypeShape, "DPoint location of pin2", default=Point(0, 10000), hidden=True, readonly=True)
def __init__(self): # Important: initialize the super class super(PhC_Hole_cell_half, self).__init__() self.param("a", self.TypeDouble, "lattice constant (microns)", default=0.744) self.param("r", self.TypeDouble, "hole radius (microns)", default=0.179) TECHNOLOGY = get_technology_by_name('EBeam') self.param("layer", self.TypeLayer, "Layer", default=TECHNOLOGY['Waveguide']) self.param("pinrec", self.TypeLayer, "PinRec Layer", default=TECHNOLOGY['PinRec']) self.param("devrec", self.TypeLayer, "DevRec Layer", default=TECHNOLOGY['DevRec']) self.param("textl", self.TypeLayer, "Text Layer", default=TECHNOLOGY['Text'])
def __init__(self): # Important: initialize the super class super(Grating_Coupler_FSWGC, self).__init__() TECHNOLOGY = get_technology_by_name('EBeam') # declare the parameters self.param("wavelength", self.TypeDouble, "Design Wavelength (micron)", default=1.55) self.param("n_t", self.TypeDouble, "Cladding Index", default=1.0) self.param("n_e", self.TypeDouble, "Grating Effective Index", default=2.75618) self.param("angle_e", self.TypeDouble, "Taper Angle (deg)", default=35.0) self.param("grating_length", self.TypeDouble, "Grating Length (micron)", default=15.0) self.param("taper_length", self.TypeDouble, "Taper Length (micron)", default=19.0) self.param("dc", self.TypeDouble, "Duty Cycle", default=0.488193) self.param("period", self.TypeDouble, "Grating Period", default=1.18939) self.param("ff", self.TypeDouble, "Fill Factor", default=0.244319) self.param("t", self.TypeDouble, "Waveguide Width (micron)", default=0.5) self.param("theta_c", self.TypeDouble, "Insertion Angle (deg)", default=-31.0) # Layer parameters self.param("layer", self.TypeLayer, "Layer", default=TECHNOLOGY['Waveguide']) self.param("pinrec", self.TypeLayer, "PinRec Layer", default=TECHNOLOGY['PinRec']) self.param("devrec", self.TypeLayer, "DevRec Layer", default=TECHNOLOGY['DevRec'])
def __init__(self): # Important: initialize the super class super(Universal_GC, self).__init__() TECHNOLOGY = get_technology_by_name('EBeam') # declare the parameters self.param("wavelength", self.TypeDouble, "Design Wavelength (micron)", default=1.55) self.param("Si_thickness", self.TypeDouble, "Silicon Thickness (micron)", default=0.22) self.param("etch_depth", self.TypeDouble, "Etch Depth (micron)", default=0.13) self.param("pol", self.TypeString, "Polarization", default="TE") self.param("n_t", self.TypeDouble, "Cladding Index", default=1.444) self.param("angle_e", self.TypeDouble, "Taper Angle (deg)", default=35.0) self.param("grating_length", self.TypeDouble, "Grating Length (micron)", default=15.0) self.param("taper_length", self.TypeDouble, "Taper Length (micron)", default=19.0) self.param("dc", self.TypeDouble, "Duty Cylce", default=0.5) self.param("t", self.TypeDouble, "Waveguide Width (micron)", default=0.5) self.param("theta_c", self.TypeDouble, "Insertion Angle (deg)", default=-31.0) # Layer parameters self.param("layer", self.TypeLayer, "Layer", default=TECHNOLOGY['Waveguide']) self.param("pinrec", self.TypeLayer, "PinRec Layer", default=TECHNOLOGY['PinRec']) self.param("devrec", self.TypeLayer, "DevRec Layer", default=TECHNOLOGY['DevRec'])
def __init__(self): # Important: initialize the super class super(Ring, self).__init__() # declare the parameters from SiEPIC.utils import get_technology_by_name TECHNOLOGY = get_technology_by_name('GSiP') self.param("width", self.TypeDouble, "Width", default=0.5) self.param("radius", self.TypeDouble, "Radius", default=5) self.param("layer", self.TypeLayer, "Layer", default=TECHNOLOGY['Si'])
def __init__(self): # Important: initialize the super class super(Waveguide_SWG_to_Strip, self).__init__() TECHNOLOGY = get_technology_by_name('EBeam') # declare the parameters self.param("wavelength", self.TypeDouble, "Wavelength", default=1310) self.param("fishbone", self.TypeBoolean, "Fishbone", default=False) self.param("length", self.TypeDouble, "Waveguide length", default=10.0) self.param("taper_fraction", self.TypeDouble, "Strip taper length fraction (0 to 1)", default=1) self.param("period_strip", self.TypeDouble, "SWG Period at strip end (microns)", default=0.200) self.param("period_swg", self.TypeDouble, "SWG Period at SWG end (microns)", default=0.200) self.param("wg_width_strip", self.TypeDouble, "Strip Waveguide width at the taper end (microns)", default=0.5) # self.param("wg_width_swg_taperend", self.TypeDouble, "Waveguide width at SWG taper end (microns)", default = 0.4) self.param("wg_width_swg", self.TypeDouble, "SWG Waveguide at end (microns)", default=0.5) self.param("wg_width_taper", self.TypeDouble, "Nanotaper width at taper end (microns)", default=0.06) self.param("duty_strip", self.TypeDouble, "SWG duty cycle at strip end (0 to 1)", default=0.500) self.param("duty_swg", self.TypeDouble, "SWG duty cycle at SWG end (0 to 1)", default=0.700) self.param("layer", self.TypeLayer, "Layer", default=TECHNOLOGY['Waveguide']) self.param("pinrec", self.TypeLayer, "PinRec Layer", default=TECHNOLOGY['PinRec']) self.param("devrec", self.TypeLayer, "DevRec Layer", default=TECHNOLOGY['DevRec'])
def __init__(self): # Important: initialize the super class super(Wireguide, self).__init__() # declare the parameters TECHNOLOGY = get_technology_by_name('EBeam') self.param("path", self.TypeShape, "Path", default = DPath([DPoint(0,0), DPoint(10,0), DPoint(10,10)], 0.5)) self.radius = 0 self.param("width", self.TypeDouble, "Width", default = 0.5) self.adiab = False self.param("layers", self.TypeList, "Layers", default = ['Waveguide']) self.param("widths", self.TypeList, "Widths", default = [0.5]) self.param("offsets", self.TypeList, "Offsets", default = [0])
def __init__(self): # Important: initialize the super class super(Contra_DC_SWG_Chirped, self).__init__() TECHNOLOGY = get_technology_by_name('EBeam') # declare the parameters self.param("number_of_periods", self.TypeInt, "Number of grating periods", default=300) self.param("grating_period_start", self.TypeDouble, "Grating period start (microns)", default=0.24) self.param("grating_period_end", self.TypeDouble, "Grating period stop (microns)", default=0.28) self.param("gap", self.TypeDouble, "Minimum gap (microns)", default=0.15) self.param("corrugation_width1", self.TypeDouble, "Waveguide 1 Corrugration width (microns)", default=0.03) self.param("corrugation_width2", self.TypeDouble, "Waveguide 2 Corrugration width (microns)", default=0.04) self.param("wg1_width", self.TypeDouble, "Waveguide 1 width", default=0.45) self.param("wg2_width", self.TypeDouble, "Waveguide 2 width", default=0.55) self.param("duty", self.TypeDouble, "Duty cycle (0-1)", default=0.5) self.param("a", self.TypeDouble, "Gaussian Index", default=2.7) self.param("layer", self.TypeLayer, "Layer", default=TECHNOLOGY['Waveguide']) self.param("pinrec", self.TypeLayer, "PinRec Layer", default=TECHNOLOGY['PinRec']) self.param("devrec", self.TypeLayer, "DevRec Layer", default=TECHNOLOGY['DevRec'])
def __init__(self): # Important: initialize the super class super(PhC_L3c, self).__init__() self.param("a", self.TypeDouble, "lattice constant (microns)", default=0.720) self.param("n", self.TypeInt, "Number of holes in x and y direction", default=30) self.param("r", self.TypeDouble, "hole radius (microns)", default=0.181) self.param("wg_dis", self.TypeInt, "Waveguide distance (number of holes)", default=3) self.param("n_bus", self.TypeInt, "Bus number, 1 or 2 ", default=2) self.param("n_vertices", self.TypeInt, "Vertices of a hole", default=32) self.param("S1x", self.TypeDouble, "S1x shift", default=0.337) self.param("S2x", self.TypeDouble, "S2x shift", default=0.27) self.param("S3x", self.TypeDouble, "S3x shift", default=0.088) self.param("S4x", self.TypeDouble, "S4x shift", default=0.323) self.param("S5x", self.TypeDouble, "S5x shift", default=0.173) TECHNOLOGY = get_technology_by_name('EBeam') self.param("layer", self.TypeLayer, "Layer", default=TECHNOLOGY['Waveguide']) self.param("pinrec", self.TypeLayer, "PinRec Layer", default=TECHNOLOGY['PinRec']) self.param("devrec", self.TypeLayer, "DevRec Layer", default=TECHNOLOGY['DevRec']) self.param("textl", self.TypeLayer, "Text Layer", default=TECHNOLOGY['Text']) self.param("etch", self.TypeLayer, "oxide etch layer", default=pya.LayerInfo(12, 0))
def __init__(self): # Important: initialize the super class super(ebeam_taper_strip_rib, self).__init__() TECHNOLOGY = get_technology_by_name('EBeam') # declare the parameters self.param("si220layer", self.TypeLayer, "Si Layer", default=TECHNOLOGY['Si']) self.param("si90layer", self.TypeLayer, "Si slab Layer", default=TECHNOLOGY['Si - 90 nm rib']) self.param("rib_wg_width1", self.TypeDouble, "Rib Waveguide Width 1", default=0.35) self.param("rib_wg_width2", self.TypeDouble, "Rib Waveguide Width 2", default=3) self.param("strip_wg_width", self.TypeDouble, "Strip Waveguide Width", default=0.35) self.param("wg_length", self.TypeDouble, "Waveguide Length", default=10) self.param("pinrec", self.TypeLayer, "PinRec Layer", default=TECHNOLOGY['PinRec']) self.param("devrec", self.TypeLayer, "DevRec Layer", default=TECHNOLOGY['DevRec']) # hidden parameters, can be used to query this component: self.param("p1", self.TypeShape, "DPoint location of pin1", default=Point(-10000, 0), hidden=True, readonly=True) self.param("p2", self.TypeShape, "DPoint location of pin2", default=Point(0, 10000), hidden=True, readonly=True)
def __init__(self): # Important: initialize the super class super(phc_gc_hex, self).__init__() self.param("a", self.TypeDouble, "lattice constant (microns)", default=0.243) self.param("x", self.TypeInt, "Number of holes in x direction", default=78) self.param("y", self.TypeInt, "Number of holes in y direction", default=50) self.param("r", self.TypeDouble, "hole radius (microns)", default=0.0735) self.param("vertices", self.TypeInt, "Number of vertices in circle", default=32) TECHNOLOGY = get_technology_by_name('EBeam') self.param("positive", self.TypeInt, "Positive", default=False) self.param("apodized", self.TypeInt, "apodized", default=False) self.param("feature_size", self.TypeDouble, "minimum feature size (microns)", default=0.06) self.param("layer", self.TypeLayer, "Layer", default=TECHNOLOGY['31_Si_p6nm']) self.param("pinrec", self.TypeLayer, "PinRec Layer", default=TECHNOLOGY['PinRec']) self.param("devrec", self.TypeLayer, "DevRec Layer", default=TECHNOLOGY['DevRec']) self.param("textl", self.TypeLayer, "Text Layer", default=TECHNOLOGY['Text']) self.param("invert", self.TypeLayer, "Layer to invert", default=TECHNOLOGY['Waveguide'])
def __init__(self): # Important: initialize the super class super(PhC_W1wg, self).__init__() self.param("a", self.TypeDouble, "lattice constant (microns)", default=0.744) self.param("n", self.TypeInt, "Number of holes in x and y direction", default=30) self.param("r", self.TypeDouble, "hole radius (microns)", default=0.179) self.param("wg_dis", self.TypeInt, "Waveguide distance (number of holes)", default=2) self.param("n_vertices", self.TypeInt, "Vertices of a hole", default=32) self.param("etch_condition", self.TypeInt, "Etch = 1, No Etch = 2", default=1) TECHNOLOGY = get_technology_by_name('EBeam') self.param("layer", self.TypeLayer, "Layer", default=TECHNOLOGY['Waveguide']) self.param("pinrec", self.TypeLayer, "PinRec Layer", default=TECHNOLOGY['PinRec']) self.param("devrec", self.TypeLayer, "DevRec Layer", default=TECHNOLOGY['DevRec']) self.param("textl", self.TypeLayer, "Text Layer", default=TECHNOLOGY['Text']) self.param("etch", self.TypeLayer, "oxide etch layer", default=pya.LayerInfo(12, 0))
def __init__(self): # Important: initialize the super class super(PhC_H0c_new, self).__init__() self.param("a", self.TypeDouble, "lattice constant (microns)", default=0.744) self.param("n", self.TypeInt, "Number of holes in x and y direction", default=30) self.param("r", self.TypeDouble, "hole radius (microns)", default=0.179) self.param("wg_dis", self.TypeInt, "Waveguide distance (number of holes)", default=3) self.param("S1x", self.TypeDouble, "S1x shift", default=0.28) self.param("S2x", self.TypeDouble, "S2x shift", default=0.193) self.param("S3x", self.TypeDouble, "S3x shift", default=0.194) self.param("S4x", self.TypeDouble, "S4x shift", default=0.162) self.param("S5x", self.TypeDouble, "S5x shift", default=0.113) self.param("S1y", self.TypeDouble, "S1y shift", default=-0.016) self.param("S2y", self.TypeDouble, "S2y shift", default=0.134) self.param("bus_number", self.TypeInt, "2 for double, 1 for single, max 2", default=2) TECHNOLOGY = get_technology_by_name('EBeam') self.param("layer", self.TypeLayer, "Layer", default=TECHNOLOGY['Waveguide']) self.param("pinrec", self.TypeLayer, "PinRec Layer", default=TECHNOLOGY['PinRec']) self.param("devrec", self.TypeLayer, "DevRec Layer", default=TECHNOLOGY['DevRec']) self.param("textl", self.TypeLayer, "Text Layer", default=TECHNOLOGY['Text'])
def __init__(self): # Important: initialize the super class super(Bragg_Straight_from_file, self).__init__() TECHNOLOGY = get_technology_by_name('EBeam') # declare the parameters self.param("forder", self.TypeString, "Forder", default = "C:\\Users\Rui\Dropbox\\RESEARCH\\CAD_Data\\Feb\\") self.param("name", self.TypeString, "Name", default = "Square_BP_B3.5_N2536_DW6") self.param("filetype", self.TypeString, "File type (txt)", default = 'txt') self.param("layer", self.TypeLayer, "Layer", default = TECHNOLOGY['Waveguide']) self.param("port_w", self.TypeDouble, "Port Waveguide width", default = 0.5) self.param("pinrec", self.TypeLayer, "PinRec Layer", default = TECHNOLOGY['PinRec']) self.param("devrec", self.TypeLayer, "DevRec Layer", default = TECHNOLOGY['DevRec']) self.param("textl", self.TypeLayer, "Text Layer", default = TECHNOLOGY['Text'])
def __init__(self): # Important: initialize the super class super(ebeam_dc_halfring_straight, self).__init__() TECHNOLOGY = get_technology_by_name('EBeam') # declare the parameters self.param("silayer", self.TypeLayer, "Si Layer", default = TECHNOLOGY['Waveguide']) self.param("r", self.TypeDouble, "Radius", default = 10) self.param("w", self.TypeDouble, "Waveguide Width", default = 0.5) self.param("g", self.TypeDouble, "Gap", default = 0.2) self.param("Lc", self.TypeDouble, "Coupler Length", default = 0.0) self.param("orthogonal_identifier", self.TypeInt, "Orthogonal identifier (1=TE, 2=TM)", default = 1) self.param("pinrec", self.TypeLayer, "PinRec Layer", default = TECHNOLOGY['PinRec']) self.param("devrec", self.TypeLayer, "DevRec Layer", default = TECHNOLOGY['DevRec']) self.param("textl", self.TypeLayer, "Text Layer", default = TECHNOLOGY['Text'])
def __init__(self): # Important: initialize the super class super(Contra_DC_SWG_segmented, self).__init__() TECHNOLOGY = get_technology_by_name('EBeam') # declare the parameters self.param("number_of_periods", self.TypeInt, "Number of grating periods", default=300) self.param("grating_period", self.TypeDouble, "Sub-wavelength period (microns)", default=0.24) self.param("cdc_period", self.TypeDouble, "Pertrubation period (microns)", default=0.464) self.param("gap", self.TypeDouble, "Minimum gap (microns)", default=0.1) self.param("corrugation_width", self.TypeDouble, "Waveguide Corrugration width (microns)", default=0.12) self.param("wg1_width", self.TypeDouble, "Waveguide 1 width", default=0.5) self.param("wg2_width", self.TypeDouble, "Waveguide 2 width", default=0.38) self.param("duty", self.TypeDouble, "Duty cycle (0 to 1)", default=0.5) self.param("layer", self.TypeLayer, "Layer", default=TECHNOLOGY['Waveguide']) self.param("pinrec", self.TypeLayer, "PinRec Layer", default=TECHNOLOGY['PinRec']) self.param("devrec", self.TypeLayer, "DevRec Layer", default=TECHNOLOGY['DevRec'])