Mini-Tutorial: LEA

Kurze Anleitung zur Arbeit mit dem Konsolenprogramm LEA

Stefan Reiser

2022-10-30 (letzte Änderung: 2022-11-06)

Einleitung

LEA ist ein reines Konsolenprogramm: Es nimmt Eingabedateien (Berechnungsjobs) entgegen und produziert Ausgabedateien (Ergebnisse). Solche Programme sind heute für viele völlig ungewohnt. Das vorliegende Tutorial hilft, sich mit der Bedienung vertraut zu machen.

Das Tutorial wurde unter Windows erstellt. Mit geringfügigen Änderungen lassen sich alle Schritte auch auf anderen Betriebssystemen durchführen. Siehe hierzu die Hinweise für Unix/Linux/MacOS im Anhang.

Vorbereitungen

Installation auf einen USB-Stick

Das Programm kann in einen beliebigen Ordner installiert werden. In diesem Beispiel wird ein USB-Stick mit dem Laufwerksbuchstaben “G:” verwendet.

Der Inhalt sollte wie folgt aussehen:

Der Unterordner “bin” enthält Programme, “doc” die Dokumentation. In “work” legen Sie Ihre Berechnungen ab.

Weitere Hilfsmittel

Eine Berechnung durchführen

Öffnen Sie den Unterordner “work” mit dem Windows-Explorer.

Gehen Sie dann in die Adresszeile (Tastenkombination Strg+L). Dort tippen Sie “cmd” und drücken Enter, um eine Befehlskonsole in diesem Ordner zu öffnen.

Geben Sie den Befehl java -version ein, um zu prüfen, ob Java korrekt installiert wurde. Das ist der Fall, wenn Sie eine Meldung wie die oben abgebildete erhalten. (⚠ Lesen Sie die Hinweise zur Bedienung der Befehlskonsole und nehmen Sie die empfohlenen Einstellungen vor.)

Öffnen Sie die Datei “beispiel.txt” im Editor. Es handelt sich um eine ausführlich kommentierte Eingabedatei, die Sie als Grundlage für eigene Berechnungen verwenden können.

Wir möchten diese Eingabedatei von LEA abarbeiten lassen: Lassen Sie sich zunächst mit dem Aufrufparameter -h den Hilfetext des Programms anzeigen. Befehl: java -jar ..\bin\leaapp\JavaApplicationLea.jar -h. Dies liefert eine Übersicht der möglichen Aufrufparameter und ihrer Bedeutung.

Starten Sie jetzt die Berechnung: java -jar ..\bin\leaapp\JavaApplicationLea.jar -C -i beispiel.txt -o ergebnis.csv. Im work-Ordner sollte eine neue Datei namens “ergebnis.csv” entstanden sein.

Erläuterungen: Mit -i wurde “beispiel.txt” als Eingabedatei festgelegt, mit -o die Ausgabedatei “ergebnis.csv”. Der Parameter -C sagt LEA, dass es seine Konfiguration direkt aus der Eingabedatei lesen soll (siehe Zeile 86, Config-Block).

Einige Experimente/Umgang mit Fehlermeldungen:

Wenn Sie -o ergebnis.csv weglassen, werden die Ergebnisse ins Konsolenfenster geschrieben statt in eine Ausgabedatei. Lassen Sie versuchsweise den Parameter -C weg. Das Programm endet mit der Fehlermeldung

Error loading output points.
'outpoint' expected.
Line: 'config'

Die Meldung besagt, dass der Abbruch stattfand, als das Programm die Ausgabepunkte laden wollte. Es erwartete an dieser Stelle in der Eingabedatei das Schlüsselwort outpoint, fand jedoch eine Zeile mit dem Inhalt ‘config’.

Dies hilft Ihnen, den Fehler aufzuspüren: Suchen Sie im Texteditor die fragliche Stelle auf – den config-Block ab Zeile 86. Sie beheben das Problem, indem Sie diesen “auskommentieren”, d.h., Sie setzen ein “#” vor jede Zeile des Blocks. Nach dem Speichern führen Sie den letzen Befehl erneut aus. Das Programm sollte nun erfolgreich durchlaufen.

Ergebnisse ansehen

Öffnen Sie die Datei “ergebnis.csv” in LibreOffice Calc (per Rechtsklick auf die Datei – oder legen Sie fest, dass .csv-Dateien grundsätzlich mit Calc geöffnet werden). Es erscheint ein Import-Dialog, in dem Sie folgende Angaben machen: Sprache ‘Englisch’, Trennzeichen ‘Tabulator’, Zeichenketten-Trenner ‘"’. Der Import-Dialog merkt sich die zuletzt verwendeten Einstellungen.

Die Felder sind: disp Verschiebung (Displacement), stress Spannung, strain Dehnung. Weitere Informationen, speziell zu den Hauptspannungen, finden Sie in der Dokumentation in “lea2doc.pdf” im Abschnitt 5, CSV-Ausgabe. Siehe auch die Anmerkungen zu Maßeinheiten in “beispiel.txt”.

Ein weiteres Berechnungsbeispiel

Wir möchten den Spannungsverlauf an der Oberfläche ermitteln. Dazu werden Ausgabepunkte im 1-mm-Abstand entlang der x-Achse gesetzt, vom Ursprung (0, 0, 0) bis zur Koordinate (2, 0, 0). Angaben in m.

Es werden also 2000 Ausgabepunkte gebraucht, die niemand von Hand eintippen möchte. Nehmen Sie ein neues Tabellenblatt in Calc. Geben Sie die Zeilen 2–5 wie in der folgenden Abbildung ein. (Beachten Sie, dass ein Dezimalpunkt statt eines Kommas verwendet wird.)

⚠ Achtung: Bitte geben Sie nach dem Wort ‘add’ ein Leerzeichen ein, wenn Sie eine ältere LEA-Version nutzen. Sie umgehen damit einen 🐞 Bug in LEA, der beim Erstellen des Tutorials aufgefallen ist. Der Programmfehler wurde in Version 2022-11-06 behoben.

Markieren Sie nun wie abgebildet die Felder der Zeilen 4 und 5. Ziehen Sie das schwarze Kästchen an der rechten unteren Ecke der Markierung mit der Maus nach unten, um die Auto-Ausfüllen-Funktion aufzurufen. Lassen Sie die Maustaste los, wenn Sie ungefähr in Zeile 2000 angekommen sind – auf einige Zeilen mehr oder weniger kommt es nicht an.

Markieren Sie alles mit Strg+A, kopieren Sie mit Strg+C und fügen Sie die Daten mit Strg+V im Texteditor an der Stelle des bisherigen Outpoint-Blocks ein. Speichern Sie die Datei als “beispiel2.txt”.

Texteditor mit aus Calc eingefügten Daten. Tabs und Leerzeichen sind sichtbar gemacht.

Führen Sie abschließend die Berechnung durch:
java -jar ..\bin\leaapp\JavaApplicationLea.jar -i beispiel2.txt -o ergebnis2.csv

Ergebnisse plotten

Gehen Sie mit dem Windows-Explorer ins Verzeichnis “G:\bin\gnuplot\bin”. Starten Sie dort das Programm “wgnuplot.exe”. Machen Sie mit “ChDir” in der Symbolleiste das Verzeichnis “work” zu Gnuplots Arbeitsverzeichnis:


Alternativ hätten Sie den Befehl cd 'G:\lea\work' eintippen können.

Nehmen Sie einige grundlegende Einstellungen für die Plots vor:

set grid
set style data lines
set key center
set xlabel "x [m]"

Einfügen aus der Zwischenablage geht in Gnuplot mit Umschalt+Einfg oder Rechtsklick, ‘Paste’. Sie können mehrere Befehle auf einmal einfügen. Eventuell müssen Sie Enter drücken, um den letzten Befehl abzuschließen.

Erzeugen Sie nacheinander diese drei Plots für Verschiebungen, Spannungen und Dehnungen:

set ylabel "Meter"
plot "ergebnis2.csv" using 3:7 title column, "" us 3:8 t col, "" us 3:9 t col

set ylabel "MPa"
plot "ergebnis2.csv" us 3:10 t col, "" us 3:11 t col, "" us 3:12 t col

set ylabel "Meter/Meter"
plot "ergebnis2.csv" us 3:22 t col, "" us 3:23 t col, "" us 3:24 t col
Das Ergebnis sollte etwa so aussehen:

Erläuterungen zu 🗠Gnuplot sprengen hier den Rahmen. Bei Interesse finden Sie ausführliche Anleitungen und Beispiele auf der Homepage des Programms.

Anhang

Empfohlene Einstellungen für die Befehlskonsole “cmd”

Einstellungen öffnen: Rechtsklick auf den Fenstertitel, “Eigenschaften”.

Im Tab “Optionen” aktivieren Sie den Quick Edit-Modus und den Einfügemodus. Im Tab “Layout” unter Fenstergröße setzen Sie die Breite auf mindesten 80 Zeichen. Angenehme Werte für die Höhe sind 35–50 Zeilen.

Hinweise zur Bedienung der Befehlskonsole

Eingabezeile:

Zwischenablage:

Anmerkungen zu LibreOffice/Calc

Mit LibreOffice/Calc ein zweites Spreadsheet-Programm “in der Hinterhand” zu haben, lohnt sich auch für all jene, die primär Excel benutzen, denn Excel ist notorisch schlecht im Umgang mit Text- und CSV-Dateien.

Die meisten Programme, die numerische Berechnungen durchführen (so auch LEA), verwenden Textdateien zum Datenaustausch und stellen Zahlen in internationaler Schreibweise mit Punkt als Dezimaltrennzeichen dar. Tabellenkalkulationen (Spreadsheets) andererseits richten ihre Zahlendarstellung an den lokalen Spracheinstellungen aus.

Calc hat hier gegenüber Excel zwei entscheidende Vorteile:

  1. Der beim Öffnen einer Text-/CSV-Datei erscheinende Import-Dialog ist mit einem Klick erledigt. Er merkt sich die letzten Einstellungen für das nächstes Mal.

    Excels vielschrittiger Import-Assistent muss stets aufs neue durchlaufen werden. (In jüngeren Office-365-Versionen ist er als Legacy eingestuft und standardmäßig deaktiviert. Siehe Dokumentation im Original oder auf Roboter-Deutsch.)

  2. Excel lässt sich nur über die systemweiten Ländereinstellungen (Systemsteuerung/Region) zum Verwenden des Dezimalpunkts überreden. Dortige Änderungen beeinflussen aber auch sämtliche anderen Programme, was selten erwünscht sein dürfte. In LibreOffice lassen sich Ländereinstellungen unabhängig konfigurieren (siehe unten), während der Rest des Systems in Ruhe gelassen wird.

Hinweis: Der Datenaustausch zwischen Excel und Calc über die Zwischenablage funktioniert auch bei unterschiedlichen Ländereinstellungen problemlos.

Punkt als Dezimaltrennzeichen verwenden

Öffnen Sie das Menü Extras, Optionen. Stellen Sie unter Spracheinstellungen, Sprachen im Abschnitt Formate das Gebietsschema auf “English (USA)”. Stellen Sie die übrigen Felder wie unten abgebildet zurück auf “Deutsch (Deutschland)”.
⚠ Feld Datumserkennungsmuster beachten!

Hinweise für Unix/Linux/MacOS

Bemerkungen zum Excel-Frontend

Das im Ordner “bin\excel” enthaltene Excel-Frontend leistet ungefähr das, was Sie im vorliegenden Tutorial gelernt haben. Das Frontend erzeugt Jobdateien, ruft LEA auf, liest Ergebnisse ein und erstellt vergleichende Plots mit Gnuplot. Es funktioniert unter Windows mit Excel 2000–2019 einschließlich 64-Bit-Office-Versionen. Eine Anleitung befindet sich in der Datei “doc\liesmich!-excel.txt”.

Das Excel-Frontend wurde ursprünglich für hausinterne Zwecke erstellt. Der Versuch, es auch in der Lehre einzusetzen, führt zu stets wiederkehrenden Problemen, die oft nur einige Teilnehmer betreffen, für die Betroffenen jedoch nicht zu lösen sind. Von “ich habe gar kein Excel” abgesehen sind das etwa die Verwendung von MacOS, zunehmend strenge Sicherheitsvorgaben, die das Ausführen von VBA-Programmen unterbinden, oder die Verwendung von Office Online, das gar kein VBA unterstützt. Zur Abhilfe wurde dieses Tutorial erstellt.

Bug in LEA

Gilt für Versionen 2020-09-03 und älter. Der Programmfehler wurde mit Version 2022-11-06 behoben.

🐞 Beschreibung: Die Syntax der Eingabedatei erlaubt eine beliebige Vermischung von Tabs und Leerzeichen (Whitespace). Beim add-Befehl in den Blöcken outpoint, load und struct erwartet das Programm jedoch (fälschlich) ein Leerzeichen hinter dem Wort “add”. Wird ein Tab vorgefunden, bricht es mit einer Fehlermeldung ab.

Das Problem tritt insbesondere beim Einfügen aus Tabellenkalkulationen (Excel, Calc) in einen Texteditor auf. Man erkennt es an Fehlermeldungen wie folgender, in der das Programm einen Syntaxfehler bemängelt, obwohl die Syntax eingehalten wurde:

Error loading output points.
'add <OUTPUTPOINT>' expected.
Line: 'add     pt1     0.001   0       0'

Workaround: Entweder im Texteditor alle Tabs (“\t”) durch Leerzeichen ersetzen lassen oder hinter dem Schlüsselwort “add” bewusst ein überflüssiges Leerzeichen einfügen.