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);
../_images/3702a4854bbff84ea0c90e1c7d2803134132959308bc87a1220e3ba6e96c2d1b.svg ../_images/4920346047ab26f2c54a0f2b1ee9e2d25e9fc8950a0c8f4bd87a393d8d050242.svg