10.9.2 Mode cleaner
This example uses the tem command to create a laser beam which is a sum of equal parts in \(u_{00}\) and \(u_{10}\) modes. This beam is passed through a triangular cavity, which acts as a mode cleaner. Being resonant for the \(u_{00}\), the cavity transmits this mode and reflects the \(u_{10}\) mode as can be seen in the resulting plots (Fig. 113, generated here).
import finesse
from finesse.analysis.actions import Xaxis
finesse.init_plotting()
base = finesse.Model()
base.parse(
"""
l l1 # laser with P=1W at the default frequency
modes(maxtem=1) # Hermite-Gauss modes up to n+m = 1
tem(l1, 0, 0, 1, 0) # u00 mode
tem(l1, 1, 0, 1, 0) # u10 mode
s s1 l1.p1 bs1.p1 L=1 # a space of 1m length
# triangular mode cleaner cavity
bs bs1 R=0.9 T=0.1 # input mirror
s sc1 bs1.p3 bs2.p1 L=2 # 2m distance between bs1 and bs2
bs bs2 R=0.9 T=0.1 # output mirror
s sc2 bs1.p4 bs3.p2 L=49 # 49m distance between bs1 and bs3
s sc3 bs2.p2 bs3.p1 L=49 # 49m distance between bs2 and bs3
bs bs3 R=1 T=0 Rc=150 # curved end mirror
cav cav1 bs1.p3 # computing cavity parameters
fcam ccdrefl bs1.p2.o xlim=3 ylim=3 npts=200 # beam shape in reflection
fcam ccdtrns bs2.p3.o xlim=3 ylim=3 npts=200 # beam shape in transmission
"""
)
out = base.run()
out.plot(figsize_scale=2);