Software: FEMM - Elektrostatik - LUA-Scripting: Unterschied zwischen den Versionen

Aus OptiYummy
Zur Navigation springenZur Suche springen
KKeine Bearbeitungszusammenfassung
KKeine Bearbeitungszusammenfassung
Zeile 1: Zeile 1:
<div align="center"> [[Software:_FEMM_-_Elektrostatik_-_Open_Boundary_Problems|<<~]] [[Software:_FEMM_-_Elektrostatik_-_LUA-Scripting|~>>]] </div>
<div align="center"> [[Software:_FEMM_-_Elektrostatik_-_Open_Boundary_Problems|<<~]] [[Software:_FEMM_-_Elektrostatik_-_LUA-Scripting|~>>]] </div>
[[Software:_FEMM_-_Elektrostatik|'''^''']]
[[Software:_FEMM_-_Elektrostatik|'''^''']]
Bisher haben wir unsere FEM-Modelle mit Hilfe der vom FEM-System bereitgestellten grafischen Oberfläche entwickelt, simuliert und die Simulationsergebnisse ausgewertet. Solche grafischen Oberflächen ([http://de.wikipedia.org/wiki/GUI '''GUI'''] = '''G'''raphical '''U'''ser '''I'''nterface) ermöglichen dem Anfänger einen relativ schnellen Einstieg in die Nutzung der Finite-Element-Methode.
Nun bieten aber alle modernen FEM-Systeme auch eine [http://de.wikipedia.org/wiki/Skriptsprache '''Scriptsprache'''], welche man in Ergänzung oder auch als vollständigen Ersatz für die grafische Oberfläche verwenden kann. Über die Scriptsprache wird normaler Weise für jede Funktion der grafischen Oberfläche ein Script-Befehl zur Verfügung gestellt, z.B. im Programm FEMM:
* open("filename")  = Öffnen einer Datei
* ei_addnode(x,y) = Neuer Knoten auf x,y
* ei_selectnode(x,y) = Selektiert den Knoten, der x,y am nächsten liegt
* ei_deleteselectednodes = Löscht alle selektierten Knoten
* ...
Das Programm FEMM nutzt als Grundlage die [http://de.wikipedia.org/wiki/Lua '''LUA-Scriptsprache'''] in der [http://www.lua.org/manual/4.0/ '''Version 4.0''']. Der LUA-Interpreter ist in das Programm FEMM integriert und wirkt auf folgende Inhalte:
Eingabefelder:
Beim Schließen des zugehörigen Dialogfensters werden die Ausdrücke als LUA-Script interpretiert.
Das Ergebnis des Ausdrucks ist der Zahlenwert der Eingabe.
LUA-Console:
Diese Konsole kann man über View - LUA-Console im FEMM öffnen.
Im unteren Input-Feld kann man Script-Ausdrücke eingeben.
Diese werden nach Betätigen von Evaluate ausgeführt.
Die Wirkung der Befehle kann man am Modell sofort sehen.
Bei Bedarf erscheint eine Fehlermeldung.
Bereits ausgeführte Ausdrücke erscheinen im oberen Output-Feld.
Damit kann man Schritt für Schritt ein Script entwickeln, welches man in einer LUA-Textdatei speichert.
LUA-Textdatei:
Eine Textdatei, welche  ein LUA-Script enthält, kann man über File - Open Lua Script aktivieren:
Hinweis:
Wer keine Schreibrechte im FEMM-Programm-Ordner besitzt, muss die beiden Dateien
Roters-Ch9Fig6.fem
Force-vs-Position.lua
vor dem Öffnen dieses Script-Beispiels in einen anderen Ordner kopieren!
Die Anweisungen dieses Scripts werden nach dem Öffnen der Datei ausgeführt.
Wie von Geisterhand gesteuert laufen Modellbildung, Simulation und Ergebnisdarstellung im Programm-Fenster ab.
Im Output-Feld der LUA-Console werden im Beispiel die Werte der Magnetkraft als Funktion der Rotorposition aufgelistet.
Innerhalb eines FEM-Systems steht der gesamte Umfang der verwendeten Scriptsprache zur Verfügung:
Die konstruktiven Parameter (Geometrie und Stoff) können damit direkt als Parameter des Finite Element Modells definiert werden.
Durch mathematische Verknüpfung können aus den konstruktiven Parameter alle erforderlichen Werte für das Finite Element Modell berechnet werden.
Auf Basis einer Folge von Anweisungen der Scriptsprache unter Einbeziehung bedingter Verzweigungen oder Schleifen kann man den FEM-Prozess freizügig automatisieren.
LUA-Syntax im Programm FEMM:
Im Kapitel 3 der FEMM-Hilfe (manual.pdf) sind die speziellen FEMM-Erweiterungen der LUA-Scriptsprache beschrieben.
Allgemeine Funktionen
Diese wirken unabhängig von der konkreten physikalischen Domäne des bearbeiteten Problems, z.B.:
clearconsole()
newdocument(doctype)
hideconsole()
hidepointprops()
messagebox("message")
open("filename")
pause()
print()
prompt("message")
quit()
Domänenbezogene Funktionen
gekennzeichnet durch 2 Zeichen vor dem Funktionsnamen (uv_function) mit:
u = magnetic | electrostatic | current flow | heat flow
v = input (Preprocessor) | output (Postprocessor)
Die Funktionen für den Preprocessors wirken auf die Modelldatei der jeweiligen Domäne (fem/fee/fec/feh):
Definition des Problems
Hinzufügen/Löschen von Objekten
Editieren von Objekten
Bearbeiten von Objekteigenschaften
Selektieren von Geometrie
Labeling von Objekten
Erzeugen/Löschen des Netzes
Zoom der Ansicht
Sichtbarkeit Fenster/Raster
Diverse Hilfsfunktionen
Die Funktionen für den Postprocessor wirken auf die zum Modell gehörenden Ergebnisdateien (ans/res/anc/anh):
Datenextraktion
Selektieren von geometrischen Elementen in der Ergebnisdatei
Zoom der Ansicht
Konfiguration der Ergebnisdarstsellung
Diverse Hilfsfunktionen
Mit diesen Funktionen kann man sämtliche Möglichkeiten der grafischen Bedienoberfläche in Form von LUA-Funktionsaufrufen nachempfinden:
Man benötigt zusätzlich noch Ausdrücke der eigentlichen LUA-Sprache, um z.B. Prozesse mit bedingten Verzweigungen oder Schleifen zu beschreiben.
Um Abhängigkeiten zwischen den Modellparametern zu definieren, benötigt man außerdem mathematische Operatoren und Funktionen der LUA-Sprache.
In Hinblick auf FEMM muss man hierbei die Version 4.0 der LUA-Sprache benutzen.
Nicht im Handbuch beschrieben sind die zusätzlich vordefinierten Naturkonstanten und Maßeinheiten. Man findet diese Definitionen für das Programm FEMM in der Datei ..\Programme\femm42\bin\init.lua :
PI = 3,14159... (Kreiszahl π)
auch Pi oder pi)
uo = PI*4.e-7 = 1.2566E-6 (µo magn. Feldkonstante)
eo = 8.85418781762e-12 (εo elektrische Feldkonstante)
meter = 1
auch meters;  Meter; Meters
cm = 0.01
auch centimeter; centimeters; Centimeters; Centimeter
mm = 0.001
auch millimeters; millimeter; Millimeter; Millimeters; milimeter; milimeters
um = 0.000001
auch micrometer; Micrometer; micrometers; Micrometers; micron; Micron; microns; Microns
inch = 0.0254 (Zoll = 2.54 cm)
auch inches; Inch; Inches; in
mil = 0.001*inch
auch mils; Mils; Mil
Tesla = 1
mTesla = 0.001
Gauss = 0.0001
kGauss = 0.1
AmpMeter = 1
kAmpMeter = 1000
Oersted = 250/PI
kOersted = 1000*Oersted






<div align="center"> [[Software:_FEMM_-_Elektrostatik_-_Open_Boundary_Problems|<<~]] [[Software:_FEMM_-_Elektrostatik_-_LUA-Scripting|~>>]] </div>
<div align="center"> [[Software:_FEMM_-_Elektrostatik_-_Open_Boundary_Problems|<<~]] [[Software:_FEMM_-_Elektrostatik_-_LUA-Scripting|~>>]] </div>

Version vom 24. Juni 2008, 14:11 Uhr

^

Bisher haben wir unsere FEM-Modelle mit Hilfe der vom FEM-System bereitgestellten grafischen Oberfläche entwickelt, simuliert und die Simulationsergebnisse ausgewertet. Solche grafischen Oberflächen (GUI = Graphical User Interface) ermöglichen dem Anfänger einen relativ schnellen Einstieg in die Nutzung der Finite-Element-Methode.

Nun bieten aber alle modernen FEM-Systeme auch eine Scriptsprache, welche man in Ergänzung oder auch als vollständigen Ersatz für die grafische Oberfläche verwenden kann. Über die Scriptsprache wird normaler Weise für jede Funktion der grafischen Oberfläche ein Script-Befehl zur Verfügung gestellt, z.B. im Programm FEMM:

  • open("filename") = Öffnen einer Datei
  • ei_addnode(x,y) = Neuer Knoten auf x,y
  • ei_selectnode(x,y) = Selektiert den Knoten, der x,y am nächsten liegt
  • ei_deleteselectednodes = Löscht alle selektierten Knoten
  • ...

Das Programm FEMM nutzt als Grundlage die LUA-Scriptsprache in der Version 4.0. Der LUA-Interpreter ist in das Programm FEMM integriert und wirkt auf folgende Inhalte:

Eingabefelder:


Beim Schließen des zugehörigen Dialogfensters werden die Ausdrücke als LUA-Script interpretiert.

Das Ergebnis des Ausdrucks ist der Zahlenwert der Eingabe.

LUA-Console:

Diese Konsole kann man über View - LUA-Console im FEMM öffnen.


Im unteren Input-Feld kann man Script-Ausdrücke eingeben.

Diese werden nach Betätigen von Evaluate ausgeführt.

Die Wirkung der Befehle kann man am Modell sofort sehen.

Bei Bedarf erscheint eine Fehlermeldung.

Bereits ausgeführte Ausdrücke erscheinen im oberen Output-Feld.

Damit kann man Schritt für Schritt ein Script entwickeln, welches man in einer LUA-Textdatei speichert.

LUA-Textdatei:

Eine Textdatei, welche ein LUA-Script enthält, kann man über File - Open Lua Script aktivieren:


Hinweis:

Wer keine Schreibrechte im FEMM-Programm-Ordner besitzt, muss die beiden Dateien

Roters-Ch9Fig6.fem

Force-vs-Position.lua

vor dem Öffnen dieses Script-Beispiels in einen anderen Ordner kopieren!

Die Anweisungen dieses Scripts werden nach dem Öffnen der Datei ausgeführt.

Wie von Geisterhand gesteuert laufen Modellbildung, Simulation und Ergebnisdarstellung im Programm-Fenster ab.

Im Output-Feld der LUA-Console werden im Beispiel die Werte der Magnetkraft als Funktion der Rotorposition aufgelistet.

Innerhalb eines FEM-Systems steht der gesamte Umfang der verwendeten Scriptsprache zur Verfügung:

Die konstruktiven Parameter (Geometrie und Stoff) können damit direkt als Parameter des Finite Element Modells definiert werden.

Durch mathematische Verknüpfung können aus den konstruktiven Parameter alle erforderlichen Werte für das Finite Element Modell berechnet werden.

Auf Basis einer Folge von Anweisungen der Scriptsprache unter Einbeziehung bedingter Verzweigungen oder Schleifen kann man den FEM-Prozess freizügig automatisieren.

LUA-Syntax im Programm FEMM:


Im Kapitel 3 der FEMM-Hilfe (manual.pdf) sind die speziellen FEMM-Erweiterungen der LUA-Scriptsprache beschrieben.

Allgemeine Funktionen

Diese wirken unabhängig von der konkreten physikalischen Domäne des bearbeiteten Problems, z.B.:

clearconsole()

newdocument(doctype)

hideconsole()

hidepointprops()

messagebox("message")

open("filename")

pause()

print()

prompt("message")

quit()

Domänenbezogene Funktionen

gekennzeichnet durch 2 Zeichen vor dem Funktionsnamen (uv_function) mit:

u = magnetic | electrostatic | current flow | heat flow

v = input (Preprocessor) | output (Postprocessor)

Die Funktionen für den Preprocessors wirken auf die Modelldatei der jeweiligen Domäne (fem/fee/fec/feh):

Definition des Problems

Hinzufügen/Löschen von Objekten

Editieren von Objekten

Bearbeiten von Objekteigenschaften

Selektieren von Geometrie

Labeling von Objekten

Erzeugen/Löschen des Netzes

Zoom der Ansicht

Sichtbarkeit Fenster/Raster

Diverse Hilfsfunktionen

Die Funktionen für den Postprocessor wirken auf die zum Modell gehörenden Ergebnisdateien (ans/res/anc/anh):

Datenextraktion

Selektieren von geometrischen Elementen in der Ergebnisdatei

Zoom der Ansicht

Konfiguration der Ergebnisdarstsellung

Diverse Hilfsfunktionen

Mit diesen Funktionen kann man sämtliche Möglichkeiten der grafischen Bedienoberfläche in Form von LUA-Funktionsaufrufen nachempfinden:

Man benötigt zusätzlich noch Ausdrücke der eigentlichen LUA-Sprache, um z.B. Prozesse mit bedingten Verzweigungen oder Schleifen zu beschreiben.

Um Abhängigkeiten zwischen den Modellparametern zu definieren, benötigt man außerdem mathematische Operatoren und Funktionen der LUA-Sprache.

In Hinblick auf FEMM muss man hierbei die Version 4.0 der LUA-Sprache benutzen.

Nicht im Handbuch beschrieben sind die zusätzlich vordefinierten Naturkonstanten und Maßeinheiten. Man findet diese Definitionen für das Programm FEMM in der Datei ..\Programme\femm42\bin\init.lua :

PI = 3,14159... (Kreiszahl π)

auch Pi oder pi)

uo = PI*4.e-7 = 1.2566E-6 (µo magn. Feldkonstante)

eo = 8.85418781762e-12 (εo elektrische Feldkonstante)

meter = 1

auch meters; Meter; Meters

cm = 0.01

auch centimeter; centimeters; Centimeters; Centimeter

mm = 0.001

auch millimeters; millimeter; Millimeter; Millimeters; milimeter; milimeters

um = 0.000001

auch micrometer; Micrometer; micrometers; Micrometers; micron; Micron; microns; Microns

inch = 0.0254 (Zoll = 2.54 cm)

auch inches; Inch; Inches; in

mil = 0.001*inch

auch mils; Mils; Mil

Tesla = 1

mTesla = 0.001

Gauss = 0.0001

kGauss = 0.1

AmpMeter = 1

kAmpMeter = 1000

Oersted = 250/PI

kOersted = 1000*Oersted