You are here

Пакет OpenFOAM - платформа для решения задач МСС

Понедельник, 1-ая пара - ауд. МЗ-4, далее в ауд. 238

Руководитель трека

Стрижак Сергей Владимирович

Аннотация

В первой части (1 день) учебного курса рассматриваются следующие вопросы:

Дается обзор возможностей открытых пакетов для решения задач МСС (механики сплошной среды).  Рассматриваются возможности  операционной системы CAELinux, котороя включает в себя многие открытые пакеты (Salome, Engrid, Code-Saturne,Code-Aster, OpenFOAM, Elmer, Paraview и другие). Далее рассказывается о  возможностях web-лаборатории UniHUB (www.unihub.ru) и особенностях настройки окружения для работы с пакетами Salome/OpenFOAM/Paraview. Таким образом, слушатели сразу получают доступ к рабочей консоли. Одна из презентаций посвящена истории создания пакета OpenFOAM. Проводится сравнение двух различных направлений (основная и расширенная версии) в развитии пакета OpenFOAM. Рассматриваются основные возможности пакета OpenFOAM для решения задач МСС. Разбирается структура каталогов. Рассматривается метод контрольного  объема, который является основой решения уравнений в частных производных.  Рассматриваются академические и практические задачи, решенные с помощью OpenFOAM. Проводится  обзор стандартных  решателей в OpenFOAM.

На примере тестовых задач (течение в каверне в движущейся крышкой (cavity), обтекание обратного уступа (pitzDaily), расчет течения в комнате с подогревом (hotRoom), расчет обрушения столба жидкости воды (damBreak), расчет турбулентного пламени, построение адаптивной расчетной сетки (motorBike) рассматриваются особенности создания расчетного примера.
Лекторы демонстрируют выполнение готовых примеров (tutorials). Лабораторные работы включают в себя 4-6  готовых примеров. Слушатели скачивают примеры из репозитория UniHUB в свои домашние директории и выполняют примеры  на вычислительном кластере.

Во второй части (2 день) учебного курса рассматриваются следующие вопросы:

Описываются основные возможности пакетов Salome и Paraview для подготовки расчетной области и сетки. Проводится демонстрация возможностей пакетов с использованием web- лаборатории UniHub. Отдельный материал посвящен возможностям языка Python для написания управляющих скриптов для Salome. Лектором будут продемонстрированы тестовые примеры: создание простейшей геометрии (цилиндр, сфера, канал), построение расчетной  сетки, задание граничных условий, конвертация сетки в формат OpenFOAM, подготовка расчетного примера, запуск на счет на кластере, обработка и визуализации расчетов в Paraview.
Слушатели под руководством преподавателей выполнют лабораторные работы. Цель практических занятий – выполенение примера с использованием Salome/OpenFOAM/Paraview.  Подготовленные 4 примеры с различными исходными данными  скачиваются из репозитория UniHUB.

Планируются тематические лекции:

  • Численные методы линейной  алгебры. Итерационные методы решения СЛАУ в OpenFOAM;
  • Задачи прикладной аэродинамики (simpleFoam,pisoFoam,rhoCentralFoam)

В третьей части (3 день) учебного курса расматриваются следующие вопросы:

Особенности сборки и компилляции пакета OpenFOAM.  Архитектура пакета OpenFOAM с точки зрения исходного кода. Обзор основных возможностей языка программирования C++. Использование технологий C++ (инкапсуляция, наследование, полиморфизм) в OpenFOAM. Уровни абстракции в OpenFOAM.  Основные классы в OpenFOAM (polyMesh, fvMesh, Time, Field, fvPatchField, lduMatrix, fvMatrix, fvc, fvm). Примитивы системного уровня. Представление полей в OpenFOAM.  Представление разреженных матриц. Дискретиазция слагаемых в уравнениях. Рассматриваются вопросы использования ресурсов вычислительных кластеров при параллельных вычислениях. В отдельной лекции рассматриваются уравнения в частных производных эллиптического, парабалического и гипербалического типа. Делается акцент на построение собственных решателей и выбор расчетных схем.

Проведение лабораторных работ:

  • Создание и компилляция собственного решателя (elliFoam, hyper1Foam, hyper2Foam, parabFoam).
  • Решение задач с использованием нового решателя, обработка результатов, визуализация расчетов в Paraview. Слушатели могут внести изменения в исходный код.

Планируются тематические лекции:

  • Задачи аэроупругости (icoFsiFoam);
  • Задачи гидродинамической устойчивости (interFoam, compressibleFoam) и задачи  со свободной конвекцией (buoyantPimpleFoam, buoyantBoussinesqPimpleFoam);
  • Течения со свободной поверхностью (решение задач обтекания корабельных тел безграничной жидкостью,  моделирование движения судов с учетом свободной поверхности, построение расчетных сеток для судовых поверхностей)

В четвертой части (4 день) учебного курса рассматриваются следующие вопросы:

Особенности реализации кода (Code styling). Создание собственного решателя. Пример реализации стандартного решателя ScalarTransportFoam. Лабораторная работа: создание собственного решателя myScalarTransportFoam. Слушатели выполняют лабараторную  работу. Акцент делается  на  исходный код решателя на C++. Дополнительно выполняются лабораторные работы.

Слушателям предлагается самостоятельно выбрать и решить 3  тестовые задачи по различным тематикам (аэродинамика, аэроупругость, гидродинамическая устойчивость, многофазные течения, теплообмен, горение, течение со свободной поверхностью). Тестовые примеры будут доступны для скачивания из репозитории UniHUB.

Планируются тематические лекции:

  • Задачи сопряженного тепломассобмена (chtMultiRegionFoam);
  • Задачи с горением (fireFoam, reactingFoam);
  • Многофазные течения (cavitatingFoam,  twoPhaseEulerFoam ,bubleFoam).

В пятой части (5 день) учебного курса рассматриваются следующие вопросы:

Рассматриваются задачи и проекты слушателей. Проводится совместное обсуждение.

Планируются тематические лекции:

  • Оптимизационные задачи газовой динамики (adjointShapeOptimizationFoam);
  • Особенности реализации класса  Pstream для параллельных вычислений в OpenFOAM;
  • Особенности реализации решателей СЛАУ на CUDA в OpenFOAM;

Завершение учебного курса. Подведение итогов.

Минимальные знания и навыки, необходимые для участия в треке

Механика сплошной среды, уравнения в частных производных , численные методы,  языки программирования C++ и Python.

Максимальное число участников: 24