OpenFOAM
OpenFOAM (Open Source Field Operation and Manipulation) — это открытая интегрированная платформа для численного моделирования задач механики сплошных сред, в первую очередь вычислительной гидродинамики (CFD). Программное обеспечение распространяется под лицензией GNU General Public License (GPL) и предоставляет широкий набор решателей, библиотек и утилит для решения задач, описываемых уравнениями Навье — Стокса, теплопереноса, химических реакций, турбулентности и многофазных потоков.
История
Разработка OpenFOAM началась в конце 1980-х годов в Имперском колледже Лондона под руководством профессора Генри Уэллера. Изначально проект назывался FOAM (Field Operation and Manipulation) и создавался как объектно-ориентированная библиотека для численного решения дифференциальных уравнений в частных производных методом конечных объёмов.
В 2004 году компания OpenCFD Ltd., основанная Генри Уэллером и его коллегами, выпустила первую публичную версию OpenFOAM 1.0 под открытой лицензией. В 2011 году OpenCFD была приобретена корпорацией Silicon Graphics International (SGI), а затем, в 2012 году, — компанией ESI Group. С 2014 года ESI Group начала выпуск собственной коммерческой версии под названием «OpenFOAM by ESI», а также поддерживала развитие основной открытой ветки.
Параллельно с этим в 2012 году сообщество пользователей и разработчиков создало независимую ветку OpenFOAM, поддерживаемую организацией The OpenFOAM Foundation. Эта ветка, известная как «OpenFOAM Foundation», развивается отдельно от версии ESI и распространяется под лицензией GPL. Наиболее известные версии этой ветки — OpenFOAM 2.x, 3.x, 4.x, 5.x, 6.x, 7.x, 8.x, 9.x, 10.x, 11.x и 12.x.
В 2021 году компания ESI Group объявила о прекращении поддержки своей версии OpenFOAM, сосредоточившись на развитии коммерческого продукта «ESI OpenFOAM». Однако развитие основной ветки OpenFOAM Foundation продолжается силами сообщества.
Архитектура и принципы работы
OpenFOAM построена на объектно-ориентированном языке C++ и использует метод конечных объёмов (МКО) для дискретизации уравнений. Основные компоненты архитектуры:
Библиотеки
- Библиотека полей (fields) — определяет скалярные, векторные и тензорные поля, а также операции над ними (градиент, дивергенция, ротор).
- Библиотека сеток (meshes) — управляет геометрией расчётной области, включая полиэдрические, гексаэдрические, тетраэдрические и смешанные сетки.
- Библиотека решателей (solvers) — содержит реализации численных методов для решения систем линейных алгебраических уравнений (SLAE), таких как методы сопряжённых градиентов, многосеточные методы и методы неполной факторизации.
- Библиотека моделей турбулентности (turbulence models) — включает стандартные модели: k-ε, k-ω, SST, LES, DES и другие.
- Библиотека многофазных потоков (multiphase) — реализует модели VOF, Eulerian-Eulerian, Lagrangian-Particle и другие.
Решатели
OpenFOAM включает более 80 готовых решателей для различных типов задач:
- simpleFoam — стационарный несжимаемый поток (использует алгоритм SIMPLE).
- pimpleFoam — нестационарный несжимаемый поток (алгоритм PIMPLE).
- sonicFoam — сжимаемый поток с учётом сжимаемости.
- interFoam — двухфазный поток с поверхностью раздела (метод VOF).
- reactingFoam — реагирующие потоки с химическими реакциями.
- chtMultiRegionFoam — сопряжённый теплоперенос (твёрдое тело + жидкость).
Утилиты
OpenFOAM содержит более 200 утилит для:
- Создания и преобразования сеток (blockMesh, snappyHexMesh, cfMesh).
- Постобработки результатов (foamToVTK, foamToEnsight, sample).
- Параллельных вычислений (decomposePar, reconstructPar).
- Работы с граничными условиями и начальными полями.
Ключевые особенности
Метод конечных объёмов
OpenFOAM использует метод конечных объёмов на неструктурированных полиэдрических сетках. Это позволяет моделировать сложные геометрии, включая многогранные ячейки с произвольным числом граней.
Параллельные вычисления
Платформа поддерживает параллельные вычисления с использованием технологии MPI (Message Passing Interface). Разбиение расчётной области на подобласти осуществляется с помощью утилиты decomposePar, поддерживающей различные методы декомпозиции: простой, иерархический, метисовый и ското-метисовый.
Открытость и расширяемость
Благодаря открытому исходному коду пользователи могут модифицировать существующие решатели, добавлять новые модели турбулентности, граничные условия и физические модели. Это делает OpenFOAM популярным инструментом в научных исследованиях и промышленных разработках.
Формат данных
Все входные и выходные данные хранятся в текстовых файлах с расширением .dict (dictionary). Это обеспечивает читаемость и возможность автоматической обработки сценариями.
Применение
OpenFOAM используется в широком спектре отраслей и научных дисциплин:
Аэродинамика и авиастроение
- Моделирование обтекания крыльев, фюзеляжей, лопаток турбин.
- Анализ аэродинамического сопротивления и подъёмной силы.
- Исследование срывных и вихревых течений.
Автомобилестроение
- Аэродинамика кузова, зеркал, колёс.
- Моделирование потоков в двигателе внутреннего сгорания (впуск, выпуск, камера сгорания).
- Теплообмен в радиаторах и системах охлаждения.
Энергетика
- Моделирование потоков в турбинах, компрессорах, насосах.
- Анализ теплообмена в теплообменниках и котлах.
- Ветроэнергетика: обтекание лопастей ветряков.
Химическая технология
- Моделирование реакторов, смесителей, колонн.
- Многофазные потоки: пузырьковые, капельные, дисперсные.
- Химические реакции и горение.
Гидродинамика
- Моделирование течений в трубах, каналах, резервуарах.
- Волновые процессы, кавитация.
- Судостроение: обтекание корпусов судов, работа гребных винтов.
Медицина
- Моделирование кровотока в сосудах и сердце.
- Анализ потоков в дыхательных путях.
Преимущества и недостатки
Преимущества
- Бесплатность и открытость — отсутствие лицензионных отчислений и возможность полного контроля над кодом.
- Гибкость — возможность адаптации под специфические задачи.
- Широкое сообщество — большое количество документации, форумов, учебных материалов и примеров.
- Параллельные вычисления — эффективное масштабирование на многопроцессорных системах.
Недостатки
- Крутой порог входа — требует глубоких знаний в области CFD, численных методов и программирования на C++.
- Отсутствие графического интерфейса — вся работа ведётся через командную строку и текстовые файлы.
- Документация — официальная документация часто устаревает, а многие возможности описаны недостаточно.
- Сложность настройки — для получения точных результатов требуется тщательная настройка сетки, граничных условий и численных параметров.
Альтернативы
Основные коммерческие альтернативы OpenFOAM:
- ANSYS Fluent — один из наиболее популярных коммерческих CFD-пакетов.
- STAR-CCM+ — продукт компании Siemens.
- COMSOL Multiphysics — мультифизическая платформа.
- CFX — решатель компании ANSYS.
Среди открытых альтернатив:
- SU2 — открытый пакет для аэродинамики и оптимизации.
- Code_Saturne — открытый CFD-код, разработанный EDF.
- Palabos — библиотека для моделирования методом решёточных уравнений Больцмана.
Интересные факты
- OpenFOAM используется в NASA, Boeing, Airbus, Rolls-Royce и других крупных корпорациях.
- Платформа поддерживает работу с полиэдрическими сетками, что позволяет моделировать сложные геометрии с высокой точностью.
- В OpenFOAM реализован метод «immersed boundary» для моделирования тел без построения сетки вокруг них.
- Существует множество расширений и форков OpenFOAM, таких как foam-extend, HiSA, blueCFD и другие.
Источники
- OpenFOAM User Guide. The OpenFOAM Foundation.
- OpenFOAM Programmer’s Guide. The OpenFOAM Foundation.
- Weller, H. G., Tabor, G., Jasak, H., & Fureby, C. (1998). A tensorial approach to computational continuum mechanics using object-oriented techniques. Computers in Physics, 12(6), 620-631.
- Jasak, H. (1996). Error analysis and estimation for the finite volume method with applications to fluid flows. PhD Thesis, Imperial College London.
- OpenFOAM Wiki. https://openfoamwiki.net
- ESI Group. OpenFOAM by ESI. https://www.openfoam.com
BFOmetr — база данных и аналитика по компаниям России.
На главную BFOmetr →