FreeFEM — это свободное программное обеспечение и скриптовый язык для численного решения краевых задач методом конечных элементов. Проект возник как академический инструмент для быстрого прототипирования и исследования задач в прикладной математике и инженерии, включая моделирование уравнений в частных производных в двух- и трёхмерных областях. FreeFEM сочетает в себе интерпретируемый язык для задания уравнений, встроенные процедуры сеточной генерации и набор уравнительных формулировок, что делает его удобным для исследователей и преподавателей, а также для прикладных задач с требованием гибкости и расширяемости.
Среда ориентирована на дискретизацию при помощи конечных элементов низших и высоких порядков, предоставляет механизмы задания слабых форм, условий на границе и нелинейных задач. Архитектура поддерживает модульность: к ядру можно подключать внешние библиотеки для параллельных вычислений, линейных и нелинейных решателей, постобработки результатов и специализированных элементов. Сообщество и разработчики поддерживают развитие пакета посредством добавления примеров, тестовых задач и расширений для задач механики, теплопереноса, электродинамики и других приложений.
- Язык описания задач: интерпретируемый скриптовый язык для задания слабых форм и граничных условий.
 - Метод конечных элементов: поддержка Lagrange-элементов различных порядков, смешанных формулировок и пользовательских элементов.
 - 2D и 3D моделирование: возможности для решения задач в двух и трёх измерениях с соответствующими мэшерами.
 - Встроенный мезшер: инструменты для генерации адаптивных сеток и локального уточнения.
 - Параллельные решатели: интеграция с библиотеками для параллельных линейных и нелинейных решателей (MPI-совместимость через соответствующие модули).
 - Расширяемость: модульная архитектура для подключения внешних библиотек и написания собственных модулей на C++.
 - Нелинейные задачи и временные схемы: методы для решения стационарных и временных задач, включая явные и неявные схемы.
 - Инструменты постобработки: средства для визуализации, выгрузки полей и вычисления интегральных характеристик.
 - Примеры и учебные материалы: набор тестовых задач и скриптов, демонстрирующих типичные сценарии использования.
 - Кроссплатформенность: возможность сборки и запуска на различных ОС при наличии необходимых зависимостей.