Возможности открытых пакетов (Salome/OpenFOAM/Paraview) для решения задач МСС

Руководители: 

Стрижак Сергей Владимирович, к.т.н., Hewlett Packard, МГТУ им. Баумана
Аветисян Арутюн Ишханович , д.ф.-м.н., ученый секретарь ИСП РАН
Крапошин Матвей Викторович, НИЦ "Курчатовский институт", начальник лаборатории

Аннотация: 

Краткий обзор возможностей открытых пакетов для решения задач МСС (Механика Сплошной Среды). Возможности web-лаборатории UniHUB (www.unihub.ru) и Суперкомпьютера “Ломоносов”. Особенности настройки окружения и планировщика задач для работы с пакетами Salome/OpenFOAM/Paraview. Доступ к рабочей консоли. Истории создания пакетов Salome/OpenFOAM/Paraview. Основные возможности пакета OpenFOAM для решения задач МСС. Структура каталогов. Cравнение двух различных направлений (основная и расширенная версии) в развитии пакета OpenFOAM. Рассматривается метод контрольного объема, который является основой решения уравнений в частных производных. Академические и практические задачи, решенные с помощью OpenFOAM. Обзор стандартных решателей в OpenFOAM. На примере тестовых задач (течение в каверне в движущейся крышкой, обтекание обратного уступа (pitzDaily), расчет течения в комнате с подогревом, расчет обрушения столба жидкости воды, расчет турбулентного пламени, построение адаптивной расчетной сетки (motorBike) рассматриваются особенности создания расчетного примера. Демонстрация выполнения готовых примеров (tutorials). Лабораторные работы включают в себя 4-6 готовых примеров. Слушатели скачивают примеры из репозитория UniHUB в свои домашние директории и выполняют примеры на вычислительном кластере UniHUB и “Ломоносов”.

Подробная информация: 

Лекция: Основные возможности пакетов Salome и Paraview для подготовки расчетной области, сетки, визуализации результатов.

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

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

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

Лабораторная работа: Создание и компилляция собственного решателя (elliFoam, hyper1Foam, hyper2Foam, parabFoam).

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

Тематические лекции: - Численные методы линейной алгебры. Итерационные методы решения СЛАУ в OpenFOAM; - Задачи прикладной аэродинамики (simpleFoam,pisoFoam,rhoCentralFoam) и аэроакустики - Задачи аэроупругости (icoFsiFoam); - Задачи гидродинамической устойчивости (interFoam, compressibleFoam) и задачи со свободной конвекцией (buoyantPimpleFoam, buoyantBoussinesqPimpleFoam); -Течения со свободной поверхностью (решение задач обтекания корабельных тел безграничной жидкостью, моделирование движения судов с учетом свободной поверхности, построение расчетных сеток для судовых поверхностей) - Задачи сопряженного тепломассобмена (chtMultiRegionFoam); - Задачи с горением (fireFoam, reactingFoam); - Многофазные течения (cavitatingFoam, twoPhaseEulerFoam ,bubleFoam). - Оптимизационные задачи газовой динамики (adjointShapeOptimizationFoam); - Особенности реализации класса Pstream для параллельных вычислений в OpenFOAM; - Особенности реализации решателей СЛАУ на CUDA в OpenFOAM;

Продолжительность курса: 32-36 часов. 8-10 лекций, 12-14 лабораторных работ. 5 дней. Учебный курс рассчитан на специалистов в области прикладной математики, механики, физики.

Минимальные знания для слушателей: Механика Сплошной Среды , Уравнения в частных производных , Численные методы, Язык программирования C++ и Python, Параллельное программирование Максимальное количество слушателей: 20