2.7.1 Mirror reflectivity and transmittance

We use Finesse to plot the amplitudes of the light fields transmitted and reflected by a mirror (given by a single surface). Initially, the mirror has a power reflectance and transmittance of \(R=T=0.5\) and is, thus, lossless. For the plot in Fig. 15 (generated here) we tune the transmittance from \(0.5\) to \(0\). Since we do not explicitly change the reflectivity, \(R\) remains at \(0.5\) and the mirror loss increases instead, which is shown by the trace labelled ‘total’ corresponding to the sum of the reflected and transmitted light power. The plot also shows the phase convention of a \(90\degree\) phase shift for the transmitted light.

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 default frequency
    s s1 l1.p1 m1.p1 L=1    # space of 1m length
    m m1 R=0.5 T=0.5        # mirror with R=T=0.5 at zero tuning

    ad ad_trns m1.p2.o f=0  # an amplitude detector for transmitted light
    ad ad_refl m1.p1.o f=0  # an amplitude detector for reflected light

    # computing the sum of reflected and transmitted power
    mathd total abs(ad_refl)**2+abs(ad_trns**2) unit='W' label='Total power'
    """)

# changing the transmittance of the mirror 'm1'
out = base.run(Xaxis(base.m1.T, 'lin', 0, 0.5, 100))

fig, ax = plt.subplots(2, 1, figsize=(8, 7))
ax[0].plot(out.x1, np.abs(out['ad_trns']), label=r'ad_trns [$\sqrt{\mathrm{W}}$]')
ax[0].plot(out.x1, np.abs(out['ad_refl']), ls='--', 
           label=r'ad_refl [$\sqrt{\mathrm{W}}$]')
ax[0].plot(out.x1, out['total'], ls='--', label=r'total power [$\mathrm{W}$]')
ax[0].set_ylabel('Abs')

ax[1].plot(out.x1, np.degrees(np.angle(out['ad_trns'])), label='ad_trns')
ax[1].plot(out.x1, np.degrees(np.angle(out['ad_refl'])), ls='--', label='ad_refl')
ax[1].set_ylim(-10, 110)
ax[1].set_ylabel(r'Phase $[\degree]$')
ax[1].set_xlabel(r'T (m1)')

for a in ax:
    a.invert_xaxis()
    a.legend()
plt.show()
../_images/8a8c73394e623978281ca45c409dc1c122f7d89a8d6b075da22e73a994d121bd.svg