RP Coating – das Software-Werkzeug für das Design optischer Vielschichtstrukturen
Überblick | Anwendung | Modell | Benutzung | Demos | Versionen |
Beispiel: dichroitischer Spiegel
Dies ist eine einfache Demonstration, die ohne ein maßgeschneidertes Formular arbeitet; die Eingabedaten sind einfach im Skript selbst enthalten.
Beachten Sie, dass es auch eine neuere, deutlich fortgeschrittenere Version mit maßgeschneidertem Formular gibt.
Wir entwickeln einen dichroitischen Spiegel mit hoher Reflektivität bei 1064 nm und hoher Transmission bei 808 nm. Solche Spiegel werden oft eingesetzt zum Pumpen von Nd:YAG- und Nd:YVO4-Lasern.
Als Ausgangsdesign verwenden wir einen einfach Bragg-Spiegel:
beam from superstrate
substrate: BK7
for j := 1 to 8 do
begin
* TiO2, l / 4 at 1200
* SiO2, l / 4 at 1200
end
superstrate: air
Dieses Design hat bereits eine hohe Reflektivität bei 1064 nm. Die Transmission bei 808 nm ist dagegen nicht ideal, auch wenn diese Wellenlänge außerhalb des Haupt-Reflexionsbands des Spiegels liegt.
Wir definieren nun die Zielfunktion:
d_units: nm
l_units: nm
l_HR := 1064 { HR wavelength }
l_HT := 808 { HT wavelength }
FOM() :=
sqrt(sum(d := -20 to +20 step 5, T(l_HR + d)^2)
+sum(d := -20 to +20 step 5, R(l_HT + d)^2))
Hiermit “bestrafen” wir jegliche Transmission in einem Bereich um 1064 nm sowie jede Reflektivität um 808 nm. Es ist vorteilhaft, diese Eigenschaften jeweils für einen gewissen Wellenlängenbereich zu fordern, da man sonst oft Designs erhält, die ziemlich empfindlich auf Herstellungsfehler reagieren.
Wir machen nun eine einfache lokale Optimierung:
optimize coating for minimum of FOM(), ytol = 1e-5
Nun erzeugen wir ein Diagramm für das Reflektivitätsprofil:
diagram 1:
"Reflectance Profile"
["Merit value: ", FOM():d3]
x: 400, 1600
"wavelength (nm)", @x
y: 0, 100
"reflectance (%)", @y
frame
hx
hy
f: 100 * R(x), color = red, width = 3
Wenn wir dies ausführen, erhalten wir das Folgende:
Ein zweites Diagramm zeigt das erzeugte Design:
diagram 2:
"Design of the Multilayer Structure"
x: -500, get_d(0) + 500
"position (nm)", @x
y: 0, 3
"refractive index (nm)", @y
frame
! begin
for j := 1 to nolayers() do
begin
var g;
g := if get_material$(j) = "TiO2" then 0.8 else 0.9;
setcolor(rgb(g, g, g));
box(get_z(j), get_z(j + 1) + i * CS_y2);
end;
draw_cs(); { draw the coordinate system again }
end
[get_d(j):f0:"nm"],
(get_z(j) + 0.5 * get_d(j))c, (0.1 * CS_y2)b, direction = 90,
for j := 1 to nolayers()
"substrate", (-200)c, (0.1 * CS_y2)b, direction = 90
"superstrate", (get_d(0) + 200)c, (0.1 * CS_y2)b, direction = 90
f: n(x, 1200), step = 1, color = blue
Man erkennt, dass das erhaltene Design nicht allzu stark von dem eines Bragg-Spiegels abweicht.