AnisotropicMaterial, RefractiveIndex, EpsilonTensor, ) alpha = 0. delta = 0. # psi = EMpy.utils.deg2rad(0.) # TM # psi = EMpy.utils.deg2rad(90.) # TE psi = EMpy.utils.deg2rad(70.) # hybrid phi = EMpy.utils.deg2rad(90.) LAMBDA = 1016e-9 # grating periodicity n = 2 # orders of diffraction UV6 = IsotropicMaterial("UV6", n0=RefractiveIndex(n0_const=1.560)) SiN = AnisotropicMaterial( "SiN", epsilon_tensor=EpsilonTensor( epsilon_tensor_const=EMpy.constants.eps0 * EMpy.utils.euler_rotate( np.diag(np.asarray([1.8550, 1.8750, 1.9130])**2), EMpy.utils.deg2rad(14), EMpy.utils.deg2rad(25), EMpy.utils.deg2rad(32), )), ) BPTEOS = IsotropicMaterial("BPTEOS", n0=RefractiveIndex(n0_const=1.448)) ARC1 = IsotropicMaterial("ARC1", n0=RefractiveIndex(n0_const=1.448)) EFF = IsotropicMaterial("EFF", n0=RefractiveIndex(n0_const=1.6))
IsotropicMaterial, AnisotropicMaterial, RefractiveIndex, EpsilonTensor) alpha = 0. delta = 0. # psi = EMpy.utils.deg2rad(0.) # TM # psi = EMpy.utils.deg2rad(90.) # TE psi = EMpy.utils.deg2rad(70.) # hybrid phi = EMpy.utils.deg2rad(90.) LAMBDA = 1016e-9 # grating periodicity n = 2 # orders of diffraction UV6 = IsotropicMaterial( 'UV6', n0=RefractiveIndex(n0_const=1.560)) SiN = AnisotropicMaterial( 'SiN', epsilon_tensor=EpsilonTensor( epsilon_tensor_const=EMpy.constants.eps0 * EMpy.utils.euler_rotate( numpy.diag(numpy.asarray([1.8550, 1.8750, 1.9130]) ** 2), EMpy.utils.deg2rad(14), EMpy.utils.deg2rad(25), EMpy.utils.deg2rad(32)))) BPTEOS = IsotropicMaterial( 'BPTEOS', n0=RefractiveIndex(n0_const=1.448)) ARC1 = IsotropicMaterial( 'ARC1', n0=RefractiveIndex(n0_const=1.448)) EFF = IsotropicMaterial(
#!/usr/bin/python import numpy, EMpy, pylab from EMpy.materials import IsotropicMaterial, RefractiveIndex alpha = EMpy.utils.deg2rad(30.) delta = EMpy.utils.deg2rad(45.) psi = EMpy.utils.deg2rad(0.) # TE phi = EMpy.utils.deg2rad(90.) wls = numpy.linspace(1.5495e-6, 1.550e-6, 101) LAMBDA = 1.e-6 # grating periodicity n = 3 # orders of diffraction Top = IsotropicMaterial('Top', n0=RefractiveIndex(n0_const=1.)) Bottom = IsotropicMaterial('Bottom', n0=RefractiveIndex(n0_const=3.47)) multilayer = EMpy.utils.Multilayer([ \ EMpy.utils.Layer(Top, numpy.inf), \ EMpy.utils.BinaryGrating(Top, Bottom, .4, LAMBDA, .01), \ EMpy.utils.Layer(Bottom, numpy.inf), \ ]) solution = EMpy.RCWA.IsotropicRCWA(multilayer, alpha, delta, psi, phi, n).solve(wls) pylab.plot(wls, solution.DE1[n,:], 'ko-', \ wls, solution.DE3[n,:], 'ro-', \ wls, solution.DE1[n-1,:], 'kx-', \ wls, solution.DE3[n-1,:], 'rx-', \
import pylab import EMpy from EMpy.materials import IsotropicMaterial, RefractiveIndex alpha = EMpy.utils.deg2rad(30.0) delta = EMpy.utils.deg2rad(45.0) psi = EMpy.utils.deg2rad(0.0) # TE phi = EMpy.utils.deg2rad(90.0) wls = numpy.linspace(1.5495e-6, 1.550e-6, 101) LAMBDA = 1.0e-6 # grating periodicity n = 3 # orders of diffraction Top = IsotropicMaterial("Top", n0=RefractiveIndex(n0_const=1.0)) Bottom = IsotropicMaterial("Bottom", n0=RefractiveIndex(n0_const=3.47)) multilayer = EMpy.utils.Multilayer([ EMpy.utils.Layer(Top, numpy.inf), EMpy.utils.BinaryGrating(Top, Bottom, 0.4, LAMBDA, 0.01), EMpy.utils.Layer(Bottom, numpy.inf), ]) solution = EMpy.RCWA.IsotropicRCWA(multilayer, alpha, delta, psi, phi, n).solve(wls) pylab.plot( wls, solution.DE1[n, :], "ko-",
import EMpy from EMpy.materials import IsotropicMaterial, RefractiveIndex alpha = EMpy.utils.deg2rad(10.) delta = EMpy.utils.deg2rad(0.) psi = EMpy.utils.deg2rad(0.) # TE phi = EMpy.utils.deg2rad(90.) wl = np.array([1.55e-6]) ds = np.linspace(0., 5., 100) * wl LAMBDA = 10 * wl n = 3 # orders of diffraction Top = IsotropicMaterial("Top", n0=RefractiveIndex(n0_const=1.)) Bottom = IsotropicMaterial("Bottom", n0=RefractiveIndex(n0_const=2.04)) solutions = [] for d in ds: multilayer = EMpy.utils.Multilayer([ EMpy.utils.Layer(Top, np.inf), EMpy.utils.BinaryGrating(Top, Bottom, .3, LAMBDA, d), EMpy.utils.Layer(Bottom, np.inf), ]) solution = EMpy.RCWA.IsotropicRCWA(multilayer, alpha, delta, psi, phi, n).solve(wl) solutions.append(solution) DE1 = np.zeros(len(solutions))
import numpy, EMpy, pylab from EMpy.materials import IsotropicMaterial, AnisotropicMaterial, RefractiveIndex, EpsilonTensor alpha = 0. delta = 0. # psi = EMpy.utils.deg2rad(0.) # TM # psi = EMpy.utils.deg2rad(90.) # TE psi = EMpy.utils.deg2rad(70.) # hybrid phi = EMpy.utils.deg2rad(90.) LAMBDA = 1016e-9 # grating periodicity n = 2 # orders of diffraction UV6 = IsotropicMaterial('UV6', n0=RefractiveIndex(n0_const=1.560)) SiN = AnisotropicMaterial('SiN', epsilon_tensor=EpsilonTensor(epsilon_tensor_const=EMpy.constants.eps0 * \ EMpy.utils.euler_rotate(numpy.diag(numpy.asarray([1.8550, 1.8750, 1.9130])**2), \ EMpy.utils.deg2rad(14), \ EMpy.utils.deg2rad(25), \ EMpy.utils.deg2rad(32)))) BPTEOS = IsotropicMaterial('BPTEOS', n0=RefractiveIndex(n0_const=1.448)) ARC1 = IsotropicMaterial('ARC1', n0=RefractiveIndex(n0_const=1.448)) EFF = IsotropicMaterial('EFF', n0=RefractiveIndex(n0_const=1.6)) multilayer1 = EMpy.utils.Multilayer([ \ EMpy.utils.Layer(EMpy.materials.Air, numpy.inf), \ EMpy.utils.Layer(SiN, 226e-9), \