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

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

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

Аннотация: 

Читаемый на Суперкомпьютерной Академии трек нацелен на получение знаний в области решения задач механики сплошной среды (МСС) с использованием свободного программного обеспечения и суперкомпьютерных технологий. Трек включает в себя базовые и тематические лекции, а также практические занятия.

Слушателям будет рассказано о возможностях открытых пакетов Salome/OpenFOAM/Paraview для решения задач МСС.
Особое внимание будет уделено возможностям создания собственного решателя на базе открытого пакета OpenFOAM, решению практических
задач с использованием пакетов Salome/OpenFOAM/Paraview с применением ресурсов вычислительного кластера web-лаборатории UniHUB.

Пререквезиты: знания в области механики сплошной среды (гидродинамика, аэродинамика, многофазные среды и турбулентные течения,
гидроупругость, теория горения), уравнения в частных производных, численные методы решения СЛАУ, методы построения расчетных сеток, основы программирования на C++, ОС Linux.

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

Лекция: Основные возможности пакетов 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