Concepts: C++ class library for elliptic PDEs

Team: Seminar for Applied Mathematics

Contact: Karsten Schmidt, karsten@math.ethz.ch

Christoph Schwab, schwab@math.ethz.ch

WWW: www.concepts.math.ethz.ch

Language/compiler: C++, gcc 3 or higher
Platforms: Linux, Solaris

Required software: flex, LAPACK, (doxygen for documentation)

Optional software: JDBSYM, ARPACK, PETSc, SuperLU, Umfpack, Pardiso

Visualization: Gnuplot, EPS, OpenDX, Tecplot

Status: second version, usable for research or teaching released to the public under GPL in 2004

References:
- Christian Lage, "Softwareentwicklung zur Randelementmehtode: Analyse und Entwurf effizienter Techniken", Dissertation Christian-Albrechts-Universitaet, Kiel, 1995.
- Christian Lage, "Concept Oriented Design of Numerical Software", SAM report 98-07, http://www.sam.math.ethz.ch/reports/details/include.shtml?1998/1998-07.html
- Philipp Frauenfelder and Christian Lage, "Concepts---An Object-Oriented Software Package for Partial Differential Equations", M2AN 36 Nr. 5, 2002, http://dx.doi.org/10.1051/m2an:2002036
- Gregor Schmidlin, "Fast Solution Algorithms for Integral Equations in R^3", Dissertation 15016 ETH Zurich, 2003, http://e-collection.ethbib.ethz.ch/show?type=diss&nr=15016

Description: Concepts is a class library written in C++ for solving elliptic PDEs in one, two and three dimensions. Currently, FEM and BEM are supported. To keep the code flexible for research purposes, templates are only used where appropriate. The flexibility is achieved by polymorphism. The design ideas are those of 'concept oriented design' ie., mathematical concepts are cast into classes. This gives clear guidelines how to design the classes of the software. The hp FEM part offers anisotropic h and p refinements in 2D and 3D for quads and hexes resp. Current applications are electromagnetics and reaction-diffusion. The BEM part uses generalized FMM, panel clustering and wavelets. The code is mainly used in research but can also be used for teaching FEM or BEM curses.
Sincerely yours -- Philipp