Software … leistungsfähige Tools für Ihre Forschung & Entwicklung!

RP Resonator – das Software-Werkzeug für Design und Optimierung von Laserresonatoren

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:

ring resonator setup

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.

Strahlradius im Ringresonator

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))
Variation der Brechkraft des Kristalls

Seit RP Resonator V3 gibt es auch eine Version des Skripts mit einem maßgeschneiderten Formular:

Formular für Ringresonator

Hiermit muss man die Parameter (Armlängen, Winkel etc.) nicht mehr im Skript editieren, sondern einfach im Formular.

(zurück zu der Liste der Beispiele)