Numerical C++ Library Concepts
In the numerical C++ library Concepts various finite element methods are implemented in common object oriented framework, which is modular and flexible. This includes
- high order nodal finite element methods on quadrilateral meshes in 2D and hexahedral meshes in 3D (with adaptive refinement and varying and anisotropic polynomials degrees),
- high order edge element methods on quadrilateral meshes in 2D (with adaptive refinement and varying and anisotropic polynomials degrees),
- formulations with boundary and transmission conditions using trace spaces (in 2D),
- mixed, hybridized and mortar finite element methods,
- generalized finite element methods,
- fast boundary element methods of lowest orders on triangular meshes in 3D with panel clustering,
- discontinous Galerkin finite element methods.
Mirroring classes into Python allows for writing scripts applying functionality of the library.
Concepts has a sparse matrix format that allows for fast assembling as well as fast multiplication with vectors.
Several iterative linear solvers are implemented, and there is access to direct linear solvers as MUMPS or
SuperLU and eigenvalue solvers as ARPACK.
The numerical solution can be post-processed including the computation of norms and other functionals and graphical output to Matlab/Octave and VTK.
The Concepts classes are well documented using
Doxygen, see
Class documenation. Several
Tutorials and
application examples explain how to use the functionality of the library.
A collection of numerical results computed with Concepts is shown in a
Gallery. Concepts has been applied in number of scientific
Publications.
Concepts has been developed since 1995 at the Seminar for Applied Mathematics at ETH Zürich, since 2011 at the Department of Mathematics at TU Berlin, and since 2017 at the Department of Mathematics at the TU Darmstadt. A detailed describtion of the history of Concepts can be found
here.
Starting with Concepts
- Installation - How to download the developing version of Concepts and how to install it.
- How to get started - With this easy example you will find it straightforward to get started with Concepts.
- Tutorials - A collection of tutorials explaining mesh definition/import, parameter input, data in- and output, linear solvers, graphical output etc.
- Applications - A list of applications and their implementation in Concepts.
Class documentation