RP Fiber Power: Simulations- und Design-Software
für Faseroptik, Faserverstärker und Faserlaser
Überblick | Features | Geschwindigkeit | Modell |
Faser-Daten | Benutzung | Demos | Versionen |
Versionsgeschichte von RP Fiber Power
Diese Software wurde im Laufe mehrerer Jahre sehr stark weiterentwickelt, wodurch ihre Fähigkeiten wie auch die Qualität der Benutzeroberfläche massiv ausgebaut wurden.
V1
Dies war die ursprüngliche Version. Sie konnte Berechnungen nur für Faserlaser und Faserverstärker mit konstanten Betriebsparametern (CW-Betrieb) durchführen und konnte nur mit Skripten gesteuert werden.
V2
Version 2 hat interaktive Formulare eingeführt. Zumindest für einfachere Simulationen kann man nun einfach die Eingabedaten in ein Formular eintragen. Beispielsweise sehen Sie unten das Formular für die Eingabe der Parameter eines Signals:
Wichtig: Wenn Sie die Berechnungen ausführen lassen, erzeugt das Programm automatisch ein Skript basierend auf ihren Eingabedaten, um dann dieses Skript auszuführen. Sie können dann auch dieses Skript ansehen und erweitern, wenn Sie später mehr Flexibilität benötigen, als Formulare bieten können. Es ist ebenfalls möglich, zusätzlichen Skriptcode über die Formulare einfügen zu lassen, um beispielsweise spezielle zusätzliche Kurven in Diagrammen zeichnen zu lassen. Sie können also elegant die einfache Handhabung von Formularen mit der großen Flexibilität des Scripting verbinden.
Ebenso gibt es seit der V2 dynamische Simulationen. Dies bedeutet, dass Pump- und Signalleistungen sowie diverse andere Größen beliebige Zeitabhängigkeiten (z. B. definiert über mathematische Ausdrücke) haben können. Dies ist entscheidend z. B. für die Modellierung von gütegeschalteten Lasern und Pulsverstärkern.
V3
Seit Version 3 gibt es den mode solver, mit dem Sie die Fasermoden für ein gegebenes Brechungsindexprofil berechnen können. Es gibt unzählige Funktionen, um all die Eigenschaften der Moden abzurufen, einschließlich der Amplituden- und Intensitätsprofile, Propagationskonstanten, effektiven Modenradien und Modenflächen sowie der Dispersionseigenschaften. Die folgende bewegte Grafik wurde mit einem Skript erzeugt.
Falls wurden interaktive Formulare geschaffen, um Brechungsindexprofile zu definieren und diverse Arten von neuen Diagrammen bzgl. Fasermoden zu erzeugen.
V4
Seit Version 4 kann die Ausbreitung ultrakurzer Pulse simuliert werden – nicht nur in Fasern, sondern auch für diverse optische Komponenten wie optische Filter, Modulatoren und Pulskompressoren. Man kann einfach eine Funktion definieren, die beispielsweise einen Umlauf im Resonator eines modengekoppelten Lasers simuliert; diese Funktion enthält einfach die zugehörigen Funktionsaufrufe der Komponenten im Resonator.
Es ist nun also möglich, modengekoppelte Faserlaser (oder Bulk-Laser) wie auch Verstärker für ultrakurze Pulse zu untersuchen. Betrachten Sie beispielsweise unsere Fallstudien für einen modengekoppelten Faserlaser und ein CPA-Verstärkersystem.
Ein neues interaktives Fenster kann benutzt werden, um die erhaltenen Pulse zu inspizieren. Beispielsweise kann man damit untersuchen, wie sich ein Puls innerhalb einer langen Faser entwickelt, oder über viele Umläufe in einem Laser Resonator.
Die Skriptsprache stellt eine große Zahl von Funktionen zur Verfügung, mit denen man Pulse definieren, sie durch Komponenten schicken und viele ihrer Eigenschaften in der Zeit- und Frequenzdomäne erhalten kann. Durch die leistungsfähige Skriptsprache kann man selbst raffinierte Simulationsabläufe recht einfach implementieren.
V5
Version 5 Ermöglichte die numerische Simulation der Lichtausbreitung nicht nur in Fasern und anderen Wellenleitern, sondern auch in komplizierteren Komponenten wie beispielsweise Fasern mit mehreren Kernen und Faserkoppler, und natürlich auch im freien Raum. Beliebige Biegungen (auch mit variablem Biegeradius) können berücksichtigt werden.
Diese Erweiterungen erlauben einem, eine Vielzahl von Effekten zu untersuchen – beispielsweise Biegeverluste und die Verzerrung von Moden in gebogenen Fasern, Kopplungsphänomene in Faserkoppler an, modenabhängige Absorption in Doppelkernfasern, sowie Gain-Guiding- Effekte in Fasern und konventionellen Laserkristallen. Es ist auch möglich, Verstärkung durch laseraktive Ionen sowie Nichtlinearität von Fasern zu simulieren.
V6
Version 6 erlaubt die Erzeugung von maßgeschneiderten Formularen, die in Skripten definiert werden. Dies bedeutet, dass interaktive Formulare nun speziell für bestimmte Anwendungen maßgeschneidert werden können. Unten sehen Sie ein Beispiel für ein solches Formular, welches mehrere Tabs und grafische Elemente enthält.
Unten sehen Sie den Code, mit dem eines der Tab-Controls im Formular definiert wurde, welches mehrere Eingabefelder enthält. Einfache, aber sehr flexible Kommandos definieren, welche Variablenwerte hier eingegeben werden, mit welchen Einheiten sie dargestellt werden, was ihre minimalen und maximalen Werte sind, etc.
$tabcontrol, size = (620, 0) $tab "Fiber details" Core material: ########################## $input (combobox: "Yb-germanosilicate", "Yb-phosphosilicate") fiber$ Yb concentration: ############ Core diameter: ############ $input N_Yb:d6:" / m^3", min = 0, max = 1e30 $input d_co:d6:"m", min = 0, max = 1e-3 Pump mode radius: ############ Fiber length: ############ $input w_p:d6:"m", min = 0, max = 1e-3 $input L_f:d6:"m", min = 0, max = 1000 Signal mode radius: ############ $input w_s:d6:"m", min = 0, max = 1e-3 $ $tab "Operation parameters" Pump power: ############ at ########## # backward $input P_p_in:d6:"W", min = 0, max = 10, bgcolor = (if P_p_in > 10 then rgb(1, 0.8, 0.8) else white) $input l_p:d6:"(n)m" $input (checkbox) bw_pump Signal input power: ############ at ########## $input P_s_in:d6:"W", min = 0, max = 10 $input l_s:d6:"(n)m" $tabcontrol end
Sie können solche Formulare selbst erstellen oder auch im Rahmen des technischen Supports erhalten, und dann in ihrer täglichen Arbeit die sehr praktische Handhabung genießen. Versorgt mit einem solchen Formular, kann jeder gewisse Berechnungen ganz einfach durchführen, ohne sich selbst mit dem zugrunde liegenden Skriptcode beschäftigen zu müssen. Und wenn man später zusätzliche Features benötigt, erweitert man das Formular eben entsprechend.
V7
Version 7 hat diverse sehr leistungsfähige und nützliche Tools für die Entwicklung von Skripten eingeführt:
Syntax Highlighting
Es gibt stark verbesserte Skripteditoren mit extrem nützlichen Features wie Syntax Highlighting: Erkannte Namen von Kommandos, Funktionen und Schlüsselwörtern werden mit unterschiedlichen Farben dargestellt. Ähnliches gilt für Dinge wie Kommentare und String-Konstanten.
Parameter Help
Um sich an die benötigten Parameter der vielen unterstützten Funktionen erinnern zu lassen, können Sie Parameter Help verwenden: Wenn Sie einfach den Namen einer Funktion gefolgt von “(” eintippen, wird die entsprechende Hilfe angezeigt; Sie können dies auch erhalten, wenn Sie später auf einen Funktionsparameter klicken:
Syntax-Check
Sie können eine schnelle Syntaxüberprüfung eines Skripts aufrufen, ohne dieses ausführen zu lassen. Das kann nützlich sein, z. B. um zu vermeiden, dass Sie ein lange Zeit brauchendes Skript ausführen, welches dann aber am Ende am einem Syntaxfehler scheitert.
Automatische Code-Formatierung
Sie können ein Skript auf der Grundlage von Standard-Regeln neu formatieren lassen. Auf diese Weise erhalten Sie eine konsistente Formatierung für besser lesbare Skripte, wenn Sie beim Schreiben damit etwas nachlässig gewesen sind.
Als ein Beispiel betrachten wir das folgende ursprüngliche Skript:
R_min:=150 mm { minimum curvature radius } L_bend:=R_min*(90 deg) show "L_bend: ",L_bend:d3:"m" z1_bend:=(L_f-L_bend)/2 z2_bend:=(L_f+L_bend)/2 R(z):= if z<z1_bend then 0 else if z<z2_bend then R_min else 0 theta(z):= if z<z1_bend then 0 else if z<z2_bend then -(z-z1_bend)/R_min else -pi/2
Drücken sie einfach Ctrl-R im Editor, und das Skript wird so aussehen:
R_min := 150 mm { minimum curvature radius } L_bend := R_min * (90 deg) show "L_bend: ", L_bend:d3:"m" z1_bend := (L_f - L_bend) / 2 z2_bend := (L_f + L_bend) / 2 R(z) := if z < z1_bend then 0 else if z < z2_bend then R_min else 0 theta(z) := if z < z1_bend then 0 else if z < z2_bend then -(z - z1_bend) / R_min else -pi / 2
Debugger
Mit dem neuen Debugger können Sie Skripte Kommando für Kommando ausführen und den Zustands des Systems an jeder Stelle inspizieren. Klicken Sie einfach links von einer Skriptzeile, um einen Haltepunkt (Breakpoint) zu erstellen (der grün angezeigt wird, siehe unten). Ähnlich können Sie sogar mit Ausdrücken verfahren. Dies kann extrem nützlich sein, wenn Sie raffinierte Simulationsskripte entwickeln.
Siehe auch die RP Photonics Software News of 2017-07-13.
Wenn Sie noch Fragen haben oder ein Angebot benötigen: