Gmsh — это программный пакет для генерации сеток конечных элементов, включающий встроенный модуль для работы с геометрией, препроцессор и постпроцессор. Он разрабатывается как средство подготовки вычислительных областей для численного моделирования, поддерживает построение геометрии через скрипты и интерактивный интерфейс, а также экспорт готовых сеток в распространённые форматы. Программа ориентирована на создание тетраэдрических, призматических и смешанных сеток для трёхмерных задач, а также на работу с двумерными сетками.
Исторически Gmsh возник как исследовательский проект с целью предоставить простую и гибкую систему генерации сеток с открытым исходным кодом. Со временем функциональность расширялась: добавлены модуль для построения CAD-геометрии, поддержка задач адаптивной локальной генерации сетки, интерфейсы к популярным пакетам и поддержка скриптовых API. Пакет применяется в академических и прикладных задачах для препроцессинга задач механики, теплопереноса, гидродинамики и других дисциплин, где требуется качественная дискретизация области.
- Генерация сеток: создание тетраэдрических, треугольных, квадратичных элементов, призматических и смешанных структур с управлением размером элемента и градиентом разбиения.
 - Встроенный CAD-модуль: инструменты для построения и редактирования геометрии, поддержка булевых операций и рабочих примитивов.
 - Скрипты и автаматизация: собственный скриптовый язык для описания геометрии и сеток, позволяющий воспроизводить и автоматизировать процедуры построения.
 - API: программные интерфейсы на C++, Python и других языках для интеграции в пользовательские рабочие процессы и внешние приложения.
 - Препроцессинг и разметка: назначение физических групп, меток граничных условий и атрибутов элементов для дальнейшего использования в решателях.
 - Постпроцессинг: базовые средства визуализации полей на сетке, просмотра качества элементов и экспорта изображений и данных.
 - Качество сетки: критерии оценки качества элементов, оптимизация локальной сетки и операции улучшения качества (сглаживание, перестройка).
 - Совместимость форматов: чтение и запись распространённых форматов сеток и данных для последующей обработки в других прикладных пакетах.
 - Параметризация и адаптивность: возможность параметрического задания размеров элементов и применения адаптивных стратегий на основе заданных критериев.
 - Кроссплатформенность и расширяемость: поддержка работы на различных операционных системах и возможность расширения функционала через плагины и внешние скрипты.