Методы интерполяции в задачах вычислительной аэродинамики тема диссертации и автореферата по ВАК РФ 00.00.00, кандидат наук Горякин Александр Александрович

  • Горякин Александр Александрович
  • кандидат науккандидат наук
  • 2023, ФГАОУ ВО «Московский физико-технический институт (национальный исследовательский университет)»
  • Специальность ВАК РФ00.00.00
  • Количество страниц 121
Горякин Александр Александрович. Методы интерполяции в задачах вычислительной аэродинамики: дис. кандидат наук: 00.00.00 - Другие cпециальности. ФГАОУ ВО «Московский физико-технический институт (национальный исследовательский университет)». 2023. 121 с.

Оглавление диссертации кандидат наук Горякин Александр Александрович

Введение

Глава 1. Обзор литературы по теме диссертации

Глава 2. Разработка алгоритмов для интерполяции базового

поля течения

2.1 Общее описание алгоритма интерполяции

2.1.1 Поиск ячеек исходной сетки

2.2 Двумерный случай

2.2.1 Определение принадлежности узла ячейке

2.2.2 Интерполяция значений

2.3 Трёхмерный случай

2.3.1 Определение принадлежности узла ячейке

2.3.2 Интерполяция значений

2.4 Программная реализация

2.4.1 Платформа ТагаПюо1

2.4.2 Структура данных типа Я-дерево

Глава 3. Верификация разработанного алгоритма интерполяции

3.1 Основные уравнения и численный метод для модельных задач

3.1.1 Граничные и начальные условия

3.1.2 Численный метод

3.2 Моделирование двухмерного обтекания угла сжатия с применением программы интерполяции

3.2.1 Постановка задачи моделирования

3.2.2 Результаты моделирования и оценка эффективности интерполяции

3.3 Моделирование трёхмерного обтекания стреловидного крыла с применением программы интерполяции

3.3.1 Постановка задачи моделирования

3.3.2 Результаты моделирования и оценка эффективности интерполяции

Стр.

Заключение

Список сокращений и условных обозначений

Список литературы

Список рисунков

Список таблиц

Приложение А. Исходные коды программной реализации

инструмента интерполяции

А.1 Работа с расчётными полями и сетками формата ССКБ

А.2 Программная реализация интерполятора

А.3 Реализация хранилища метаданных на основе Тага^оо!

Рекомендованный список диссертаций по специальности «Другие cпециальности», 00.00.00 шифр ВАК

Введение диссертации (часть автореферата) на тему «Методы интерполяции в задачах вычислительной аэродинамики»

Введение

В последние годы практические и теоретические исследования аэродинамики всё чаще основываются на использовании прямого численного моделирования. Оно осуществляется решением полных уравнений Навье-Сток-са с минимальным количеством упрощений. К задачам, решаемым в рамках прямого численного моделирования, относятся в том числе фундаментальные исследования механизмов ламинарно-турбулентного перехода в пристенных течениях.

Использование численного моделирования при исследовании течений в пограничном слое позволяет получать решения более детальные и повторяемые, а также более дешевые, нежели результаты, полученные при проведении экспериментов с использованием аэродинамических труб. Однако для прямого численного моделирования тонких процессов в пограничном слое, таких как ламинарно-турбулентный переход, необходимо использовать подробные расчётные сетки, которые содержат сотни миллионов ячеек. Из-за этого вычислительный процесс требует колоссального количества вычислительных ресурсов. При этом, основную часть времени моделирования, в зависимости от необходимой точности, может занимать расчёт базового поля стационарного невозмущённого обтекания, на основании которого затем развиваются нестационарные возмущения. Исходя из этого, из-за сокращения суммарного процессорного времени и ресурсов на моделирование, оказывается возможным сосредоточиться на ускорении расчёта базового поля.

Одним из способов решения данной задачи является подход последовательного измельчения расчётной сетки. Изначально вычисление проводится на относительно грубой сетке с малым количеством ячеек, на ней строится поле обтекания. Затем проводится процесс интерполяции полученного решения на более подробную сетку с большим количеством ячеек. После этого, продолжаются уточняющие вычисления на подробной сетке вплоть до получения целевого решения с заданной точностью. В данном случае суммарное время достижения подробного решения оказывается меньше, чем в случае полного расчёта на подробной сетке. Для реализации данной рабочей процедуры необходимо программное средство, позволяющее провести интерполяцию дискретных полей между грубой и подробной расчётными сетками.

Целью данной работы является исследование существующих алгоритмов и разработка собственного алгоритма интерполяции полей между многоблочными структурированными расчётными сетками различной конфигурации, а также программная реализация полученного алгоритма для сокращения времени численного моделирования течений в пограничном слое.

Для достижения поставленной цели необходимо было решить следующие задачи:

1. Исследовать существующие алгоритмы интерполяции полей между расчётными сетками.

2. Разработать свой алгоритм интерполяции полей между структурированными расчётными сетками с применением современных компьютерных технологий.

3. Разработать программное средство, реализующее эффективный алгоритм интерполяции.

4. Верифицировать работоспособность разработанного программного инструмента на двумерных и трёхмерных расчётных полях на многоблочных структурированных сетках.

Научная новизна: Диссертация посвящена разработке алгоритма интерполяции дискретных полей газодинамических величин между расчётными сетками. Для реализации алгоритма интерполяции впервые применена технология баз данных, которая хранит информацию в оперативной памяти и умеет осуществлять поиск по пространственным координатам, а также использован язык, реализующий принципы кооперативной многозадачности и имеющий встроенные возможности для распараллеливания вычислений. Разработанный алгоритм работает с многоблочными структурированными сетками, специфичными для задач моделирования ламинарно-турбулентного перехода.

Практическая значимость Разработан и реализован новый алгоритм интерполяции полей между расчётными сетками произвольной конфигурации и размерности. Новый инструмент может быть использован для существенного сокращения времени численного моделирования течений в пограничном слое при применении в качестве одного из шагов расчётной процедуры. Разработанная программа может использоваться как компонент авторского пакета программ вычислительной аэродинамики.

Следует отметить, что разработка новых алгоритмов интерполяции применительно к задачам вычислительной аэродинамики является важным аспектом для сокращения времени расчёта и затрачиваемых ресурсов.

Методология и методы исследования. Программная реализация алгоритма выполнялась на языке Golang с применением параллельных вычислений. Для поиска ячеек исходной сетки применяется база данных Tarantool, которая поддерживает поиск по пространственным координатам. Численное моделирование и верификация работы программной реализации алгоритма проводилась с использованием авторского пакета расчётных программ на основе численного решения уравнений Навье-Стокса.

Основные положения, выносимые на защиту:

1. Новый алгоритм интерполяции расчётных полей между структурированными многоблочными расчётными сетками.

2. Программное средство интерполяции в виде комплекса из программы на языке Go и системы управления базами данных.

3. Результаты трёхшагового метода проведения численного моделирования с применением интерполяции для уменьшения времени расчёта на примерах двух- и трёхмерных пристенных течений.

Достоверность результатов диссертации подтверждается верификацией на нескольких примерах численного моделирования течений с использованием разработанной программы. Сравниваются расчётные поля, полученные с помощью процедуры интерполяции, с полями, полученными в ходе выполнения прямого численного моделирования. Показано, что интерполяция не вносит существенных искажений и поля оказываются близкими.

Апробация работы. Основные результаты работы прошли апробацию на 2 российских и международных конференциях:

1. International Conference on the methods of Aerophysical research, Novosibirsk, August 2022.

2. 65я Научная конференция МФТИ, Москва - Долгопрудный - Жуковский, 2023.

Личный вклад. Автор полностью самостоятельно реализовал алгоритм интерполяции с применением новых программных технологий. Принимал активное участие в выборе базового алгоритма. Самостоятельно выполнял тестирование полученного инструмента на примере численного моделирования нескольких расчётных конфигураций.

Публикации. Основные результаты по теме диссертации изложены в 4 печатных изданиях, 2 из которых изданы в журналах, рекомендованных МФТИ, 2 —в тезисах докладов.

Объем и структура работы. Диссертация состоит из введения, 3 глав, заключения и 1 приложения.

В главе 1 приведен обзор существующих методов интерполяции полей между расчётными сетками.

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

В главе 3 представлены результаты верификации разработанного алгоритма интерполяции. Верификация проводится на основе моделирования двух конфигураций: двумерного обтекания угла сжатия и трёхмерного обтекания стреловидного крыла.

В заключении изложены основные результаты диссертации.

Полный объём диссертации составляет 121 страницу, включая 26 рисунков и 2 таблицы. Список литературы содержит 40 наименований.

Глава 1. Обзор литературы по теме диссертации

Проблема интерполяции полей между расчётными сетками является актуальной в задачах вычислительной аэродинамики, в силу постоянной потребности в процессе расчёта заменять сетки и продолжать моделирование с использованием ранее полученных данных. Замена расчётных сеток необходима

— при подборе наиболее оптимальной в некотором смысле сетки (например, для лучшего разрешения пространственных неоднородностей исследуемого течения таких как пограничный слой, отрывные области, ударные волны);

— при использовании движущихся сеток, отслеживающих изменение моделируемой конфигурации [1];

— при применении многостадийного способа получения результирующего поля течения с применением сеток различной мелкости разбиения;

— и т.д.

Актуальность проблемы интерполяции дискретных полей в аэродинамике растёт с каждым годом, т.к. происходит постепенный переход от проведения испытаний в аэродинамических трубах к компьютерному моделированию, развиваются комплексы расчётных программ и разрабатываются новые. Существуют несколько методов интерполяции, которые реализованы во множестве вычислительных кодах. Но на текущий момент нет идеального программного инструмента, который удовлетворял бы нескольким условиям:

— Минимальное использование оперативной памяти в процессе интерполяции.

— Малое время проведения интерполяции.

— Высокая точность интерполяции.

Все существующие методы удовлетворяют только части из этих условий. Так, например, метод крупных частиц, приведённый в работе Белоцерковско-го О.М. и Давыдова Ю.М. [2], является довольно быстрым при проведении интерполяции, но количество вычислений и объём используемых ресурсов довольно высок, что не всегда позволяет прибегать к данному методу. Данный метод основан на последовательном применении эйлерова и лагранжева подходов: аппроксимацией значений в неподвижных узлах расчётной сетки

рассмотрения взаимодействия расчётных ячеек, которые представляются в качестве крупных частиц жидкости.

Один из других подходов рассматривается в работе Я. БШвоп'а [3]. Представлен метод, основанный на построении диаграммы Вороного [4; 5] и триангуляции Делоне [6]. Сперва происходит построение диаграммы Вороного, затем каждая ячейка разбивается на подъячейки и строится система координат Сибсона, на основе которой впоследствии реализуется функция для интерполяции значений. Координатами Сибсона называются коэффициенты линейной зависимости, которые не являются нулевыми и их сумма равна единице. Эти коэффициенты получаются при определении местоположения точки на выпуклой оболочке сегмента на диаграмме Вороного, которое может быть выражено, как линейная комбинация соседних точек при триангуляции Делоне.

Модификация данного метода описана в работе Н. ШуоэЫ и К. Б^Ьага [7], в которой система координат Сибсона заменена на систему координат Лапласа, а также заменена функция интерполяции. Координаты Лапласа можно получить, применяя аппроксимацию конечного объёма к уравнению Лапласа. Данный метод позволяет достичь более высокой точности интерполяции и непрерывности функции интерполяции на сферах Делоне, что не всегда возможно при использовании других аналогичных методов.

В работе [7] представлен фреймворк для создания различных типов многомерных интерполянтов. Они включают в себя ранее известные интерполянты, такие как интерполянт Лапласа и интерполянт Сибсона, которые используют диаграмму Вороного для работы с данными. Более того, эта структура может генерировать бесконечное число новых интерполянтов, которые имеют более высокую непрерывность, чем предыдущие. Идея основана на открытии, что интерполянт Сибсона, имеющий непрерывность первого порядка, за исключением узлов данных, получается путем интегрирования Вороного интерполянта Лапласа, имеющего непрерывность нулевого порядка, что увеличивает непрерывность за счёт интегрирования. В этом фреймворке рекурсивно применяется подобное интегрирование любое число раз, что приводит к получению любого порядка непрерывности. Таким образом, фреймворк предлагаемый в [7] даёт новое и эффективное направление для теоретических исследований многомерной интерполяции. Однако, для практического применения в программных ком-

плексах для сложных топологий расчётных областей и сеток данный подход остаётся слишком сложным и неустойчивым.

На построении диаграммы Вороного также основана реализация интерполяции в известной открытой программной библиотеке GDAL (Geospatial Data Abstraction Library [8]), которая впрочем специализируется на работе с дискретными данными другой природы (не с результатами аэродинамических расчётов).

Вообще, методы на основе диаграмм Вороного (триангуляции Делоне) рассчитаны в основном на применение с неструктурированными сетками и расширение их на случай многоблочных структурированных сеток (применяемых, в частности, при фундаментальных исследованиях течений в пограничном слое) сопряжено с техническим трудностями, если вообще возможно. Кроме того, у подобных методов есть существенный недостаток, что при триангуляции дискретных данных на подробных сетках, типичных при изучении мелкомасштабных процессов в пристенных течениях, задействуется большое количество вычислительных ресурсов, т.к. сам процесс построения диаграмм Вороного является довольно трудоёмким.

Другой способ интерполяции предлагается в работе B. Malouin, J.-Y. Trepanier и M. Gariepy [9]. Авторы используют метод истинной (собственной) ортогональной декомпозиции (POD — proper orthogonal decomposition). В работе этот метод используется на примере интерполяции обтекания профиля для различных чисел Маха и углов атаки в трансзвуковом режиме. POD использует несколько численных моделей, называемых «снимками», для создания собственных функций. Эти собственные функции объединяются с использованием весовых коэффициентов для создания нового решения для различных значений входных параметров. Так как методы POD являются линейными, их возможности интерполяции весьма ограничены при работе с нелинейными неоднородностями течения, такими как ударные волны. Чтобы улучшить их производительность в случаях, связанных с ударными волнами, в [9] предлагается новый метод с использованием переменной точности. Основная идея метода состоит в том, чтобы использовать POD для интерполяции разницы между решениями вычислительной аэродинамики (CFD), полученными на двух разных сетках — грубой и точной. Затем для любого нового значения входного параметра вычисляется решение на грубой сетке с использованием

CFD и интерполированная с помощью POD разница затем прибавляется к полученному решению для предсказания решения на подробной сетке. Это позволяет ввести некоторые нелинейности, связанные с потоком. В [9] результаты интерполяции, полученные для различных чисел Маха и углов атаки, сравниваются с результатами CFD вычислений. Модифицированный метод POD на основе переменной точности показывает несомненное улучшение качества интерполяции по сравнению с классическим подходом. Однако, согласно [10] эффективность предложенного в [9] метода по количеству необходимых операций может быть намного улучшена.

S. Chaturantabut в своей работе [10] описывает метод, основанный на комбинации двух методов: истинной ортогональной декомпозиции (POD) и дискретной эмпирической интерполяции (DEIM — Discrete Empirical Interpolation Method). Метод проекции Галеркина с POD базисом уменьшает размерность в том смысле, что учитывается гораздо меньше переменных, но сложность оценки нелинейного члена обычно остается такой же, как и в исходной задаче. В работе показано, как DEIM можно использовать для эффективного решения данной проблемы. Получены оценки ошибок в пространстве состояний для систем, сокращенных с использованием POD-DEIM метода. Оценки ошибок L2 отражают свойство аппроксимации схемы на основе POD за счёт распада сингулярных течений, а также объясняется как влияет ошибка аппроксимации DEIM, включающая нелинейный член. В работе приведен случай моделирования нелинейного смешивающегося потока в двумерной пористой среде, на примере которого показано, что динамика системы полного порядка размерности 15000, может быть довольно точно отражена с помощью уменьшенной системы POD-DEIM размерности 40, при этом время вычисления уменьшается примерно в 1000 раз. Однако этот метод чаще всего применим только в одномерном и двумерном случаях.

W. Yao и S.P. Marques же наоборот в своей работе [11] рассматривают метод дискретной эмпирической интерполяции (DEIM), совместно с использованием метода правильной ортогональной декомпозиции (POD) и в сочетании с использованием нейронной сети (RBF-ANN) для реконструкции поля течения в выбранных точках. Вместо решения вычислительной гидродинамики в рамках классических численных методов предлагается новая суррогатная модель для быстрого нелинейного и аэроупругого моделирования. Нелинейная

функция идентифицируется в выбранных точках интерполяции с помощью дискретного эмпирического метода интерполяции (DEIM). Затем поле течения восстанавливается с использованием приближения наименьших квадратов режимов потока, извлеченных с помощью метода правильной ортогональной декомпозиции (POD). Модель аэроупругого порядка сокращения (ROM) дополняется введением нелинейной функции отображения между смещениями и точками DEIM. Предлагаемая модель исследовалась для прогнозирования аэродинамических сил, возникающих из-за вынужденных движения, на примере профиля NACA-0012, испытывающего заданные колебания тангажа. Для исследования проблем аэроупругости в трансзвуковых условиях, аэроупругие модели профиля тангажа/падения и укороченного треугольного крыла строятся с использованием линейных структурных моделей. Наличие ударных волн показывает появление колебаний предельного цикла, которые модель способна предсказать. Во всех протестированных случаях предложенный в [11] метод интерполяции демонстрирует способность воспроизводить нелинейные аэродинамические силы, структурные смещения и восстанавливать полное поле потока с достаточной точностью за малую часть вычислительных ресурсов полной CFD модели. Данный приближённый подход хорош для решения инженерных задач, но плохо подходит для фундаментальных исследований физических механизмов в пристенных течениях.

D.W. Zingg и M. Yarrow в своей работе [12] рассматривают прямую процедуру интерполяции значений на двумерных криволинейных структурированных расчётных сетках. Для этого они используют обобщённую криволинейную трансформацию координат, преобразующую криволинейную сетку в сетку с прямоугольными ячейками. Затем проводятся итеративная и прямая процедура интерполяции, для получения значений на новой сетке. Данная процедура также применима для трёхмерных расчётных сеток. Рассматриваемая в работе процедура интерполяции использует кусочно-бикубический интерполятор, а не более простой билинейный интерполянт. Билинейный интерполянт обладает часто используемым свойством: он не вводит новых экстремумов. Однако, бикубический интерполянт более точен и даёт на выходе гладкий результат. Кроме того, бикубическая интерполяция способна сохранять информацию о производных, которая выводится программами вычислительной аэродинамики, применяющими методы конечных разностей. В работе [12] приведено обоб-

щённое преобразование криволинейных координат и рассматривается метод итерационной интерполяции Бенека, а также прямая процедура интерполяции. Важно отметить, что не рассматриваются соображения относительно монотонности и консервативных свойств интерполянта, поэтому предложенный подход интерполяции сложно напрямую применить непосредственно для фундаментальных исследований, требующих точного воспроизведения профилей пограничного слоя.

T.C.S. Rendall и C.B. Allen в [13] предлагают использовать метод обобщённой мультивариантной интерполяции, основанный на использовании радиально-базисных функций (RBF). Основным преимуществом данного метода является то, что он работает в отрыве от типа программы вычислительной аэродинамики и геометрии. Данный метод работает с обобщённым облаком точек любой формы. Метод хорошо параллелится и не использует сложных вычислений, только процедуры умножения матрицы на вектор.

Представлена многомерная схема интерполяции с использованием радиальных базисных функций, которая приводит к полностью унифицированной формулировке задач интерполяции жидкостных структур и движущихся объёмов. Метод имеет ряд существенных преимуществ. Прежде всего удаляются все зависимости от типа объёмной сетки, структурной сетки и программы моделирования, а все операции выполняются над полностью произвольными облаками точек любой формы. Следовательно, все связи и пользовательский ввод удаляются из связки задач вычислительной аэродинамики и вычислительной структурной динамики, поскольку для определения связи требуются только облака точек. Кроме того, его с равным успехом можно применять как к структурированным, так и к неструктурированным сеткам, или к перекрывающимся сеткам, опять же из-за того, что не требуется никакой информации о связности. Более того, во время нестационарного моделирования не требуется никаких дорогостоящих вычислений, только умножение матрицы на вектор, т.к. требуемые соотношения зависимостей вычисляются только один раз перед любым моделированием и потом не меняются. Это свойство означает, что метод является полностью параллельным, поскольку для перемещения этих точек требуются только данные, относящиеся к каждому структурированному блоку или неструктурированному разделу, и полностью независимым от программы-решателя. Таким образом, можно разработать совершенно универ-

сальный инструмент наподобие «чёрного ящика», который идеально подойдёт для использования в подходе к оптимизации.

В [13] метод рассмотрен на примере моделирования аэроупругого поведения крыла Brite-Euram MDO, приведён анализ как с точки зрения статического отклонения, так и с точки зрения динамических реакций, показано, что результаты сильно зависят от точности интерполяции. Качество сетки также проверяется во время движения, вызванного большой деформацией поверхности. Показано, что качество глобальной сетки хорошо сохраняется и при этом также хорошо сохраняется ортогональность локальной сетки, особенно на движущейся поверхности и вблизи неё, где сохраняется исходная ортогональность.

В работе [14] рассматривается метод интерполяции Rhie-Chow, также называемый методом импульсной интерполяции (momentum interpolation). Данный метод основан на решении дискретных уравнений импульса и последующей интерполяцией значений с использованием схемы Рхи и Чоу. С момента изобретения метода импульсной интерполяции, он широко использовался из-за простоты реализации алгоритма, особенно в случае неортогональных расчетных сеток. Все самые ранние разработки численных методов базируются на схеме Рхи и Чоу. Почти все коммерческие программные коды реализуют метод импульсной интерполяции и используют его на структурированных и неструктурированных расчётных сетках. Однако, у оригинальной схемы Рхи и Чоу есть ряд незначительных проблем. Например, в данном методе не учтено наличие коэффициентов недорелакасации в дискретизированных уравнениях импульса, а Маджумар в [15] обнаружил, что результирующее сходящееся решение немного зависит от фактора релаксации и предложил решение данной проблемы.

Чой в работах [16—18] также модифицировал оригинальную схему Рхи и Чоу, чтобы получить сходящееся решение, независящее от размера шага по времени в случае нестационарного потока.

В работе B. Yu, W.-Q. Tao, J.-J. We, Y. Kawaguchi, T. Tagawa и H. Ozoe [19; 20] показано, что модификации Маджумара [15] и Чой [17] также предотвращают шахматные колебания давления в случае использования небольшого коэффициента недорелаксации по скорости и малого временного шага.

Ещё два важных вывода о недостатках метода импульсной интерполяции были сделаны Миллером и Шмидтом в [21], а также Гу в [22]. Миллер и Шмидт в [21] обнаружили, что метод импульсной интерполяции может привести к фи-

зически нереалистичным решениям, в которых скорости на границах ячеек не совпадают со скоростями в центрах ячеек. Они заметили, что такие нефизичные скорости возникают в области быстро меняющегося градиента давления. Гу в [22] также обнаружил, что метод импульсной интерполяции может привести к физически нереалистичным решениям, когда коэффициент объёмной силы достаточно велик. Во время одного из исследований термической стратификации в изогнутой трубе Чой обнаружил, что нефизическое поведение скорости наблюдалось у стенки трубы. Тот факт, что метод импульсной интерполяции может привести к нефизическому решению, является проблемой, которую необходимо решить, что и описывается в работах Чой [16—18].

О.-Р. ЛасдиоШ и С. СоиББешеП в [23] представили собственный вариационный метод для адаптации и оптимизации двухмерных и трёхмерных расчётных сеток, который можно использовать для построения алгоритма интерполяции.

В работе рассмотрены основные этапы построения вариационного метода оптимизации и адаптации двумерных и трехмерных структурированных сеток. Представленный формализм и обозначения позволяют конструктивно и полно описать процесс адаптации. Основная часть статьи посвящена изучению различных методов интерполяции, которые используются для правильной пространственной локализации адаптации, восстановления центра/вершины ячейки и интерполяции перекрывающихся сеток. В частности, исследуется поведение методов линейной интерполяции, минимизации наименьших квадратов и разложения в ряд Тейлора. Представлены несколько примеров описанных методов и сочетания адаптации и интерполяции, демонстрирующие их возможности.

Похожие диссертационные работы по специальности «Другие cпециальности», 00.00.00 шифр ВАК

Список литературы диссертационного исследования кандидат наук Горякин Александр Александрович, 2023 год

Список литературы

1. Tang, T. Moving mesh methods for computational fluid dynamics / T. Tang // Contemp. Math. — 2005. — Vol. 383. — P. 141—173.

2. Белоцерковский, О. М. Метод Крупных частиц в газовой динамике. Вычислительный эксперимент / О. М. Белоцерковский, Ю. М. Давыдов. — Наука, 1982. — 393 с.

3. Sibson, R. A vector identity for the Dirichlet tessellation. / R. Sibson // Mathematical Proceedings of Cambridge Philosophical Society. — 1980. — Vol. 87. — P. 151—155.

4. Voronoi, G. Nouvelles applications des paramètres continus à la théorie des formes quadratiques. Premier mémoire. Sur quelques propriétés des formes quadratiques positives parfaites / G. Voronoi // Journal für die Reine und Angewandte Mathematik, — 1908. — T. 133. — P. 97-178.

5. Voronoi, G. Nouvelles applications des paramètres continus à la théorie des formes quadratiques. Deuxième mémoire. Recherches sur les parallélloèdres primitifs / G. Voronoi // Journal für die Reine und Angewandte Mathematik, — 1908. — T. 134. — P. 198-287.

6. Delaunay, B. Sur la sphère vide. A la mémoire de Georges Voronoï / B. De-launay // Bulletin de l'Académie des Sciences de l'URSS. Classe des sciences mathématiques et na, — 1934. — T. 6. — P. 793-800.

7. Hiyoshi, H. Voronoi-Based Interpolation with Higher Continuity / H. Hiyoshi, K. Sugihara // SCG '00: Proceedings of the sixteenth annual symposium on Computational geometry. — 2000. — P. 242—250.

8. GDAL/OGR contributors. GDAL/OGR Geospatial Data Abstraction software Library / GDAL/OGR contributors ; Open Source Geospatial Foundation. — 2023. — URL: https://gdal.org.

9. Malouin, B. Nonlinear Model Reduction via Discrete Empirical Interpolation / B. Malouin, J.-Y. Trepanier, M. Gariepy // Hindawi Publishing Corporation International Journal of Aerospace Engineering. — 2013.

10. Chaturantabut, S. Nonlinear Model Reduction via Discrete Empirical Interpolation / S. Chaturantabut, D. Sorensen. — SIAM J. Sci. Comput., 2011. — 154 p.

11. Yao, W. Nonlinear Aerodynamic and Aeroelastic Model Reduction Using a Discrete Empirical Interpolation Method / W. Yao, S. P. Marques // AIAA Journal. — 2017.

12. Zingg, D. W. A Direct Procedure for Interpolation on a Structured Curvilinear Two-Dimensional Grid / D. W. Zingg, M. Yarrow // NASA Ames Research Center. — 1989.

13. Rendall, T. C. S. Unified Approach to CFD-CSD Interpolation and Mesh Motion using Radial Basis Functions / T. C. S. Rendall, C. B. Allen // International journal for numerical methods in engineering. — 2007. — Vol. 74. — P. 1519—1559.

14. Rhie, C. M. Numerical Study of the Turbulent Flow past an Airfoil with Trailing Edge Separation / C. M. Rhie, W. L. Chow // AIAA Journal. — 1983. — Vol. 21. — P. 1525—1532.

15. Majumdar, M. Role of Under-relaxation in Momentum Interpolation for Calculation of Flow with Non-staggered Grids / M. Majumdar // Numerical Heat Transfer, — 1988. — Vol. 13. — P. 125—132.

16. Choi, S.-K. Use of the momentum interpolation methjod for numerical solution of incompressible flows in complex geometries: choosing cell face velocities / S.-K. Choi, H.-Y. Nam, M. Cho // An International Journal of Computation and Methodology. — 1993. — Vol. 23. — P. 21—41.

17. Choi, S.-K. Note on the use of momentum interpolation method for unsteady flows / S.-K. Choi // An International Journal of Computation and Methodology. — 1999. — Vol. 36. — P. 545—550.

18. Choi, S.-K. Use of the momentum interpolation method for flows with a large body force / S.-K. Choi, S.-O. Kim, C.-H. Lee, H.-K. Choi //An International Journal of Computation and Methodology. — 2003. — Vol. 43. — P. 267—287.

19. Yu, B. Discussion on momentum interpolation method for collocated grids of incompressible flow / B. Yu, W.-Q. Tao, J.-J. We, Y. Kawaguchi, T. Tagawa, H. Ozoe // Numerical Heat Transfer, Part B, — 2002. — Vol. 42. — P. 141—166.

20. Yu, B. Checkerboard Pressure Predictions due to the Underrelaxation Factor and Time Step Size for a Nonstaggered Grid with Momentum Interpolation Method / B. Yu, W.-Q. Tao, J.-J. We, Y. Kawaguchi, H. Ozoe // Numerical Heat Transfer, Part B, — 2002. — Vol. 41. — P. 85—94.

21. Miller, T. F. Use of a Pressure-Weighted Interpolation Method for the Solution of the Incompressible Navier-Stokes Equations on a Nonstaggered Grid System / T. F. Miller, F. W. Schmidt // Numerical Heat Transfer, — 1988. — Vol. 14. — P. 213—233.

22. Gu, C. Y. Computation of Flows with Large Body Forces / C. Y. Gu // Numerical Methods in Laminar and Turbulent Flow. — Pineridge Press, Swansea, UK, 1991.

23. Jacquotte, O.-P. Structured mesh adaptation: Space accuracy and interpolation methods / O.-P. Jacquotte, G. Coussement // Computer methods in Applied Mathematics and Engineering. — 1992. — Vol. 101, no. 1—3. — P. 397—432.

24. Thompson, J. F. Handbook of Grid Generation / J. F. Thompson, B. K. Soni, N. P. Weatherill. — CRC Press LLC., 1998. — 1096 p.

25. Knuth, D. Sorting and Searching, The Art of Computer Programming, Volume 3 (Second ed.) Vol. 3 / D. Knuth. — Addison-Wesley., 1998. — P. 481—491, 476—477.

26. Cormen, T. Introduction to Algorithms (Second ed.) / T. Cormen, C. Leiser-son, R. Rivest, C. Stein. — MIT Press, McGraw-Hill., 2001. — P. 434—454.

27. Guttman, A. R-trees: a dynamic index structure for spatial searching / A. Guttman // ACM SIGMOD. — 1984. — Vol. 14, no. 2. — P. 47—57.

28. Farin, G. Curves and Surfaces for computer added geometric design: a practical guide, fifth edition. / G. Farin. — Morgan Kaufmann Publishers, 1999. — P. 34—37, 245—247.

29. Go Programming Language [Электронный ресурс]. — 2022. — URL: https: //go.dev/ (visited on 02/15/2022).

30. CFD General Notation System [Электронный ресурс]. — 2022. — URL: http://cgns.org/ (visited on 02/15/2022).

31. Егоров, И. В. Прямое численное моделирование ламинарно-турбулентного перехода при гиперзвуковых скоростях потока на супер-ЭВМ / И. В. Егоров, А. В. Новиков, А. В. Федоров // ЖВМиМФ. — 2017. — Т. 57, № 8. — С. 1347—1373.

32. Tarantool platform [Электронный ресурс]. — 2022. — URL: https://www. tarantool.io/ (visited on 02/15/2022).

33. Bayer, R. Organization and maintenance of large ordered indices / R. Bayer, E. McCreight // SIGFIDET '70: Proceedings of the 1970 ACM SIGFIDET (now SIGMOD) Workshop on Data Description, Access and Control. — 1970. — P. 107—141.

34. Bayer, R. Organization and Maintenance of Large Ordered Indexes / R. Bayer, E. McCreight // Acta Informatica. — 1972. — Vol. 1, no. 3. — P. 173—189.

35. Comer, D. The Ubiquitous B-Tree / D. Comer // Computing Surveys, — 1979. — Vol. 11, no. 2. — P. 123—137.

36. Manolopoulos, Y. R-Trees: Theory and Applications / Y. Manolopoulos, A. Nanopoulos, Y. Theodoridis, A. N. Papadopoulos. — Springer London, 2006.

37. Егоров, И. В. Прямое численное моделирование ламинарно-турбулентного перехода при сверхзвуковом обтекании острой пластины / И. В. Егоров, А. В. Федоров, К. Х. Динь // Ученые записки ЦАГИ. — 2018. — Т. 49, № 5. — С. 17—25.

38. Новиков, А. В. Численное моделирование устойчивости и ламинарно-турбулентного перехода в гиперзвуковом пограничном слое : дис. ... канд. физ.-мат. наук : 01.02.05 / Новиков Андрей Валерьевич. — Жуковский : Центральный Аэрогидродинамический институт имени профессора Н.Е. Жуковского, 2017. — 229 с.

39. Balay, S. PETSc Web page [Электронный ресурс] / S. Balay, S. Abhyankar, M. F. Adams, S. Benson, J. Brown, P. Brune, K. Buschelman, E. M. Constan-tinescu, L. Dalcin, A. Dener, V. Eijkhout, J. Faibussowitsch, W. D. Gropp, V. Hapla, T. Isaac, P. Jolivet, D. Karpeev, D. Kaushik, M. G. Knepley,

F. Kong, S. Kruger, D. A. May, L. C. McInnes, R. T. Mills, L. Mitchell, T. Mun-son, J. E. Roman, K. Rupp, P. Sanan, J. Sarich, B. F. Smith, S. Zampini, H. Zhang, H. Zhang, J. Zhang. — 2023. — URL: https://petsc.org/ (visited on 10/01/2023).

40. Berry, S. A. Forced Boundary-Layer Transition on X-43 (Hyper-X) in NASA LaRC 20-Inch Mach 6 Air Tunnel : tech. rep. / S. A. Berry, M. DiFulvio, M. K. Kowalkowski ; NASA Langley Research Center. — 08/2000. — 57 p. — NASA/TM-2000—210316. — NTRS: 20000120037. — URL: http://ntrs. nasa.gov/search.jsp?R=20000120037.

41. Hein, S. Laminar Flow Control by Suction at Mach 2 / S. Hein, E. Schiilein, A. Hanifi, J. Sousa, D. Arnal // CEAS/KATnet II Conference on Key Aerodynamic Technologies. — 2009.

Наиболее значимые публикации автора по теме диссертации

1. Горякин, А. А. Интерполяция расчётных полей на многоблочных структурированных сетках для численного моделирования двумерного и трёхмерного обтекания тел / А. А. Горякин // Труды 65-й Всероссийской научной конференции МФТИ. Аэрокосмические технологии. — 2023.

2. Горякин, А. А. Интерполяция расчётных полей на многоблочных структурированных сетках для численного моделирования трёхмерного обтекания стреловидного крыла / А. А. Горякин // Труды МФТИ. — 2023. — Т. 15, № 2. — С. 119—132.

3. Горякин, А. А. Интерполяция расчетных полей на многоблочных структурированных сетках для численного моделирования двухмерного обтекания угла сжатия / А. А. Горякин, А. В. Новиков // Ученые записки ЦАГИ. — 2022. — Т. 53, № 3. — С. 29—38.

4. Novikov, A. V. Effect of suction on second mode instability in supersonic boundary layer / A. V. Novikov, A. O. Obraz, A. A. Goryakin // International conference on the methods of aerophysical research. August 8 - 14, 2022 Novosibirsk, Russia. — 2022. — P. 120—121.

Список рисунков

2.1 Схематичное изображение многоблочной структурированной сетки

в двумерном случае............................ 17

2.2 Схематичное изображение многоблочной структурированной сетки

в трёхмерном случае........................................................18

2.3 Схема расчёта барицентрических координат в треугольнике..........23

2.4 Ячейка сетки и ограничивающий прямоугольник ......................25

2.5 Пример на основе одной из граней ячейки..............................27

2.6 Ячейка сетки и ограничивающий прямоугольник ......................31

2.7 Схематическое представление внутреннего устройства Tarantool ... 41

2.8 Схема распараллеливания в рамках потоковой модели (thread

model) и кооперативной многозадачности (fiber model)................42

2.9 Пример структуры данных типа дерево..................................43

2.10 Пример структуры данных типа B-дерево ..............................44

2.11 Пример взаимосвязей двухмерных прямоугольников [27]..............46

2.12 Структура данных типа R-дерево для примера прямоугольников [27] 46

3.1 Схема расчётной области и поле безразмерного давления при моделировании обтекания угла сжатия ................. 55

3.2 Фрагменты «грубой» и подробной расчётных сеток в задаче обтекания угла сжатия .......................... 55

3.3 Поля давления р и продольной компоненты скорости и вблизи угловой точки, полученные в расчете Мс^и на грубой сетке (слева) и после интерполяции Icj на подробную сетку (справа). Рисунки растянуты по у............................... 57

3.4 Профили горизонтальной компоненты вектора скорости (слева) и температуры (справа) в сечении х = 1.0003 в задаче обтекания угла сжатия ................................... 58

3.5 Схема модельного стреловидного крыла бесконечного размаха .... 60

3.6 Расчётная область в задаче обтекания скользящего крыла. Черные линии показывают границы расчётных зон ............... 61

3.7 Сравнение грубой (толстые линии) и подробной (тонкие линии) расчётных сеток в задаче обтекания крыла ............... 62

3.8 Поле скорости в плоскости (х,у) и поле давления на поверхности крыла .................................... 63

3.9 Поле давления на поверхности скользящего крыла на грубой сетке . 64

3.10 Поле давления на поверхности скользящего крыла, интерполированное на подробную сетку................. 65

3.11 Поле температуры в плоскости (х,у) и на поверхности крыла .... 65

3.12 Поле давления в плоскости (х,у) и распределение на поверхности крыла .................................... 66

3.13 Распределение давления вдоль поверхности скользящего крыла в плоскости симметрии........................... 67

3.14 Профили скорости на скользящем крыле при х = 0.25 при различных способах расчёта....................... 68

Список таблиц

1 Длительность расчётов обтекания двухмерного угла сжатия..... 59

2 Длительность расчётов обтекания трёхмерного крыла ........ 68

Приложение А

Исходные коды программной реализации инструмента

интерполяции

А.1 Работа с расчётными полями и сетками формата CGNS

Международный стандарт CGNS (CFD General Notation System) описывает способ хранения расчётных данных вычислительной аэродинамики в бинарных файлах со специальной древовидной внутренней структурой. Для работы с такими файлами комитет по стандартизации CGNS предоставляет написанную на языке C библиотеку подпрограмм. Для того чтобы пользоваться функционалом этой библиотеки в программе-интерполяторе, написанной на языке Golang, необходима реализация отображения функций и объектов CGNS в примитивы языка Golang. В настоящем разделе представлен соответствующий код, который является существенной частью интерполятора и впервые выполняет «привязку» (binding) функций CGNS в Golang.

В листинге А.1 приводится реализация нового типа «CGNS struct», который реализует чтение из запись файлов CGNS с использованием функций С-библиотеки. При этом данные распределяются по базовым структурам — Base, Zone, Field, — реализация которых представлена ниже.

9 10 11

Листинг А.1: Работа с файлами в формате CGNS

package CGNS /*

#ifdef __linux__

#cgo LDFLAGS: -L/usr/local/lib -lcgns -L/usr/lib -lhdf5 #elif _ WIN32

# cgo CFLAGS: - IC:/Libs/CGNS/include - IC:/Libs/HDF5/include -IC

:/Libs/Zlib/include #cgo LDFLAGS: -LC:/Libs/CGNS/lib -LC:/Libs/HDF5/1ib -lcgns -

lhdf5 #endif

#include <cgnslib.h> */

8

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

35

36

37

38

39

40

41

42

43

44

45

46

47

48

49

50

51

52

import "C" import ( " fmt" "sync" "unsaf e"

"github.com/tarantool/go-tarantool" )

type CGNS struct { FileName string Filelndex int NBases int Bases [] Base

Zones [] Zone

Is3D bool

}

// Конструктор

func NewCGNS(fileName string, conn *tarantool.Connection) * CGNS {

bases := make ([] Base , 0)

cgns := & CGNS {

FileName: fileName, Filelndex: 0, NBases: 0,

Bases: bases ,

}

cgns = cgns.Read(conn) return cgns

}

// Чтение файла CGNS

func (c CGNS) Read(conn *tarantool.Connection) * CGNS { var fIndex C.int

if C.cg_open(C.CString(c.FileName), C.CG_MODE_READ, &fIndex) != C.CG_OK {

53

54

55

56

57

58

59

60

61

62

63

64

65

66

67

68

69

70

71

72

73

74

75

76

77

78

79

80

81

82

83

84

85

86

87

88

89

90

fmt.Printf("Failed to read cgns: /s\n", C.GoString(C. cg_get_error ())) return nil

}

c.Filelndex = int(flndex) fmt.Printf("Fn is /d\n", c.Filelndex) var nBases C.int

if C.cg_nbases(C.int(c.Filelndex), &nBases) != C.CG_OK {

f mt . Printf (" Can ' t get bases from file: °/„s\n" , C.GoString(C .cg_get_error ())) return nil

}

c.NBases = int(nBases)

fmt.Printf("Number of bases: /d\n", c.NBases)

if c.NBases < 1 {

fmt.Printf("At least one base is needed.\n") return nil

}

c. Bases = make ([] Base , 0)

for i := 1; i <= c.NBases; i += 1 { base : = Base{}

basename := make([]C.char, 33) var cellDim C.int var physDim C.int

if C.cg_base_read(fIndex, C.int(i), (*C.char)(unsafe. Pointer(&basename [0])) , &cellDim, &physDim) != C.CG_OK {

fmt.Printf("Can't read base info: /s\n", C.GoString(C. cg_get_error ())) return nil

}

base.Baseld = i - 1

91

92

93

94

95

96

97

98

99

100

101

102

103

104

105

106

107

108

109

110

111

112

113

114

115

116

117

118

119

120

121

122

123

124

125

126

127

128

129

130

base.BaseName = C.GoString ((*C.char) (unsafe.Pointer(& basename [0] ) ))

base.CellDim = int(cellDim) base.PhysDim = int(physDim)

fmt . Printf ("CellDim: °/0d\n", base.CellDim) fmt.Printf("PhysDim: /d\n", base.PhysDim)

fmt.Printf("Basename: /s\n", C.GoString((*C.char)(unsafe. Pointer(&basename [0]))))

var nZones C.int

if C.cg_nzones(fIndex, C.int(i), &nZones) != C.CG_OK { fmt.Printf("Can't read number of zones: /s\n" , C. GoString(C.cg_get_error())) return nil

}

base.NZones = int(nZones)

fmt.Printf("Number of zones: /d\n", base.NZones)

if base.NZones < 1 {

fmt.Printf("At least one zone is needed.\n") return nil

}

base.Zones = make([]Zone, base.NZones)

var wg sync.WaitGroup

for j := 1; j <= base.NZones ; j += 1 {

wg.Add (1)

go func (j int) {

zone : = Zone{}

size : = [3] [3] C . long{}

rmin := [3]C.long{}

rmax := [3]C.long{}

zonename := make ( [] C . char , 33)

131

132

133

134

135

136

137

138

139

140

141

142

143

144

145

146

147

148

149

150

151

152

153

154

155

156

157

158

159

160

161

162

163

164

165

166

167

168

169

170

171

var dimensions C. int

C.cg_ncoords(fIndex, C.int(i), C.int(j), ^dimensions)

C.cg_zone_read(fIndex, C.int(i), C.int(j), (*C.char)( unsafe.Pointer(&zonename[0])) , &size [0] [0])

rmin [0] = 1 rmin [1] = 1 rmin [2] = 1

rmax [0] = size [0] [0] rmax [1] = size [0] [1]

if base.PhysDim > 2 { rmax [2] = size [0] [2] } else {

rmax [2] = 1

}

var nFields C.int

C.cg_nfields(fIndex, C.int(i), C.int(j), 1, &nFields) zone.Zoneld = j - 1

zone.ZoneName = C.GoString((*C.char) (unsafe.Pointer (& zonename [0])))

zone.NCoords = int(dimensions) zone.Nx = int(rmax [0]) zone.Ny = int(rmax [1]) zone.Nz = int(rmax [2])

zone.NPoints = zone.Nx * zone.Ny * zone.Nz

zone.Is3D = base.PhysDim > 2

zone.NFields = int(nFields)

zone.Cells = make ([]*Cell , 0)

zone.Coords = make(map[string]* Field)

zone.Fields = make(map[string]* Field)

zone.GeneratePoints()

fmt.Printf("Nx: /d\n", zone.Nx) fmt.Printf("Ny: /d\n", zone.Ny) fmt.Printf("Nz: /d\n", zone.Nz) fmt.Printf("Is3D: /t\n", zone.Is3D)

172

173

174

175

176

177

178

179

180

181

182

183

184

185

186

187

188

189

190

191

192

193

194

195

196

197

198

199

200

201

202

203

204

205

206

207

fmt.Printf("NPoints: /d\n", zone.NPoints) fmt . Printf ("NFields : /d\n", zone . NFields )

fmt.Printf("Zonename: /s\n", C.GoString((*C.char)( unsafe.Pointer(&zonename [0]))))

coordName := make([]C.char, 33) var datatype C.CG_DataType_t

x := make([]C.double, zone.NPoints)

X := Field{}

X.Fi eldName = C.GoString((*C.char)(unsafe.Pointer(& coordName [0])))

X.ParentZone = &zone

X.Values = make([]float64, zone.NPoints)

C.cg_coord_info(fIndex, C.int(i), C.int(j), 1, & datatype, (*C.char)(unsafe.Pointer(&coordName[0])))

C.cg_coord_read(fIndex, C.int(i), C.int(j), (*C.char)( unsafe.Pointer(&coordName [0])) , C.CG_RealDouble , &rmin [0] , & rmax [0] , unsafe.Pointer(&x [0]))

fmt.Printf("Coordname: /s\n", C.GoString((*C.char)( unsafe.Pointer(&coordName [0]))))

minX := float64(x [0]) maxX := float64(x [0])

for idx := range x {

X.Values[idx] = float64(x[idx])

zone.Points [idx] .X.FieldName = X.FieldName

zone.Points [idx] .X.Values [0] = X.Values [idx]

if X . Values [idx] <= minX { minX = X.Values [ idx]

}

if X . Values [ idx] >= maxX { maxX = X.Values[idx]

}

}

zone.Coords[C.GoString((*C.char) (unsafe.Pointer (& coordName [0])))] = &X

208

209

210

211

212

213

214

Обратите внимание, представленные выше научные тексты размещены для ознакомления и получены посредством распознавания оригинальных текстов диссертаций (OCR). В связи с чем, в них могут содержаться ошибки, связанные с несовершенством алгоритмов распознавания. В PDF файлах диссертаций и авторефератов, которые мы доставляем, подобных ошибок нет.