Реализация метода конечных элементов в библиотеке FEniCS включает несколько этапов: ceur-ws.org
- Получение уравнений в слабой форме. ceur-ws.org
- Дискретизация уравнений в слабой форме. ceur-ws.org
- Сборка значений, рассчитанных на каждом элементе. ceur-ws.org
- Решение системы алгебраических уравнений. ceur-ws.org
За работу на каждом этапе в библиотеке FEniCS отвечает отдельный компонент. ceur-ws.org
Некоторые компоненты, которые входят в состав проекта FEniCS и отвечают за разные этапы процесса:
- UFL (язык унифицированных форм). en.wikipedia.org Специализированный язык, встроенный в Python, для задания дискретизации дифференциальных уравнений методом конечных элементов. en.wikipedia.org
- FIAT (автоматический табулятор конечных элементов). en.wikipedia.org Серверная часть FEniCS с конечными элементами, модуль Python для генерации базисных функций конечных элементов произвольного порядка на симплексах. en.wikipedia.org
- FFC (fenics form compiler). en.wikipedia.org Компилятор вариационных форм с конечными элементами, принимающий код UFL в качестве входных данных и генерирующий выходные данные UFC. en.wikipedia.org
- UFC (unified form-ассемблерный код). en.wikipedia.org Интерфейс на C++, состоящий из низкоуровневых функций для оценки и сборки вариационных форм из конечных элементов. en.wikipedia.org
- Instant. en.wikipedia.org Модуль Python для встраивания кода C и C++ в Python. en.wikipedia.org
- DOLFIN. en.wikipedia.org Библиотека C++/Python, предоставляющая структуры данных и алгоритмы для конечно-элементных сеток, автоматизированной сборки из конечных элементов и численной линейной алгебры. en.wikipedia.org