RP Resonator – das Software-Werkzeug für Design und Optimierung von Laserresonatoren
Überblick | Anwendung | Modell | Benutzung | Demos | Versionen |
Beispiel: Ringresonator
Wir betrachten einen Ringresonator mit “bow-tie-Geometrie”, der einen Laserkristall mit variabler Brechkraft enthält. Das Skript definiert zuerst einige Parameter und dann den Resonatoraufbau:
; ---------------------- ; Resonator parameters: a := 10 cm b := 8 cm R1 := 40 cm R2 := R1 theta := 6 deg d := 2 * b * cos(2 * theta) - a l_cr := 5 mm { length of crystal } n_cr := 1.82 { refractive index of crystal } F_cr := 3 { focusing power of crystal } ; ---------------------- resonator: ring * mirror (M1): R = R1 * air: d = (a - l_cr) / 2, "(a - l_cr) / 2" * prism (Crystal): l = l_cr, d = 2 mm, theta = 0, alpha = 0, n = n_cr, n2 = F_cr / l_cr * air: d = (a - l_cr) / 2, "(a - l_cr) / 2" * mirror (M2): R = R2, theta = theta * air: d = b, "b" * mirror (M3): theta = -theta * air: d = d, "d" * mirror (M4) resonator end
Beachten Sie, dass der schließende Pfad in Luft (zwischen den Spiegeln M4 und M1) automatisch hinzugefügt wird. Ebenfalls stellt die Software die Orientierung der Spiegel M1 und M4 automatisch so ein, dass der Strahlweg geschlossen wird.
Zuerst lassen wir den Resonatoraufbau zeichnen, um sicherzustellen, dass alles korrekt definiert wurde:
diagram 1, size_px = (600, 180): draw resonator, "Resonator Setup", showfocus
Das Resultat:
Nun plotten wir den Strahlradius als Funktion der Position im Resonator:
diagram 2: "Beam Radius vs. Position" x: 0, L_res / mm "z position (mm)", @x y: 0, 400 frame hx hy f: w(x * mm,lambda_ref) / um, "w(z) (µm)", color = blue, width = 3 ShowLine(z) := line(z / mm, z / mm + i * w(z, lambda_ref) / um) ! ShowLine(zm[M1]) "M1", ((z := zm[M1]) / mm)l, (w(z, lambda_ref) / um + 10)b ! ShowLine(zm[M2]) "M2", ((z := zm[M2]) / mm)c, (w(z, lambda_ref) / um + 10)b ! ShowLine(z1[Crystal]) ! ShowLine(z2[Crystal]) "crystal", ((z := zm[Crystal]) / mm)c, (w(z, lambda_ref) / um + 10)b ! ShowLine(zm[M3]) "M3", ((z := zm[M3]) / mm)c, (w(z, lambda_ref) / um + 10)b ! ShowLine(zm[M4]) "M4", ((z := zm[M4]) / mm)c, (w(z, lambda_ref) / um + 10)b "M1", ((z := L_res) / mm)r, (w(z, lambda_ref) / um + 10)b
Einige Code-Zeilen wurden dafür verwendet, mit senkrechten Linien und Textlabels die Position der optischen Elemente anzuzeigen. Hierfür wurde die Funktion ShowLine(z) definiert.
Nun plotten wir den Strahlradius im Laserkristall als Funktion der Brechkraft des Kristalls:
diagram 3: "Variation of the Dioptric Power of the Crystal" x: -15, +10 "dioptric power of the crystal (1 / m)", @x y: 0, 600 frame hx hy clip f: (F_cr := x; Init(0); w(zm[Crystal],lambda_ref)) / um, "w(z) (µm)", color = blue, width = 3, init F_cr0 := F_cr, finish (F_cr := F_cr0; Init(0))
Seit RP Resonator V3 gibt es auch eine Version des Skripts mit einem maßgeschneiderten Formular:
Hiermit muss man die Parameter (Armlängen, Winkel etc.) nicht mehr im Skript editieren, sondern einfach im Formular.