Dune (программное обеспечение)

редактировать
DUNE
Dune-logo6.png
Стабильная версия 2.7.0 / 19 января 2020 г.; 8 месяцев назад (19.01.2020)
Написано наC ++
Операционная система Linux, Unix, OS X
Тип Анализ методом конечных элементов
Лицензия GPL (версия 2) с «исключением времени выполнения»
Веб-сайтwww.dune-project.org

DUNE (Distributed и U nified N umerics E nvironment) - это модульная библиотека C ++ для решения уравнений в частных производных с использованием сеточных методов.

Библиотека DUNE разделена на модули. В версии 2.7 основные модули:

  • общие классы и инфраструктура: dune-common,
  • классы геометрии: dune-geometry,
  • интерфейс сетки: dune-grid,
  • классы линейной алгебры: dune-istl,
  • local ansatz функции: dune-localfunctions,

и доступен модуль документации. Кроме того, существует несколько дополнительных модулей, в том числе некоторые из них, разработанные третьими сторонами.

Содержание
  • 1 История
  • 2 Цели
  • 3 Реализация
  • 4 Ссылки
  • 5 Внешние ссылки
История

Разработка DUNE началась в 2002 году по инициативе профессора Бастьяна (тогда Гейдельбергский университет ), доктора Ольбергера (во время его абилитации в Университете Фрайбурга ) и профессора Румпфа (тогда Университет Дуйсбург-Эссен ). Целью была модель развития, не привязанная к одному университету, чтобы сделать проект привлекательным для широкой аудитории. По той же причине была выбрана лицензия, позволяющая использовать DUNE вместе с проприетарными библиотеками. Хотя большинство разработчиков все еще имеют университетское образование, другие предоставляют DUNE коммерческую поддержку.

Цели

Что отличает DUNE от других программ конечных элементов, так это то, что с самого начала основная цель проектирования DUNE должен был обеспечить эффективное соединение новых и устаревших кодов. DUNE - это в первую очередь набор абстрактных интерфейсов, которые воплощают концепции из научных вычислений. В основном они предназначены для использования в приложениях конечных элементов и конечных объемов, но также возможны методы конечных разностей.

Центральный интерфейс - это интерфейс сетки. Он описывает структурированные и неструктурированные сетки произвольной размерности, как с многообразной, так и с неоднородной структурой. Существует семь различных реализаций интерфейса сетки. Четыре из них представляют собой инкапсуляцию существующих менеджеров сети. Следовательно, можно напрямую сравнивать различные реализации сетки. Также описана функциональность для параллельного программирования.

Реализация

Различные методы C ++, такие как программирование шаблонов, универсальное программирование, метапрограммирование шаблонов C ++ и статический полиморфизм. используемый. Они хорошо известны в других областях разработки программного обеспечения и постепенно проникают в научные вычисления. Они позволяют компилятору устранить большую часть накладных расходов, связанных с дополнительным уровнем абстракции. Для этого от компилятора требуется высокий уровень соответствия стандартам.

Ссылки
Внешние ссылки
Последняя правка сделана 2021-05-18 06:19:30
Содержание доступно по лицензии CC BY-SA 3.0 (если не указано иное).
Обратная связь: support@alphapedia.ru
Соглашение
О проекте