Dune (mathematics software)
DUNE is a modular C++ library for the solution of partial differential equations using grid-based methods.
The DUNE library is divided into modules. In version 2.9 are the core modules
- general classes and infrastructure: dune-common,
- geometry classes: dune-geometry,
- grid interface: dune-grid,
- linear algebra classes: dune-istl,
- local ansatz functions: dune-localfunctions.
History
The development of DUNE started in 2002 on the initiative of Prof. Bastian, Dr. Ohlberger, and Prof. Rumpf. The aim was a development model which was not attached to a single university, in order to make the project attractive for a wide audience. For the same reason a license was chosen which allows DUNE together with proprietary libraries. While most of the developers still have a university background, others are providing commercial support for DUNE.Goals
What sets DUNE apart from other finite element programs is that right from the start the main design goal of DUNE was to allow the coupling of new and legacy codes efficiently. DUNE is primarily a set of abstract interfaces, which embody concepts from scientific computing. These are mainly intended to be used in finite element and finite volume applications, but also finite difference methods are possible.The central interface is the grid interface. It describes structured and unstructured grids of arbitrary dimension, both with manifold and non-manifold structure. Seven different implementations of the grid interface exist. Four of these are encapsulations of existing grid managers. It is hence possible to directly compare different grid implementations. Functionality for parallel programming is described too.