7.5.3 Sagnac interferometer
This example demonstrates how to compute the frequency response of a simple Sagnac interferometer (Fig. 59, generated here). See section 7.4 for more information on the Sagnac interferometer.
Note
In Finesse 2, the amplitude of a signal on a mechanical z node of a mirror or beamsplitter was scaled from meters to radians. The conversion factor is the reference wavenumber, which is equal to \(k_0 = 5.91 \times 10^6 \mathrm{m}^{-1}\) for a reference wavelength \(\lambda_0 = 1064\) nm.
import finesse
from finesse.analysis.actions import Xaxis
import numpy as np
import matplotlib.pyplot as plt
finesse.init_plotting()
base = finesse.Model()
base.parse(
"""
l l1 # laser with P=1W at the default frequency
s s1 l1.p1 bs1.p1 L=1 # space of 1m length
bs bs1 # 50-50 beam splitter
s s2 bs1.p2 my.p2 L=1k # north arm of 1km length
bs my R=1 T=0 # north end mirror, lossless
s s3 bs1.p3 mx.p1 L=1k # east arm of 1km length
bs mx R=1 T=0 # east end mirror, lossless
s s4 mx.p2 my.p1 L=1k # third arm of 1km length
# apply signal to north and east mirror positions, 180 degrees out of phase
fsig(1)
sgen sig1 mx.mech.z
sgen sig2 my.mech.z phase=180
ad signal bs1.p4.o fsig.f # amplitude detector in south port
"""
)
out = base.run(Xaxis(base.fsig.f, 'log', 100, 1e6, 1000))
plt.figure(figsize=(8, 4))
plt.loglog(out.x1, np.abs(out['signal']))
plt.xlabel(r'$f$ [Hz]')
plt.ylabel(r'Amplitude [$\sqrt{\mathrm{W}}$]')
plt.show()