Startseite Beispiele Screenshots Benutzerhandbuch Bluesky-Logo YouTube ☰
OghmaNano Simulation von organischen/Perowskit-Solarzellen, OFETs und OLEDs DOWNLOAD Quick Start guide

Das Oghma-Dateiformat

1. Was ist JSON?

OghmaNano sim.json file opened in the Firefox browser showing structured JSON parameters
Ein Beispiel für eine Datei vom Typ sim.json, die in Firefox geöffnet wurde und die zugrunde liegende JSON-Struktur einer OghmaNano-Simulation anzeigt.

OghmaNano speichert seine Simulationsdaten in einer JSON-Datei. JSON (JavaScript Object Notation) ist ein sehr einfaches, textbasiertes Format zum Speichern und Übertragen strukturierter Daten. Es wird häufig in wissenschaftlicher Software verwendet, da es sowohl für Menschen lesbar als auch für Maschinen verarbeitbar ist. Allgemeine Beispiele für JSON-Strukturen finden Sie unter https://json.org/example.html.

Um zu veranschaulichen, wie JSON funktioniert, folgt hier ein einfaches Beispiel. Eine JSON-Datei besteht aus Abschnitten, die mit geschweiften Klammern beginnen und enden { }. Jeder Abschnitt enthält Token oder Bezeichnungen, wie z. B. "color_of_dog", "dog_age" oder "dogs_toys". Diese Token müssen immer in doppelten Anführungszeichen geschrieben werden, gefolgt von einem Doppelpunkt : und dann dem zugehörigen Datenwert. Textwerte werden in doppelten Anführungszeichen gesetzt, während Zahlen wie ganze Zahlen oder Dezimalzahlen ohne Anführungszeichen geschrieben werden. In OghmaNano werden boolesche Werte als die Zeichenketten "true" oder "false" gespeichert. Damit die Datei gültig ist, müssen alle öffnenden und schließenden Klammern korrekt angeordnet sein. Elemente innerhalb eines Abschnitts werden durch Kommas getrennt, mit Ausnahme des letzten Elements, das nicht mit einem Komma endet ??.


{
  "color_of_dog": "brown",
  "dog_age": 5,
  "dogs_toys":
  {
    "rabbit": "true",
    "stick": "false"
  }
}
Beispiel für eine einfache JSON-Struktur.

OghmaNano verwendet die gleichen JSON-Prinzipien, um alle Simulationsdaten zu speichern. Diese Informationen sind in einer Datei mit dem Namen sim.json enthalten, die alle Geräteparameter, Simulationseinstellungen und Ausgabekonfigurationen enthält. Jede Simulation hat ihre eigene sim.json-Datei. Obwohl Sie diese Datei in jedem Texteditor öffnen können, ist es oft einfacher, einen speziellen JSON-Viewer zu verwenden, da dieser die Daten in einer leicht lesbaren Baumstruktur darstellt. Firefox verfügt über einen integrierten JSON-Viewer. Ein Beispiel für eine in Firefox angezeigte sim.json-Datei ist unten in ?? dargestellt.

Noch ein letzter Punkt: Obwohl sim.json die wichtigste Konfigurationsdatei ist, wird sie nicht immer separat gespeichert. Stattdessen packt OghmaNano sie oft in eine sim.oghma-Datei, die lediglich ein Standard-ZIP-Archiv ist – dies dient dazu, Speicherplatz zu sparen. Wenn Sie sim.oghma in sim.zip umbenennen, können Sie es mit dem Windows Explorer oder einem beliebigen ZIP-Programm öffnen und sim.json extrahieren. Wenn Sie eine Kopie von sim.json in dasselbe Simulationsverzeichnis legen und das Archiv wieder in sim.oghma umbenennen, ignoriert OghmaNano die archivierte Version von sim.json und verwendet stattdessen Ihre einfache Textdatei sim.json. Diese Funktion ist äußerst nützlich für die Automatisierung, da Sie sim.json direkt mit einer beliebigen Programmiersprache bearbeiten können, ohne ZIP-Dateien manipulieren zu müssen.

2. Das OghmaNano-Dateiformat

OghmaNano wendet genau diese Prinzipien in seiner Simulationskonfigurationsdatei an, die den Namen sim.json trägt. Diese Datei enthält alles, was zur Beschreibung einer Bauelementstruktur, zur Definition der durchzuführenden Simulationen und zur Konfiguration der Solver benötigt wird. Jedes Simulationsverzeichnis enthält ein eigenes sim.json. Obwohl Sie diese Datei in jedem Texteditor öffnen können, ist es oft praktischer, einen JSON-Viewer wie Firefox zu verwenden, der die Daten automatisch in einer formatierten Baumstruktur darstellt.

Auf der höchsten Ebene ist sim.json in eine kleine Anzahl von übergeordneten Abschnitten unterteilt. Diese Abschnitte verzweigen sich dann in detailliertere Unterabschnitte, wie z. B. JV-Messungen, EQE-Messungen oder Definitionen von Schichtstrukturen. Die wichtigsten übergeordneten Abschnitte im aktuellen Format sind in der folgenden Tabelle zusammengefasst: ??.

Current top-level sections in sim.json
Abschnitt Zweck
simAllgemeine Metadaten (z. B. Version, Ausführungsmodus, Anmerkungen)
simsAlle Simulationsdefinitionen (JV, Suns-Voc, EQE, PL, Zeitbereich, Strahlverfolgung, FDTD usw.)
epitaxyAufbau des Bauelements: Schichten, Kontakte, Geometrie, Materialien
mathEinstellungen und Toleranzen für den numerischen Solver
opticalOptische Modelle, Lichtquellen, Detektoren, Gitter
dumpAusgabeoptionen: Ausführlichkeit, Testabfragen, Dateiformate
serverLaufzeit/Parallelisierung (Threads, GPU, Zeitlimits)
In diesem sim.json wurden wichtige übergeordnete Abschnitte erkannt.

3. Eigenheiten des OghmaNano-JSON-Formats

4. Kodierung

Die von OghmaNano gelesenen bzw. geschriebenen .json-Dateien werden immer im Format UTF-8 gespeichert. OghmaNano kann weder UTF-16 noch andere Textkodierungsstandards verarbeiten. Heutzutage verwenden Windows Notepad und die meisten anderen Anwendungen standardmäßig UTF-8. Wenn Sie also nicht wissen, was diese Textspeicherformate sind, spielt es wahrscheinlich keine Rolle. Dies wird erst dann zu einem Problem, wenn Sie beginnen, .oghma-Dateien programmatisch in einer Sprache wie C++ zu generieren und dabei eine Sprache wie Chinesisch oder Russisch mit nicht-lateinischen Zeichen in ihrem Alphabet verwenden.

5. Abwärts- und Aufwärtskompatibilität des Dateiformats

Es wird ein erheblicher Aufwand betrieben, um sicherzustellen, dass neue Versionen von OghmaNano Dateien lesen können, die in älteren Versionen erstellt wurden. Allerdings können ältere Versionen von OghmaNano möglicherweise keine Dateien lesen, die in neueren Versionen erstellt wurden. Jedes Mal, wenn der Benutzer eine „sim.oghma“-Datei über die grafische Benutzeroberfläche öffnet, wird das Dateiformat überprüft. Wenn es sich von dem in der aktuellen Version verwendeten Dateiformat unterscheidet, wird die Datei aktualisiert und wieder auf die Festplatte geschrieben. Wenn Sie OghmaNano in einer Konfiguration ohne grafische Benutzeroberfläche verwenden, indem Sie \(oghma\_core.exe\) direkt aufrufen, stellen Sie sicher, dass Sie vor der Ausführung von \(oghma\_core.exe\) die „sim.oghma“-Dateien aus älteren Versionen des Modells zuerst in der grafischen Benutzeroberfläche geöffnet haben, um sicherzustellen, dass die Datei das richtige Format hat.

6. Tipps

Wenn Sie nicht sicher sind, wo ein bestimmter Parameter in der OghmaNano-sim.json-Datei gespeichert ist, ist eine sehr effektive Methode, zwei Versionen der Datei zu vergleichen und zu prüfen, welche Änderungen vorgenommen wurden. Eine Möglichkeit, dies zu tun, ist die Verwendung eines Datei-Vergleichstools wie KDiff3.

Der Ablauf ist einfach:

  1. Öffnen Sie Ihre Simulation in der Benutzeroberfläche von OghmaNano.
  2. Passen Sie den gewünschten Parameter an (z. B. ändern Sie die Dicke der aktiven Schicht oder eine Spannungseinstellung) und speichern Sie die Simulation.
  3. Vergleichen Sie die neue Datei sim.json mit der vorherigen Version mithilfe von KDiff3 (oder einem anderen Vergleichsprogramm).
  4. Suchen Sie nach den Zeilen, die sich unterscheiden: Diese zeigen genau, wo in der JSON-Struktur dieser Parameter gespeichert ist.

Diese Methode ist eine schnelle und zuverlässige Möglichkeit, Parameter in einer JSON-Datei zu finden, wenn Sie sich über deren Speicherort in der Datei nicht sicher sind. Sie ist besonders nützlich für komplexe Simulationen mit vielen verschachtelten Abschnitten.

👉 Nächster Schritt: Nun geht es weiter zu der Parameter-Scan-Funktion, wo Sie lernen können, wie Sie Simulationsparameter systematisch variieren und die Ergebnisse analysieren.