def _default_MMI22_list(self): print '____________ MMI 2x2 ______________' MMI22_list = [] for l, dl in enumerate(self.length_inc_vec): print 'length number ' + str(l) print 'dl ' + str(dl) print 'MM length ' + str(self.length_22 + dl) cell = MMI2x2Tapered(mmi_trace_template=self.wg_t_MM, input_trace_template=self.wg_t_port, output_trace_template=self.wg_t_port, trace_template=self.wg_t, name='MMI22_w_' + str(self.width) + '_l_' + str(self.length_22 + dl)) cell.Layout(transition_length=self.l_taper, length=self.length_22 + dl, trace_spacing=self.ts_12) MMI22_list.append(cell) print 'cell name ' + str(cell.name) print '__________________________' for w, dw in enumerate(self.width_inc_vec): MM_w = self.width + dw print 'width number ' + str(w) print 'dw ' + str(dw) print 'MM width ' + str(MM_w) wg_t_MM_w = WireWaveguideTemplate() wg_t_MM_w.Layout( core_width=MM_w, cladding_width=MM_w + 2 * 8, ) cell = MMI2x2Tapered(mmi_trace_template=wg_t_MM_w, input_trace_template=self.wg_t_port, output_trace_template=self.wg_t_port, trace_template=self.wg_t, name='MMI22_w_' + str(self.width + dw) + '_l_' + str(self.length_22)) cell.Layout(transition_length=self.l_taper, length=self.length_22, trace_spacing=self.ts_12 + dw) #.visualize(annotate=True) print cell MMI22_list.append(cell) print 'cell name ' + str(cell.name) print '__________________________' print 'last MMI22 done' print '_ _ _ _ _ _ _ _ _ _ _ _ _ ' return MMI22_list
def _default_DC_list(self): print '____________ MMI 2x2 ______________' MMI22_list = [] for l, dl in enumerate(self.gap_inc_vec): print 'length number ' + str(l) print 'dl ' + str(dl) cell = MMI2x2Tapered(mmi_trace_template=self.mmi_trace_template, input_trace_template=self.mmi_access_template, output_trace_template=self.mmi_access_template, trace_template=self.trace_template, ) cell.Layout(name="MMI22_l_{}".format(str(self.gap_inc_vec[l])), transition_length=200.0, length=self.gap_inc_vec[l], trace_spacing=11.0 ) # cell = RingRectSymm180DropFilter(name='ring' + str(dl) + str(self.length), # ring_trace_template=self.trace_template) # cell.Layout(bend_radius=200, # coupler_lengths=[self.length, self.length], # coupler_radii=[300.0, 300.0], # coupler_angles=[90.0, 90.0], # coupler_spacings=[3.8 + self.gap_inc_vec[l], 3.8 + self.gap_inc_vec[l]], # straights=(self.length, 0.0), # # manhattan=True, # ) MMI22_list.append(cell) print 'cell name ' + str(cell.name) print '__________________________' return MMI22_list
def _default_DC_list(self): print '____________ MMI 2x2 ______________' MMI22_list = [] for l, dl in enumerate(self.gap_inc_vec): print 'length number ' + str(l) print 'dl ' + str(dl) cell = MMI2x2Tapered( mmi_trace_template=self.mmi_trace_template, input_trace_template=self.mmi_access_template, output_trace_template=self.mmi_access_template, trace_template=self.trace_template, ) cell.Layout(name="MMI22_l_{}".format(str(self.gap_inc_vec[l])), transition_length=200.0, length=self.gap_inc_vec[l], trace_spacing=11.0) MMI22_list.append(cell) print 'cell name ' + str(cell.name) print '__________________________' return MMI22_list
def _default_mmi22(self): mmi22 = MMI2x2Tapered(mmi_trace_template=self.mmi_trace_template, input_trace_template=self.mmi_access_template, output_trace_template=self.mmi_access_template, trace_template=self.wg_sm, ) return mmi22
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, ) layout_mmi1_12 = mmi1_12.Layout(transition_length=200.0, length=97.0, trace_spacing=11.0) mmi22 = MMI2x2Tapered( mmi_trace_template=mmi_trace_template, input_trace_template=mmi_access_template, output_trace_template=mmi_access_template, trace_template=wg_sm, ) layout_mmi22 = mmi22.Layout(transition_length=200.0, length=398.0, trace_spacing=11.0) # layout_mmi1_21.visualize(annotate="true") # C = SBendDirectionalCoupler(name="my_sbenddircoup3", # trace_template1=wg_sm, # coupler_length=100.0) # layout = C.Layout(coupler_spacing=3.8+2, # bend_radius=300, # straight_after_bend=60.0,