FVM und FEM Toolbox für Partielle Differentialgleichungen
Inhalt: Zur Implementierung · Import und Export Filter · Pre- und Post-Processing · Online Visualisierung · Numerische Module · Leistung · Software Abhängigkeiten · System Information
pdelib2 ist eine Sammlung von Software-Bausteinen, welche zur Erstellung von Simulatoren basierend auf Modellen numerischer Lösung entwickelt wurden. Ziele des Designs sind Modularität, Portabilität, Integrierbarkeit und Parallelisierung auf Shared Memory Architekturen.
Zur Implementierung
Das array basierte Design der Hauptstrukturen erlaubt eine Interoperabilität mit einer Vielzahl von existierenden Paketen und erlaubt eine freie Wahl der Programmiersprache. pdelib2 nutzt in FORTRAN geschriebene Kerne. Die zentralen Datenstrukturen sind in C++ implementiert. Skripte sind über eine Lua Anbindung verfügbar.- Die Datenstrukturen basieren auf mehrdimensionalen arrays und speichern Lösungen, Gitter, Matrzen und andere Objekte.
- Sicheres Speicher Management mittels C++ smart pointers.
- Bibliotheksanbindung zu Gittergeneratoren Triangle und TetGen.
- Partitionierung der Gitter für paralleles Rechnen und Cache-effizienten Datenzugriff durch METIS
- Linear Algebra Subroutinen, Matrix Assemblierung and nichtlineare Operator Anwendung ausgelegt für paralleles Rechnen (mehr...).
- Integrierte Visualisierung der berechneten Daten mittels OpenGL.
- Linear Probleme werden gelöst mit iterativen und direkten Lösern, z.B. PARDISO.
- Große Teile der Bibliothek sind über die Erweiterungssprache Lua mittels SWIG Schnittstellengenerierungstool verfügbar.
- Graphische Nutzer Schnittstelle für basieriert auf FLTK ("fulltick").
Import und Export Filter
Eigene Daten Dateiformate- .tsol - Lesen/Schreiben von (Zeit-)Schrittlösungen auf nicht redundante weise.
- .grid - ASCII/Binär lua/ldf Dateien mit (generischer) Gitter- oder Geometrie-Beschreibung
- .xgrid - binäre ldf Dateien mit Gitter-Beschreibung
- .sg - pdelib1 Simplex Gitter Datei
- .polyx - Erweiterung von .poly
- .vec - Vectorfeld Dateien
- .stl - Stereolithographie Format (mehr...)
- .ele - Triangle/TetGen Dateiformate (mehr...)
- .poly - piecewise linear complex (PLC) files (mehr...)
Pre- und Post-Processing
Diese eigenständigen Softwarekomponenten ermöglichen eine offline Datenauswertung. Die offline Implementierung der folgenden Programme basiert auf den online Komponenten.gview | Betrachter für Geometrie und Gitter Dateien (1D, 2D und 3D) | |
semiview | Betrachter für numerische Lösungen von Problemen, welche große Dateien erzeugen (> 2GB). semiview ist eine spezielle Implementierung für die Darstellung von Ergebnissen aus 'Semiconductor Photon Detectors' Simulationen. | |
player | Zeigt eine gespeicherte zeitabhängige Lösung geladen aus dem .tsol Dateiformat. Generische und nutzerspezifische Interpretationen sind möglich. |
Online Visualisierung
Wärend einer Simulation wird eine direkte Betrachtung der Daten ohne Kopie und Interpolation unterstützt. Von allen pdelib Betrachtern ist eine Speicherung in folgende Formate möglich- PPM-Raw (Einzel / Serien Bilder)
- PNG-Compressed (Einzel / Serien Bilder)
- EPS-Vector (Einzel / Serien Bilder)
- MPEG-Video (Video Format)
gView | Online Betrachter für Gitterdaten (1D, 2D und 3D) | |
aView | Online Betrachter für skalare Felder (1D, 2D und 3D) | |
vfView | Online Betrachter für Vectorfelder (2D und 3D) |
Weitere Eigenschaften sind
- MultiView und OpenGL stereo und ein einfacher Szenen-Editor ermöglichen eine erhöhte räumlichen Eindruck der 3D Daten.
- Der Macro-Rekorder ermöglicht z.B. die Aufnahme und Wiedergabe von graphischer Nutzerinteraktionen. Ein aufgenommener Makro ist einfacher editierbarer Lua Programmcode.
- Erweiterte Farbeinstellungen für Materialregionen und deren Schnittflächen. Wählbar sind gefüllt, transparent oder Drahtdarstellung. In diesem Beispiel sind die uninteressanten äußeren Regionen ausgegraut.
- Beliebig orientierte Schnittebene
Numerische Module
- Gitter-Partitionierung mit variabler Breite der Separatoren
- Gitter-Interpolation: Gitter-Gitter für adaptive Methoden, Gitter-Punkt für Messungen (pdelib2/grid_interpol)
- Finite Volumen (FVM) Assemblierungs- und Anwendungs-Schleifen (pdelib2/grid)
- Lineare Algebra Operationen zwischen (sparse-)Matrix und Vektor (pdelib2/linalg)
- Vorkonditionierer: Jacobi/Point block Jacobi, SSOR/Point block SSOR, ILU/ Point block ILU, GSPAR direkter Löser (pdelib2 built-in), Schnittstelle zu PARDISO, Agglomeration Mehrgitter (pdelib2/iteration)
- Nichtlineare iterative Löser: Newton Verfahren, CG, CGS, Bi-CG, Bi-CGSTAB, GMRES (pdelib2/iteration)
- Finite Volumen Löser für nichtlineare gekoppelte Systeme von Reaktion-Diffusion-Konvektion Differentialgleichungen (pdelib2/fvsys)
- Spline Interpolation für nichtlineare Datenfunktionen (pdelib2/nltools)
Leistung
Assemblierung und Anwendung von linearen und nichtlinearen Operatoren nutzen- SMP basierte Parallelisierung
- Cache-bewusster Gitterzugriff
- FORTRAN Kerne kompatible Datenstrukturen
Thread Viewer | Leistungsanalyse von parallelen and sequentiellen Programmteilen |
Software Abhängigkeiten
Für die beschriebene Funktionalität nutzt die pdelib2 mehrere externe Softwarepakete. Die folgenden Pakete werden unterstütztPaket | genutz für |
ARPACK | Löst large scale Eigenwertprobleme |
FLTK | GUI Funktionalität und 3D Graphik via OpenGL |
SWIG | Verbindet C++ mit der Skriptsprache Lua |
Lua | Skriptsprache |
METIS | Gitterpartitionierung |
TetGen | 3D Gittergenerierung |
TetView | 3D Gittervisualisierung |
Triangle | 2D Gittergenerierung |
gnuplot | XY-Datenvisualisierung |
System Information
Dieser Abschnitt beinhaltet Informationen bezüglich Systemvoraussetzungen und unterstützte Plattformen für pdelib2. Im wesentlichen sind alle Programmteile in C++ geschrieben. Die effizienten numerischen Kerne (Vektor-Routinen, dünnbestzte Matrix Programmcode) dagegen in Fortran77. Aktuell ist die Software portierbar auf eine große Zahl von UNIX Systemen, auf welchen X11 und OpenGL Unterstützung verhanden ist.- Linux
- Mac OS X
- AIX
- Windows (MinGW-cross)
- True64
- IRIX
Kontakt
Telefon, E-Mail
Tel.: 030 20372-560
E-Mail: pdelib@wias-berlin.de
WIAS-Software
- ALEA - Framework für hochdimensionale funktionale Unsicherheitsquantifizierung
- aws - Adaptive weights smoothing
- BALaser für die Simulation der Dynamik von Hochleistungsbreitstreifenhalbleiterlasern
- ddfermi - drift diffusion simulation tool
- DiPoG zur Lösung direkter und inverser Probleme bei optischen Gittern
- WIAS R-Pakete zur Bildverarbeitung / Neurowissenschaften
- LDSL-tool für die Simulation der longitudinalen Dynamik von Halbleiterlasern
- ParMooN - Mathematik und objektorientierte Numerik
- pdelib - eine FVM und FEM Toolbox für PDEs
- TetGen - ein Gittergenerator für Delaunay-Tetraeder-Gitter