Введение. Моделирование задач гидро- и аэродинамики приводит к системам дифференциальных уравнений в частных производных, решение которых (за исключением некоторых простых случаев) приводит к необходимости использовать для интегрирования методы сеток. Нелинейность уравнений часто предполагает использование явной разностной схемы вычисления неизвестных функций. Этот факт и многомерность задач кратно увеличивает время счета даже для современных компьютеров. В [3] было показано, что при помощи гетерогенных вычислительных систем машинное время можно сократить до приемлемых величин. Гетерогенными вычислительными системами называют системы, где для решения общей задачи используются различные типы вычислительных блоков.
В рамках данной работы будет рассмотрено ускорение расчетов при помощи графических карт, реализующие массово-параллельные вычисления общего назначения. Примером данной технологии является NVidia CUDA (Compute Unified Device Architecture) — программно-аппаратная архитектура для параллельных вычислений на NVidia GPU.
Указанный подход позволил в данной работе моделировать сложные трехмерные вихревые течения в вязком теплопроводном газе. Другой проблемой является описание результатов моделирования. Если для двумерных течений удовлетворительным наглядным описанием является анимация поверхностей изучаемого параметра газа по времени [1], то для трехмерных задач была выбрана визуализация линий тока элементов газа.
Результаты исследования и их обсуждение. Проблема рассматривается на основе применения полной системы уравнений Навье-Стокса, решения которой описывают течения сжимаемого вязкого теплопроводного идеального газа представленная в векторной форме. В трехмерном случае для безразмерных переменных эта система имеет вид [2]:
(1)
В системе (1) – время, – независимые пространственные переменные, – плотность газа, – давление, – вектор скорости газа с его проекциями на декартовы оси координат . Постоянные коэффициенты в уравнениях – коэффициенты вязкости и теплопроводности, – показатель политропы идеального газа с уравнениями состояния, записанными в безразмерных переменных
Для системы (1) рассматривается начально-краевая задача. В выделенной области задаются начальные (2) и краевые условия (3)
(2)
(3)
Первые три краевых условия для составляющих скорости обеспечивают прилипание газа на границах области, а вторые, для нормальных производных, обеспечивают теплоизоляцию на границах.
При построении решений с помощью разностных схем по пространственным переменным вводится равномерная сетка , , .
Для дискретизации производных выбираются следующие стандартные выражения (4).
(4)
В формулах (4) под символомпонимается любая из искомых функций
Равенство нулю производной температуры и плотности на границах области аппроксимируется уравнениями:
(5)
Формулы продолжения расчетных величин по непрерывности на границу области имеют вид:
(6)
Символ обозначает составляющие скорости , плотность и температуру.
Конкретный вид граничных условий вытекает из требований решаемой задачи (3), (5), (6) или их комбинации для различных границ.
Схема решения задачи на GPU c распараллеливанием
Схема распараллеливания вычислений в двумерном случае, обладающая большей наглядностью, рассматривалась в работе [3].
В вычислениях данной работы при обращении к графическому процессору указывается количество блоков и количество нитей в каждом блоке, которые будут его исполнять, а так же номер потока в котором будет выполняться ядро [3,4,5].
Имеем слой элементов с шагом и соответственно. На основании вычисленных внутренних элементов данного слоя с шагом по времени вычисляются элементы следующего слоя. На CPU задача решается введением тройного цикла. Идея решения задачи с распараллеливанием заключена в том, чтобы все элементы слоя были вычислены одновременно, то есть на GPU в рамках первого этапа запускается один поток с количеством нитей равном , которые параллельно вычисляют элементы следующего слоя с шагом . Второй этап заключается в вычислении краевых элементов. Краевые элементы вычисляются в три асинхронных потока. Угловые элементы вычисляются в конце второго этапа нитью с глобальным индексом «0».
Рассмотрим моделирование вихревого течения и ударной волны с вихревым возмущением.
Вихревое течение. Выберем начальные условия (7) и граничные условия вида (6)
(7)
Такой выбор предполагает закрутку движения элементов газа с момента начала моделирования . На рис. 1-3 показано развитие вихревого течения, возникающего в соответствии с начальными условиями (7). Развивающийся процесс приводит к появлению вращения в отрицательном направлении, что видно на рис. 1. Кроме того, можно отметить на следующих рисунках быстрое затухание вращения связанное с учетом вязкости и теплопроводности газа.
Рис. 1. Развитие течения через t = 5 с.
Рис. 2. Развитие течения через t = 10 с.
Рис. 3. Развитие течения через t = 16 с.
2. Моделирование ударной волны с вихревым возмущением
Выберем начальные условия:
Граничные условия определим формулами:
Компоненты скоростей на гранях зададим с помощью линейной интерполяции выражениями:
В начальный момент задана температура, плотность и граничные условия, предполагающие формирование ударной волны. Моделируемый процесс приводит к появлению сложного вращательно-поступательного движения газа (рис. 4,5).
Рис. 4. Течение в начале моделирования .
Рис.5. Течение в момент времени .
Заключение. Из-за наличия вязкости все течение с увеличением времени стабилизируется к состоянию однородного покоя. По оценкам при различных граничных и начальных условиях это время имеет порядок сек. Нет, однако, необходимости в таких расчетах, так как уменьшение амплитуды колебаний температуры как в вихревой так и ударной части волны позволяет экстраполяцию на большие времена.
Применение стандартных программ пакета MatLab позволяет визуализировать результаты моделирования вихревых течений и ударных волн с вихревыми возмущениями.