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: Bragg-Spiegel

Mit dieser Demo-Datei, die ein Formular enthält, können wir auf einfache Weise die Eigenschaften eines Bragg-Spiegels analysieren. Eine solche Struktur enthält eine Anzahl von Schichten mit der optischen Dichte von jeweils einer Viertelwellenlänge.

form for Bragg mirror analysis

Übrigens ist der verwendete Skript-Code für die Definition dieser Struktur ziemlich einfach:

beam from superstrate
substrate: (material_s$)
for j := 1 to N_Bragg do
begin
  * (material1$), l/4 at l_Bragg
  * (material2$), l/4 at l_Bragg
end
superstrate: air

Wenn wir die Berechnug ausführen, erhalten wir als Erstes das folgende Diagramm:

reflectivity profile of a Bragg mirror

Ein zweites Diagramm ist ein Farbdiagramm, welches die Reflektivitätsspektren für einen variablen Einfallswinkel mit p-Polarisation zeigt:

reflectivity profile of a Bragg mirror

Hier ist der Skript-Code für dieses Diagramm:

diagram 2:
 
"Reflectivity for Different Angles of Incidence"
"(for p polarization)"
 
x: 600, 1400
"wavelength (nm)", @x
y: -90, +90
"angle of incidence (°)", @y
frame
hx
hy
 
cp: color_I(R_p(x, y * deg))

Das nächste Diagramm zeigt, wie die optische Feldintensität innerhalb der Spiegelstruktur variiert:

optical intensities within a Bragg mirror

Als Nächstes erzeugen wir ein weiteres Farbdiagramm für das Eindringen der optischen Intensität bei verschiedenen Wellenlängen. Für eine bessere Orientierung zeigen wir auch die Grenzflächen zwischen den Schichten an:

diagram 6:
 
"Field Penetration"
 
[if theta <> 0 then
  (pol$ + " polarization, " + str(theta_deg:"°"))
 else
  "normal incidence"]
 
x: lambda_min, lambda_max
"wavelength (nm)", @x
y: -500, get_d(0) + 1000
"depth in the mirror structure (nm)", @y
frame
 
! begin
    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(color_I((y - CS_y1) / ((CS_y2 - CS_y1))));
      line(x1 + i * y, x2 + i * y);
    end;
    setcolor(black);
  end
 
! set_dir(1)
 
cp: color_I((if pol$ = "s" then
    T_s(x, theta)
  else
    T_p(x, theta); E2(y) / 4)) { color plot }
 
; Show the layer boundaries:
! begin
    line(CS_x1, CS_x2); { zero line }
    line(CS_x1 + i * d_tot, CS_x2 + i * d_tot); { other boundary }
    setcolor(lightgray);
    for j := 2 to nolayers() do
      line(CS_x1 + i * get_z(j), CS_x2 + i * get_z(j))
  end
 
"substrate", 150, (-200)c
"superstrate", 150, (d_tot + 200)c
optical intensities within a Bragg mirror

Schließlich möchten wir sehen, wie sich das Reflektivitätsprofil während des Wachstums der Struktur entwickelt. Dies benötigt ein wenig Skriptprogrammierung: Wir müssen die ursprünglichen Schichtdicken speichern und sie dann während des Plots variieren:

diagram 7:
 
"Development of Reflectivity During Fabrication"
 
"for normal incidence"
 
x: lambda_min, lambda_max
"wavelength (nm)", @x, color = labelgray
y: 0, get_d(0)
"thickness (nm)", @y, color = labelgray
frame
 
; Save thickness values in an array:
N := nolayers()
defarray d[1, N]
calc
  for j := 1 to N do
    d[j] := get_d(j)
 
set_d_g(d) :=
  { set the layers for growth up to a total thickness d }
  begin
    global N, d[];
    var d_tot;
    d_tot := 0;
    for j := 1 to N do
    begin
      var d_j;
      d_j := minr(d[j], d - d_tot); { thickness of the layer }
      set_d(j, d_j);
      inc(d_tot, d_j);
    end;
  end
 
d_l := -1 { last d value set }
R_g(l, d) := { reflectivity for a total growth thickness d }
  begin
    global d_l;
    if d <> d_l then
    begin
      set_d_g(d);
      d_l := d;
    end;
    R(l);
  end
 
cp: color_I(R_g(x, y))
 
; Indicate layer boundaries:
f: get_z(j),
  color = gray,
  style = dashed,
  for j := 2 to N
reflectivity evolution of a Bragg mirror during growth

Wenn erst die ersten beiden Schichten gewachsen sind, erhalten wir eine schwache und breitbandige Reflexion. Weitere Schichtpaare erhöhen die Reflektivität, aber nur in einer begrenzten Bandbreite.

Sie sehen, dass man mit ein paar Zeilen Skriptcode alle Arten von Diagrammen erzeugen kann – nicht nur solche, die der Entwickler vorgesehen hat. Natürlich können Sie den technischen Support einsetzen, wenn Sie Hilfe bei der Erstellung neuer Arten von Diagrammen benötigen.

Wie wurde das Formular erzeugt?

Hier sehen Sie den Anfang des Codes (im Skript), welcher das Formular definiert:

Custom form:
--------------------------------------------------------------
$font: "Arial", bold, size = 20
Bragg Mirror
$font: "Courier New", size = 11, space = 2.1
$def pwidth := 505
$box "Inputs", size = (pwidth, 0):
Substrate material:     ##################
$input (combobox: "BK7", "CaF2", "diamond", "fsilica", "sapphire_o", "sapphire_e", "SF5", "SF8", "SF10", "SF11", "ZERODUR") material_s$
Material 1:             ##################
$input (combobox: "SiO2", "TiO2", "HfO2", "ZrO2") material1$
Material 2:             ##################
$input (combobox: "SiO2", "TiO2", "HfO2", "ZrO2") material2$
Bragg wavelength:       #############
$input l_Bragg_m:d6:"(n)m", min = 100e-9, max = 10e-6
Number of layer pairs:  #############
$input N_Bragg:f0, min = 0, max = 1000

Dies wird also gebraucht, um die Überschrift und die ersten Eingabefelder zu definieren.

arrow