Importar el pyoptools para poder realizar los calculos de trazo de rayos


In [ ]:
from pyoptools.all import *

Creando componentes

Crear una lente esferica

1 - Crear las superficies con las que se van a crear la componente.


In [ ]:
S0=Spherical(shape=Circular(radius=50),curvature=1./200.)
S1=Spherical(shape=Circular(radius=50),curvature=1./200.)
S2=Cylinder(radius=50,length=10)

2- Armar la componente con las superficies creadas


In [ ]:
L1=Component(surflist=[(S0,(0,0,-5),(0,0,0)),
                       (S1,(0,0,5),(0,0,0)),
                       (S2,(0,0,6.5),(0,0,0))
                       ],material=schott["BK7"])
plot3D(L1,size=(120,120),scale=3,rot=[(pi/3,0,0)])

Crear un prisma de 90 grados


In [ ]:
width=50
height=50
reflectivity=0.5
        
a_face= Plane(shape=Rectangular(size=(width,height)))
b_face= Plane(shape=Rectangular(size=(width,height)))


h=sqrt(2.)*width
h_face= Plane (shape=Rectangular(size=(h,height)),reflectivity=reflectivity)
        
w2=width/2.

e1=Plane (shape=Triangular(((-w2,w2),(-w2,-w2),(w2,-w2))))
e2=Plane (shape=Triangular(((-w2,w2),(-w2,-w2),(w2,-w2))))

In [ ]:
P=Component(surflist=[(a_face,(0,0,-width/2),(0,0,0)),
                      (b_face,(width/2,0,0),(0,pi/2,0)),
                      (h_face,(0,0,0),(0,-pi/4,0)),
                      (e1,(0,height/2,0),(pi/2,-pi/2,0)),
                      (e2,(0,height/2,0),(pi/2,-pi/2,0))
                      ],material=schott["BK7"])
plot3D(P,size=(120,120),scale=3,rot=[(pi/6,pi/8,0)])

Crear un cubo divisor de haz


In [ ]:
def prisma(reflectivity=0):
    width=50
    height=50
    a_face= Plane(shape=Rectangular(size=(width,height)))
    b_face= Plane(shape=Rectangular(size=(width,height)))

    h=sqrt(2.)*width
    h_face= Plane (shape=Rectangular(size=(h,height)),reflectivity=reflectivity)
        
    w2=width/2.

    e1=Plane (shape=Triangular(((-w2,w2),(-w2,-w2),(w2,-w2))))
    e2=Plane (shape=Triangular(((-w2,w2),(-w2,-w2),(w2,-w2))))
    P=Component(surflist=[(a_face,(0,0,-width/2),(0,0,0)),
                      (b_face,(width/2,0,0),(0,pi/2,0)),
                      (h_face,(0,0,0),(0,-pi/4,0)),
                      (e1,(0,height/2,0),(pi/2,-pi/2,0)),
                      (e2,(0,height/2,0),(pi/2,-pi/2,0))
                      ],material=schott["BK7"])
    return P
P1=prisma()
P2=prisma(reflectivity=.5)

cube=System(complist=[(P1,(0,0,0),(0,0,0)),(P2,(0,0,0),(0,pi,0))],n=1.)

plot3D(cube,size=(120,120),scale=3,rot=[(pi/6,pi/8,0)])

In [ ]: