Commit 7af711e5 authored by Daniel Brown's avatar Daniel Brown
Browse files

fixing gauss param and adding example

parent eb54342e
from pykat.utilities.optics.ABCD import apply, mirror_trans
from pykat.utilities.optics.gaussian_beams import gauss_param
nr1 = 1
nr2 = 1.44963098985906
q1 = gauss_param(q=5.96343 + 3.04713j)
abcd = mirror_trans(nr1, nr2, float("inf"))
# into material
q2 = apply(abcd, q1, nr1, nr2)
# and out again
q3 = apply(abcd, q2, nr2, nr1)
print "q1 =", q1, " w0 =", q1.w0, " wz =", q1.wz, " z =", q1.z
print "q2 =", q2, " w0 =", q2.w0, " wz =", q2.wz, " z =", q2.z
print "q3 =", q3, " w0 =", q3.w0, " wz =", q3.wz, " z =", q3.z
import numpy as np
from pykat.utilities.optics.gaussian_beams import gauss_param
def apply(ABCD, q1, n1, n2):
return n2 * (ABCD[0,0] * q1/n1 + ABCD[0,1]) / (ABCD[1,0] * q1/n1 + ABCD[1,1])
return gauss_param(nr=n2, q=n2 * (ABCD[0,0] * q1/n1 + ABCD[0,1]) / (ABCD[1,0] * q1/n1 + ABCD[1,1]))
def mirror_trans(n1, n2, Rc):
return np.matrix([[1,0],[(n2-n1)/Rc,1]])
......
......@@ -68,7 +68,7 @@ class gauss_param(object):
@property
def wz(self):
return math.sqrt(self.__lambda /(self.__nr * math.pi) * abs(self.__q) / self.__q.imag)
return self.w0 * math.sqrt(1 + (self.__q.real/self.__q.imag)**2)
@property
def w0(self):
......
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment