OpenFOAM (англ. Open Source Field Operation And Manipulation CFD ToolBox) — открытая интегрируемая платформа для численного моделирования задач механики сплошных сред.
OpenFOAM — свободно распространяемый инструментарий вычислительной гидродинамики для операций с полями (скалярными, векторными и тензорными). На сегодня является одним из «законченных» и известных приложений, предназначенных для FVM-вычислений.
Код OpenFOAM, разработан в Великобритании в компании OpenCFD, Limited, и используется многими промышленными предприятиями более 12 лет. Свое название и идеологию построения код берет от предшественника FOAM (Field Operation And Manipulation), который является закрытым и продолжает развиваться параллельно с OpenFOAM. Первоначально, программа предназначалась для прочностных расчетов и в результате многолетнего академического и промышленного развития на сегодняшний момент позволяет решать следующие задачи:
В основе кода лежит набор библиотек, предоставляющих инструменты для решения систем дифференциальных уравнений в частных производных как в пространстве, так и во времени. Рабочим языком кода является ООП C++. В терминах данного языка большинство математических дифференциальных и тензорных операторов в программном коде (до трансляции в исполняемый файл) уравнений может быть представлено в удобочитаемой форме, а метод дискретизации и решения для каждого оператора может быть выбран уже пользователем в процессе расчёта. Таким образом, в коде полностью инкапсулируются и разделяются понятия расчетной сетки (метод дискретизации), дискретизации основных уравнений и методов решения алгебраических уравнений. Например, уравнение сохранения количества движения для ньютоновской несжимаемой жидкости без действия массовых сил:
может быть представлено в виде:
solve ( fvm::ddt(rho, U) + fvm::div(rho, U, U) - fvm::laplacian(mu, U) == - fvc::grad(p) );
Вместе с кодом поставляется набор программ-«решателей», в которых реализованы различные математические модели механики сплошных сред.
Пакет OpenFOAM имеет множество утилит, которые позволяют конвертировать сторонние форматы в формат OpenFOAM. Для доступа к утилитам необходимо перейти в папку $FOAM_UTILITIES, это также можно сделать командой util.
Конвертеры сетки | |
---|---|
ansysToFoam | конвертирует файл сетки ANSYS, полученный из I-DEAS, в формат OpenFOAM |
cfx4ToFoam | конвертирует сетку CFX 4 в формат OpenFOAM |
fluent3DMeshToFoam | конвертирует сетку Fluent в формат OpenFOAM |
fluentMeshToFoam | конвертирует сетку Fluent в формат OpenFOAM, с поддержкой составных частей и изменением границ |
foamMeshToFluent | записывает сетку OpenFOAM в Fluent формате |
foamToStarMesh | считывает сетку OpenFOAM и записывает в PROSTAR(v4)bnd/cel/vrt формате |
foamToSurface | считывает сетку OpenFOAM и записывает границы в виде плоскостей |
gambitToFoam | конвертирует сетку GAMBIT в формат OpenFOAM |
gmshToFoam | считывает .msh файл и записывает Gmsh |
ideasUnvToFoam | конвертирует сетку I-Deas unv в формат OpenFOAM |
kivaToFoam | конвертирует сетку KIVA в формат OpenFOAM |
mshToFoam | конвертирует .msh Adventure system файл в формат OpenFOAM |
netgenNeutralToFoam | конвертирует сетку Netgen v4.4 в формат OpenFOAM |
plot3dToFoam | конвертирует сетку Plot3d (ascii/formatted формат) в формат OpenFOAM |
sammToFoam | конвертирует сетку STAR-CD(v3) SAMM в формат OpenFOAM |
star3ToFoam | конвертирует сетку STAR-CD(v3) PROSTAR в формат OpenFOAM |
star4ToFoam | конвертирует сетку STAR-CD(v4) PROSTAR в формат OpenFOAM |
tetgenToFoam | конвертирует .ele, .node и .face файлы, созданные в tetgen в формат OpenFOAM |
Конвертеры результатов | |
---|---|
foamDataFluent | переводит данные OpenFOAM в Fluent формат |
foamToEnsight | переводит данные OpenFOAM в EnSight формат |
foamToEnsightParts | переводит данные OpenFOAM в EnSight формат. EnSight часть создается для каждой cellZone и каждого патча |
foamToFieldview9 | записывает сетку OpenFOAM в Version 3.0 Fieldview-UNS (двоичный) формат |
foamToGMV | переводит данные OpenFOAM в GMV формат |
foamToTecplot360 | переводит данные OpenFOAM в Tecplot формат |
foamToVTK | переводит данные OpenFOAM в VTK формат |
smapToFoam | переводит данные STAR-CD SMAP в OpenFOAM формат |
Источник: Википедия