def f_iso3d(shape, k0, n=1., betamax=BETAMAX): k0 = np.asarray(k0) beta = eigenbeta(shape, k0, betamax) phi = eigenphi(shape, k0, betamax) if k0.ndim == 0: fmat = tmm.f_iso(n=n, beta=beta, phi=phi) return fmat else: fmat = (tmm.f_iso(n=n, beta=beta[i], phi=phi[i]) for i in range(len(k0))) return tuple(fmat)
def f_iso2d(shape, k0, n=1., betay=0, betamax=BETAMAX): k0 = np.asarray(k0) betax = eigenbeta1(shape, k0, betamax) if k0.ndim == 0: beta = betaxy2beta(betax, betay) phi = betaxy2phi(betax, betay) fmat = tmm.f_iso(n=n, beta=beta, phi=phi) return fmat else: beta = tuple((betaxy2beta(beta, betay) for beta in betax)) phi = tuple((betaxy2phi(beta, betay) for beta in betax)) fmat = (tmm.f_iso(n=n, beta=beta[i], phi=phi[i]) for i in range(len(k0))) return tuple(fmat)
def setUp(self): self.f0 = f_iso(beta = 0.2, phi = 0.2, n = 1.5) self.fvecp = fvec(self.f0, jones = (1,0), mode = +1) self.fvecm = fvec(self.f0, jones = (1,0), mode = -1) self.fvec = self.fvecp + self.fvecm
#: layer thickness times wavenumber kd = 2*np.pi/wavelengths[None,:]* step * d[:,None] #: input epsilon -air eps_in = dtmm.refind2eps([nin]*3) #: layer epsilon eps_layer = dtmm.refind2eps(n) eps_values = np.array([eps_layer]*(nlayers+2), dtype = CDTYPE) eps_values[0] = dtmm.refind2eps([nglass]*3) eps_values[-1] = dtmm.refind2eps([nglass]*3) jx = jones4.jonesvec((1,0), phi) jy = jones4.jonesvec((0,1), phi) fin = tmm.f_iso(n = nin) fout = tmm.f_iso(n = nout) pmat = tmm.projection_mat(fout,mode = +1) mmat = tmm.projection_mat(fin, mode = -1) fvec = tmm.fvec(fin,jones = jx) rfvec4 = np.array([fvec]*nwavelengths) tfvec4 = tmm.transfer(rfvec4, kd, eps_values, eps_angles, nin = nin, nout = nout,method = method) rfvec4 = dotmv(mmat,rfvec4) x_polarizerin = jones4.polarizer4x4(jx, fin) y_polarizerin = jones4.polarizer4x4(jy, fin) x_polarizer = jones4.polarizer4x4(jx, fout) y_polarizer = jones4.polarizer4x4(jy, fout)