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/e8c8a82091e257bc2fe561cbc20066a2518fd80e27a782e1e14f42e06cc8eb4a.svg ../_images/addf75c6c59433cc4e11caec792b515f85f9cff1503514b4cfe5c56d8903279b.svg