SfePy — свободная библиотека на языке Python для численного решения систем дифференциальных уравнений методом конечных элементов (МКЭ) в одномерных, двумерных и трёхмерных постановках. Проект реализован с опорой на базовые научные пакеты Python, такие как NumPy и SciPy, и предназначен для использования как готовый инструмент «чёрного ящика» для решения типовых задач, так и как программная платформа для разработки прикладных приложений и исследований в области вычислительной механики, теплопереноса, электромагнетизма и других задач, описываемых краевыми задачами для дифференциальных уравнений.
Разработка SfePy включает набор модулей для построения сеток, задания функционального пространства, формирования слабых формулировок и численной сборки систем уравнений, а также набор решателей и постобработки результатов. Документация и примеры демонстрируют применение к стационарным и нестационарным задачам, линейным и нелинейным моделям, а также возможности расширения за счёт пользовательских элементов, функций нагрузки и краевых условий. Если детали реализации или исторические сведения недоступны в полном объёме, далее приведено нейтральное описание функциональности и типичных сценариев применения на основе общедоступных описаний библиотек МКЭ для Python.
- Поддержка размерностей: 1D, 2D и 3D конечных элементов для решения скалярных и векторных задач.
 - Базовые зависимости: реализована поверх NumPy и SciPy с использованием их структур для линейной алгебры и решателей.
 - Гибкая постановка задач: возможность задания слабых формулировок уравнений, материалах, источниках и краевых условиях в программном или декларативном виде.
 - Типы элементов: набор стандартных конечных элементов (например, лагранжевы элементы разных порядков) и возможность добавления пользовательских форм факторов.
 - Сборка и решатели: процедуры для численной сборки матриц и векторов, использование прямых и итеративных решателей из SciPy и сторонних библиотек через интерфейсы.
 - Нелинейные задачи и итерации: инструменты для решения нелинейных систем с использованием итеративных схем и контроля сходимости.
 - Временные схемы: поддержка дискретизации по времени для нестационарных задач, включая явные и неявные схемы (возможности зависят от конкретных версий и настроек).
 - Постобработка: экспорт полей и результатов в форматы, пригодные для визуализации и дальнейшего анализа; средства выборки и вычисления производных полей.
 - Расширяемость: модульная архитектура, позволяющая интегрировать новые типы уравнений, материалы, элементы и пользовательские процедуры обработки данных.
 - Примеры и сценарии использования: демонстрационные задачи для механики сплошных сред, термического анализа, акустики и других приложений, полезные для обучения и быстрых прототипов.