RP Resonator – das Software-Werkzeug für Design und Optimierung von Laserresonatoren
Überblick | Anwendung | Modell | Benutzung | Demos | Versionen |
Beispiel: Multipass-Verstärker
Wir betrachten einen Laserverstärker, bei dem ein Laserstrahl vielfach durch einen Laserkristall läuft, und zwar in unterschiedlichen Richtungen. Mit anderer Software wäre es vermutlich extrem mühsam, all die Armlängen und Winkel einzugeben. Mit RP Resonator können Sie jedoch den Aufbau so parametrisieren, dass alle Durchgänge mit einer einzigen Schleife erzeugt werden, wobei alle detaillierten Angaben automatisch aus einigen gegebenen Parametern berechnet werden. Der Code hierfür ist nicht allzu kompliziert:
; ----------------------
; Parameters:
w0 := 600 um { initial beam radius }
L_cr := 15 mm { length of crystal }
d_cr := 10 mm { width of crystal }
n_cr := 1.82 { refractive index of crystal }
F_cr := 0.4 { focusing power of crystal }
s_m := 12 mm { size of mirrors }
N := 7 { number of passes through the crystal }
a_min := 200 mm { minimum distance }
da := 20 mm { increment of distances }
dth := 2 deg { angular increment }
; ----------------------
a(j) := a_min + (j - 1) * da
th_max := (N - 1) * dth { maximum angle }
th(j) := th_max - (j - 1) * dth
th_i(j) := arcsin(sin(th(j)) / n_cr)
resonator: single pass, z = 0, w = w0
* air: d = a(N) / cos(th(1))
for j := 1 to N - 1 do
begin
begin
* prism: l = L_cr, d = d_cr, theta = eval(-cos(j * pi) * th(j)), alpha = 0, n = n_cr, n2 = F_cr / L_cr, ""
* air: d = eval(a(j) / cos(th(j)))
* mirror: theta = eval(cos(j * pi) * 0.5 * (90 deg - th(j))), size = s_m
* air: d = eval(L_cr * tan(th_i(j)) + a(j) * (tan(th(j)) + tan(th(j + 1))))
* mirror: theta = eval(cos(j * pi) * 0.5 * (90 deg - th(j + 1))), size = s_m
* air: d = eval(a(j) / cos(th(j + 1)))
end
* air: d = a(N) + da
resonator end
(Die Aufrufe der Funktion eval() erzwingen, dass die Software die Audrücke sofort auswertet und nicht erst später, wenn die Variable j bereits geändert ist.)
Natürlich macht es dieser flexible Ansatz später leicht, diverse Parameter wie Winkel oder Armlängen zu ändern, z. B. im Rahmen einer Optimierung.
Zuerst möchten wir den optischen Aufbau anzeigen, um zu prüfen, ob alles korrekt definiert wurde:
diagram 1, size_px = (600, 180):
draw resonator, direction = th(1)
Wir definieren hier die Richtung des eingehenden Strahls so, dass der Strahl am Ausgang genau waagrecht verläuft. Das Resultat:
Indem wir lediglich die Variable <$N$> von 7 zu 11 ändern, erhalten wir das Folgende:
Nun plotten wir den Strahlradius als Funktion der Position:
Der Strahlradius wird durch die thermischen Linse des Laserkristalls stabilisiert. Natürlich könnten wir auch eine Krümmung der Spiegel einführen.
Schließlich zeigen wir den Strahlradius am Ausgang als Funktion der Brechkraft der thermischen Linse des Laserkristalls: