def _default_expanded_wg_template(self): wstart1 = PathTraceWindow(layer=i3.TECH.PPLAYER.WG.CORE, start_offset=-self.expanded_wg_width * 0.5, end_offset=self.expanded_wg_width * 0.5) wstart2 = PathTraceWindow( layer=i3.TECH.PPLAYER.WG.CLADDING, start_offset=-(self.expanded_wg_width + self.trench_width) * 0.5, end_offset=-(self.expanded_wg_width + self.trench_width) * 0.5, line_width=0) wstart3 = PathTraceWindow( layer=i3.TECH.PPLAYER.WG.CLADDING, start_offset=(self.expanded_wg_width + self.trench_width) * 0.5, end_offset=(self.expanded_wg_width + self.trench_width) * 0.5, line_width=0) expanded_wg_template = i3.WindowWaveguideTemplate() expanded_wg_template.Layout(windows=[wstart1, wstart2, wstart3]) return expanded_wg_template
process_layer_map={wg_process: wg_layer}, process_to_material_stack_map= # (wg_process, ) [((0,), silicon), ((1,), oxide), ], is_lf_fabrication={wg_process: False} ) return vfab_process wg_width = 0.5 wg_length = 2.0 # waveguide template wg_tmpl = i3.WindowWaveguideTemplate() wg_tpl_lay = wg_tmpl.Layout(windows=[ i3.PathTraceWindow(layer=core_layer, start_offset=-0.5 * wg_width, end_offset=+0.5 * wg_width), i3.PathTraceWindow(layer=clad_layer, start_offset=-0.5 * wg_width - 2.0, end_offset=0.5 * wg_width + 2.0) ] ) vfab_process = vfab() xsection = wg_tpl_lay.cross_section(process_flow=vfab_process) xsection.visualize() # waveguide