def taper(wg1, wg2, l): # wg1 [wg] -> waveguide to connect on one side # wg2 [wg] -> waveguide to connect on the other side # l [int] -> length of the taper t = WireWaveguideTransitionLinear(start_trace_template=wg1, end_trace_template=wg2) t.Layout(start_position=(0, 0), end_position=(l, 0)) return t
def _default_WG2(self): WG2 = WireWaveguideTransitionLinear( name="Dongbo{}".format(str(self.start_id)), start_trace_template=self.wg_t1, end_trace_template=self.wg_sm, ) return WG2
def _default_WG2(self): WG2 = WireWaveguideTransitionLinear( name="dongbo{}".format(str(np.random.randint(0, 10000))), start_trace_template=self.wg_t1, end_trace_template=self.wg_sm, ) return WG2
# wg_sm2 = WireWaveguideTemplate() # wg_sm2.Layout(core_width=3.1, cladding_width=3.1 + 16.0) mmi_trace_template = WireWaveguideTemplate() mmi_trace_template.Layout(core_width=20.0, cladding_width=20.0 + 16.0) # MMI_width mmi_access_template = WireWaveguideTemplate() mmi_access_template.Layout(core_width=9.0, cladding_width=9.0 + 16.0) # Define components WG1 = i3.Waveguide(name="Dongbo", trace_template=wg_t1) layout_WG1 = WG1.Layout(shape=[(0.0, 0.0), (50.0, 0.0)]) WG2 = WireWaveguideTransitionLinear(start_trace_template=wg_t1, end_trace_template=wg_sm) layout_WG2 = WG2.Layout(start_position=(50.0, 0.0), end_position=(350.0, 0.0)) # layout_WG2.visualize() WG3 = WireWaveguideTransitionLinear(start_trace_template=wg_sm, end_trace_template=wg_t1) layout_WG3 = WG3.Layout(start_position=(50.0, 0.0), end_position=(350.0, 0.0)) mmi1_12 = MMI1x2Tapered( mmi_trace_template=mmi_trace_template, input_trace_template=mmi_access_template, output_trace_template=mmi_access_template, trace_template=wg_sm, )
def _default_WG2(self): WG2 = WireWaveguideTransitionLinear(start_trace_template=self.wg_t1, end_trace_template=self.wg_sm) return WG2
def _default_WG2(self): WG2 = WireWaveguideTransitionLinear(start_trace_template=self.mmi_access_template, end_trace_template=self.trace_template) return WG2
#cladding_width_def=3 #core_width_def=0.35 side2_r = 3. #cladd reel obtenue au Ebeam side2 = side2_r / 2 w_core2_r = 0.35 #core reel obtenue au Ebeam w_core_w2 = w_core2_r + side2 w_clad_w2 = 2 * side2 + w_core_w2 WG_T2FBMS = new_wg_template.Layout( core_width=w_core_w2, cladding_width=w_clad_w2, ) my_taperG = WireWaveguideTransitionLinear(start_trace_template=WG_T1, end_trace_template=WG_T2FBMS) field_Ebeamx = 500 field_Ebeamy = 25 + 0 * 50 wg_length = 500 #real length is wg_length+100 overlap_wg = 0 taper_length = 200 my_taperG_lay = my_taperG.Layout(start_position=(0.0, 0.0), end_position=(taper_length, 0.0)) my_taperG_lay.visualize() #FBMS waveguide
def _default_WG2(self): WG2 = WireWaveguideTransitionLinear( name="taper{}".format(str(self.width)), start_trace_template=self.wg_t1, end_trace_template=self.trace_template) return WG2