Skip to content
Snippets Groups Projects
Commit 7af711e5 authored by Daniel Brown's avatar Daniel Brown
Browse files

fixing gauss param and adding example

parent eb54342e
No related branches found
No related tags found
No related merge requests found
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 import numpy as np
from pykat.utilities.optics.gaussian_beams import gauss_param
def apply(ABCD, q1, n1, n2): 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): def mirror_trans(n1, n2, Rc):
return np.matrix([[1,0],[(n2-n1)/Rc,1]]) return np.matrix([[1,0],[(n2-n1)/Rc,1]])
......
...@@ -68,7 +68,7 @@ class gauss_param(object): ...@@ -68,7 +68,7 @@ class gauss_param(object):
@property @property
def wz(self): 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 @property
def w0(self): def w0(self):
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment