ENigMA — это объектно-ориентированная библиотека шаблонов C++, целью которой является обеспечение мультифизического моделирования в многодоменной среде. Код реализует несколько численных методов, таких как методы конечных объемов (FVM), методы конечных разностей (FDM), методы конечных элементов (FEM), методы граничных элементов (BEM), гидродинамика сглаженных частиц (SPH) и т. д. для численной аппроксимации парциальных Дифференциальные уравнения (PDE) в каждой области. Он также предоставляет классы для надежной генерации сетки (треугольной, блочной, ограниченной тетраэдрической и т. д.), операций пересечения и отсечения и реализует методы R-дерева, октодерева и хэш-сетки для пространственного поиска. Его можно использовать для трехмерного потока, теплового и структурного анализа.