def __init__(self, sim, grating_etch, wg, substrate, y_ts, w_in, h_wg, H, Ng, eps_clad, mm_line): super(SiliconGratingAM, self).__init__(sim, step=1e-8) # save the variables for later self.grating_etch = grating_etch self.y_ts = y_ts self.w_in = w_in self.h_wg = h_wg self.H = H self.Ng = Ng self.wg = wg self.substrate = substrate self.mm_line = mm_line # constraints self.min_feature = 0.0 self.c_steepness = 0.0 self.penalty = 0.0 # desired Gaussian beam properties used in mode match theta = 8.0/180.0*pi match_w0 = 5.2 match_center = 11.0 # Define the desired field profiles # We want to generate a vertical Gaussian beam, so these are the fields # are the use in our calculation of the mode match Ezm = Ez_Gauss(mm_line.x, match_center, match_w0, theta, sim.wavelength, np.sqrt(eps_clad)) Hxm = Hx_Gauss(mm_line.x, match_center, match_w0, theta, sim.wavelength, np.sqrt(eps_clad)) Hym = Hy_Gauss(mm_line.x, match_center, match_w0, theta, sim.wavelength, np.sqrt(eps_clad)) self.mode_match = emopt.fomutils.ModeMatch([0,1,0], sim.dx, Ezm=Ezm, Hxm=Hxm, Hym=Hym) self.current_fom = 0.0
def __init__(self, sim, grating_top, grating_bot, y_top, y_bot, w_in, h_wg, Ng, eps_clad, mm_line): super(SiliconGrating2LAM, self).__init__(sim, step=1e-10) # save the variables for later self.grating_top = grating_top self.grating_bot = grating_bot self.y_top = y_top self.y_bot = y_bot self.w_in = w_in self.h_wg = h_wg self.Ng = Ng self.mm_line = mm_line # desired Gaussian beam properties used in mode match theta = 0.0/180.0*pi match_w0 = 5.2 match_center = 11. # Define the desired field profiles # We want to generate a vertical Gaussian beam, so these are the fields # are the use in our calculation of the mode match Ezm = Ez_Gauss(mm_line.x, match_center, match_w0, theta, sim.wavelength, np.sqrt(eps_clad)) Hxm = Hx_Gauss(mm_line.x, match_center, match_w0, theta, sim.wavelength, np.sqrt(eps_clad)) Hym = Hy_Gauss(mm_line.x, match_center, match_w0, theta, sim.wavelength, np.sqrt(eps_clad)) self.mode_match = emopt.fomutils.ModeMatch([0,1,0], sim.dx, Ezm=Ezm, Hxm=Hxm, Hym=Hym) self.current_fom = 0.0