Software … leistungsfähige Tools für Ihre Forschung & Entwicklung!

English

Die Skriptsprache der Software von RP Photonics

Alle Softwareprodukte von RP Photonics arbeiten mit einer leistungsfähigen Skriptsprache, die hier kurz beschrieben wird. Lediglich in RP Q-switch können Sie nur die mathematischen Funktionen nutzen, und RP Fiber Calculator ist diesbezüglich ähnlich begrenzt; alle anderen Produkte dagegen können komplexe Skripte ausführen und erlauben dem Benutzer daher sogar eine richtige Programmierung. Hierfür wurde auch ein leistungsfähiger Debugger integriert.

Manche Interessenten fragen, ob sie z. B. MATLAB für die Verarbeitung von Ein- und Ausgabedaten verwenden können. Die Antwort:

Am Ende werden Sie womöglich auf MATLAB u. ä. gänzlich verzichten, selbst bei Anwendungen, die mit der jeweiligen Physik nichts zu tun haben.

Typische Anwendungen

Die Skriptsprache kann für viele Zwecke verwendet werden. Einige Beispiele hierfür:

Tipps & Tricks

  • Sie können Eingabedaten vorverarbeiten. Beispielsweise können Sie die Eingabewerte für eine Simulation aus in anderer Form gegebenen Inputs errechnen lassen. Beliebige mathematische Ausdrücke oder sogar iterative Prozeduren können eingesetzt werden.
  • Entsprechend können Sie auch berechnete Daten weiter verarbeiten. Wenn beispielsweise RP Coating das Design einer Dünnschichtstruktur berechnet hat, können Sie dieses in beliebiger Form ausgeben – mit Dickenwerten in beliebigen Einheiten, in umgekehrter Reihenfolge, nur für Schichten aus einem bestimmten Material, oder was immer Sie benötigen. Ein weiteres Beispiel: Simulieren Sie die Verstärkung vieler ultrakurzer Pulse unter dem Einfluss von Verstärkerrauschen in RP Fiber Power und werten Sie die Resultate statistisch aus, z. B. um Rauschspektren zu erhalten.
  • Erzeugen Sie Diagramme. Beispielsweise können Sie jede Größe als Funktion jeder anderen plotten, oder Sie erzeugen Farbdiagramme, bei denen die Farbe jedes Pixels anhand seiner Koordinaten berechnet wird.
  • Handhaben Sie Dateien in höchst flexibler Weise. Lesen Sie Dateien mit beliebigem Text- oder binärem Format und holen Sie Ihre Inputs aus ihnen. Beispielsweise könnten Sie Messdaten aus allen Dateien Data*.dat einlesen und zusammen mit Ihren berechneten Werten plotten lassen. Entsprechend schreiben Sie Ausgabewerte in Dateien mit beliebigem Format.
  • Steuern Sie von unserer Software aus andere Programme, indem Sie diese aufrufen und mit bestimmten Daten versorgen. Beispielsweise könnten Sie Ausgaben in eine html-Datei schreiben und dann Ihren Web-Browser starten, um diese anzuzeigen.

Die Arithmetik

Unsere Software bietet sehr ausgedehnte arithmetische Berechnungen an. Einige Beispiele:

  • Es gibt eine weite Spanne von mathematischen Standardfunktion z. B. für die Trigonometrie, Logarithmen, Zufallszahlen (z. B. mit Gauß-Verteilung) etc.
  • Komplexe Arithmetik wird vollständig unterstützt.
  • Es gibt multidimensionale Arrays (Felder) mit linearer, quadratischer und Spline-Interpolation. Beispielsweise können Sie Messdaten in ein Array einlesen und mit kubischen Splines interpolieren. Ebenfalls können Sie multidimensionale Fourier-Transformationen (FFT) durchführen.
  • Es gibt diverse Funktionen für numerische Aktionen, beispielsweise zum Finden von Nullstellen, Minima und Maxima, Ableitungen und Integralen, und sogar für die Integration von Differenzialgleichungen.
  • Weitere Funktionen verarbeiten ganze Felder in einem Durchgang; beispielsweise multiplizieren sie jedes Element eines Arrays mit dem entsprechenden Wert in einem anderen Array, addieren alle Elemente eines Arrays oder finden die größte Komponente darin.

Verarbeitung von Strings

  • Sie können Strings (Zeichenketten) mit annähernd beliebiger Länge, begrenzt nur durch den Hauptspeicher des Rechners, verarbeiten.
  • Es gibt viele Stringfunktionen, z. B. um Teile eines Strings zu extrahieren oder zu ersetzen, Datums- und Zeitwerte zu formatieren, etc.
  • Sie können sogar reguläre Ausdrücke verwenden, um Textteile zu finden, ersetzen oder extrahieren. Beispielsweise könnten Sie ganz einfach alle h1-Überschriften in einer html-Datei ermitteln.
  • Numerische Werte können als Strings formatiert werden, z. B. mit einer gegebenen Anzahl gültiger Stellen und mit gegebener Einheit.

Kontrollstrukturen

Selbst innerhalb mathematischer Ausdrücke können Sie den Fluss der Verarbeitung steuern mit

  • if-then-else-Anweisungen
  • Schleifen mit while-do, repeat-until und for-do
  • Sprünge mit goto (wobei Sprungziele auch berechnet werden können)

Beispielsweise können Sie in RP ProPulse or RP Fiber Power einen ultrakurzen Puls so oft in einem Laserresonator zirkulieren lassen, bis sich die Pulsenergie, Pulsdauer und Bandbreite nicht mehr wesentlich ändern, d. h. bis der stationäre Zustand annähernd erreicht ist.

Dateien

Sie können Dateien mit beliebigen Text- oder binären Formaten (z. B. MATLAB-Dateien) einlesen – Variable für Variable bei komplexen Formaten, oder auch alle auf einmal in ein numerisches Array oder einen String.

Für Textdateien können Sie die leistungsfähigen Stringfunktionen nutzen, einschließlich dem Einsatz regulärer Ausdrücke. Beispielsweise können Sie mit ein paar Code-Zeilen eine XML-Datei laden und bestimmte Tags extrahieren.

Spezialisierte physikalische Funktionen

Jedes Programm bietet etliche spezialisierte Funktionen für die relevanten Physik-Simulationen. Beispielsweise hat RP Fiber Power weit über 100 Funktionen, um z. B. Input-Leistungen eines Faserlasers zu ändern, berechnete Leistungen und Anregungsdichten zu extrahieren, oder auch um eine dynamische Simulation oder die Propagation eines ultrakurzen Pulses zu starten. Solche Funktionen können dann natürlich in jedem mathematischen Ausdruck verwendet werden, beispielsweise bei Funktions-Plots.

Benutzerdefinierte Funktionen

Definieren Sie Ihre eigenen Funktionen für alle möglichen Zwecke. Beispielsweise könnten Sie in RP Fiber Power eine Funktion definieren, die zunächst einen Gauß-Puls mit gegebener Energie und Dauer erzeugt, diesen dann durch eine Faser schickt und schließlich die Dauer des Pulses am Ende der Faser ermittelt. In RP Coating gibt es Funktionen, um Schichtdicken zu ändern und um alle optischen Eigenschaften der Vielschichtstruktur zu berechnen. Solche Funktionen können dann z. B. bei Plots verwendet werden.

Funktionen (und sogar begin-end-Blöcke innerhalb jedes Ausdrucks) können lokale Variablen verwenden, um unbeabsichtigte Interaktionen mit globalen Variablen zu vermeiden.

Numerische Optimierung

Sie können jede Funktion, z. B. einen benutzerdefinierten Figure-of-Merit, entweder lokal oder mit der Monte-Carlo-Methode optimieren. Ihre Zielfunktion (figure of merit) kann Werte in Ihrem physikalischen Modell ändern, berechnete Resultate abrufen und diese beliebig kombinieren, um exakt zu beschreiben, worauf es für Sie ankommt.

Grafik

Mit ein paar Kommandos können Sie ein Diagramm erzeugen:

  • Definieren Sie ein Koordinatensystem, mit vielen Optionen zur Gestaltung seines genauen Aussehens.
  • Legen Sie Funktionsplots, parametrische Plots und Farbdiagramme fest.
  • Zeichnen Sie Datenpunkte als Rechtecke, Dreiecke, Kreise, Sterne etc. ein.
  • Schreiben Sie Text in Diagramme, mit berechneten Werten, einstellbaren Fonts und Schriftgrößen etc.

Neu: Debugger

In 2017 wurde ein wichtiges neues Feature eingeführt: ein leistungsfähiger Debugger, der die Fehlersuche in aufwendigen Skripten sehr erleichtern kann. Damit können Sie Skripte Kommando für Kommando ausführen. Zusätzlich kann man Debugging sogar innerhalb von Ausdrücken betreiben. Und natürlich können Sie an jeder Stelle den genauen Zustand des Systems inspizieren.

Die Details werden auf der Seite über Debugging erklärt.

Vorteile des Scripting

Die Benutzung von Skripten anstelle einer rein grafischen Benutzeroberfläche hat wichtige Vorteile:

  • Die extrem leistungsfähige Skriptsprache gibt Ihnen eine außerordentliche Flexibilität. Sie können alle möglichen Algorithmen damit implementieren. Die detaillierte Dokumentation, die Demo-Dateien und der technische Support stellen sicher, dass Sie damit erfolgreich sein werden.
  • Die Skripte dokumentieren Ihre Arbeit. Wenn Sie ein Skript ein Jahr später lesen, sehen Sie deutlich, was Sie getan haben. Es wäre viel mühsamer, Dutzende von interaktiven Fenstern zu inspizieren, um dies zu rekonstruieren.
  • Sie können Teile von Skripten (Ihren eigenen oder von Demo-Skripten) weiterverwenden, indem Sie sie in andere Skripte kopieren oder als Include-Dateien verwenden.

In RP Fiber Power können Sie sogar zunächst mit interaktiven Formularen arbeiten und die Skripte automatisch erzeugen lassen. Zusätzliche Skriptkommandos können Sie über die Formulare einfügen lassen. Und jederzeit können Sie das erhaltene Skript nehmen und weiter verändern.

Weitere Informationen finden Sie in einigen unserer Newsletter-Postings:

  • Article of 2018-07-02: “Namespaces: An Elegant Approach for Avoiding Name Conflicts”
  • Artikel 2015-10-31: “The Powerful Expression Engine in Software from RP Photonics”
  • Artikel 2015-10-01: “Making Plots With a Variation of Operation or System Parameters”
  • Artikel 2015-07-13: “Regular Expressions – a Powerful Mechanism for Search & Replace Operations and Input Validation”
  • Artikel 2014-11-24: “Some Tips Concerning the Script Language of RP Software”