RP Photonics logo
RP Photonics
Modellierungs-Software
Technische Beratung zu Lasern, nichtlineare Optik, Faseroptik etc.
profitieren Sie vom Wissen und der Erfahrung eines Top-Experten!
Leistungsfähige Simulations- und Design-Software.
Nutzen Sie Computermodelle, um Ihre Laser umfassend zu verstehen!
Erfolg resultiert aus Verständnis – in der Wissenschaft wie in der industriellen Entwicklung.
Die berühmte Encyclopedia of Laser Physics and Technology – online kostenlos verfügbar!
Der ideale Ort, um Anbieter für Photonik-Produkte zu finden.
Anbieter: stellen Sie sicher, dass Ihre Produkte hier gezeigt werden!
für die effiziente Laserentwicklung und Forschung
Diese Seite gibt Ihnen einen Überblick über unsere Softwareprodukte.
RP Fiber Calculator ist ein praktisches Tool für Berechnungen zu optischen Fasern.
RP Fiber Power ist ein extrem flexibles Tool für das Design und die Optimierung für Faserlasern, Verstärkern und auch passiven Fasern.
RP Resonator ist ein besonders flexibles Tool für die Entwicklung von Laserresonatoren.
RP ProPulse kann die Pulsausbreitung in modengekoppelten Lasern und synchron gepumpten OPOs simulieren.
RP Coating ist ein besonders flexibles Designwerkzeug für dielektrische Vielschichtsysteme.
RP Q-switch kann die Entwicklung optischer Leistungen in gütegeschalteten Lasern simulieren.
Die meisten unserer Softwareprodukte bieten eine leistungsfähige Skriptsprache, die Ihnen ein ungewöhnliches Maß von Flexibilität gibt.
Hier erfahren Sie über die Software Lizenzbedingungen, Updates und Upgrades etc.
Kompetente technische Unterstützung ist eine der Schlüsselqualitäten der Software von RP Photonics.
RP Photonics hat Distributoren in verschiedenen Ländern.
Die RP Photonics Software News informieren Sie über aktuelle Entwicklungen und geben den Nutzern interessante Hinweise.
Hier können Sie Anfragen absenden, z. B. betreffend technische Details, Preise und Angebote.
en | de

RP Coating – das Software-Werkzeug für das
Design optischer Vielschichtstrukturen

Beispiel: Polarisierender Strahlteilerwürfel mit MacNeille-Design

Hier entwickeln wir ein Design für einen Dünnschichtpolarisator in Form eines polarisierenden Strahlteilerwürfels, bei dem die Schichtstruktur zwischen zwei 45°-Prismen eingebaut ist.

Die grundlegende Idee des gebräuchlichen MacNeille-Designs ist es, die Reflektivität für p-Polarisation dadurch zu elimieren, dass man den Brewster-Winkel an allen internen Oberflächen hat. So ist es einfach, eine hohe Reflektivität für s-Polarisation mit einem einfachen Bragg-Spiegel zu erreichen, ohne dadurch eine wesentliche Reflektivität für p-Polarisation zu verursachen. Die Brewster-Bedingung erfordert jedoch, dass ein Substratmaterial mit einem Brechungsindex gewählt wird, der zum der gewählten Coating-Materialien gut passt. Für die äußeren Oberflächen benötigt man Anti-Reflex-Schichten, die wir hier jedoch nicht betrachten.

polarizing cube

Wir streben ein Design an, welches zwischen 900 nm und 1200 nm gut funktioniert. Zunächst wählen wir die Materialien. Wenn wir uns für Schichten aus TiO2 und SiO2 entscheiden, müssen wir ein passendes Substratmaterial wählen, um die Brewster-Bedingung zu erfüllen. Wir benutzen eine Gleichung für die idealen Brechungsindex des Substrats, und haben gefunden, dass das SF11-Glas von Schott relativ gut passt:

d_units: nm
l_units: nm
 
l := 1064  { operation wavelength }
 
n_L := n_SiO2(l * l_units)
n_H := n_TiO2(l * l_units)
n_S_opt := n_H * n_L / sqrt(n_H^2 + n_L^2) / sin(theta)
  { optimum substate index for a MaxNeille polarizer }
show "n_S_opt:   ", n_S_opt:f3
n_S(l) := n_SF11(l)  { chosen substrate material }
n_S := n_S(l * l_units)
show "n_S:       ", n_S:f3

Dann implementieren wir das grundlegende Design:

theta_L := arcsin(n_S * sin(theta) / n_L)
d_L := (l / n_L / 4) / cos(theta_L)
theta_H := arcsin(n_S * sin(theta) / n_H)
d_H := (l / n_H / 4) / cos(theta_H)
N_Bragg := 4  { number of layer pairs }
 
beam from superstrate
substrate: S
for j := 1 to N_Bragg do
begin
* SiO2, d = d_L, d_max = 2 * d_L
* TiO2, d = d_H, d_max = 2 * d_H
end
* SiO2, d = d_L, d_max = 2 * d_L
superstrate: S

Nun definieren wir die Zielfunktion:

FOM() := sum(l := 900 to 1200 step 5,
       sum(dtheta := -2 deg to +2 deg step 0.5 deg,
  R_p(l,theta + dtheta)^2 + 10 * T_s(l,theta + dtheta)^2))

Hier berücksichtigen wir einen gewissen Bereich von Einfallswinkeln und verwenden ein 10 mal größeres Gewicht für die Transmission bei s-Polarisation. Solche Parameter hängen natürlich von den jeweiligen Bedürfnissen ab.

Wir können die Performance nun mit einer einfachen lokalen Optimierung weiter verbessern:

optimize coating for minimum of FOM()

Das erste Diagramm zeigt das Reflektivitätsprofil:

diagram 1:
 
"Reflectivity Profile"
 
["Merit value: ", FOM():d3]
 
x: 400, 2000
"wavelength (nm)", @x, size = %5
y: 0, 100
"reflectivity (%)", @y, size = %5
frame
hx
hy
legpos 420, 150
 
f: 100 * R_s(x, theta), "s polarization",
  color = red, width = 3, step = 1
 
f: 100 * R_p(x, theta), "p polarization", style = dashed,
  color = red, width = 3, step = 1
 
! begin
    setcolor(gray);
    line(l,l + i * CS_y2)
  end
reflectivity profile of a thin-film polarizing cube

Dann testen wie die Empfindlichkeit auf Änderungen des Einfallswinkels:

diagram 2:
 
"Variation of the Angle of Incidence"
 
x: 40, 50
"angle of incidence (°)", @x
y: 0, 100
"reflectivity (%)", @y
frame
hx
hy
 
f: 100 * R_s(l,x * deg), "s polarization",
  color = red, width = 3
f: 100 * R_p(l,x * deg), "p polarization",
  color = red, width = 3, style = dashed
angular sensitivity of a thin-film polarizing cube

Wir sehen, dass eine gute Performance nur in einem relativ engen Winkelbereich erzielt wird. Dies ist typisch für solche Designs.

Schließlich zeigen wir das erhaltene Design an:

diagram 3:
 
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,l), step = 1, color = blue
design of a thin-film polarizing cube
arrow