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