3. Gaussian Beams > 3. Mirror maps
Applying Phase Maps
Author: Daniel Töyrä
Here we show how to apply a phase map to a mirror used in a Finesse simulation.
Recommended notebooks before you start:
We recommend that you have looked through the notebooks that you find in the folder 03_Gaussian_beams>06_Mirror_maps. The link above only works if you started IPython/Jupyter Notebook in the top directory of this course.
Reading material and references:
[1] C. Bond, D. Brown, A. Freise and K. Strain, "Interferometer Techniques for Gravitational-Wave Detection", Living Reviews in Relativity 19, 3 (2010). - Living review article (more like a book) on laser interferometry in the frequency domain for detecting gravitational waves, and FINESSE.
[2] A. Freise, D. Brown, and C. Bond, "Finesse, Frequency domain INterferomEter Simulation SoftwarE". - FINESSE-manual
[3] FINESSE syntax reference - Useful online syntax reference for FINESSE. Also available in the Finesse manual [2], but this online version is updated more often.
After this session you will be able to...
We start by loading PyKat and other Python packages that we need:
import numpy as np # Importing numpy
import matplotlib # For plotting
import matplotlib.pyplot as plt
from pykat import finesse # Importing the pykat.finesse package
from pykat.commands import * # Importing all packages in pykat.commands.
from pykat.optics.maps import * # Importing maps package
from IPython.display import display, HTML # Allows us to display HTML.
# Telling the notebook to make plots inline.
%matplotlib inline
# Initialises the PyKat plotting tool. Change dpi value
# to change figure sizes on your screen.
pykat.init_pykat_plotting(dpi=90)
A quick map preparation, for more details see the notebook on pre-processing of mirror maps.
Since the spot radius at the ETM in LIGO is 6.2 cm, we use a Gaussian weighting function with radius 6.2 cm to make the area mainly seen by the beam as smooth as possible.
smap = read_map('ETM08_S1_-power160.dat', mapFormat='metroPro')
# Showing unprocessed map
fig1 = smap.plot()
# Cropping
smap.crop(0.154)
# Showing cropped map
fig2 = smap.plot()
# Processing with gaussian weights (also creates the aperture map amap)
amap = smap.preparePhaseMap(w=0.062, verbose=True)
# Showing precessed map
fig3 = smap.plot()
We study a setup with a laser and a cavity, and we measure the amplitude of individual spatial modes inside the cavity while sweeping the tuning of the end mirror. We do this both with and without the surface map and look at the difference.
kat = pykat.finesse.kat()
kat.verbose = False
code = """
l laser 1 0 0 n0
s s0 1 n0 n1
m ITM 0.95 0.05 0 n1 n2
s sCav 10 n2 n3
m ETM 1 0 0 n3 n4
cav cavity ITM n2 ETM n3
attr ITM Rc -6
attr ETM Rc 6
ad tem00 0 0 0 n2
ad tem20 2 0 0 n2
ad tem02 0 2 0 n2
ad tem11 1 1 0 n2
ad tem01 0 1 0 n2
ad tem10 1 0 0 n2
phase 2
xaxis ETM phi lin -20 80 201
yaxis log abs
maxtem 2
"""
kat.parse(code)
out1 = kat.run()
fig1 = out1.plot(title='$\mathrm{Without\ surface\ map}$', ylabel='Amplitude $[\sqrt{\mathrm{W}}]$')
#fig1.gca().set_title('hej')
#fig1.show()
# Appyling the map
kat.parse("""
# Appyling the map
map ETM ETM08_S1_-power160_finesse.txt
""")
out2 = kat.run()
fig2 = out2.plot(title='With surface map', ylabel='Amplitude $[\sqrt{\mathrm{W}}]$')
We see that with the surface map, higher order modes are created in the cavity.