OpenFOAM
OpenFOAM (англ. Open Source Field Operation And Manipulation CFD ToolBox) — открытая интегрируемая платформа для численного моделирования задач механики сплошных сред. Общая характеристикаOpenFOAM — свободно распространяемый инструментарий вычислительной гидродинамики для операций с полями (скалярными, векторными и тензорными). На сегодня является одним из законченных и известных приложений, предназначенных для FVM-вычислений. Код OpenFOAM, изначально разрабатываемый в Великобритании компанией OpenCFD, Limited, в настоящее время поддерживается и развивается усилиями некоммерческой организации The OpenFOAM Foundation, основателями которой являются Henry Weller (создатель исходного кода FOAM), Chris Greenshields и Cristel de Rouvray. Своё название и идеологию построения код берет от предшественника FOAM (Field Operation And Manipulation). Первоначально программа предназначалась для прочностных расчетов, но в результате многолетнего академического и промышленного развития на сегодняшний момент позволяет решать множество различных задач механики сплошных сред (не ограничиваясь ею), в частности:
В основе кода лежит набор библиотек, предоставляющих инструменты для решения систем дифференциальных уравнений в частных производных как в пространстве, так и во времени. Рабочим языком кода является ООП C++. В терминах данного языка большинство математических дифференциальных и тензорных операторов в программном коде (до трансляции в исполняемый файл) уравнений может быть представлено в удобочитаемой форме, а метод дискретизации и решения для каждого оператора может быть выбран уже пользователем в процессе расчёта. Таким образом, в коде полностью инкапсулируются и разделяются понятия расчетной сетки (метод дискретизации), дискретизации основных уравнений и методов решения алгебраических уравнений. Например, уравнение сохранения количества движения для ньютоновской несжимаемой жидкости без действия массовых сил: ∂ ρ U ∂ t + ∇ ⋅ ( ρ U U ) − ∇ ⋅ ( μ ∇ U ) = − ∇ p {displaystyle {frac {partial ho mathbf {U} }{partial t}}+ abla cdot ( ho mathbf {U} mathbf {U} )- abla cdot (mu abla mathbf {U} )=- abla p}может быть представлено в виде: solve ( fvm::ddt(rho, U) + fvm::div(rho, U, U) - fvm::laplacian(mu, U) == - fvc::grad(p) );Вместе с кодом поставляется набор программ-«решателей», в которых реализованы различные математические модели механики сплошных сред. Программа может работать под Windows через виртуальную машину; имеются также реализации, не использующие дополнительных надстроек. Связь со стандартамиПакет OpenFOAM имеет множество утилит, которые позволяют конвертировать сторонние форматы в формат OpenFOAM (например, ANSYS, Fluent, Gambit, VTK или др.). Для доступа к утилитам необходимо перейти в папку $FOAM_UTILITIES, это также можно сделать командой util. Ответвления
Связь с другими Open source-проектами
|