Product Line
Functionality List
Contents
Data Structures
- General multidimensional array templates
- List and set templates
- Optimized numerical vector and matrix formats
- Optimized spatial point representation
- Structured, unstructured and staggered grids
- Scalar and vector fields
Linear and Non-Linear Algebra
- Direct and iterative linear solvers
- Multigrid solvers
- Preconditioners
- Convergence monitors
- Non-linear solvers
PDE Modeling
- Stationary and time-dependent PDEs
- Linear and non-linear PDEs
- Systems of coupled PDEs (multi-physics problems)
- Finite element algorithms
- Mixed finite element algorithms
- Implicit finite difference algorithms
- Explicit finite difference algorithms
- Library of finite elements
- Library of finite difference stencils
- Run time selection of spatial dimension (1, 2 or 3 dimension. General dimension for some algorithms)
Parallel Computing
- Parallelization of linear algebra operations in PDE applications (presentation)
Utilities
- Extended I/O, CPU timing, smart pointers
- Result database handling (SimRes database)
- Scripts and makefiles for project management
Documentation
- Textbook from Springer-Verlag (presentation)
- Complete header file documentation
- Reports and scientific papers (presentation)
- Automatic application manual generation
Preprocessing
- Transfinite mapping, super-element and lattice grid preprocessors
- Tools for integration with GeomPack and Triangle
- Adaptive meshing (presentation)
- Interfaces to external preprocessor formats (presentation)
Postprocessing
- Interfaces to Matlab, Gnuplot, IRIS Explorer, AVS, Vtk and more
- Filters for mapping of SimRes database to visualization tools
User Interfaces
Quality Assurance
- Tools for automatic regression testing of applications
- Automatic memory handling
- Debugging tools
- Code transformation programs between Diffpack versions
Problem Exploration
- Run time selection of all application and library entities, from simple variables to abstract data-types (illustration)
- Batch experiments by sequences of runs configured by the Menu system (example)
- Automatic report generation in LaTeX, ASCII or HTML
(example)
Extensibility and Communication
- Register user defined entities in Diffpack's entity tables for interoperability with Diffpack.
- Interfacing external modules for interoperation with Diffpack (e.g. elements, solvers, simulators, possibly in other languages)
- Compile time input control for running as slave under external processes