Содержание Введение 5 1 Методы N- body моделирования 7 1.1 Обзор методов динамического моделирования 7 1.2 Модели N тел 7 1.3 Выводы по главе 11 2 Метод крупных частиц 12 2.1 Описание метода 12 2.2 Начальные и граничные условия 16 2.3 Понятие ударной волны 17 2.4 Программная реализация метода крупных частиц 20 2.5 Результаты работы программы 24 2.6 Выводы по главе 25 3 Визуализация нестационарных течений 27 3.1 Метод TREEcode 27 3.2 Тестовые расчеты при помощи пакета программ TREEcode и визуализация результатов 28 Заключение 30 Список использованной литературы 31 4 Введение Механика сплошной среды представляет собой единую математическую модель, описывающую движение газообразных, жидких и твердых деформируемых тел. Для ее описания необходимы непротиворечивые модели, основанные на методах теоретической механики. Согласованная система таких моделей носит название механики сплошной среды [19]. В наше время актуальным является построение общих численных методик, реализация которых граничит с проведением вычислительного эксперимента. По сравнению с натуральным численный эксперимент, проводимый на вычислительных машинах, экономически значительно дешевле, а в ряде случаев он является единственным инструментом исследования. Особенно важно использовать компьютерное моделирование для задачи, где нет четкой физической постановки, не ясен до конца механизм взаимодействия. В процессе численного эксперимента происходит по существу уточнение исходной физической модели [7]. Используя подходы и методы, развитые в механике сплошных сред, решаются многие проблемы. Среди них, проблема воздействия жидкости и газа на движущиеся в них тела. Силы, действующие со стороны жидкости на тело, определяются движением жидкости, поэтому изучение движения тел в жидкости непосредственно связано с изучением движения жидкости. Проблемы описания движения очень сильно сжатых жидкостей и газов с учетом усложненных физических свойств различных сред в таких состояниях, особенно при наличии высоких температур. С другой стороны, очень важны явления, происходящие в сильно разреженных газах. При изучении различных процессов, связанных с движением сред при большом вакууме в лабораторных опытах, в космическом пространстве, в атмосферах планет и звезд, также требуется применять методы механики сплошной 5 среды. Основные проблемы астрофизики и космогонии изучаются в рамках механики сплошной среды. Сюда относятся вопросы о внутреннем строении звезд и строении их фотосфер, о движении туманностей и космических облаков, вспышках и взрывах переменных звезд, о колебаниях цефеид и, наконец, основная задача о развитии галактик и о строении и эволюции вселенной [16]. 6 1 Методы N-body моделирования 1.1 Обзор методов динамического моделирования Методов прямого лабораторного моделирования коллективных процессов в непрерывной или дискретной гравитирующей среде пока не существует. Но появление достаточно мощных ЭВМ открыло уникальную возможность численного моделирования таких явлений и тем самым создало своеобразную экспериментальную базу для физики коллективных процессов в гравитирующих системах. Термин для обозначения численного моделирования гравитирующих 𝑁 тел получил название «численный эксперимент». В последнее время численный эксперимент становится основным инструментом при изучении динамики звездных систем. Роль численного моделирования астрофизических явлений трудно недооценить, что наглядно демонстрирует рост количества работ, которые основаны на численных подходах. Это объясняется, с одной стороны, огромным прогрессом в области микропроцессоров и доступностью вычислительной техники, в частности компьютеров с массивно- параллельной архитектурой, а с другой стороны – успехами в области вычислительной математики. 1.2 Модели N тел Рассмотрим основные численные методы вычисления гравитационной силы от заданного распределения массы, которые лежат в основе динамических моделей – моделей 𝑁 тел. 1) В основе прямого метода (𝑃𝑃) = «частица – частица» лежит учет 7 гравитационного взаимодействия всех частиц друг с другом. Такой метод представляется наиболее простым для понимания и реализации и обеспечивает наилучшую точность вычисления гравитационной силы, однако он и требует и наибольших машинных ресурсов, поскольку каждая частица взаимодействует с каждой. Поэтому такой подход можно использовать в качестве «модели-теста», проверяя с его помощью наиболее важные принципиальные результаты, и проводя верификацию других методов. В моделях такого типа число частиц, как правило, не превышает значений 𝑁 ≲ 104 . Число арифметических действий, необходимых для интегрирования одного временного шага в рамках модели 𝑃𝑃, равно ~ 10𝑁 2 − 𝑁. При использовании ЭВМ, для которой необходима 1 мкс на выполнение одной операции, при 𝑁 = 103 на один временной шаг затрачивается 10 с, а при 𝑁 = 105 больше суток. Преимущество модели этого типа связано с возможностью определять силы с такой же точностью, что и арифметическая точность ЭВМ. Прямой метод удобно использовать для тестирования более быстрых, но менее точных моделей [26]. 2) Группа методов под условным названием «частицы в сетке» (𝑃𝑀=Particle-Mesh), включая дополнительные модификации (Cloud-in-Cell, Triangular-Shaped-Cloud). Для них характерно использование быстрого преобразования Фурье для решения уравнения Пуассона. Алгоритмы различаются способами вычисления сил от ближних и дальних частиц. Конфигурационное пространство и, в ряде случаев, пространство скоростей разбиваются на ячейки, в которых и локализуются частицы. Непосредственно в модели 𝑃𝑀 взаимодействие частиц, находящихся в различных ячейках, моделируется ньютоновскими гравитационными силами, вычисляемыми, как правило, по координатам центров ячеек. Тем самым осуществляется полное «выключение» гравитационного взаимодействия на 8 расстояниях, меньших размера ячейки. Поскольку число ячеек 𝑁𝑀 много меньше 𝑁, получается выигрыш в скорости расчета. Учет взаимодействия между центрами пространственных ячеек при большом числе частиц в каждой ячейке обычно осуществляется с использованием дискретного аналога теоремы о свертке и алгоритма быстрого преобразования Фурье. Предложены модели («частица-частица-частица-сетка»=𝑃3 𝑀), которые отчасти соединяют быстроту расчета метода 𝑃𝑀 и учет близкодействующих сил, как в моделях 𝑃𝑃. В их основе лежит расщепление действующих между частицами сил на быстро меняющуюся короткодействующую часть и медленно меняющуюся дальнодействующую. 3) Предложен ряд схем 𝑃𝑀2 = Particle-Multiple-Mesh, NGPM = Nested Grid Particle-Mesh, в которых используют несколько сеток с разным шагом, причем структура сеток динамически меняется со временем с учетом перераспределения вещества в расчетной области. Такой подход позволяет получать выигрыш в количестве операций. Сюда можно отнести и иерархические схемы, в частности, различные версии TREEcode, например TREEcode (Top Down) с учётом усовершенствований [26]. Система сеток располагается в порядке подробности от наиболее мелких, где учитываются наиболее близкодействующие силы, которые учитываются достаточно точно, ко всем наиболее крупномасштабным, на которых учитываются дальнодействующие силы. Другими словами, производится регуляризация подсистем на разных уровнях иерархии. Алгоритм требует порядка 𝑁 ln 𝑁 вычислений на каждом временном шаге интегрирования [31]. TREEcode (Buttom Up) отличается от TREEcode (Top Down) направлением прохода граф-дерева от ближайших частиц ко все более укрупненным блокам. Такой подход позволяет вести расчет с разным временным шагом ∆𝑡 для различных частиц. Выбирая для частиц, которые находятся в области больших градиентов полей, меньшие значения ∆𝑡, 9 удается повысить точность вычислений, экономя время расчета. Алгоритм TREEcode (Buttom Up) наиболее эффективен при моделировании систем, где роль парных сближений является важной. Данный алгоритм является более сложным для реализации, но он дает возможность изучать столкновительные системы типа шаровых скоплений. На практике единственным свободным параметром определяющим точность вычисления сил в методе TREEcode, является угол раствора Ɵ. С уменьшением Ɵ точность увеличивается, однако время вычисления одного шага интегрирования по времени нелинейно зависит от значения Ɵ. При моделировании крупномасштабных структур можно принять Ɵ = 1, в случае рассмотрения сильно неоднородных на малых масштабах распределений необходимо задавать Ɵ = 0,5. Дальнейшим развитием TREEcode можно считать алгоритмы, в которых используются разные мультипольные разложения поля для далеких и близких областей. Потенциал в заданной точке берется в виде ряда мультипольного разложения, что более экономно по сравнению с вычислением силы с заданной точностью. Увеличивая число членов в разложении, можно получать сколь угодно точные решения, в ущерб времени вычисления. Предложены алгоритмы, объединяющие TREEcode и схемы, что позволяет уменьшить время расчета за счет точности. 4) Алгоритм SuperBox для восстановления потенциала по заданному распределению 𝑁 гравитирующих частиц, который относится к типу «Particle-Mesh». Особенностью метода является использование фиксированного набора сеток, например, можно ограничиться тремя сетками с различными размерами ячеек. Размер ячейки увеличивается при переходе от внутренней сетки к промежуточной и далее к внешней. Можно использовать и более сложную систему сеток, состоящую из пяти и более. Данный подход позволяет строить динамические модели звездных систем с максимальным числом частиц. Также стоит отметить два недостатка данного 10 метода. Для улучшения точности вычисления гравитационной силы на мелких масштабах необходимо использовать очень подробные сетки, что требует больших затрат оперативной памяти при моделировании. Другой отличительной особенностью таких моделей является наличие зоны перехода от одной сетки к другой, где могут появиться нефизические эффекты. Это требует такого выбора параметров модели, при котором возмущения в системе должны быть малы вблизи границ сеток. Если последнее удается выполнить, то SuperBox обладает важными преимуществами, связанными в первую очередь с хорошим разрешением благодаря возможности вести расчет с очень большим числом частиц 𝑁. Также SuperBox является очень быстрым алгоритмом. На основе SuperBox исследовались эффекты взаимодействия галактик, движения галактических спутников, эволюции сверхмассивной черной дыры в галактическом ядре [26]. 1.3 Выводы по главе В данной главе были рассмотрены модели 𝑁 тел, наиболее часто используемых в численных расчетах. Большинство численных методов вычисления гравитационной силы (или потенциала) от заданного распределения массы можно условно отнести к трем основным группам. 1) Прямой метод. 2) Группа методов под условным названием "частицы в сетке". 3) Методы использующие несколько сеток с разным шагом. 11 2 Метод крупных частиц 2.1 Описание метода Основная идея метода [7] состоит в расщеплении по физическим процессам исходной нестационарной системы уравнений Эйлера, записанных в форме законов сохранения. Среда моделируется системой из жидких (крупных) частиц, совпадающих в данный момент времени с эйлеровой сетки. Получение стационарного решения, происходит путем многократного повторения шагов по времени. Каждый шаг по времени принято разбивать на три шага. 1) Эйлеров этап, предполагает пренебрежение всех эффектов, связанных с перемещением элементарной ячейки (отсутствие потока массы через границы ячеек), и учет эффектов ускорения жидкости лишь за счет давления; здесь определяются промежуточные значения искомых параметров потока 𝜑̃(𝑢̃, 𝐸̃ ). 2) Лагранжев этап, предполагает, что при движении жидкости вычисляются потоки массы через границы эйлеровых ячеек. 3) Заключительный этап, предполагает вычисление в новый момент времени окончательных значений гидродинамических параметров потока 𝛹(𝑢, 𝐸, 𝜌). Рассмотрим движение идеальной жидкости. В качестве исходных возьмем уравнения Эйлера в дивергентном виде (уравнения неразрывности, импульса, энергии). 𝜕𝜌 𝜕𝑡 𝜕𝜌𝑢 𝜕𝑡 + 𝑑𝑖𝑣(𝜌𝑊) = 0, + 𝑑𝑖𝑣(𝜌𝑢𝑊) + 12 𝜕𝑝 𝜕𝑥 = 0, (1) (2) 𝜕𝜌𝐸 𝜕𝑡 + 𝑑𝑖𝑣(𝜌𝐸𝑊) + 𝑑𝑖𝑣(𝑝𝑊) = 0. (3) Для замыкания системы (1) используем уравнение состояния (2) 𝑃 = (𝛾 − 1)𝜀, (4) где 𝜌 – плотность, Е – полная энергия, 𝑃 – давление, 𝛾 – показатель адиабаты. 𝐸 = 0.5 ∗ 𝜌 ∗ 𝑢2 + 𝜀. (5) Следует отметить, что использованная в работе разностная схема [7] вносит апромаксиционную вязкость. Данный механизм приводит к сглаживанию фронта разрыва. Рассмотрим все этапы расчетного цикла. Область интегрирования покрывается фиксированной в пространстве (эйлеровой) расчетной сеткой, представленной на рисунке 1. Значение целых чисел 𝑖 – центр ячейки, а 𝑗 – шаг по времени. Рисунок 1 – Общая структура расчетной сетки [8] Эйлеров этап [7, 12, 21, 25]. На этом этапе изменяются лишь величины, относящиеся к ячейке в целом, а жидкость предполагается заторможенной. Поэтому конвективные члены вида 𝑑𝑖𝑣(𝜑𝜌𝑊), где 𝜑 = (1, 𝑢, 𝐸), соответствующие эффектам перемещения в системе (1-3) откидываются. 13 Из уравнения неразрывности следует, что поле плотности будет заторможено, поэтому в оставшихся уравнениях (2-3) можно вынести 𝜌, изпод знака дифференциала и разрешить относительно временных производных от 𝑢, 𝐸. 𝜕𝑢 𝜌 𝜌 𝜕𝐸 𝜕𝑡 𝜕𝑡 + 𝜕𝑝 𝜕𝑥 = 0, (6) + 𝑑𝑖𝑣(𝑝𝑊) = 0. (7) Аппроксимируем полученные уравнения (7,8) в момент времени 𝑡 𝑛 и получим явные конечно-разностные уравнения первого порядка точности по времени и пространству. 𝑢̃𝑖𝑛 𝐸̃𝑖𝑛 = = 𝑢𝑖𝑛 𝐸𝑖𝑛 − − 𝑛 𝑛 𝑝𝑖+ 1⁄ −𝑝𝑖−1⁄ ∆𝑡 2 2 𝜌𝑖𝑛 ∆𝑥 , (8) 𝑛 𝑛 𝑛 𝑛 𝑝𝑖+ 1⁄ 𝑢𝑖+1⁄ −𝑝𝑖−1⁄ 𝑢𝑖−1⁄ ∆𝑡 2 2 2 2 𝜌𝑖𝑛 ∆𝑥 (9) Здесь 𝑢̃, 𝐸̃ - промежуточные значения параметров потока на слое 𝑡 𝑛 + ∆𝑡, полученные в предположении заторможенности поля плотности без учета эффектов перемещения среды. Лагранжев этап [7, 12, 21, 25]. На данном этапе вычисляются эффекты переноса, учитывающие обмен между ячейками при их перестройке на прежнюю эйлерову сетку. Находим за время ∆𝑡 потоки массы ∆𝑀 через границы эйлеровых ячеек. Для этого перепишем уравнение неразрывности системы (1) в разностной форме: 𝑛 𝑛 𝜌𝑖𝑛 ∆𝑥 = 𝜌𝑖𝑛 ∆𝑥 − ∆𝑀𝑖+ 1⁄ ∆𝑀𝑖−1⁄ , 2 2 где поток массы определяем по формулам 1-го порядка точности 14 (10) 𝑛 ∆𝑀𝑖+ 1⁄ 2 𝜌𝑖𝑛 𝑛 ̃𝑖𝑛 +𝑢 ̃𝑖+1 𝑢 ={ 𝑛 𝜌𝑖+1 𝑛 ∆𝑡, если 𝑢̃𝑖𝑛 + 𝑢̃𝑖+1 >0 2 𝑛 ̃𝑖𝑛 +𝑢 ̃𝑖+1 𝑢 2 𝑛 ∆𝑡, если 𝑢̃𝑖𝑛 + 𝑢̃𝑖+1 <0 , (11) 𝑛 аналогично для ∆𝑀𝑖− 1⁄ . При этом устойчивость вычислений обеспечивается 2 внутренней структурой разностной схемы – наличием апроксимационной вязкости. Заключительный этап [7, 12, 21, 25]. Здесь происходит перераспределение массы, импульса, и энергии по пространству и определяются окончательные поля эйлеровых параметров потока на фиксированной сетке в момент времени 𝑡 𝑛+1 = 𝑡 𝑛 + ∆𝑡. На данном этапе предполагается, что потоки массы через границы ячеек ∆𝑀𝑛 (24) несут с собой промежуточные значения скорости и удельной энергии. Величины ∆𝑀𝑛 выполняют здесь роль весовых функций. Для автоматического определения направления потока, введем функцию 𝐷𝑖𝑛 и занумеруем все стороны ячейки (𝑖) индексом 𝑘 = 1, 2, 3, 4, как показано на рисунке 2. Рисунок 2 – Схема нумерации сторон ячейки [8] Определим значение 𝐷𝑖𝑛 (𝑘), относящееся к стороне k: 15 1, если жидкость втекает в ячейку (𝑖) через сторону 𝑘; 𝐷𝑖𝑛 (𝑘) = { 0, если жидкость вытекает из ячейки (𝑖) через сторону 𝑘. (12) Исходя из этого, окончательные значения параметров потока 𝜌, 𝑢, 𝐸 на новом временном слое 𝑡 𝑛+1 = 𝑡 𝑛 + ∆𝑡 вычисляются по формулам: 𝜌𝑖𝑛+1 = 𝜌𝑖𝑛 + 𝑛 𝑛 ∆𝑀𝑖− 1⁄ +∆𝑀𝑖+1⁄ 2 2 ∆𝑥 , (13) 𝑛 𝑛 𝑛 𝑛 𝑛 𝑢𝑖𝑛+1 = {𝐷𝑖𝑛 (1)𝑢̃𝑖−1 ∆𝑀𝑖− ̃ 𝑖+1 ∆𝑀𝑖+ ̃ 𝑖𝑛 {𝜌𝑖𝑛 ∆𝑥 − 1⁄ + 𝐷𝑖 (3)𝑢 1⁄ + 𝑢 2 2 𝑛 𝑛 𝑛 𝑛+1 [1 − 𝐷𝑖𝑛 (1)]∆𝑀𝑖− ∆𝑥), 1⁄ − [1 − 𝐷𝑖 (3)]∆𝑀𝑖+1⁄ }} /(𝜌𝑖 2 2 (14) 𝑛 𝑛 𝑛 𝑛 𝑛 ̃𝑖+1 ̃𝑖𝑛 {𝜌𝑖𝑛 ∆𝑥 − 𝐸𝑖𝑛+1 = {𝐷𝑖𝑛 (1)𝐸̃𝑖−1 ∆𝑀𝑖− ∆𝑀𝑖+ 1⁄ + 𝐷𝑖 (3)𝐸 1⁄ + 𝐸 2 2 𝑛 𝑛 𝑛 𝑛+1 [1 − 𝐷𝑖𝑛 (1)]∆𝑀𝑖− ∆𝑥). 1⁄ − [1 − 𝐷𝑖 (3)]∆𝑀𝑖+1⁄ }} /(𝜌𝑖 2 2 (15) 2.2 Начальные и граничные условия Гидродинамическая система уравнений, являясь системой дифференциальных уравнений , имеет бесконечное множество решений. Для того чтобы выделить единственное решение системы, соответствующее физическому процессу, необходимо задать дополнительные условия, включающие в себя начальные распределения и граничные условия. В качестве начальных условий в работе используются данные задачи Сода слева и справа от диафрагмы. (𝜌𝐿 , 𝑈 𝐿 , 𝑃𝐿 ) = (1,0,1), (𝜌𝐿 , 𝑈 𝐿 , 𝑃𝐿 ) = (0.125,0,0.1). 16 (16) А граничные условия зададим следующим образом: в конце эйлеровского этапа[15-18]: 𝑢̃𝑁+1 = 𝑢̃𝑁 , 𝐸̃𝑁+1 = 𝐸̃𝑁 , (17) в конце заключительного этапа[15-18]: 𝑛+1 𝑛+1 𝑛+1 𝑛+1 𝜌𝑁+1 = 𝜌𝑁𝑛+1 , 𝑢𝑁+1 = 𝑢𝑁 , 𝐸𝑁+1 = 𝐸𝑁𝑛+1 . (18) 2.3 Понятие ударной волны Когда скорость движения жидкости делается сравнимой со скоростью звука или превышает ее, на передний план выдвигаются эффекты, связанные с сжимаемостью жидкости. С такого рода движениями приходится на практике иметь дело у газов. Поэтому о гидродинамике больших скоростей говорят обычно как о газодинамике. Прежде всего, следует заметить, что в газодинамике практически всегда приходится иметь дело с очень большими значениями числа Рейнольдса. Действительно, кинематическая вязкость газа, как известно из кинетической теории газов — порядка величины произведения длины свободного пробега молекул 𝑙 на их среднюю скорость теплового движения; последняя же совпадает по порядку величины со скоростью звука, так что 𝑣~𝑙. Если характеристическая скорость газодинамической задачи — порядка величины скорости звука или больше, то число Рейнольдса 𝑅~𝐿𝑢/𝑣~𝐿𝑢/𝐿𝑐 т.е. содержит заведомо очень большое отношение характеристических размеров 𝐿 к длине свободного пробега 𝑙. Как всегда, при очень больших значениях 𝑙 вязкость оказывается не существенной для движения газа практически во всем пространстве, и в дальнейшем мы рассматриваем газ как идеальную (в гидродинамическом смысле слова) жидкость. 17 Движение газа имеет существенно различный характер в зависимости от того, является ли оно дозвуковым или сверхзвуковым, т. е. меньше или больше его скорость, чем скорость звука. Одним из наиболее существенных принципиальных отличий сверхзвукового потока является возможность существования в нем так называемых ударных волн. Разрыв непрерывности в движении газа имеет место вдоль некоторых поверхностей; при прохождении через такую поверхность указанные величины испытывают скачок. Эти поверхности называют поверхностями разрыва. При нестационарном движении газа поверхности разрыва не остаются, вообще говоря, неподвижными; необходимо при этом подчеркнуть, что скорость движения поверхности разрыва не имеет ничего общего со скоростью движения самого газа. Частицы газа при своем движении могут проходить через эту поверхность, пересекая ее. На поверхностях разрыва должны выполняться определенные граничные условия. Для формулирования этих условий рассмотрим какойнибудь элемент поверхности разрыва и воспользуемся связанной с этим элементом системой координат с осью 𝑥, направленной по нормали к нему 𝑙. Во-первых, на поверхности разрыва должен быть непрерывен поток вещества: количество газа, входящего с одной стороны, должно быть равно количеству газа, выходящему с другой стороны поверхности. Поток газа через рассматриваемый элемент поверхности равен 𝑝𝑣𝑥 . Поэтому должно выполняться условие 𝑝1 𝑣1𝑥 − 𝑝2 𝑣2𝑥 , где индексы 1 и 2 относятся к двум сторонам поверхности разрыва. Разность значений какой либо величины с обеих сторон поверхности разрыва мы будем ниже обозначать посредством квадратных скобок; так, и полученное условие напишется в виде 𝑝𝑣𝑥 = 0. (19) Далее, должен быть непрерывным поток энергии. Поток энергии 𝑣2 определяется выражением 𝜌𝑉 ( 2 + 𝜔). Поэтому мы получаем условие 18 𝑣2 [𝑝𝑣𝑥 ( 2 + 𝜔)] = 0. (20) Наконец, должен быть непрерывен поток импульса, т. е. должны быть равны силы, с которыми действуют друг на друга газы по обеим сторонам поверхности разрыва. Поток импульса через единицу площади равен 𝑝𝑛𝑖 + 𝑝𝑣𝑖 + 𝑣𝑘 + 𝑛𝑘 . Вектор нормали направлен 𝑛 по оси 𝑥. Поэтому непрерывность – компоненты потока импульса приводит к условию [𝑝 + 𝑝𝑣𝑥2 ] = 0, (21) а непрерывность 𝑦 – и 𝑧 – компонент дает [𝑝𝑣𝑥 𝑣𝑧 ] = 0. [𝑝𝑣𝑥 𝑣𝑦 ] = 0, (22) Уравнения представляют собой полную систему граничных условий на поверхности разрыва. Из них можно сразу сделать вывод о возможности существования двух типов поверхностей разрыва. В первом случае через поверхность разрыва нет потока вещества. Это значит, что 𝑝1 𝑣1𝑥 = 𝑝2 𝑣2𝑥 = 0. Поскольку 𝑝1 и 𝑝2 отличны от нуля, то это значит, что должны быть 𝑣1𝑥 = 𝑣2𝑥 = 0. Условия (21) и (23) в этом случае удовлетворяются автоматически, а условие (22) дает 𝑝1 = 𝑝2 . Таким образом, на поверхности разрыва в этом случае непрерывны нормальная компонента скорости и давление газа: 𝑣1𝑥 = 𝑣2𝑥 . Тангенциальные же скорости термодинамические величины, (23) 𝑣𝑦 , 𝑣𝑧 и плотность (а также другие кроме давления) могут испытывать произвольный скачок. Во втором случае поток вещества, а с ним и 𝑣1𝑥 и 𝑣2𝑥 отличны от нуля. Тогда из (20) и (23) имеем: 19 [𝑣𝑦 ] = [𝑣𝑧 ] = 0, (24) т. е. тангенциальная скорость непрерывна на поверхности разрыва. Плотность же, давление (а потому и другие термодинамические величины) и нормальная скорость испытывают скачок, причем скачки этих величин связаны соотношениями (20-22). В условии (21) мы можем в силу (20) сократить 𝑝𝑣𝑥 , а вместо 𝑣 2 можно в силу непрерывности 𝑣𝑦 , 𝑣𝑧 писать 𝑣𝑥2 . Таким образом, на поверхности разрыва в рассматриваемом случае должны иметь место условия: [𝑝𝑣𝑥 = 0], [ 𝑣2 2 + 𝜔] = 0, [𝑝 + 𝑝𝑣𝑥2 ] = 0. (25) Разрывы этого типа называют ударными волнами. 2.4 Программная реализация метода крупных частиц Для поставленной задачи реализуем программное решение на языке C/C++. Также построена и приведена информационная модель программы (Рисунок 6). Листинг 1 – Численная реализация метода крупных частиц #include #include #include #include #include #include #include "stdafx.h" <tchar.h> <iostream> "Math.h" "windows.h" "fstream" <omp.h> using namespace std; int _tmain(int argc, _TCHAR* argv[]) { ofstream data_Dt("Dt.txt"); setlocale(LC_ALL, "Russian"); ofstream d_u("u.txt"); 20 ofstream d_plot("s.txt"); ofstream d_p("p.txt"); ofstream d_E("E.txt"); int nx = 1000, nt = 10000; double Lx, time, Dx, Dt, pl, pr, ul, ur, Xij, flowl, flowr, gamma, vc, vmax; double *u, *s, *p, *E; u = new double[nx + 1]; s = new double[nx + 1]; p = new double[nx + 1]; E = new double[nx + 1]; double *u1, *plot1, *p1, *E1; u1 = new double[nx + 1]; s1 = new double[nx + 1]; p1 = new double[nx + 1]; E1 = new double[nx + 1]; double *ui, *pi, *Ei; ui = new double[nx + 1]; pi = new double[nx + 1]; Ei = new double[nx + 1]; double *Dml, *Dmr, *DR, *DL; Dml = new double[nx + 1]; Dmr = new double[nx + 1]; DR = new double[nx + 1]; DL = new double[nx + 1]; Lx = 2.0; gamma = 1.4; for (int i = 0; i <= nx; i++) { if (i <= (nx / 2)) { u[i] = 0.0; plot[i] = 1.0; p[i] = 1.0; E[i] = p[i] / (plot[i] * (gamma - 1)); } else { u[i] = 0.0; plot[i] = 0.125; p[i] = 0.1; E[i] = p[i] / (plot[i] * (gamma - 1)); } } /*Начальные условия на первом шаге*/ u[0] = u[1]; u[nx] = u[nx - 1]; /*Параметры схемы*/ time = 0.0; Dx = Lx / nx; for (int i = 0; i <= nt - 1; i++) { vmax = 0.0; for (int j = 1; j < nx; j++) { 21 //2. Лагранжев этап flowl = 0.5*(u[j] + u[j - 1]); if (flowl >= 0) { Dml[j] = s[j - 1] * flowl*Dt; DL[j] = 1; } else { Dml[j] = s[j] * flowl*Dt; DL[j] = 0; } flowr = 0.5*(u[j] + u[j + 1]); if (flowr >= 0) { Dmr[j] = plot[j] * flowr*Dt; DR[j] = 0; } else { Dmr[j] = s[j + 1] * flowr*Dt; DR[j] = 1; } } //1. Эйлеров этап for (int j = 1; j < nx; j++) { ur = 0.5*(u[j + 1] + u[j]); ul = 0.5*(u[j - 1] + u[j]); pr = 0.5*(p[j + 1] + p[j]); pl = 0.5*(p[j - 1] + p[j]); ui[j] = u[j] - (pr - pl)*Dt / (Dx*s[j]); Ei[j] = E[j] - (pr*ur - pl*ul)*Dt / (Dx*s[j]); } //Граничные условия ui[0] = -ui[1]; ui[nx] = ui[nx - 1]; Ei[0] = Ei[1]; Ei[nx] = Ei[nx - 1]; for (int j = 1; j < nx; j++) { /*3. Заключительный этап*/ s1[j] = (s[j] * Dx - (Dmr[j] - Dml[j])) / Dx; Xij = s1[j] * Dx - (1 - DR[j])*Dmr[j] - (1 - DL[j])*Dml[j]; u1[j] = (DL[j] * Dml[j] * ui[j - 1] - DR[j] * Dmr[j] * ui[j + 1] + ui[j] * Xij) / (Dx*s1[j]); E1[j] = (DL[j] * Dml[j] * Ei[j - 1] - DR[j] * Dmr[j] * Ei[j + 1] + Ei[j] * Xij) / (Dx*s1[j]); p1[j] = (gamma - 1)*s1[j] * (E1[j] - 0.5*u1[j] * u1[j]); //Расчет максимальной скорости vc = abs(u1[j]) + sqrt(gamma*p1[j] / s1[j]); if (vc > vmax) vmax = vc; } /*Граничные условия (Заключительного этапа)*/ s1[0] = s1[1]; 22 u1[0] = -u1[1]; p1[0] = p1[1]; E1[0] = E1[1]; s1[nx] = s1[nx u1[nx] = u1[nx p1[nx] = p1[nx E1[nx] = E1[nx for (int j { u[j] p[j] s[j] E[j] } 1]; 1]; 1]; 1]; = 0; j <= nx; j++) = = = = u1[j]; p1[j]; s1[j]; E1[j]; if (i == nt - 1) { for (int j = { d_u << d_plot d_p << d_E << } } 1; j < nx; j++) j*Dx << << j*Dx j*Dx << j*Dx << " " << << " " " " << " " << } data_Dt.close(); d_u.close(); d_plot.close(); d_p.close(); d_E.close(); delete(ui); delete(pi); delete(Ei); delete(u1); delete(s1); delete(p1); delete(E1); delete(u); delete(s); delete(p); delete(E); delete(Dml); delete(Dmr); delete(DR); delete(DL); system("pause"); return 0; } 23 u1[j] << << s1[j] p1[j] << E1[j] << endl; << endl; endl; endl; 2.5 Результаты работы программы При расчетах рассматривались скачок давления от значения 1 до 0.1. затем наблюдалось распространение ударной волны через различные промежутки времени. В начальный момент времени график давления имел следующий вид (Рисунок 3) Рисунок 3 – Начальное распределение давления 𝑝 при распаде произвольного скачка давления Через промежуток времени 𝑛𝑡 = 100 график давления стал иметь следующий вид (рисунок 4). Рисунок 4 – Численное решение задачи о произвольном скачке давления методом крупных частиц 24 Результат численного решения данной задачи при помощи метода крупных частиц можно сравнить с точным решением (рисунок 5) [26]. Рисунок 5 – Точное решение задачи о произвольном скачке давления методом крупных частиц 2.6 Выводы по главе В данной главе был рассмотрен метод крупных частиц для моделирования сплошной среды. Приведена численная схема для расчета. Также, в главе рассмотрены начальные и граничные условия для выделения единственного решения системы дифференциальных уравнений. Было рассмотрено понятие ударной волны и приведены тестовые расчеты по формированию стационарной ударной волны при распаде скачка давления. Тестовые результаты были проверены на адекватность с уже имеющимися численными решениями, приведенными в литературе [19]. 25 Рисунок 6 – Информационная модель программы 26 3 Визуализация нестационарных течений 3.1 Метод TREEcode Нестационарное течение – течение жидкости или газа, в точках поля которого (в данной системе координат) газодинамические переменные изменяются во времени. Мы используем подход, который опубликовали Barnes J. и Hut P. (1986). Структура дерева построена из клеток и частиц. Клетки могут содержать более мелкие клетки (подэлементы) внутри них. Начнем со случайного распределения точек в двумерной области. Первый шаг алгоритма – сортировка частиц в виде иерархической древовидной структуры. Это структура так называемого дерева квадрантов. Алгоритм начинается с разделения на сектора. Если есть другая частица в том же квадранте, квадрант снова разделяется. Это повторяется до тех пор, пока каждая частица находится в своем собственном квадранте (Рисунок 7). Рисунок 7 – Иерархический пример расчета силы [31] Дерево должно быть воссоздано на каждом этапе моделирования. Вычислительные затраты воссоздания деревьев зависят от распределения 27 частиц. Затраты на добавление частицы дерева пропорциональны удаленности от корневого узла. Распределения с множеством плотно расположенных частиц требуют больше операций, потому что дерево должно быть разделено так, чтобы поместить все частицы в собственные квадранты. Сложность алгоритма оценивается как 𝑂(𝑁 𝑙𝑜𝑔𝑁) [4]. 3.2 Тестовые расчеты при помощи пакета программ TREEcode и визуализация результатов При помощи пакета программ написанного на языке FORTRAN вычислялись макроскопические параметры (плотность, скорость, дисперсия скоростей). Затем результаты расчетов были визуализированы при помощи программы Golden Grapher 10. Рисунок 8 – Зависимость параметра скорости от времени 28 Рисунок 9 – Визуализация параметра 𝑞 Рисунок 10 – Визуализация параметра 𝑑_𝑣 29 Заключение Была рассмотрена задача, использования метода крупных частиц для интегрирования уравнений гидродинамики. В качестве языка для программной реализации использовался язык С/С++. Также было рассмотрено понятие ударной волны и приведены тестовые расчеты по формированию стационарной ударной волны при распаде скачка давления. Тестовые результаты были проверены на адекватность с уже имеющимися численными решениями приведенными в литературе [19]. Были рассмотрены модели 𝑁 тел, наиболее часто используемых в численных расчетах. Были проведены расчеты с моделью N-тел и визуализированы результаты. 30 Список использованной литературы 1. Criminale W., Jackson T., Joslin R. Theory and computation of hydrodynamic stability. – Cambridge University Press, 2003. – 453 p. 2. Snay Hans G. Hydrodynamic background of radiological effects of underwater nuclear explosions // U.S. Naval. Radiol. Def. Lab. Rev. Lect. 1960. V.2, No 103. 3. Drazin.T Introduction to Hydrodynamic Stability. –Cambridge University Press, 2002. –276 p. 4. Barnes J., Hut P. A hierarchical O(NlogN) force-calculation algorithm // Nature. 1986. 324. 446–449 p. 5. Lax P., Wendroff B. Systems of conservation laws // Commun. Pure Appl. Math. 1960. - V. 13. – P. 217-237 p. 6. Амосов, А.А. Вычислительные методы для инженеров / Амосов, А.А, Дубинский Ю. А, Копченова Н.В. : Учебное пособие. – Москва, Высшая школа, 1994. – С. 375 – 408. 7. Бахвалов Н.С., Жидков Н.П., Кобельков Г.М. Численные методы. – Бином. Лаборатория знаний, 2008. – 640 c. 8. Белоцерковский, О. М., Давыдов, Ю. М. Метод крупных частиц в газовой динамике. М.: Наука. Главная редакция физико-математической литературы, 1982. – 392 с. 9. Биркгоф Г. Гидродинамика. М.: Из-во иностранной литературы, 1960. – 244c. 10. Дейч М.Е. Техническая газодинамика (2-е издание). М.: Госэнергоиздат, 1961. – 338 c. 11. Дикий Л.А. Гидродинамическая устойчивость и динамика атмосферы. Л.: Гидрометеоиздат, 1976. – 110c. 12. Шкадов В.Я., Запрянов З.Д. Течения вязкой жидкости. / В.Я. Шкадов, З.Д. Запрянов. – М.: Изд-во МГУ, 1984. . – 200c. 31 13. Олдер Б., Фернбах С., Ротенберг М. (ред.) Вычислительные методы в гидродинамике. М.: Мир, 1967. – 385 c. 14. Милн-Томпсон Л.М. Теоретическая гидродинамика. М.: Мир, 1964. – 385 c. 15. Горт.В, Дифференциальные уравнения: Государственное техникотеоретическое издательство, 1993. – 480 с. 16. Давыдова. М.А, Лекции по гидродинамике: ФИЗМАТЛИТ, 2011. – 216 с. 17. Смогунов В.В., Основы механики сплошных сред: Учебное пособие. Часть 1. - Пенза: Пенз. гос. ун-т, 2004. – 75 с. 18. Лаврентьев М.А., Проблемы гидродинамики и их математические модели, 2012. – 417 с. 19. Ламб. Г, Гидродинамика. М.: Ижевск: РХД., 2003 20. Ландау Л. Д., Гидродинамика. / Ландау Л.Д., Лифшиц Е.М. – М.: Наука. Физматлит,1986. –736 с. 21. Линь Цзя-Цзяо. Теория гидродинамической устойчивости. – М.: ИЛ, 1958. –194 с. 22. Олдер Б., Вычислительные методы в гидродинамике / Олдер Б., Фернбах С., Ротенбер. – М.: Книга по Требованию, 2012. – 384 с. 23. Рождественский Б.Л., Яненко Н.Н. Системы квазилинейных уравнений и их приложения к газовой динамике. – М.: Наука, 1978. – 688 c. 24. Станюкович К.П. Неустановившиеся движения сплошной среды (2-е изд.) М.: Наука, 1971. – 855 c. 25. Самарский А.А., Численные методы / А.А. Самарский, А.В. Гулин: Учебное пособие. М.: Издательство НАУКА, 1989, 432 с. 26. Фридман, А. М. Физика галактических дисков / А. М. Фридман, А.В. Хоперсков // М. : ФИЗМАТЛИТ, 2011. – 640 с. 27. Хоперсков А.В. Компьютерное моделирование нелинейных волн. Волгоград:Изд-во ВолГУ, 2007. – 60 с. 32 28. Еремин, М. А. Конечно–объемная схема интегрирования уравненийгидродинамики / М. А. Еремин, А. В. Хоперсков, С. А. Хоперсков // Изв. Волгогр. гос. техн. ун-та, 6:8. 2010. c. 24–27. 29. Хоперсков, А. В Динамика газового диска в неосесимметричном темном гало / А. В. Хоперсков, М. А. Еремин, С. А. Хоперсков, М. А. Бутенко, А. Г. Морозов // Астроном. ж., 89:1. 2012. c. 19–31. 30. Храпов, С. С. Численная схема для моделирования динамики поверхностных вод на основе комбинированного SPH-TVD-подхода / С. С. Храпов, А. В. Хоперсков, Н. М. Кузьмин, А. В. Писарев, И. А. Кобелев // Вычислительные методы и программирование., 2011. - Т. 12, № 1. c. 282-297. 31. TREEcode Guide [Электронный ресурс] - Режим доступа: http://www.ifa.hawaii.edu/~barnes/treecode/treeguide.html 33