FEM Installation

From FreeCAD Documentation
Jump to navigation Jump to search
This page is a translated version of the page FEM Install and the translation is 100% complete.
Other languages:
Deutsch • ‎English • ‎español • ‎français • ‎italiano • ‎polski • ‎română • ‎русский

Einführung

Um die Finite Element Analyse (FEA) innerhalb des Workbench FEM.svg FEM Arbeitsbereichs durchführen zu können, verwendet FreeCAD zwei externe Programme: eines wird für die Generierung des FEM Netz verwendet, das andere für die numerische Lösung der eigentlichen Analyse. Du kannst testen, ob dein FreeCAD Installation für die FEA bereit ist, indem du das FEM CalculiX Kragarm 3D Beispiel ausführen, das in jeder Installation von FreeCAD seit v0.17 enthalten ist.

FEM Workbench workflow.svg

Arbeitsablauf des FEM Arbeitsbereichs; der Arbeitsbereich ruft zwei externe Programme auf, um die Vernetzung eines festen Objekts und die eigentliche Lösung des Finite Element Problems durchzuführen.

FEM Löser

Der Standard Löser zur Durchführung von Finite Elemente Berechnungen ist CalculiX, ein einfacher Löser zur Analyse von Strukturen. FreeCAD schreibt eine CalculiX Eingabedatei, startet den Löser und liest die Ausgabe, die dann visuell im Ansichtsfenster dargestellt werden kann; das bedeutet, dass das CalculiX Binärdatei eigenständig und unabhängig von FreeCAD ist. In Anbetracht der Tatsache, dass es viele Programme gibt, die ein Netz generieren können, ist es empfehlenswert, den Löser zu installieren und sicherzustellen, dass er zuerst funktioniert.

Wenn der Löser korrekt installiert ist, kannst du den einzelnen Befehl ccx im Terminal ausführen, um eine einfache Antwort zu erhalten:

User@PC:~$ ccx

Usage: CalculiX.exe -i jobname

Wenn der Löser installiert ist, stelle sicher, dass der FEM Arbeitsbereich in der Lage ist, die Binärdatei zu finden; gehe zu Bearbeiten → Einstellungen → FEM → CalculiX → In bekannten Binärverzeichnissen suchen. Wenn du den Löser selbst kompiliert hast, deaktiviere die Option, und gib den korrekten Pfad zur Binärdatei an. Für andere Löser, die mit FreeCAD verwendet werden können, siehe FEM Löser.

FEM Netz Generator

Um ein FEM Polygonnetz zu erstellen, verwendet FreeCAD Gmsh als Standard Netzerzeuger. Damit dies funktioniert, sollte Gmsh separat von FreeCAD installiert werden.

Wenn das Programm korrekt installiert ist, kannst du den Befehl gmsh im Terminal ausführen, um die grafische Oberfläche des Programms zu starten. Diese Oberfläche wird von FreeCAD nicht verwendet, zeigt aber an, dass das Programm installiert ist.

User@PC:~$ gmsh -info

Version          : 3.0.6
License          : GNU General Public License
Build OS         : Linux64
Build date       : 20171107
Build host       : lgw01-amd64-034
Build options    : 64Bit Ann Bamg Bfgs Blas(Generic) Blossom C++11 Cgns Chaco DIntegration Dlopen Fltk Gmm Jpeg Kbipack Lapack(Generic) LinuxJoystick MPI MathEx Med Mesh Mmg3d Mpeg NativeFileChooser Netgen ONELAB ONELABMetamodel OpenCASCADE OpenGL OptHom Parser Plugins Png Post Python Solver TetGen/BR Tetgen Voro3D Zlib
FLTK version     : 1.3.4
OCC version      : 6.9.1
MED version      : 3.0.6
Packaged by      : buildd
Web site         : http://gmsh.info
Mailing list     : gmsh@onelab.info

Wenn der Netzerzeuger installiert ist, stelle sicher, dass der FEM Arbeitsbereich in der Lage ist, die Binärdatei zu finden; gehe zu Bearbeiten → Einstellungen → FEM → Gmsh → In bekannten Binärverzeichnissen suchen. Wenn du den Löser selbst kompiliert hast, deaktiviere die Option, und gib den korrekten Pfad zur Binärdatei an. Siehe FEM Polygonetz für verschiedene Möglichkeiten, ein gültiges Netz für die Analyse zu erhalten.

Netgen

Hinweis: Der Netgen Netzerzeuger wurde im März 2017 deaktiviert, als FreeCAD auf die Verwendung von OCCT 7.1 umgestellt wurde. Bitte bearbeiten Sie diese Information, wenn Netgen mit der stabilen Version von FreeCAD wieder nutzbar ist.

In früheren Versionen von FreeCAD war Netgen der Standard Netzerzeuger. Damit es mit dem FEM Arbeitsbereich funktioniert, musste FreeCAD zur Kompilierzeit mit den Netgen Bibliotheken gelinkt werden. Als FreeCAD von OCE 0.17 auf OCCT 7.1 überging, konnte Netgen 4.9.13 nicht mehr gegen diese Version von OCCT gelinkt werden, so dass beschlossen wurde, die Netgen Unterstützung im FEM Arbeitsbereich zu beenden. (die Schaltfläche Netgen wurde entfernt). Nichtsdestotrotz berichteten einige Anwender kurz darauf von Erfolgen beim Patchen von Netgen 5.3.1, so dass es mit OCCT 7.x und FreeCAD funktionierte.

Als historische Referenz siehe die Beiträge:

Obwohl Netgen nicht aus dem FEM Arbeitsbereich heraus verfügbar ist, kann es dennoch allein verwendet werden, um Netze zu erzeugen, die dann importiert werden können.

Wenn das Programm korrekt installiert ist, kannst du den Befehl netgen im Terminal ausführen, um die grafische Oberfläche des Programms zu starten.

User@PC:~$ netgen -V

NETGEN-6.2-dev
Developed by Joachim Schoeberl at
2010-xxxx Vienna University of Technology
2006-2010 RWTH Aachen University
1996-2006 Johannes Kepler University Linz
Including OpenCascade geometry kernel
Run parallel Netgen with 'mpirun -np xy netgen'
NETGENDIR = .
Tcl header version = 8.6.8
Tcl runtime version = 8.6.8 
using internal Tcl-script
optfile ./ng.opt does not exist - using default values
togl-version : 2
OCC module loaded

Installation unter Windows

Die auf der Herunterladen Seite verfügbaren FreeCAD Pakete enthalten bereits Netgen und CalculiX, so dass keine zusätzliche Software installiert werden muss. Einige Verweise, wo eine bessere ausführbare Calculix Datei als die in FreeCAD enthalten bekommen kann, können hier unter alternative ccx ausführbare Dateien gefunden werden.

Installation unter Linux

Linux Distributionen haben unterschiedliche Möglichkeiten, Software zu installieren. Viele Distributionen haben Software Repositorien und Paketmanager; Vor dem kompilieren des Quellcodes, schau in deinem Paketmanager nach netgen, gmsh, calculix-ccx oder ccx, und installiere diese nach den Anweisungen deiner eigenen Distribution.

Ubuntu PPA

Die freecad-stable und freecad-daily persönlichen Paketarchive (PPA) bieten eine aktuellere Version von FreeCAD als in den offiziellen Ubuntu Repositorien verfügbar ist. Diese PPAs enthalten auch die aktuellsten Pakete netgen, gmsh und calculix-ccx. Siehe Installieren unter Linux für weitere Informationen zum Einrichten der Repositorien.

Wenn ein PPA bereits zu deinem System hinzugefügt wurde, installiere die Pakete wie folgt

sudo apt-get install netgen
sudo apt-get install gmsh
sudo apt-get install calculix-ccx

Das freecad-community PPA stellt auch die Pakete netgen, gmsh und calculix-ccx zum Testen bereit. Wenn sie stabil genug sind, können sie zu den täglichen oder stabilen Repositorien hinzugefügt werden. Die Binärdateien für ccx 2.14 funktionieren unter Debian Stretch, aber nicht unter Debian Buster aufgrund von Abhängigkeitsproblemen.

Hinweis: Der Beitrag Ubuntu Repositorium behandelt die Erstellung der Ubuntu PPA Pakete. Zu der Zeit, als er geschrieben wurde, war CalculiX nicht in den Debian Repositorien enthalten, daher gab es mehrere persönliche Pakete in Launchpad. Es sollte nur ein Paket installiert werden.

Arch Linux

Hol dir das CalculiX Paket aus dem AUR Repositorium.

Debian

openSUSE

Zusätzliche Pakete werden typischerweise mit YAST (Abk. Yet another Setup Tool)(deutsch: Noch ein anderes Einrichtungswerkzeug), dem Einrichtungs- und Konfigurationswerkzeug für das Linux Betriebssystem, oder in jedem Terminal/Konsole (root Rechte erforderlich) mit:

zypper install netgen
zypper install gmsh
zypper install ccx

CalculiX Binärdatei

Die CalculiX Autoren stellen ein vorkompiliertes Linux Binärdatei des Lösers zur Verfügung; es kann von der Autoren Webseite heruntergeladen werden. Da jedoch verschiedene Linux Distributionen unterschiedliche Bibliothekspfade haben, wird diese Binärdatei höchstwahrscheinlich nicht funktionieren, ohne einige Anpassungen vorzunehmen.

Um das Binärdatei mit Fedora 21 zu verwenden, siehe den Beitrag FEM unter Linux fedora 21 zum Laufen bringen. Für neuere Fedora Versionen solltest du CalculiX selbst kompilieren.

Wenn du diese Binärdatei verwendest, überprüfe, dass die Binärdatei ausführbar ist, dass sie sich im ausführbaren $PATH deines Systems befindet und dass du die erforderliche Version der Bibliotheken (libgfortran, liblapack, libblas, usw.) hast, gegen die sie kompiliert wurde. Dies wird im Forumsbeitrag FEM WB erwähnt.

Verwende den Befehl ldd, um die Bibliotheken anzuzeigen, die von der Binärdatei gelinkt werden. Installiere alle fehlenden Abhängigkeiten.

User@PC:~$ ldd /usr/bin/ccx

linux-vdso.so.1 (0x00007fffbabdc000)
 libspooles.so.2.2 => /usr/lib/x86_64-linux-gnu/libspooles.so.2.2 (0x00007fe9bd042000)
 libpthread.so.0 => /lib/x86_64-linux-gnu/libpthread.so.0 (0x00007fe9bce23000)
 libarpack.so.2 => /usr/lib/x86_64-linux-gnu/libarpack.so.2 (0x00007fe9bcbd9000)
 liblapack.so.3 => /usr/lib/x86_64-linux-gnu/liblapack.so.3 (0x00007fe9bc353000)
 libgfortran.so.4 => /usr/lib/x86_64-linux-gnu/libgfortran.so.4 (0x00007fe9bbf74000)
 libm.so.6 => /lib/x86_64-linux-gnu/libm.so.6 (0x00007fe9bbbd6000)
 libc.so.6 => /lib/x86_64-linux-gnu/libc.so.6 (0x00007fe9bb7e5000)
 libgcc_s.so.1 => /lib/x86_64-linux-gnu/libgcc_s.so.1 (0x00007fe9bb5cd000)
 libmpi.so.20 => /usr/lib/x86_64-linux-gnu/libmpi.so.20 (0x00007fe9bb2db000)
 /lib64/ld-linux-x86-64.so.2 (0x00007fe9bdaa9000)
 libblas.so.3 => /usr/lib/x86_64-linux-gnu/libblas.so.3 (0x00007fe9bb080000)
 libopenblas.so.0 => /usr/lib/x86_64-linux-gnu/libopenblas.so.0 (0x00007fe9b8dda000)
 libquadmath.so.0 => /usr/lib/x86_64-linux-gnu/libquadmath.so.0 (0x00007fe9b8b9a000)
 libopen-rte.so.20 => /usr/lib/x86_64-linux-gnu/libopen-rte.so.20 (0x00007fe9b8912000)
 libopen-pal.so.20 => /usr/lib/x86_64-linux-gnu/libopen-pal.so.20 (0x00007fe9b8660000)
 librt.so.1 => /lib/x86_64-linux-gnu/librt.so.1 (0x00007fe9b8458000)
 libhwloc.so.5 => /usr/lib/x86_64-linux-gnu/libhwloc.so.5 (0x00007fe9b821b000)
 libdl.so.2 => /lib/x86_64-linux-gnu/libdl.so.2 (0x00007fe9b8017000)
 libutil.so.1 => /lib/x86_64-linux-gnu/libutil.so.1 (0x00007fe9b7e14000)
 libnuma.so.1 => /usr/lib/x86_64-linux-gnu/libnuma.so.1 (0x00007fe9b7c09000)
 libltdl.so.7 => /usr/lib/x86_64-linux-gnu/libltdl.so.7 (0x00007fe9b79ff000)

CalculiX kompilieren

Da CalculiX eine eigenständige Anwendung ist, kannst du entweder eine für deine Distribution gepackte Binärdatei installieren oder sie selbst kompilieren. Jede CalculiX Version ab 2.7.x sollte mit FreeCAD funktionieren, und da der Code in den letzten Jahren nicht viel geändert wurde, können auch niedrigere Versionen als 2.7.x funktionieren.

Das Kompilieren von CalculiX ist eine Aufgabe für erfahrene Anwender und erfordert die Bearbeitung der Makefiles und Build Optionen auf verschiedenen Plattformen. Siehe die folgenden Informationen:

Netgen kompilieren

Netgen wurde ursprünglich von FreeCAD verknüpft, als FreeCAD OCE, die Gemeinschaftsabspaltung von OpenCascade (OCCT), verwendete. Da OCE in der Entwicklung hinter OCCT zurückblieb, wechselte FreeCAD zurück zu OCCT. Dadurch wurde die Verknüpfung von Netgen unterbrochen, das nur gegen OCCT 6.9 oder OCE 0.18 und darunter verknüpft werden konnte. Da die OCCT 7.x Versionen die Kernfunktionalität von FreeCAD verbesserten, wurde beschlossen, die Netgen Unterstützung zugunsten von Gmsh aufzugeben.

Seitdem ist es gelungen, neuere Versionen von Netgen auszubessern und mit OCCT 7.x zu verbinden. Dennoch ist die Einbindung von Netgen in FreeCAD immer noch problematisch.

Installation unter MacOSX

Diese Informationen könnten veraltet sein. Wenn du ein OSX Benutzer bist, teste und bereinige bitte diesen Abschnitt

Die OSX Entwicklungspakete von FreeCAD enthalten möglicherweise Netgen, aber nicht CalculiX.

Siehe diesen Forumsbeitrag FEM on Mac OSX für Informationen zur Installation von CalculiX, und einen aktualisierter Beitrag für neuere Informationen.

CalculiX:

Die folgenden Beiträge sind möglicherweise veraltet:

Weitere Informationen

Der FEM Arbeitsbereich befindet sich in ständiger Entwicklung. Die aktuellsten Informationen findest du im FreeCAD Forum.

Wenn du Probleme bei der Installation von Netgen, Gmsh oder CalculiX oder einem anderen externen Werkzeug hast, suche bitte zuerst im Forum: