В данной работе рассматривается методика работы со свободно распространяемым пакетом вычислительной гидродинамики OpenFOAM, предоставляющим мощный набор утилит для проведения гидро- и аэродинамических экспериментов по моделированию взаимодействия среды с объектом исследования. Рассматривается как общий подход к проведению подобного рода экспериментов, так и пример его применения к задаче исследования шумности морских подводных объектов (эргатических и роботехнических комплексов) при пространственном маневрировании. Это исследование призвано послужить оценкой успешности разрабатываемых алгоритмов малошумного маневрирования объекта и в перспективе стать альтернативой дорогостоящих ходовых испытаний, испытаний в аэродинамической трубе. Для достижения этой цели предлагается использовать богатые возможности утилит, подобных cavitatingFoam, cavitatingDyMFoam, interPhaseChangeFoam вкупе с интеграцией кода библиотеки OpenFOAM с разрабатываемыми авторами алгоритмами управления движением морского подводного объекта. Предлагаются подходы к такой интеграции, некоторые из которых уже реализованы коллективом.
Также в статье уделено внимание богатым возможностям открытого пакета ParaView, поставляемого вместе с дистрибутивом OpenFOAM, по визуализации результатов моделирования движения потока жидкости и влияния среды на объект, которые включают как создание трёхмерных отображений результатов экспериментов, потоков и завихрений, так и рассмотрение отдельно взятых срезов и генерацию анимаций. Рассмотрены возможности настройки эксперимента на OpenFOAM для автоматического построения визуализаций заданной структуры, поддерживаемых средствами FunctionObjects, позволяющих проводить постобработку результатов во время проведения моделирования.
Рассмотрены возможности параллельного и распределенного моделирования с помощью OpenFOAM, позволяющие за счёт небольшого изменения в настройках эксперимента значительно сократить вычислительную нагрузку на отдельно взятую вычислительную машину и сократить время моделирования. Для этих целей OpenFOAM использует средства другого распространённого пакета с открытыми исходными кодами OpenMPI.