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.

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()
../_images/cbe5502557f6982795ed28574c65745eb6c72615d172caebb852232699d91ac8.svg