A request that this article title be changed to Dune (mathematics software) is under discussion. Please do not move this article until the discussion is closed.
This article relies excessively on references to primary sources. Please improve this article by adding secondary or tertiary sources. Find sources: "Dune" software – news · newspapers · books · scholar · JSTOR (March 2024) (Learn how and when to remove this template message)
The topic of this article may not meet Wikipedia's general notability guideline. Please help to demonstrate the notability of the topic by citing reliable secondary sources that are independent of the topic and provide significant coverage of it beyond a mere trivial mention. If notability cannot be shown, the article is likely to be merged, redirected, or deleted.Find sources: "Dune" software – news · newspapers · books · scholar · JSTOR (March 2024) (Learn how and when to remove this template message)
DUNE
Stable release
2.9.0[1] / November 5, 2022; 16 months ago (2022-11-05)
Written inC++
Operating systemLinux, Unix, OS X
TypeFinite element analysis
LicenseGPL (version 2) with "runtime exception"
Websitewww.dune-project.org

DUNE (Distributed and Unified Numerics Environment) 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

In addition, there are several further modules, including some which have been developed by third parties.

History

The development of DUNE started in 2002 on the initiative of Prof. Bastian (Heidelberg University), Dr. Ohlberger (during his habilitation at the University of Freiburg), and Prof. Rumpf (then University of Duisburg-Essen). 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.[2]

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.

Implementation

Various C++ techniques such as template programming, generic programming, C++ template metaprogramming, and static polymorphism are used. These are well-known in other areas of software development and are slowly making their way into scientific computing. They allow the compiler to eliminate most of the overhead introduced by the extra layer of abstraction. A high level of standard conformance is required for this from the compiler.

References

  1. ^ Dune 2.9.0 released Dune project website. Last accessed July 02, 2023.
  2. ^ Dune Core Developer from the project website

Bibliography