A FVM and FEM toolbox for PDEs
pdelib2 is a collection of software components which are useful to create simulators based on solving partial differential equations. The design is aimed at modularity, portability, ability to integrate with other code, and straigthforward parallelization on shared memory architectures.
Contents: General implementation Notes · Import and Export Filters · Pre- and Post-Processing · Online Visualization · Numerical modules · Performance · Software Dependencies · System Information
General implementation Notes
Array based design of the main data structures allows interoperability with a large number of legacy packages and leaves freedom for the choice of the programming language. pdelib2 uses computational kernels written in FORTRAN. Main data structures are implemented in C++. Scripting is available in Lua.- Data structures based on multi-dimensional arrays to store solutions, grids, matrices and other objects.
- Safe memory management based on C++ smart pointers.
- Library access to the grid generators Triangle and TetGen.
- Grid partitioning for parallel computations and cache efficient data access using METIS
- Linear algebra subroutines, matrix assembly and nonlinear operator application designed for parallel computations (more...).
- Integrated visualization of the computed data using OpenGL.
- Linear problems are solved by iterative and direct solvers, e.g. PARDISO.
- Large part of the library accessible from the extension language Lua by using the SWIG interface generator tool.
- Graphical user interfaces for specialized problems using the FLTK toolkit.
Import and Export Filters
Build-in data file formats- .tsol - read/write of (time-)step solution data in a non redundant way.
- .grid - ASCII/Binary lua/ldf files with (generic) grid or geometry description
- .xgrid - binary ldf files with grid description
- .sg - pdelib1 simplex grid files
- .polyx - extension of .poly
- .vec - vectorfield files
- .stl - stereolithography format (learn more...)
- .ele - triangle/tetgen file suites (learn more...)
- .poly - piecewise linear complex (PLC) files (learn more...)
Pre- and Post-Processing
These stand-alone software components offers users the ability to analyse data offline. The offline implementation of the following programs based on online viewers.gview | Viewer for geometry and grid files (1D, 2D and 3D) | |
semiview | Viewer for numerical solutions of large problems which generates huge data files (> 2GB). semiview is a special implementation to show simulation results concerning Semiconductor Photon Detectors | |
player | Show a time depended solution of file format .tsol. Generic and custom interpretation are possible. |
Online Visualization
During calculations direct view of real data without interpolation and copy is supported. This approach is fast and helps degugging. From all pdelib viewers a dump into following formats are possible- PPM-Raw (single / series of pictures)
- PNG-Compressed (single / series of pictures)
- EPS-Vector (single / series of pictures)
- MPEG-Video (video format)
gView | Online viewer for grid data (1D, 2D and 3D) | |
aView | Online viewer for scalarfields (1D, 2D and 3D) | |
vfView | Online viewer for vectorfields (2D and 3D) |
Further features are
- MultiView and OpenGL stereo and a simple scene editor to offer a spatially perceivable representation of 3D data.
- A macro recorder offers a way to record and play any graphical user interaction. Furthermore, the recorded macros are plain editable Lua code.
- Advanced color properties for regions and interfaces between them. Selectable are filled, transparent or wireframe. In this example the uninteresting outer region is greyed out.
- Arbitrarily oriented cut plane
Numerical modules
- Grid partitioning with variable width of separator
- Grid interpolation: grid-grid for adaptive methods, grid-point for measurement (pdelib2/grid_interpol)
- Basic finite volume (FVM) assemble and apply loops (pdelib2/grid)
- Linear algebra operations between (sparse-)Matrix and vector (pdelib2/linalg)
- Preconditioner: Jacobi/Point block Jacobi, SSOR/Point block SSOR, ILU/ Point block ILU, GSPAR direct solver (pdelib2 built-in), interface to PARDISO direct solver, Agglomeration multigrid (pdelib2/iteration)
- Nonlinear iterative solvers: Newton methods, CG, CGS, Bi-CG, Bi-CGSTAB, GMRES (pdelib2/iteration)
- Finite volume solver for nonlinear, coupled systems of reaction-diffusion-convection equations (pdelib2/fvsys)
- Spline interpolation for nonlinear data functions (pdelib2/nltools)
Performance
Assemble and apply of linear and nonlinear operators profit by- SMP based parallelization
- Cache-aware grid access
- FORTRAN compatible kernel data structures
Thread Viewer | Analyse performance of parallel and sequential code parts |
Software Dependencies
To provide the described features the pdelib2 requires several software packages. The following packages are supportedPackage | using for |
ARPACK | Solves large scale eigenvalue problems |
FLTK | GUI functionality and 3D graphics via OpenGL |
SWIG | Connects C++ with scripting language Lua |
Lua | Scripting language |
METIS | Grid partitioning |
TetGen | 3D Grid generation |
TetView | 3D grid visualization |
Triangle | 2D grid generation |
gnuplot | XY-data visualization |
System Information
This section contains information regarding system requirements and supported computer platforms for pdelib2. Basically, all codes are written in C++. There are highly efficient numerical kernels (vector routines, sparse matrix codes) which are written in Fortran77. In their actual state, the codes are portable on a wide range of UNIX systems, provided, the X11 and the OpenGL-Libraries are available.- Linux
- Mac OS X
- AIX
- Windows with MinGW-cross
- True64
- IRIX
Kontakt
Phone, E-mail
Tel.: 030 20372-560
E-mail: pdelib@wias-berlin.de
WIAS-Software
- WIAS-ALEA - Framework for high-dimensional functional Uncertainty Quantification
- awc - Adaptive weights clustering
- aws - Adaptive weights smoothing
- BALaser for the simulation of dynamics in broad-area semiconductor lasers
- BOP - A Simulator for Large-Scale Process Engineering Problems
- ddfermi - drift diffusion simulation tool
- DiPoG - Direct and Inverse Problems for Optical Gratings
- WIAS R-packages for imaging / neuroscience
- LDSL-tool for the simulation of longitudinal dynamics in semiconductor lasers
- WIAS-MeFreSim - 3D-Simulation of Multifrequency Induction Hardening
- ParMooN - Mathematics and object-oriented Numerics
- pdelib - a FVM and FEM toolbox for PDEs
- WIAS-TeSCA for two and three dimensional semi-conductor analysis
- TetGen - a Delaunay Tetrahedral Mesh Generator