Matlab-Interface zum FEM-Baukasten Femset

Matlab-Femset

Der Finite-Elemente-"Baukasten" Femset stellt die typischen Routinen des Finite-Elemente-Algorithmus zur Verfügung. Das Matlab-Interface gestattet die Verwendung dieser Programme aus Matlab heraus. Auf diese Weise ist es möglich, ...

Eine Zusammenstellung aller Interface-Routinen von Matlab zu Femset mit Verweisen auf die Dokumentationen der Funktionen findet man auf der Seite "Interface-Bibiliothek".

Matlab-Femset "versteckt" gegenüber dem Matlab-Nutzer die Tatsache, dass die Femset-Routinen in der Programmiersprache C geschrieben wurden, in so genannten "Mex-Files", die aus Matlab exakt wie Matlab-Functions aufgerufen werden können (siehe Beispiel unten). C-Kenntnisse sind also nicht erforderlich.

Obwohl es für die Benutzung der Femset-Algorithmen nicht erforderlich ist: Hier wird (nachvollziehbar mit der eigenen Matlab-Installation) beschrieben, wie Mex-Files erzeugt werden.

Aufruf von Femset-Routinen aus Matlab

Der Aufruf der Femset-Funktionen erfolgt exakt mit der Matlab-Syntax. Dies soll am nachfolgenden (besonders einfachen) Beispiel demonstriert werden.

Beispiel: Das skizzierte System ist durch eine Kraft F belastet, und der Stab 2 wird um die Temperaturdifferenz ΔT erwärmt. Die Verschiebungen des Kraftangriffspunktes sind zu berechnen.

Gegeben:

EA1 = 5·106 N  ;   a = 320 mm  ;   αt = 1,2·10−5 K−1  ;
EA2 = 8·106 N  ;   b = 240 mm  ;   ΔT = 200 K  ;
EA3 = 2·106 N  ;   l2 = 450 mm  ;   F = 3000 N  .

Das nebenstehende Matlab-Script erledigt diese Aufgabe. Die Zeile 11 enthält den Aufruf der Matlab-Femset-Funktion femalg_m, die den kompletten Algorithmus der Verformungsberechnung mit der Finite-Elemente-Methode realisiert.

Man sieht, dass es exakt die Syntax eines Matlab-Funktionsaufrufs ist. Hier werden 5 Parameter übergeben (die in den Zeilen 4 bis 8 definierten Matrizen), und es werden 2 Ergebnisse abgeliefert: Der Parameter succ zeigt Erfolg oder Misserfolg der Berechnung an, auf uv wird die Matrix der berechneten Knotenverschiebungen empfangen.

Der Unterschied besteht darin, dass femalg_m keine Matlab-Funktion ist, die als .m-Datei gespeichert ist, sondern ein "Mex-File" (Binär-Datei, die für die Matlab-32-Bit-Version als .dll-Datei gespeichert ist, für die Matlab-64-Bit-Version als .mexw64-Datei). Diese Mex-Files sind Bestandteil von Matlab-Femset und stehen zum Download zur Verfügung.

Wer dieses Einführungsbeispiel mit der eigenen Matlab-Installation ausprobieren will, kann sich das Matlab-Script Stabdreischlag.m und die zur eigenen Matlab-Version passende Femset-Datei femalg_m.dll oder femalg_m.mexw64 herunterladen (wer nicht genau weiß, welche Matlab-Version er benutzt, lädt einfach beide Dateien, Matlab sucht sich die passende aus, Benutzer einer 64-Bit-Version sollten nachfolgenden Hinweis beachten).

Weil der Aufruf des Mex-Files in Zeile 11 nicht mit einem Semikolon abgeschlossen ist, werden die beiden Rückgabewerte (succ und uv, nebenstehendes Bild) in das Command Window ausgegeben (succ = 1 zeigt den Erfolg der Rechnung an, die ersten 3 Zeilen von uv zeigen die verhinderten Verschiebungen der Knoten 1 bis 3, in der 4. Zeile stehen Horizontal- und Vertikalverschiebung des Knotens 4).

Für Interessenten: Dieses Beispiel wird auf der Seite "Berechnung eines statisch unbestimmten Stabdreischlags" wesentlich ausführlicher einschließlich Postprocessing und grafischer Darstellung der Ergebnisse und Erläuterung des Berechnungsmodells behandelt.

Hier wird das Interface zum Mex-File femalg_m beschrieben, mit dem zahlreiche Finite-Elemente-Modelle berechnet werden können. Hier findet man eine Übersicht über alle zur Matlab-Femset-Bibliothek gehörenden Interface-Dateien.

Benutzung der Mex-Files mit einer 64-Bit-Version

Die zu Matlab-Femset gehörenden Mex-Files für die 64-Bit-Version (mit der Datei-Endung .mexw64) wurden mit "Microsoft Visual C++ 2010 Express" erzeugt. Beim Setup des Mex-Compilers (für Interessenten: "Erzeugen von Mex-Files, Setup des Compilers") erhält man folgende Warnung:

 Mex-Compiler, Warnung

Wenn Sie also die von Matlab-Femset bereitgestellten .mexw64-Dateien nutzen wollen, gibt es folgende Möglichkeiten: