Dune (Software)

Dune (Software)
DUNE
Dune-logo6.png
Aktuelle Version 2.1
(7. Juni 2011)
Betriebssystem Linux, Unix, Mac OS X
Programmier­sprache C++
Kategorie FEM-Programm
Lizenz GPL (version 2) mit „runtime exception“
www.dune-project.org

DUNE (für Distributed and Unified Numerics Environment) ist eine modulare C++-Bibliothek zum Lösen von partiellen Differentialgleichungen mit gitterbasierten Verfahren.

DUNE besteht aus Modulen und umfasst in der Version 2.1 die Teile

  • Allgemeine Klassen in dune-common,
  • Gitterschnittstelle in dune-grid,
  • Matrix-, Vektor-Bibliothek und Löser in dune-istl,
  • Ansatzfunktionen in dune-localfunctions,

sowie den Tutorials dune-grid-howto und dune-grid-dev-howto. Darüber hinaus gibt es experimentelle Module, welche zum Teil von Dritten entwickelt werden.

Inhaltsverzeichnis

Geschichte

Die Entwicklung von DUNE begann 2002 auf Initiative von Prof. Bastian (Universität Heidelberg) und Dr. Ohlberger (während seiner Habilitation an der Albert-Ludwigs-Universität Freiburg) sowie Prof. Rumpf (damals Universität Duisburg). Man strebte ein offenes, nicht an einzelne Universitäten gekoppeltes Entwicklungsmodell an, um das Projekt für eine möglichst breite Nutzergruppe attraktiv zu machen. Aus dem gleichen Grund wurde auch eine Lizenz gewählt, welche es erlaubt, DUNE in Verbindung mit proprietären Bibliotheken einzusetzen. Auch heute noch stammen die Hauptentwickler aus dem universitären Umfeld.[1]

Zielsetzung

Bei der Entwicklung von DUNE wurde von Beginn an angestrebt, neuen Code und existierende Bibliotheken auf effiziente Art koppeln zu können. Dies ist auch gleichzeitig der Hauptunterschied zu anderen Finite-Element-Programmen.

DUNE ist zunächst eine Sammlung von Softwareschnittstellen, die abstrakte Konzepte im Wissenschaftlichen Rechnen, wie das eines Gitters, umsetzen. Beim Design der Gitterschnittstelle standen die Finite-Elemente-Verfahren und Finite-Volumen-Verfahren im Vordergrund, die Verwendung von Finite-Differenzen-Verfahren ist aber ebenso möglich. Die Gitterschnittstelle ist auch gleichzeitig der am weitesten fortgeschrittene Teil. Sie erlaubt die Beschreibung von strukturierten und unstrukturierten Gittern beliebiger Dimension sowie von Gittern auf Mannigfaltigkeiten. Außerdem erlaubt sie die einfache Verwendung von parallelen Programmierkonzepten im Bereich des Hochleistungsrechnens. Es gibt Implementierungen der Gitterschnittstelle für sieben verschiedene Gitter; vier davon erlauben die Verwendung von existierenden Bibliotheken (Stand: 2007). Man kann somit die gleiche Diskretisierung auf unterschiedlichen Gitterimplementierungen verwenden und vergleichen.

Technik

Um die gesetzten Ziele effizient umsetzen zu können, werden verschiedene C++-Techniken wie Template Programmierung, Generische Programmierung, C++-Metaprogrammierung und statischer Polymorphismus verwendet. In anderen Bereichen der Softwareentwicklung finden diese Techniken schon lange Anwendung, im Bereich des Wissenschaftlichen Rechnens ist ihre Verwendung aber noch selten. Sie ermöglichen es dem Compiler, den durch die Abstraktion erzeugten Overhead fast vollständig zu eliminieren und fortgeschrittene Optimierungstechniken zu verwenden. Diese Techniken stellen hohe Anforderungen an die Konformität des verwendeten Compilers, was die unterstützten Plattformen einschränkt.

Einzelnachweise

  1. http://www.dune-project.org/people.html

Weblinks


Wikimedia Foundation.

Игры ⚽ Поможем сделать НИР

Schlagen Sie auch in anderen Wörterbüchern nach:

  • Dune (software) — DUNE Stable release 2.1 / June 7, 2011; 4 months ago (2011 06 07) Written in C++ Operating system Linux, Unix, Mac OS X …   Wikipedia

  • Dune (Begriffsklärung) — Dune steht für: Dune Universum, ein fiktionales Universum, entwickelt für eine Science Fiction Romanreihe von Frank Herbert Dune (deutsch: Der Wüstenplanet), das erste Buch des Romanzyklus von Frank Herbert Dune (auch: Wüstenplanet, Arrakis),… …   Deutsch Wikipedia

  • Dune (disambiguation) — A dune is a hill of sand. Dune may also refer to: In science fiction: Dune (novel), by Frank Herbert Dune, the informal name for the planet Arrakis, after which the Dune universe is named The Dune universe, the fictional setting for Dune and… …   Wikipedia

  • Dune II — – Kampf um Arrakis Dune II Logo (europäische Amiga Ve …   Deutsch Wikipedia

  • Dune 1 — Dune ist der fiktive Wüstenplanet Arrakis und zentraler Handlungsort in Frank Herberts Science Fiction Roman Der Wüstenplanet und dessen Nachfolgebänden. Die Handlung und der Hintergrund wurden mehrfach als Computer und Videospiel umgesetzt.… …   Deutsch Wikipedia

  • Dune 2 — Dune ist der fiktive Wüstenplanet Arrakis und zentraler Handlungsort in Frank Herberts Science Fiction Roman Der Wüstenplanet und dessen Nachfolgebänden. Die Handlung und der Hintergrund wurden mehrfach als Computer und Videospiel umgesetzt.… …   Deutsch Wikipedia

  • Dune I — Dune ist der fiktive Wüstenplanet Arrakis und zentraler Handlungsort in Frank Herberts Science Fiction Roman Der Wüstenplanet und dessen Nachfolgebänden. Die Handlung und der Hintergrund wurden mehrfach als Computer und Videospiel umgesetzt.… …   Deutsch Wikipedia

  • Dune (video game) — Dune Cover art of Dune Developer(s) Cryo Interactive Publisher(s) Virgin Interactive …   Wikipedia

  • Dune II — This article is about the computer game. For Frank Herbert s sequel to his novel Dune, see Dune Messiah. For the MUSH, see Dune II (MUSH). Dune II Developer(s) Westwoo …   Wikipedia

  • White dune — VRML97/X3DV editor Basisdaten Entwickler: Stephen F. White und andere Aktuelle Version: 0.2 …   Deutsch Wikipedia

Share the article and excerpts

Direct link
Do a right-click on the link above
and select “Copy Link”