MyTetra Share
Делитесь знаниями!
Высокопроизводительные вычисления с использованием пакета OpenFOAM
Время создания: 20.09.2023 17:17
Автор: А.А. Смирновский, Е.М. Смирнов
Текстовые метки: OpenFOAM, ParaView, blockMesh, CFD, поток, жидкость, газ, механика сплошных сред, вычисление, математическое моделирование, численные методы, сетка, методичка
Раздел: Компьютер - Программное обеспечение - Симуляция, матмоделирование и численные методы - Моделирование численными методами - OpenFOAM
Запись: xintrea/mytetra_syncro/master/base/1695219449284n8lp6m9/text.html на raw.github.com

Здесь представлена методичка Санкт-Петербургского политехнического университета Петра Великого от 2019 года "Высокопроизводительные вычисления с использованием пакета OpenFOAM". Методичка предназначена для студентов, обучающихся по направлению «Прикладные математика и физика».





Методичка содержит 275 страниц формата A4.


В данной работе рассмотрены формулы и алгоритмы вычислений по теореме Гаусса-Остроградского и уравлениям Навье-Стокса. Имеются иллюстрации построения ячеек расчетной сетки. Описывается работа с пакетом OpenFOAM от установки до специфики использования, а так же рассказывается о сопровождающих вспомогательных программах ParaView и blockMesh. Так же есть пример создания и использования собственного решателя. Продемонстрировано использование OpenFOAM для расчета ламинарного и турбулентного течения.


Так же в методичке дано сравнение качества и точности расчетов в пакетах OpenFOAM и ANSYS Fluent на различных моделях и сетках по сравнению с результатами экспериментов.


В методичке рассматриваются следующие темы:



Введение . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7


1. Решение задач механики сплошных сред по методу

конечных объёмов . . . . . . . . . . . . . . . . . . . . . . . . . . 8


1.1. Предварительные замечания . . . . . . . . . . . . . . . . . . . 8

1.1.1. Скалярные, векторные и тензорные поля. Уравнения

физики для полевых величин . . . . . . . . . . . . . . . . . . . . . 8

1.1.2. Формулировка дифференциальных операторных уравнений

в интегральной форме, обобщённая теорема Гаусса-Остроградского . . . 12

1.1.3. Введение в численное моделирование . . . . . . . . . . . . . 14


1.2. Формулировка метода конечных объёмов (МКО) . . . . . . . . . . 17

1.2.1. Дискретизация расчётной области . . . . . . . . . . . . . . . 18

1.2.2. Ячейка расчётной сетки и дискретизация уравнения

в интегральной форме по МКО . . . . . . . . . . . . . . . . . . . . 21

1.2.3. Некоторые замечания о вычислении геометрических

параметров ячейки . . . . . . . . . . . . . . . . . . . . . . . . . 25

1.2.4. Вычисление дифференциальных операторов по МКО 28


1.3. Решение уравнений гидроаэродинамики по МКО . . . . . . . . . . 30

1.3.1. Дискретизация уравнения конвективно-диффузионного

переноса . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 30

1.3.2. Аппроксимация временной производной . . . . . . . . . . . . . 39

1.3.3. Дискретизация уравнений Навье-Стокса . . . . . . . . . . . . 42

1.3.4. SIMPLE-подобные методы для решения задач динамики

несжимаемой жидкости . . . . . . . . . . . . . . . . . . . . . . . . 46


2. Общее описание пакета OpenFOAM в применении к

задачам механики сплошных сред 54


2.1. Введение . . . . . . . . . . . . . . . . . . . . . . . . . . . 54


2.2. Установка и структура OpenFOAM . . . . . . . . . . . . . . . . 56

2.2.1. Установка OpenFOAM в ОС на базе ядра Linux . . . . . . . . . 56

2.2.2. Структура пакета: основные каталоги . . . . . . . . . . . . . 61

2.2.3. Обзор основных решателей OpenFOAM . . . . . . . . . . . . . . 63


2.3. Пример постановки расчёта в OpenFOAM (задача

нестационарной теплопроводности) . . . . . . . . . . . . . . . . . . 65

2.3.1. Описание задачи . . . . . . . . . . . . . . . . . . . . . . . 65

2.3.2. Задание начальных и граничных условий . . . . . . . . . . . . 67

2.3.3. Задание управляющих параметров расчёта . . . . . . . . . . . 69

2.3.4. Запуск расчёта и мониторинг хода решения . . . . . . . . . . 72

2.3.5. Визуализация решения при помощи пакета ParaView . . . . . . . 76


2.4. Расчётная сетка в OpenFOAM . . . . . . . . . . . . . . . . . . 82

2.4.1. Формат сетки в OpenFOAM, типы границ . . . . . . . . . . . . 84

2.4.2. Создание сетки при помощи утилиты blockMesh . . . . . . . . . 89

2.4.3. Импорт из разных форматов и другие утилиты для

работы с сеткой . . . . . . . . . . . . . . . . . . . . . . . . . . 96


3. Решение задач гидроаэродинамики и теплообмена в

OpenFOAM (основные положения) 98


3.1. Численные схемы в OpenFOAM . . . . . . . . . . . . . . . . . . 98

3.1.1. Общие сведения . . . . . . . . . . . . . . . . . . . . . . . 98

3.1.2. Схемы вычисления диффузионных слагаемых . . . . . . . . . . . 102

3.1.3. Схемы интерполяции на грань . . . . . . . . . . . . . . . . . 104

3.1.4. Схемы вычисления градиента . . . . . . . . . . . . . . . . . 109

3.1.5. Аппроксимация временной производной . . . . . . . . . . . . . 110

3.1.6. Параметры решателей СЛАУ . . . . . . . . . . . . . . . . . . 112

3.1.7. Параметры алгоритмов . . . . . . . . . . . . . . . . . . . . 119


3.2. Граничные условия в OpenFOAM . . . . . . . . . . . . . . . . . 123

3.2.1. Предварительные замечания . . . . . . . . . . . . . . . . . . 123

3.2.2. Простейшие граничные условия в OpenFOAM . . . . . . . . . . . 128

3.2.3. Специальные граничные условия . . . . . . . . . . . . . . . . 131

3.2.4. Примеры постановки граничных условий . . . . . . . . . . . . 134


3.3. Дополнительные возможности . . . . . . . . . . . . . . . . . . 141

3.3.1. Инициализация и пост-обработка данных средствами

OpenFOAM . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 141

3.3.2. Обработка данных в ходе расчёта . . . . . . . . . . . . . . . 145

3.3.3. Библиотека расширений swak4foam . . . . . . . . . . . . . . . 149


4. Практикум по решению задач гидродинамики и теплообмена

в OpenFOAM . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 153


4.1. Ламинарные течения . . . . . . . . . . . . . . . . . . . . . . 153


4.1.1. Конвективный перенос скаляра однородным потоком . . . . . . . 153

4.1.2. Течение в начальном участке плоского канала . . . . . . . . . 162

4.1.3. Свободная конвекция в квадратной полости . . . . . . . . . . 167


4.2. Моделирование турбулентных течений на основе RANS-подхода . . . 178

4.2.1. Краткое введение в моделирование турбулентности . . . . . . . 179

4.2.2. RANS-модели в OpenFOAM . . . . . . . . . . . . . . . . . . . 184

4.2.3. Турбулентное течение в плоском канале . . . . . . . . . . . . 189

4.2.4. Течение и теплообмен за обратным уступом . . . . . . . . . . 200


5. Технология параллельных вычислений в OpenFOAM . . . . . . . . . . 215


5.1. Общие сведения о параллелизации . . . . . . . . . . . . . . . . 215

5.1.1. Предварительные замечания . . . . . . . . . . . . . . . . . . 215

5.1.2. Количественные измерения качества паралеллизации . . . . . . 217


5.2. Параллелизация в OpenFOAM . . . . . . . . . . . . . . . . . . . 220

5.2.1. Декомпозиция расчётной области . . . . . . . . . . . . . . . 220

5.2.2. Запуск решателя и «сборка» решения . . . . . . . . . . . . . 222

5.2.3. Пример расчёта с использованием параллелизации . . . . . . . 224


6. Программирование с использованием библиотек OpenFOAM.

Создание решателей . . . . . . . . . . . . . . . . . . . . . . . . . 234


6.1. Общие сведения об организации кода OpenFOAM . . . . . . . . . . 234

6.1.1. Уровни абстракций и иерархия классов . . . . . . . . . . . . 235

6.1.2. Математические примитивы . . . . . . . . . . . . . . . . . . 238

6.1.3. Работа с сеткой и полями физических величин . . . . . . . . . 240

6.1.4. Дискретизация пространственных операторов по явной

и неявной схемам. Составление уравнений . . . . . . . . . . . . . . 246


6.2. Создание собственного решателя . . . . . . . . . . . . . . . . 250

6.2.1. Постановка задачи . . . . . . . . . . . . . . . . . . . . . . 250

6.2.2. Компиляция программы . . . . . . . . . . . . . . . . . . . . 252

6.2.3. Функция main() . . . . . . . . . . . . . . . . . . . . . . . 254

6.2.4. Инициализация переменных . . . . . . . . . . . . . . . . . . 256

6.2.5. Чтение параметров задачи из управляющих файлов . . . . . . . 257

6.2.6. Задание совокупности решаемых уравнений . . . . . . . . . . . 259


6.3. Пример расчёта с использованием собственного решателя . . . . . 260

6.3.1. Постановка задачи . . . . . . . . . . . . . . . . . . . . . . 260

6.3.2. Результаты расчёта . . . . . . . . . . . . . . . . . . . . . 265


6.4. Дополнительные сведения . . . . . . . . . . . . . . . . . . . . 268

6.4.1. Отладка программы . . . . . . . . . . . . . . . . . . . . . . 268

6.4.2. Программируемые граничные условия . . . . . . . . . . . . . . 270


Литература . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 272



По данному курсу так же существуют учебные презентации, используемые в лекциях курса. Они расположены по адресу:



https://drive.google.com/drive/folders/1hQd8GHN564AQuHEfCxlBEpBBWOcmomSl



Методичка прикреплена к данной записи.


Прикрепленные файлы:
Так же в этом разделе:
 
MyTetra Share v.0.59
Яндекс индекс цитирования