About
authors ·
contact ·
search
What is pdelib2?
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.
Main Features
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.
Build-in geometry and grid file formats
- .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
Support of additional grid file formats
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
Behind external OpenMP profiling tools like
Assure,
Intel Thread Checker,
DDT
we implemented an own built-in tool. Compare between sequential,
parallel runs, compilers and systems are possible.
|
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 supported
Package |
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
- True64
- IRIX
2010/02/12 T. Streckenbach