DUNE ( D istributed y U nified N umerics E nvironment ) es un modular C ++ biblioteca para la solución de ecuaciones diferenciales parciales utilizando métodos basados en la red.
Lanzamiento estable | 2.7.1 / 28 de noviembre de 2020 |
---|---|
Escrito en | C ++ |
Sistema operativo | Linux , Unix , OS X |
Tipo | Análisis de elementos finitos |
Licencia | GPL (versión 2) con "excepción de tiempo de ejecución" |
Sitio web | www |
La biblioteca DUNE está dividida en módulos. En la versión 2.7 son los módulos centrales
- clases generales e infraestructura: duna-común ,
- clases de geometría: geometría de dunas ,
- interfaz de cuadrícula: cuadrícula de dunas ,
- clases de álgebra lineal: dune-istl ,
- funciones locales ansatz : dune-localfunctions ,
y un módulo de documentación disponible. Además, hay varios módulos adicionales, incluidos algunos que han sido desarrollados por terceros.
Historia
El desarrollo de DUNE comenzó en 2002 por iniciativa del Prof. Bastian (entonces Universidad de Heidelberg ), el Dr. Ohlberger (durante su habilitación en la Universidad de Friburgo ) y el Prof. Rumpf (entonces Universidad de Duisburg-Essen ). El objetivo era un modelo de desarrollo que no estuviera adscrito a una sola universidad, para que el proyecto fuera atractivo para un público amplio. Por la misma razón se eligió una licencia que permite DUNE junto con bibliotecas propietarias. Si bien la mayoría de los desarrolladores aún tienen antecedentes universitarios, otros brindan soporte comercial para DUNE. [1]
Metas
Lo que distingue a DUNE de otros programas de elementos finitos es que, desde el principio, el principal objetivo de diseño de DUNE fue permitir el acoplamiento de códigos nuevos y heredados de manera eficiente. DUNE es principalmente un conjunto de interfaces abstractas , que incorporan conceptos de la informática científica . Estos están pensados principalmente para ser utilizados en aplicaciones de elementos finitos y volúmenes finitos , pero también son posibles los métodos de diferencias finitas .
La interfaz central es la interfaz de red. Describe cuadrículas estructuradas y no estructuradas de dimensión arbitraria, tanto con estructura múltiple como no múltiple. Existen siete implementaciones diferentes de la interfaz de red. Cuatro de ellos son encapsulaciones de administradores de red existentes. Por tanto, es posible comparar directamente diferentes implementaciones de red. También se describe la funcionalidad para la programación en paralelo.
Implementación
Se utilizan varias técnicas de C ++, como la programación de plantillas , la programación genérica , la metaprogramación de plantillas de C ++ y el polimorfismo estático. Estos son bien conocidos en otras áreas del desarrollo de software y poco a poco se están abriendo camino en la informática científica . Permiten que el compilador elimine la mayor parte de la sobrecarga introducida por la capa adicional de abstracción. Para ello, se requiere un alto nivel de conformidad estándar del compilador.
Referencias
enlaces externos
- Página web de DUNE .
- Publicaciones científicas sobre DUNE.
Bibliografía
- Sander O (2020). DUNE - El entorno numérico distribuido y unificado . Springer International Publishing. ISBN 978-3-030-59701-6.