Skip to content
GitLab
Menu
Projects
Groups
Snippets
/
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
Menu
Open sidebar
Sebastian Steinlechner
pykat
Commits
7af711e5
Commit
7af711e5
authored
Dec 12, 2013
by
Daniel Brown
Browse files
fixing gauss param and adding example
parent
eb54342e
Changes
3
Hide whitespace changes
Inline
Side-by-side
examples/gauss_param.py
0 → 100644
View file @
7af711e5
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
pykat/utilities/optics/ABCD.py
View file @
7af711e5
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
]])
...
...
pykat/utilities/optics/gaussian_beams.py
View file @
7af711e5
...
...
@@ -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
):
...
...
Write
Preview
Supports
Markdown
0%
Try again
or
attach a new file
.
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment