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

Aus OptiYummy
Zur Navigation springenZur Suche springen
KKeine Bearbeitungszusammenfassung
KKeine Bearbeitungszusammenfassung
Zeile 13: Zeile 13:
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:
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:
* '''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 (Kopieren über Zwischenablage).


* '''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" und "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.


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:
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.


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:


'''''LUA-Syntax im Programm FEMM:'''''
   
   
Im Kapitel 3 der FEMM-Hilfe (manual.pdf) sind die speziellen FEMM-Erweiterungen der LUA-Scriptsprache beschrieben.


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


Allgemeine Funktionen
'''1. Allgemeine Funktionen'''


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


clearconsole()  
* clearconsole()  
 
* newdocument(doctype)  
newdocument(doctype)  
* hideconsole()  
 
* hidepointprops()  
hideconsole()  
* messagebox("message")  
 
* open("filename")  
hidepointprops()  
* pause()  
 
* print()  
messagebox("message")  
* prompt("message")
 
* quit()  
open("filename")  
 
pause()  
 
print()  
 
prompt("message")  


quit()
'''2. Domänenbezogene Funktionen'''


Domänenbezogene Funktionen
Sind gekennzeichnet durch 2 Zeichen vor dem Funktionsnamen (uv_function) mit:
 
* u = magnetic | electrostatic | current flow | heat flow  
gekennzeichnet durch 2 Zeichen vor dem Funktionsnamen (uv_function) mit:
* v = input (Preprocessor) | output (Postprocessor)  
 
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):
Die Funktionen für den Preprocessors wirken auf die Modelldatei der jeweiligen Domäne (fem/fee/fec/feh):


Definition des Problems  
* Definition des Problems  
 
* Hinzufügen/Löschen von Objekten  
Hinzufügen/Löschen von Objekten  
* Editieren von Objekten  
 
* Bearbeiten von Objekteigenschaften  
Editieren von Objekten  
* Selektieren von Geometrie  
 
* Labeling von Objekten  
Bearbeiten von Objekteigenschaften  
* Erzeugen/Löschen des Netzes  
 
* Zoom der Ansicht  
Selektieren von Geometrie  
* Sichtbarkeit Fenster/Raster  
 
* Diverse Hilfsfunktionen  
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):
Die Funktionen für den Postprocessor wirken auf die zum Modell gehörenden Ergebnisdateien (ans/res/anc/anh):


Datenextraktion  
* Datenextraktion  
 
* Selektieren von geometrischen Elementen in der Ergebnisdatei  
Selektieren von geometrischen Elementen in der Ergebnisdatei  
* Zoom der Ansicht  
 
* Konfiguration der Ergebnisdarstsellung  
Zoom der Ansicht  
* Diverse Hilfsfunktionen  
 
Konfiguration der Ergebnisdarstsellung  
 
Diverse Hilfsfunktionen  


Mit diesen Funktionen kann man sämtliche Möglichkeiten der grafischen Bedienoberfläche in Form von LUA-Funktionsaufrufen nachempfinden:
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 [http://www.lua.org/manual/4.0/ '''Version 4.0'''] der LUA-Sprache benutzen.


Man benötigt zusätzlich noch Ausdrücke der eigentlichen LUA-Sprache, um z.B. Prozesse mit bedingten Verzweigungen oder Schleifen zu beschreiben.
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'' :
 
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


* 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:30 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 (Kopieren über Zwischenablage).
  • 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" und "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.


1. 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()

2. Domänenbezogene Funktionen

Sind 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