FEniCS-Projekt - FEniCS Project

FEniCS-Projekt
Fenics-logo.png
Stabile Version 2019.1.0 (19. April 2019 ; vor 2 Jahren ) [±] ( 2019-04-19 )
Betriebssystem Linux , OS X , Unix , WSL,
Verfügbar in C++, Python
Art Wissenschaftliche Simulationssoftware
Lizenz GNU Lesser General Public License
Webseite www .fenicsproject .org

Das FEniCS-Projekt ist eine Sammlung freier und quelloffener Softwarekomponenten mit dem gemeinsamen Ziel, eine automatisierte Lösung von Differentialgleichungen zu ermöglichen . Die Komponenten liefern wissenschaftliches Rechnen Werkzeuge zum Arbeiten mit computational Meshes, Finite-Elemente - Variationsformulierungen von gewöhnlichen und partiellen Differentialgleichungen und numerischer linearer Algebra .

Aufbau und Komponenten

Das FEniCS-Projekt ist als Dachprojekt für eine Sammlung interoperabler Komponenten konzipiert. Die Kernkomponenten sind

Bildbeschriftung
Eine schematische Übersicht über die FEniCS-Komponenten und ihr Zusammenspiel
  • UFL (Unified Form Language), eine domänenspezifische Sprache, die in Python eingebettet ist, um Finite-Elemente-Diskretisierungen von Differentialgleichungen in Bezug auf Finite-Elemente-Variationsformen zu spezifizieren;
  • FIAT (Finite Element Automatic Tabulator), das Finite-Elemente-Backend von FEniCS, einem Python-Modul zur Erzeugung von Finite-Elemente-Basisfunktionen beliebiger Ordnung auf Simplizes ;
  • FFC (FEniCS Form Compiler), ein Compiler für Finite-Elemente-Variationsformen, der UFL-Code als Eingabe verwendet und UFC-Ausgabe generiert;
  • UFC (Unified Form-Assembly Code), eine C++- Schnittstelle, die aus Low-Level-Funktionen zum Auswerten und Zusammensetzen von Finite-Elemente-Variationsformen besteht;
  • Instant, ein Python-Modul zum Inlining von C- und C++-Code in Python;
  • DOLFIN, eine C++/Python-Bibliothek, die Datenstrukturen und Algorithmen für Finite-Elemente-Netze, automatisierte Finite-Elemente-Assembly und numerische lineare Algebra bereitstellt.

DOLFIN, das rechnerische Hochleistungs-C++-Backend von FEniCS, fungiert als Hauptumgebung zur Problemlösung (sowohl in C++ als auch in Python) und Benutzeroberfläche. Seine Funktionalität integriert die anderen FEniCS-Komponenten und übernimmt die Kommunikation mit externen Bibliotheken wie PETSc , Trilinos und Eigen für numerische lineare Algebra, ParMETIS und SCOTCH für die Mesh-Partitionierung und MPI und OpenMP für verteiltes Rechnen.

Geschichte

Das FEniCS-Projekt wurde 2003 als Forschungskooperation zwischen der University of Chicago und der Chalmers University of Technology ins Leben gerufen . Folgende Institutionen sind bzw. waren derzeit aktiv an der Entwicklung des Projekts beteiligt

Seit 2019 ist ein Refactoring des Codes in Arbeit.

Siehe auch

Verweise

Externe Links