Skip to content
GitLab
Menu
Projects
Groups
Snippets
Loading...
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Sign in
Toggle navigation
Menu
Open sidebar
finesse
finesse3
Commits
d856cb83
Commit
d856cb83
authored
Jun 01, 2021
by
Phil Jones
Committed by
Sean Leavey
Jun 04, 2021
Browse files
Fix some small typos.
parent
e2ddde43
Changes
3
Hide whitespace changes
Inline
Side-by-side
docs/source/getting_started/examples/10_shifted_beam.rst
View file @
d856cb83
...
...
@@ -65,7 +65,7 @@ Our basic setup consists of:
- furthermore, the reference wavelength of |Finesse| is :math:`\lambda = 1064`
nm.
For these parameters Eq. :eq:`eq_ex10_Delta` gives the following value for
For these parameters Eq. :eq:`eq_ex10_Delta` gives the following value for
dimensionless
:math:`\Delta`
.. math::
...
...
@@ -135,7 +135,7 @@ respectively.
# Set a 1-D CCD at n1, measure around peak at 0.8 at 600 and 1000m
ccdline ccd1 node=n1.p1.i xlim=[0.5,1.0] npts=200
# Also put a full 2-D CCD at the same position
ccd ccd2 node=n1.p1.i xlim=[-3,3] ylim=[-3,3] npts=200
ccd ccd2 node=n1.p1.i xlim=[-3,3] ylim=[-3,3] npts=200
series(
noxaxis(name="S600"),
...
...
@@ -161,8 +161,8 @@ Plotting the output from the two 1-dimensional :kat:element:`ccdline` detectors
ax[i].set_xlabel("x/w0")
ax[i].set_ylabel("intensity")
we see that the Gaussian
bund
le over distance becomes lower and wider, but
re
m
ains its peak at the expected position :math:`x/w0 = 0.8`, confirming we are
we see that the Gaussian
profi
le over distance becomes lower and wider, but
re
t
ains its peak at the expected position :math:`x/w0 = 0.8`, confirming we are
simulating a parallel but shifted beam.
For reference we also plot the 2-dimensional beam cross section at 600 meters as
...
...
@@ -184,7 +184,7 @@ We next measure the phase shift of the outgoing beam resulting from the tilting
of the beamsplitters. For this we use the following simulation script (again in
addition to the :ref:`basic experimental setup <basic_setup>`), using a
:kat:element:`fline` detector measuring the phase along the beam cross section
at a distance 600 meter after the second beamsplitter.
at a distance 600 meter after the second beamsplitter.
For reference, we also run the same simulation for :math:`\beta=0`.
We expect the full result to be shifted over :math:`0.8 w_0` and to have a phase
that is larger by about :math:`27.1^\circ`.
...
...
@@ -197,14 +197,14 @@ that is larger by about :math:`27.1^\circ`.
# Calculate expected Delta and delta phi
Delta = s2*np.sin(2*xbeta)/w0
dphi = 2*s2*np.sin(xbeta)**2/basekat.lambda0*360
kat2 = finesse.Model()
kat2.parse(basescript)
script2 = f"""
fline fl1 node=n1.p1.i xlim=[{Delta}-{dx},{Delta}+{dx}] npts=200
fline fl2 node=n1.p1.i xlim=[-{dx},{dx}] npts=40
series(
noxaxis(name='full'),
change(bs1.xbeta=0),
...
...
@@ -227,7 +227,7 @@ perfectly.
.. jupyter-execute::
f,ax = plt.subplots(ncols=1, figsize=(8, 5))
ax.plot(kat2.fl1.xdata,
np.angle(out2['full']['fl1'], deg=True),
'r', label="measured")
...
...
@@ -251,13 +251,13 @@ experimental setup <basic_setup>`)
kat3 = finesse.Model()
kat3.parse(basescript)
script3 = f"""
# Note: important to specify n,m
amplitude_detector ad1 node=n1.p1.i f=0 n=0 m=0
xaxis(bs1.xbeta, lin, -1.5e-5, 1.5e-5, 40)
"""
kat3.parse(script3)
out3 = kat3.run()
...
...
docs/source/physics/higher_order_modes/shifted_beam_calculation.rst
View file @
d856cb83
...
...
@@ -22,7 +22,7 @@ of incidence of both beamsplitters (or mirrors).
We will derive here the shift in the position of the beam as a function of
(among others) this angle :math:`\beta`. In addition we will also derive the
effect of this parameter on the phase of the beam, resulting from the changed
pathlength between the laser and the detector. Both formulae will be verified
path
length between the laser and the detector. Both formulae will be verified
using |Finesse| simulations in example :ref:`example10`.
In the next section we will discuss the required number of higher order
...
...
@@ -185,7 +185,7 @@ We work out the numerator:
&= 2 \sin\alpha \sin\beta ( 1 - \cos^2\beta) - 2 \cos\alpha \cos\beta \sin^2\beta \\
&= 2 (\sin\alpha \sin\beta - \cos\alpha \cos\beta) \sin^2\beta \\
&= -2 \cos(\alpha + \beta) \sin^2 \beta
\end{aligned}
...
...
@@ -219,8 +219,8 @@ Summary
typically small but not per se compared to the wavelength :math:`\lambda`,
leading to a significant phase shift.
Effect finite size beam
^^^^^^^^^^^^^^^^^^^^^^^
Effect
on a
finite size beam
^^^^^^^^^^^^^^^^^^^^^^^
^^^^^
The above calculation was done for an infinitesimally narrow beam hitting the
beamsplitter exactly in the midpoint (its rotation point). We show here that the
...
...
docs/source/physics/higher_order_modes/shifted_beam_convergence.rst
View file @
d856cb83
...
...
@@ -38,7 +38,7 @@ layout, providing the largest valid range of :math:`\beta`. Once we have found
the optimal :math:`z_0`, we will use it to study the valid :math:`\beta` range
as a function of the distance between the two beamsplitters, looking in
particular at the scaling under changes of the waist size :math:`w_0` and
linking it to the diffraction angle and Rayleigh range.
linking it to the diffraction angle and Rayleigh range.
Base script for the different simulations
"""""""""""""""""""""""""""""""""""""""""
...
...
@@ -86,7 +86,7 @@ same as that used in :ref:`example10`.
basekat = finesse.Model()
basekat.parse(basescript)
Tilt angle dependency for various maxtem
Tilt angle dependency for various maxtem
""""""""""""""""""""""""""""""""""""""""
We add an appropriate :kat:analysis:`xaxis` action to the model to measure the
...
...
@@ -103,7 +103,7 @@ total energy as a function :math:`\beta` for 4 different values of ``maxtem``:
kat1 = finesse.Model()
kat1.parse(basescript)
kat1.parse("xaxis(bs1.xbeta, lin, 0, 4e-5, 40)")
out1a = []
for maxtem_val in maxtem_vals:
kat1.modes(maxtem=maxtem_val)
...
...
@@ -123,7 +123,7 @@ and 1000 meter:
# Reset maxtem to its default
kat1.modes(maxtem=maxtem)
out1b = []
for s3_val in s3_vals:
kat1.spaces.s3.L = s3_val
...
...
@@ -154,7 +154,7 @@ From the left figure, it is clear that we can simulate larger and larger
:math:`\beta` if we include more and more higher order modes in the simulation,
i.e. by increasing the ``maxtem`` value. The valid range of :math:`\beta` scales
roughly linearly with ``maxtem``, meaning the number of modes to be includes
roughly scales quadratically (note that for ``maxtem``
is
:math:`N` there are
roughly scales quadratically (note that for ``maxtem``
=
:math:`N` there are
:math:`\frac{1}{2}(N+1)(N+2)` modes).
.. todo:: do we expect convergence to break down at very high beta?
...
...
@@ -192,7 +192,7 @@ reference to the other (see :ref:`expressions`).
# Make sure zy equals zx
kat2.g1.zy = kat2.g1.zx.ref
# vary beta and z0
kat2.parse(f"""
series(
...
...
@@ -220,8 +220,8 @@ plot the close-up range around the beamsplitters. We see that the optimal
location for the waist is around 1 km right of the laser, i.e. at the location
of the first beamsplitter.
Effect waist size
"""""""""""""""""
Effect
of
waist size
"""""""""""""""""
"""
Now that we know the optimal location for the Gaussian waist, we will fix it
that position and then study the effect of changing the distance between
...
...
@@ -244,23 +244,23 @@ both :math:`w_0` and :math:`z_0` are changing simultaneusly (see
w0a = 10
beta_a = (1e-5, 4e-5)
La = 1000
# w0, beta-range and L for 12mm run
w0b = 12
beta_b = (1e-5/1.2, 4e-5/1.2)
Lb = 1000*1.2**2
# Define model
kat3 = finesse.Model()
kat3.parse(basescript)
# could set w0x and w0y separately, easier to use ref for y
kat3.g1.w0y = kat3.g1.w0x.ref
# Position gauss at optimal z0: i.e. position bs1
kat3.g1.zx = -1000
kat3.g1.zy = kat3.g1.zx.ref
# run both subsimulations using series()
kat3.parse(f"""
series(
...
...
@@ -275,7 +275,7 @@ both :math:`w_0` and :math:`z_0` are changing simultaneusly (see
And we plot the results
.. jupyter-execute::
# Plot results for both waist sizes
f,ax = plt.subplots(ncols=2, figsize=(11.8, 5))
for (i, name, w0val) in ([0, 'a', w0a], [1, 'b', w0b]):
...
...
@@ -293,7 +293,7 @@ And we plot the results
out3['a'].x[1].min()*1.2**2,out3['a'].x[1].max()*1.2**2)
ax[1].contour(out3['a']['pd1'].T, colors='green', linestyles='dotted',
extent = pxy_extent_scaled);
Looking first at the left picture, we see that the usable range of :math:`\beta`
roughly remains constant till a distance of about 200-300 meter and then quickly
decreases for larger distances. This distance of 200-300 meter corresponds
...
...
@@ -306,7 +306,7 @@ roughly to the Rayleigh range :math:`z_R`
which for the parameters in the left plot (:math:`w_0 = 10\textrm{mm}, \lambda =
1.064 \mu\textrm{m}`) is 295 meter. It would seem that our default value of 400
meter is not ideal, but we will discuss this further below when looking at the
maximum attainable shift :math:`\Delta`.
maximum attainable shift :math:`\Delta`.
Although in general the largest usable :math:`\beta` increases as a function of
``maxtem`` we expect that it will be proportional to the diffraction angle
...
...
Write
Preview
Markdown
is supported
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