RP Coating – das Software-Werkzeug für das Design optischer Vielschichtstrukturen
Überblick | Anwendung | Modell | Benutzung | Demos | Versionen |
Das Konzept der Benutzung
Die Software kann mit praktischen Formularen bedient werden; man trägt einfach diverse Eingabeparameter in die Felder ein, startet die Berechnung und erhält diverse Ausgaben:
- Numerische Werte können in Ausgabefeldern im Formular angezeigt werden und/oder in der “Output area” auf der rechten Seite.
- Im Formular kann es sogar grafische Ausgaben geben, beispielsweise farbige Balken.
- Außerdem kann man mehrere grafische Diagramme erzeugen, etwa für die Anzeige von Reflexionsspektren.
Hier zeigen wir ein Beispiel für ein solches Formular (eine der Demo-Dateien, die man mit der Software erhält), mit dem man Anti-Reflex-Beschichtungen berechnen kann. Man gibt einfach die Anforderungen ein (bis zu drei Wellenlängen, eine Bandbreite, Einfallswinkel, Polarization), dazu ein paar Angaben über die Struktur (gewählte Materialien, Anzahl Schichten) und numerische Parameter (Anzahl Monte-Carlo-Versuche):
Wichtig: Diese Formulare und die zugrundeliegenden Berechnungen sind nicht fest codiert. Sie erhalten Skripte, d. h. Textdateien, die eine Schichtstruktur definieren, alle benötigten Berechnungen und die Erzeugung der grafischen Diagramme, und (optional) ein maßgeschneidertes Formular. Sie können solche Skripte nun Ihren spezifischen Anforderungen anpassen. Die Benutzeroberfläche der Software enthält leistungsfähige Editoren und eine Menge zusätzlicher nützlicher Features, um solche Skripte zu ändern oder neue Skripte zu entwickeln.
Das Scripting gibt Ihnen eine enorme Flexibilität. Damit können Sie selbst ausgefeilte Modelle erstellen; Sie können damit sogar richtiggehend programmieren. Programme anderer Hersteller, die keine Scripting-Fähigkeiten haben, können mit RP Coating in punkto Flexibilität nicht mithalten:
- In RP Coating muss die Schichtstruktur nicht unbedingt als eine Tabelle eingegeben werden (was sehr mühsam sein kann), sondern kann auch mit Schleifen konstruiert werden, wo die Schichtdicken systematisch entsprechend einem mathematischen Ausdruck variieren (siehe ein Beispiel unten). Man kann verschiedene Teile eines Designs einfach miteinander kombinieren – beispielsweise einen Bragg-Spiegel, eine Abstandsschicht und einige zusätzliche Schichten darauf. Das gesamte Design kann einfach parametrisiert werden.
- RP Coating erlaubt Optimierungen mit einer beliebigen mathematischen Form der Zielfunktion (figure-of-merit). Bei anderen Programmen können Sie meist nur Parameter einer fest vorgegebenen Zielfunktion eingeben.
- Sie können beliebige zusätzliche Berechnungen hinzufügen: beispielsweise irgendwelche Größen über einen Bereich von Einfallswinkeln mitteln oder Effekte auf ultrakurze Pulse simulieren.
- Sie können alle möglichen zusätzliche Diagramme erzeugen – nicht einfach nur aus einer vorgegebenen Liste von Diagrammen auswählen. Für grafische Ausgaben wie auch für die Ausgabe in Textform bietet die Skriptsprache eine enorme Flexibilität; was immer Sie für nützlich halten, kann implementiert werden – normalerweise mit nur ein paar Zeilen Skriptcode.
- Natürlich können Sie innerhalb eines Skripts und zwischen verschiedenen Skripten mit copy & paste arbeiten, das weitaus angenehmer ist, als viele Formulare durchzugehen und Werte dort erneut einzugeben.
Beachten Sie, dass Softwareprodukte anderer Hersteller in der Regel nur fest vorgegebene Formulare anbieten. Sie müssen dann hoffen, dass diese auch all Ihre Bedürfnisse erfüllen werden.
Die Skriptsprache
RP Coating unterstützt eine sehr leistungsfähige Skriptsprache. Jedes Skript kann das Folgende enthalten:
- die Definition einer Schichtstruktur
- beliebige Berechnungen, um die interessierenden Größen zu erhalten
- die Definition einer beliebigen Anzahl grafischer Diagramme
- zusätzlichen Code, um Daten zu exportieren oder importieren (z. B. gemessene Reflexionsspektren)
- ein maßgeschneidertes Formular für eine praktische Handhabung
Natürlich können Sie häufig benötigte Skriptteile auch in externen Dateien speichern und diese in Ihren Skripten aufrufen.
Einige Code-Fragmente zeigen Ihnen im Folgenden, wie einfach die Skriptsprache verwendbar ist.
Bragg-Spiegel
Das erste Beispiels zeigt die Definition eines Bragg-Spiegels:
l_Bragg := 1000 nm { Bragg wavelength }
N_Bragg := 8 { number of layer pairs }
beam from superstrate
substrate: BK7
for j := 1 to N_Bragg do
begin
* SiO2, d = l/4 at l_Bragg
* TiO2, d = l/4 at l_Bragg
end
superstrate: air
Gechirpter Spiegel
Ein zweites Beispiel zeigt die Definition eines “gechirpten” Spiegels, bei dem die Schichtdicken innerhalb der Struktur systematisch variieren:
l_Bragg0 := 1000 nm { Bragg wavelength in the middle }
dl := 5 nm { change of Bragg wavelength with each layer pair }
N_Bragg := 8 { number of layer pairs }
l_B(j) := l_Bragg0 + (j - N_Bragg / 2) * dl { Bragg wavelength for layer pair j }
d_SiO2(j) := (var l; l := l_B(j); l / 4 / n_SiO2(l))
d_TiO2(j) := (var l; l := l_B(j); l / 4 / n_TiO2(l))
beam from superstrate
substrate: BK7
for j := 1 to N_Bragg do
begin
* SiO2, d = d_SiO2(j)
* TiO2, d = d_TiO2(j)
end
superstrate: air
Sie sehen, dass man einfach auch andere Arten von “Chirps” realisieren, zusätzliche Schichten einfügen könnte etc. Diese Flexibilität finden Sie in anderen Produkten häufig nicht.
Numerische Optimierung
Hier ist etwas Code für eine numerische Optimierung:
l_HR := 1064 { HR wavelength }
l_HT := 808 { HT wavelength }
FOM():= { merit function }
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))
optimize coating for minimum of FOM()
Die definierte Zielfunktion FOM() ergäbe Null für einen Spiegel mit verschwindender Transmission um 1064 nm und verschwindender Reflektivität um 808 nm – dies ist das Design-Ziel für einen dichroischen Spiegel, mit dem Pumplicht in einen Nd:YAG-Laser eingebracht werden kann. Das Kommando “optimize” verfeinert die Schichtstruktur so, dass diese Zielfunktion den minimal möglichen Wert liefert.
Anzeige des Reflexionsspekrums
Schließlich ist hier noch etwas Code für die Anzeige des Reflexionsspekrums:
diagram 1:
"Reflectivity Profile"
x: lambda_min, lambda_max
"wavelength (nm)", @x
y: 0, 100
"reflectivity (%)", @y
frame
hx
hy
f: 100 * R(x),
color = red, width = 3
Editoren für Skriptcode
Für das Editieren von Skriptcode bietet die Software leistungsfähige Editoren und zusätzliche Tools. Hier sehen Sie einen Editor:
Einige sehr nützliche Features dieser Editoren:
- Multilevel undo/redo: Sie können mehrere Änderungen im Text schrittweise rückgängig machen oder doch wieder anwenden.
- Syntax highlighting: erkannte Namen von Befehlen oder Funktionen, Schlüsselworte und Kommentare werden mit unterschiedlichen Farben angezeigt. Dies erleichtert sehr die Erkennung der Struktur.
- Parameter-Hilfe: Wenn Sie einen Funktionsnamen gefolgt von einer öffnenden Klammer eintippen, zeigt der Editor Infomationen über die benötigte Parameterliste an. Damit wird es wesentlich einfacher, hunderte von Funktionen zu nutzen.
- Syntaxprüfung: Sie können die Syntax eines Skripts schnell überprüfen lassen, ohne es auszuführen.
- Code snippets library: Sie können ganz einfach häufig benötigte Code-Teile in Ihr Skript einfügen (siehe das Bild unten). Dies ist wesentlich praktischer, als beispielsweise Code-Teile in der Dokumentation oder den Demo-Dateien zu suchen. Nutzer können auch eigenen Code in die Library einfügen.
Grafische Ausgaben
Ein Skript kann mehrere Diagramme erzeugen, um die Resultate der Berechnungen darzustellen. Beispiele finden Sie auf den Seiten für verschiedene Demo-Dateien. Jedes Diagramm wird in einem separaten Fenster gezeigt. Unten sehen Sie ein Beispiel für solch ein Grafik-Fenster, das zeigt, wie die optischen Intensitäten in einen Bragg-Spiegel für unterschiedliche Wellenlängen eindringen.
Die Grafik-Fenster haben etliche sehr nützliche Features:
- Messung von Positionen und Distanzen mit zwei Cursorn
- Abspeicherung der Grafik im PNG- oder GIF-Format
- Export numerischer Daten
- Kopieren der Grafik in die Windows-Zwischenablage
- Zurückholen der Grafik der letzten Berechnung (z. B. für ein etwas anderes Coating-Design), um Unterschiede deutlich zu sehen
- Blättern in mehrfachen Versionen einer Grafik
Umfassende Dokumentation
RP Coating wird mit einer gut ausgearbeiteten Dokumentation geliefert, welche Ihnen einen schnellen Einstieg und eine effiziente Arbeit auch bei komplizierten Projekten erlaubt:
- Zunächst gibt es ein Manual im PDF-Format, das detailliert (auf ca. 40 Seiten) alles Wichtige erklärt: die Prinzipien des physikalischen Modells, die Bedieneroberfläche, die Skriptsprache, etc.
- Die zusätzliche kontextsensitive Hilfefunktion ist sogar noch detaillierter. Das Bild unten gibt Ihnen einen Eindruck.
Technischer Support
Falls es noch irgendwelche Schwierigkeiten gibt, können diese mit dem technischen Support effizient angegangen werden. Wir stellen sicher, dass Ihre Probleme schnell gelöst werden.
Wenn Sie noch Fragen haben oder ein Angebot benötigen: Kontaktieren Sie uns!