Skip to content
Snippets Groups Projects

Flat Liquid Jet

Merged Loïc Le Guyader requested to merge focus into master
Files
2
+ 7
6
@@ -30,7 +30,8 @@ class GeoBeams:
'dVFM': -2, # Vertical Focusing Mirror position
'fVFM': 5.05, # VFM focal length
'dBOZ': -0.23, # Beam splitting Off axis Zone plate position
'fBOZ': 0.25, # BOZ focal length
'fBOZ_x': 0.25, # BOZ horizontal focal length
'fBOZ_y': 0.25, # BOZ vertical focal distance
'theta_grating': 0, # grating deflection angle in rad
'dSAMZ': 0.0, # Sample position
'WH': 0.8e-3, # BOZ horizontal width
@@ -55,7 +56,7 @@ class GeoBeams:
position x2, given the source position at x1.
"""
dEX, dIHF, dVFM, dHFM, dBOZ = symbols('dEX, dIHF, dVFM, dHFM, dBOZ')
fVFM, fHFM, fBOZ = symbols('fVFM, fHFM, fBOZ')
fVFM, fHFM, fBOZ_x, fBOZ_y = symbols('fVFM, fHFM, fBOZ_x, fBOZ_y')
x1, theta1_x, x2 = symbols('x1, theta1_x, x2')
y1, theta1_y, y2 = symbols('y1, theta1_y, y2')
@@ -71,8 +72,8 @@ class GeoBeams:
self.VFM_f = lambdify(self.elems.keys(), self.VFM, ['numpy'])
# beams for the zone plate first order (0th order is unfocused)
self.HBOZ = simplify(ThinLens(fBOZ)*self.HFM)
self.VBOZ = simplify(ThinLens(fBOZ)*self.VFM)
self.HBOZ = simplify(ThinLens(fBOZ_x)*self.HFM)
self.VBOZ = simplify(ThinLens(fBOZ_y)*self.VFM)
self.HBOZ_f = lambdify(self.elems.keys(), self.HBOZ, ['numpy'])
self.VBOZ_f = lambdify(self.elems.keys(), self.VBOZ, ['numpy'])
@@ -105,7 +106,7 @@ class GeoBeams:
x += [ray[0].evalf()]
# BOZ
ray = (ThinLens(self.elems['fBOZ']) *
ray = (ThinLens(self.elems['fBOZ_x']) *
FreeSpace(-self.elems['dHFM'] + self.elems['dBOZ'])*ray)
z_x += [self.elems['dBOZ']]
x += [ray[0].evalf()]
@@ -132,7 +133,7 @@ class GeoBeams:
y += [ray[0].evalf()]
# BOZ
ray = (ThinLens(self.elems['fBOZ']) *
ray = (ThinLens(self.elems['fBOZ_y']) *
FreeSpace(-self.elems['dVFM']+self.elems['dBOZ'])*ray)
z_y += [self.elems['dBOZ']]
y += [ray[0].evalf()]
Loading