6.7.1 Optical spring
A simple example for an optical spring in a two mirror cavity with suspended mirrors. The cavity is slightly detuned which is required for creating the spring. The output is the motion of a mirror while it is excited with a force of constant amplitude. The resonance feature shown in Fig. 46 (generated here) is the result of the optomechanical coupling of the mirror with the cavity field.
Note
The code below is a direct translation of the |Finesse| 2 code in the living review, using a sgen and a xd element. Transfer functions can be calculated more easily in |Finesse| 3 using the freqresp action. See Optical springs for a similar example using the frequency response action.
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 P=1 # laser with P=1W at the default frequency
s s1 l1.p1 ITM.p1 L=1 # space connecting laser to input mirror
m ITM R=0.99 L=0 # cavity input mirror
s scav ITM.p2 ETM.p1 L=1 # cavity of 1m length
m ETM R=1 L=0 phi=-0.048 # end mirror with roughly 40kHz detuning
pendulum sus1 ETM.mech mass=1 # suspend end mirror on pendulum
# Apply a force signal to the end mirror
fsig(1)
sgen force ETM.mech.F_z
# a detector to measure the longitudinal motion signal of the end mirror
xd ETM_z ETM.mech.z
"""
)
out = base.run(Xaxis(base.fsig.f, "log", 1, 100, 10000))
tf, phase = np.abs(out["ETM_z"]), np.degrees(np.angle(out["ETM_z"]))
fig, ax1 = plt.subplots()
ax1.loglog(out.x1, tf, label="Abs")
ax1.set_ylim(1e-6, 1e1)
ax1.set_xlabel("f [Hz]")
ax1.set_ylabel("TF [m/N]")
ax1.tick_params(axis="y", labelleft=True)
ax2 = ax1.twinx()
ax2.semilogx(out.x1, phase, ls="--", c="green", label="Phase")
ax2.set_ylim(-30, 210)
ax2.set_ylabel("Phase [deg]")
ax2.tick_params(axis="y", labelright=True)
lines1, labels1 = ax1.get_legend_handles_labels()
lines2, labels2 = ax2.get_legend_handles_labels()
ax1.legend(lines1 + lines2, labels1 + labels2, loc="upper left")
plt.show()