Проект ФЕНИКС
![]() | |
Стабильная версия | 0.7.2 (14 ноября 2023 г [1] ) [±] |
---|---|
Операционная система | Linux , OS X , Unix , WSL |
Доступно в | С++, Питон |
Тип | Программное обеспечение для научного моделирования |
Лицензия | Меньшая стандартная общественная лицензия GNU |
Веб-сайт | www |
Проект FEniCS представляет собой набор бесплатных программных компонентов с открытым исходным кодом , объединенных общей целью — обеспечить автоматическое решение дифференциальных уравнений . Компоненты предоставляют инструменты научных вычислений для работы с вычислительными сетками. конечных элементов вариационные формулировки уравнений обыкновенных и уравнений в частных производных и численная линейная алгебра . [2] [3]
Конструкция и компоненты
[ редактировать ]Проект FEniCS задуман как зонтичный проект для набора совместимых компонентов. Основными компонентами являются [4]

- UFL (язык унифицированных форм), предметно-ориентированный язык, встроенный в Python для задания дискретизации дифференциальных уравнений методом конечных элементов в терминах вариационных форм конечных элементов;
- FIAT (автоматический табулятор конечных элементов), серверная часть конечных элементов FEniCS, модуля Python для генерации базисных функций конечных элементов произвольного порядка на симплексах ;
- FFC (компилятор форм fenic), компилятор для вариационных форм конечных элементов, принимающий код UFL в качестве входных данных и генерирующий выходные данные UFC;
- UFC (унифицированный код сборки форм), интерфейс C++, состоящий из низкоуровневых функций для оценки и сборки вариационных форм конечных элементов;
- Instant — модуль Python для встраивания кода C и C++ в Python;
- DOLFIN, библиотека C++/Python, предоставляющая структуры данных и алгоритмы для сеток конечных элементов, автоматизированной сборки конечных элементов и числовой линейной алгебры.
DOLFIN, высокопроизводительный вычислительный сервер FEniCS на C++, функционирует как основная среда решения проблем (как на C++, так и на Python) и пользовательский интерфейс. Его функциональность объединяет другие компоненты FEniCS и обеспечивает связь с внешними библиотеками, такими как PETSc , Trilinos и Eigen для числовой линейной алгебры, ParMETIS и SCOTCH для разделения сетки, а также MPI и OpenMP для распределенных вычислений.
По состоянию на май 2022 года DOLFINx является рекомендуемым пользовательским интерфейсом проекта FEniCS. [5]
История
[ редактировать ]Проект FEniCS был инициирован в 2003 году как исследовательское сотрудничество между Чикагским университетом и Технологическим университетом Чалмерса . Следующие учреждения в настоящее время активно участвуют или принимали активное участие в разработке проекта.
- Аргоннская национальная лаборатория
- Технологический университет Чалмерса
- Карлов университет [6]
- Делфтский технологический университет
- Королевский технологический институт
- Исследовательская лаборатория Симула
- Кембриджский университет
- Чикагский университет
- Университет Люксембурга [6]
ДЕЛЬФИНx
[ редактировать ]С 2019 года основные компоненты проекта FEniCS подверглись серьезному рефакторингу. [7] в результате получается DOLFINx . [8] DOLFINx поддерживает множество новых функций, недоступных в старом интерфейсе DOLFIN, в том числе:
- Конечные элементы произвольной степени на интервальных, треугольных, четырехугольных, тетраэдрических и шестигранных ячейках, включая неструктурированные сетки без специального упорядочения;
- Сетки с плоскими или изогнутыми ячейками;
- Пользовательское разделение ячеек по нескольким процессам;
- Параллельный ввод-вывод через Gmsh , VTK , PyVista и ADIOS2 ;
- Сборка и решатели, использующие различные скалярные типы с плавающей запятой, включая комплексные типы;
- Сборка ядер пользовательских элементов, написанных с использованием Numba ;
- Интерполяция функций в произвольные функциональные пространства;
- Интерполяция между функциональными пространствами, построенными на разных (несовпадающих) сетках, включая сетки, использующие неаффинную геометрию;
- Возможность неинтрузивной поддержки различных бэкэндов линейной алгебры, например, NumPy , PETSc , Trilinos и Eigen ;
- Пользовательские конечные элементы.
См. также
[ редактировать ]- Список пакетов программного обеспечения для конечных элементов
- Список программного обеспечения для численного анализа
- Использование графического пользовательского интерфейса FEATool Multiphysical для настройки и решения мультифизических моделей FEniCS. [9] [10]
- DefElement: энциклопедия определений конечных элементов.
Ссылки
[ редактировать ]- ^ https://fenicsproject.org/download/
- ^ «Страница проекта FEniCS» . Проект ФЕНИКС . Проверено 28 июля 2016 г.
- ^ Андерс Логг; Кент-Андре Мардал; Гарт Н. Уэллс, ред. (2011). Автоматизированное решение дифференциальных уравнений методом конечных элементов . Спрингер. ISBN 978-3-642-23098-1 .
- ^ «Основные компоненты проекта FEniCS» . Проект ФЕНИКС . Архивировано из оригинала 4 ноября 2011 года . Проверено 8 декабря 2011 г.
- ^ «Новый решатель DOLFINx теперь рекомендуется вместо DOLFIN» . fenicsproject.discourse.group .
- ^ Jump up to: а б Управляющие документы ФЕНИКС. Проверено 28 июля 2016 г.
- ^ «Дорожная карта 2019-2020 – Проект FEniCS» . fenicsproject.org . Архивировано из оригинала 7 июня 2019 г.
- ^ «DOLFINx: Среда решения проблем FEniCS следующего поколения» . Проверено 4 апреля 2024 г.
- ^ «Python FEM и мультифизическое моделирование с помощью FEniCS и FEATool» . featool.com . Проверено 28 июня 2017 г.
- ^ Абали, Билен Эмек (2017). Вычислительная реальность | СпрингерЛинк . Передовые структурированные материалы. Том. 55. дои : 10.1007/978-981-10-2444-3 . ISBN 978-981-10-2443-6 .