RP Coating – das Software-Werkzeug für das Design optischer Vielschichtstrukturen
Überblick | Anwendung | Modell | Benutzung | Demos | Versionen |
Beispiel: Gires–Tournois-Interferometer (GTI)
Hier analysieren wir die Funktion eines Gires–Tournois-Interferometers, das z. B. für die Dispersionkompensation in einem modengekoppelten Laser eingesetzt werden könnte. Es besteht aus einem Bragg-Spiegel, einer dickeren Schicht und einer weiteren dünnen Schicht an der Oberfläche. Effektiv ist es ähnlich zu einem Fabry–Pérot-Interferometer, welches aber einen hoch reflektierenden hinteren Spiegel hat und in Reflexion betrieben wird. Die gesamte Reflektivität ist dann hoch in einem gewissen Wellenlängenbereich, kaum beeinflusst von den Resonanzen. Durch die Interferenzeffekte erhält man aber eine periodische Variation der Reflexionsphase und daher chromatische Dispersion.
Wir beschreiben zunächst die Struktur:
d_units: nm
l_units: nm
l_Bragg := 1000 { Bragg wavelength }
N_Bragg := 10 { no layer pairs }
d_t := 3.25 * l_Bragg / n_SiO2(l_Bragg * l_units) { thickness of thick SiO2 layer }
beam from superstrate
substrate: BK7
for j := 1 to N_Bragg do
begin
* TiO2, l / 4 at l_Bragg
* SiO2, l / 4 at l_Bragg
end
* SiO2, d = d_t
* TiO2, l / 4 at l_Bragg
superstrate: air
Das erste Diagramm zeigt das spektrale Profil der Reflektivität:
diagram 1:
"Reflectivity Profile"
x: 800, 1200
"wavelength (nm)", @x
y: 0, 100
"transmissivity (%)", @y
frame
hx
hy
f: 100 * R(x), color = red, width = 3, step = 1
Das zweite Diagramm zeigt die Gruppenverzögerung als Funktion der Wellenlänge. Sie ist auf den Resonanzen am höchsten:
diagram 2:
"Group Delay in Reflection"
x: 800, 1200
"wavelength (nm)", @x
y: -150, +150
"T_g (fs)", @y
frame
hx
hy
clip
f: T_g_r(x) / fs, color = green, width = 3
f: CS_y1 + R(x) * (CS_y2 - CS_y1), style = dotted
f: 0
Das dritte Diagramm zeigt die Gruppenverzögerungsdispersion (group delay dispersion, GDD) als Funktion der Wellenlänge.
diagram 3:
"Group Delay Dispersion"
x: 800, 1200
"wavelength (nm)", @x
y: -2000, +2000
"GDD (fs^2)", @y
frame
hx
hy
clip
f: GDD_t(x) / fs^2,
color = blue, width = 3, step = 1, maxconnect = 1
f: CS_y1 + R(x) * (CS_y2 - CS_y1), style = dotted
f: 0
Als Nächstes betrachten wir die Intensitätsmuster bei verschiedenen Wellenlängen:
diagram 4:
x: 800, 1200
"wavelength (nm)", @x
y: -500, d_tot + 1500
"depth in the mirror structure (nm)", @y
frame
! begin { show the color scale }
var x1, x2;
x1 := CS_x2 + 0.02 * (CS_x2 - CS_x1);
x2 := CS_x2 + 0.04 * (CS_x2 - CS_x1);
for y := CS_y1 to CS_y2 step (CS_y2 - CS_y1) / 500 do
begin
setcolor(colorscale((y - CS_y1) / (CS_y2 - CS_y1)));
line(x1 + i * y,x2 + i * y);
end;
setcolor(black);
end
! (set_dir(1); R(lambda_t))
cp: colorscale((R(x); E2(y) / 4)) { color plot }
; Show the layer boundaries:
f: get_z(j), style = solid, color = lightgray, for j := 1 to nolayers()
f: 0
f: get_z(nolayers() + 1)
"substrate", 200c, (-200)c
"superstrate", 150, (d_tot + 200)c
Man erkennt, wie die Reflexionsphase sich bei den Resonanzen schnell ändert, während sie sonst ziemlich konstant bleibt.
Schließlich simulieren wir, was mit ultrakurzen Pulsen bei der Reflexion am GTI geschieht. Obwohl RP Coating nicht explizit Funktionen hierfür hat, können wir dies mit ein paar Zeilen Skriptcode tun. Wir definieren Felder für die zeit- und frequenzabhängigen komplexen Amplitude, ebenfalls eines für die komplexen elektrischen Feldstärken in der Struktur für alle optischen Frequenzen (für spätere Benutzung). Dann machen wir die eigentliche Berechnung und zeigen den reflektierten Puls an:
diagram 5:
"Reflection of Ultrashort Pulse"
x: -200, +200
"time (fs)", @x
y: -1, 1
"electric field strength (a. u.)", @y
frame
hx
hy
; Parameters of the test pulse:
A0 := 0.9 { peak amplitude }
tau0 := 10 fs { FWHM duration }
l0 := 1000 nm { center wavelength }
f0 := c / l0 { center frequency }
A0%(t) := A0 / cosh(1.7627 * t / tau0) { complex amplitude in time domain }
E0(t) := Re(A0%(t) * expi(-2pi * f0 * t)) { electric field }
["l0 = ", l0:d3:"(n)m",
", tau0 = ", tau0:d3:"s",
", T_g = ", T_g_r(l0 / l_units):d3:"s",
", GDD = ", GDD_r(l0 / l_units) / fs^2:f0:"fs^2"]
; Numerical parameters:
T := 3000 fs
N := 2^10
dt := T / N
t1 := -T / 2 + dt
t2 := T / 2
df := 1 / T
f2 := (N / 2) * df
f1 := -f2 + df
f_max := 1 / dt - df
defarray A%[0, T - dt, dt] (periodic) { amplitudes in time domain }
defarray A0_f%[0, f_max, df] (periodic) { amplitudes in frequency domain }
defarray A_f%[0, f_max, df] (periodic) { amplitudes in frequency domain }
z_max := d_tot * d_units + 3 um
dz := 30 nm
dz := z_max / round(z_max / dz)
defarray E%[0, z_max, dz; f1, f2, df]
calc
begin
for t := t1 to t2 step dt do A%[t] := A0%(t);
FFT_n(A%[], A0_f%[], +1);
for f := f1 to f2 step df do
begin
A_f%[f] := r%(c / (f0 + f) / l_units) * A0_f%[f];
for z := 0 to z_max step dz
do E%[z,f] := E_plus%(z / d_units) + E_minus%(z / d_units);
end;
FFT_n(A_f%[], A%[], -1);
end
A%(t) := A%~[t] { final amplitude }
E(t) := Re(A%(t) * expi(-2pi * f0 * t))
I(z,t) :=
{ intensity at position z and time t }
begin
var E%;
E% := sum(f := f1 to f2 step df,
A0_f%[f] * E%[z,f] * expi(-2pi * (f0 + f) * t));
abs2(E%) / N;
end
f: E0(x * fs), color = lightgray, step = 1
f: E(x * fs), color = blue, step = 1
f: abs(A0%(x * fs)), color = lightgray, step = 1 { envelope of initial pulse }
f: -abs(A0%(x * fs)), color = lightgray, step = 1
f: abs(A%(x * fs)), color = blue, step = 1 { envelope of final pulse }
f: -abs(A%(x * fs)), color = blue, step = 1
Da der gewählte Puls (blaue Kurve) ziemlich kurz ist, erhalten wir eine Folge von Pulsen in Reflexion:
Das letzte Diagramm zeigt die zeitaufgelöste Feldintensitätsverteilung:
diagram 6:
"Ultrashort Pulse in the GTI Structure"
x: -50, +100
"t (fs)", @x
y: 0, z_max / um
"z (µm)", @y
frame
hx
hy
! I_max := maxf(I(z,0), z in [0, z_max], xtol = 0.1 nm, divide = round(10 * z_max / l0))
cp: colorscale(I(y * um,x * fs) / I_max)
"air", 100, (d_tot * nm / um + 0.3)c
f: d_tot * nm / um { indicate the surface of the GTI }
"GTI", 100, (d_tot * nm / um - 0.3)c
Man kann erkennen, wie der einfallende Puls (oben links) zunächst einen an der Oberfläche reflektierten Puls erzeugt, dann einen intensiveren Puls durch Reflexion am Bragg-Spiegel, und schließlich schwächere Pulse, die mehrere Umläufe in der Struktur machen. Für den gegebenen sehr kurzen Puls bleiben die reflektierten Pulse zeitlich klar getrennt. Normalerweise würde ein GTI aber mit viel längeren Pulsen betrieben werden, so dass die reflektierten Pulse zeitlich stark überlappen. In dieser Situation wäre die Bandbreite des Pulses kleiner als die Bandbreite der Resonanzen des GTIs.