Skip to content
Snippets Groups Projects
Select Git revision
  • 9b2b87e9532ccefb24df62e79a6afd3ce5506793
  • master default protected
2 results

test_pykat_gui.py

Blame
  • ABCD.py 1.08 KiB
    import numpy as np
    from pykat.optics.gaussian_beams import gauss_param
    
    def apply(ABCD, q1, n1, n2):
        return gauss_param(nr=n2, q=n2 * (ABCD[0,0] * q1/float(n1) + ABCD[0,1]) / (ABCD[1,0] * q1/float(n1) + ABCD[1,1]))
    
    def mirror_trans(n1, n2, Rc):
        return np.matrix([[1.0,0.0],[(n2-n1)/float(Rc),1.0]])
    
    def mirror_refl(n, Rc):
        return np.matrix([[1.0,0.0],[-2.0*n/float(Rc),1.0]])
    
    def bs_trans(n1, n2, Rcx, Rcy, alpha):
        alpha2=math.asin(n1/float(n2)*math.sin(alpha))
        c1=math.cos(alpha)
        c2=math.cos(alpha2)
        delta_n_t=(n2*c2-n1*c1)/(c1*c2)
        delta_n_s=n2*c2-n1*c1
        Mt= np.matrix([[c2/c1, 0.0],[delta_n_t/float(Rcx),c1/c2]])
        Ms= np.matrix([[1.0, 0.0],[delta_n_s/float(Rcy),1.0]])
        return(Mt, Ms)
    
    def bs_refl(n1, n2, Rcx, Rcy, alpha):
        Mt= np.matrix([[1.0, 0.0],[-2.0*n1/(float(Rcx)*math.cos(alpha)),1.0]])
        Ms= np.matrix([[1.0, 0.0],[-2.0*n1*math.cos(alpha)/float(Rcy),1.0]])
        return(Mt, Ms)
        
    def space(n,L):
        return np.matrix([[1.0, L/float(n)],[0.0,1.0]])
        
    def lens(f):
        return np.matrix([[1.0, 0.0],[-1.0/f,1.0]])