Программа моделирования воздействия среды на движущееся твердое тело

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

Рубрика Программирование, компьютеры и кибернетика
Вид диссертация
Язык русский
Дата добавления 15.10.2019
Размер файла 2,5 M

Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже

Студенты, аспиранты, молодые ученые, использующие базу знаний в своей учебе и работе, будут вам очень благодарны.

Размещено на http://www.allbest.ru/

Правительство Российской Федерации

Федеральное государственное автономное образовательное

учреждение высшего профессионального образования

«Национальный исследовательский университет

«Высшая школа экономики»

Отделение программной инженерии

Кафедра Управления разработкой программного обеспечения

ВЫПУСКНАЯ КВАЛИФИКАЦИОННАЯ РАБОТА

по направлению 231000.62 Программная инженерия

Подготовки бакалавра

На тему: Программа моделирования воздействия среды на движущееся твердое тело

Студента группы №472ПИ

Д.Ю. Зельдина

Научный руководитель

Р.З. Ахметсафина

Доцент кафедры УРПО

Москва, 2014

Реферат

Выпускная квалификационная работа. 81 с., 10 рис., 5 приложений, 26 источников литературы. газ жидкость время

В работе рассматривается разработка приложения, моделирующего движения потоков газа или жидкости вокруг твердого тела. Моделирование осуществляется численными методами вычислительной гидродинамики. В основе этих методов лежат уравнения Навье-Стокса для несжимаемой жидкости. В работе приводится обзор существующих численных методов решения уравнений Навье-Стокса, аналогов разрабатываемого приложения. В главе «Методы моделирования воздействия среды на движущееся твердое тело» детально разбирается метод конечных разностей, который был выбран для использования в разработке. Результатом работы является кроссплатформенное приложение, моделирующее движение потоков газа или жидкости вокруг твердого тела, которое будет способно работать на маломощных компьютерах пользователей и не будет требовать от пользователя глубоких знаний в области гидромеханики. Детально процесс разработки приложения описан в главе «Программная реализация». В заключении описываются достигнутые результаты и обсуждаются возможные пути улучшения программы.

Ключевые слова: Вычислительная гидродинамика, уравненияНавье-Стокса, метод конечных разностей, метод релаксации, jMonkeyEngine 3.

Определения, обозначения и сокращения

Вычислительная гидродинамика (ComputationalFluidDynamics, CFD) -ветвь гидромеханики, использующая численные методы и алгоритмы для решения задач движения потоков жидкостей или газов [1]

SDK (SoftwareDevelopmentKit) - комплект средств разработки, который позволяет создавать определенную категорию программ.

Пространство эксперимента - область пространства, в которой происходит моделирование.

Также в данной работе будут использоваться следующие обозначения. Все физические величины заданы в системе СИ если не указано иное:

- плотность вещества

- скорость движения потока

- компоненты вектора скорости движения потока по осям координат

- время

- коэффициент вязкости

- динамическая вязкость (также называется «второй вязкостью»)

- внешние силы, действующие на поток

- компоненты вектора внешних сил по осям координат

- оператор Гамильтона, частная производная по координатам

- число Рейнольдса

- средняя скорость движения жидкости или газа

- время начала эксперимента

- время окончания эксперимента

-длина, ширина и высота ячейки разностной сетки

- временной шаг

- максимальное количество ячеек разностной сетки по осям координат

- компоненты вектора скорости движенияпотока и давлениев ячейкедвумерной разностной сетки

- компоненты вектора скорости движенияпотока и давлениев ячейке трехмерной разностной сетки

- компоненты векторамаксимальной скорости движения среды по осям

- компоненты вектора скорости движенияпотока и давлениевмомент времени

- фактор релаксации, используемый в методе релаксации - способа решения системы линейных уравнений

- давление в ячейке разностной сетки при итерации метода релаксации.

- неявка (ошибка вычислений) для ячейки разностной сетки при итерации метода релаксации

- общая неявка (ошибка вычислений) при итерации метода релаксации

- максимальное количество итераций метода релаксации.

- допустимая погрешность вычислений

- операция деления с остатком

Введение

Вычислительная гидродинамика (ComputationalFluidDynamics, CFD) -ветвь гидромеханики, использующая численные методы и алгоритмы для решения задач движения потоков жидкостей или газов [1]. Результат решения подобного класса задач - ожидаемая скорость, плотность и температура потока для каждого участка потока.

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

Методы компьютерной гидродинамики позволяют моделировать поведение разрабатываемого продукта до создания реального прототипа, что позволяет сэкономить на стоимости разработки.

Методы компьютерной гидродинамики позволяют получить наиболее точные экспериментальные данные, ведь во время стендовых испытаний датчики могут вносить определенные погрешности в итоговую картину распределения потоков.

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

На данный момент существует много коммерческих продуктов, разработанных для гидродинамического моделирования в 3D(AutodeskSimulation[2], ANSYSCFX[3]). Такие продукты позволяют достичь точных результатов в широком диапазоне исходных данных. В то же время, они не лишены недостатков:

Точные результаты требуют большого количества компьютерных ресурсов. Некоторые системы возможно запускать только на суперкомпьютерах.

Цена на данные системы достаточно высока для того, чтобы купить продукт в целях обучения

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

Также на рынке существует несколько решений с открытым исходным кодом. Такие решения бесплатны, но и они не лишены определенных недостатков:

Приложения предоставляются «как есть». Чаще всего без развернутой документации и файлов справки.

В подобныхрешениях могут быть ошибки, приводящие к неверным результатам.

Большинство решений с открытым исходным кодом предоставляются в виде SDK, а не полноценных программ. Таким образом, они не готовы для использования конечным пользователем.

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

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

Изучить гидромеханику на уровне, достаточном для создания приложения

Изучить методы вычислительной гидродинамики;

Выбрать численный метод моделирования потока жидкости или газа

Выбрать средства разработки, в частности - кроссплатформенный метод визуализации результатов эксперимента

Разработать дизайнер стартовых условий эксперимента

Реализовать численные методы моделирования потока жидкости или газа

Разработать документацию и создать справку по программе

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

Модель жидкости и газа

В гидродинамике существует два способа описания движения жидкостей и газов: подход Лагранжа и подход Эйлера.

Подход Лагранжа заключается в рассмотрении движения каждой частицы жидкости или газа. В каждый момент времени частица жидкости или газа характеризуется ее координатами в пространстве. Таким образом, движение всего потока жидкости можно определить как зависимость положения частицы отее начального положения и времени: [4]

,

(1.1)

где:

- координатыi-ой частицыпо осям;

- начальныекоординатыi-ой частицыпо осям ;

В то же время подход Эйлера рассматривает само пространство, в котором движется поток жидкости.В определенный момент времени в точке с координатами находится крайне малый объемжидкости или газа, имеющий некоторую скорость , которая называется мгновенной местной скоростью. Совокупность мгновенных местных скоростей представляет собой трехмерный массив векторов скоростей, называемый полем скоростей. Таким образом, движениевсего потока жидкости определяется изменением поля скоростей во времени:

,

(1.2)

где:

- компоненты вектора скорости , параллельные осям соответственно;

- функциональная зависимость -компоненты вектора скорости от времени;

- функциональная зависимость -компоненты вектора скорости от времени;

- функциональная зависимость -компоненты вектора скорости от времени;

Для дальнейшего рассмотрения была выбрана модель Эйлера как более подходящая для решения задачи.

Уравнения Навье-Стокса

Уравнения Навье-Стокса названы в честь Клода-Луи Навье, которые первым вывел эти уравнения в 1822 году и Сэра Джорджа Габриеля Стокса, который их существенно доработал в 1849 году. Эти дифференциальные уравнения описывают движение жидкостей и газов [5].

Наиболее часто употребляются две формы уравнений Навье-Стокса: для сжимаемой (1.3), (1.4) и для несжимаемой(1.5), (1.6) жидкости.

Уравнение движения:

,

(1.3)

Уравнение неразрывности:

,

(1.4)

Уравнение движения:

,

(1.5)

Уравнение неразрывности:

,

(1.6)

где:

- плотность;

- скорость;

- время;

- коэффициент вязкости;

- динамическая вязкость (также называется «второй вязкостью»)

- другие силы, действующие на тело, такие как гравитация

- оператор Гамильтона, частная производная по координатам. Для трехмерного пространства верна формула:

,

(1.7)

- скалярное произведение двух операторов Гамильтона :

,

(1.8)

В разрабатываемомприложении используется форма уравнений для несжимаемой жидкости, так как предположение о сжимаемости жидкости существенно увеличивает сложность вычислений. Предположение о несжимаемой жидкости позволяет добиться минимального расхождения с реальными результатами при скоростях движения потока, значительно ниже скорости звука (не более ) [6].

Очень часто для экономии вычислительных мощностей вместо моделирования всего потока в трех измерениях осуществляется моделирование среза потока. В таком случае можно ограничиться моделированием потока в двух измерениях. Пример подобного моделирования показан на Рис. 1[7]

Рис. 1. Моделирование среза потока воздуха около крыла самолета[7]

Характеристики любой вязкой среды (плотность, вязкость) могут быть заданы одним безразмерным параметром - числом Рейнольдса. Данный параметр является безразмерной величиной,которая характеризует отношение инерционных сил к вязким силам внутри среды [8] и определяется следующим образом:

,

(1.9)

где:

- плотность среды;

- средняя скорость движения жидкости или газа;

- вязкость среды;

- гидравлический диаметр канала, по которому движется жидкость или газ, определяемый по формуле (1.10):

,

(1.10)

где:

- площадь поперечного разреза канала;

-смоченный периметр канала.

Таким образом, при моделировании среза потока несжимаемой жидкости или газа уравненияпринимают следующий вид:

Уравнения движения:

,

,

Уравнение неразрывности:

,

(1.13)

Где:

- -компонента вектора скорости ;

- -компонента вектора скорости ;

- -компонента вектора внешних сил ;

- -компонента вектора внешних сил ;

- число Рейнольдса, безразмерная величина.

Численные методы решения дифференциальных уравнений

Несмотря на широкую область применения уравнений Навье-Стокса, до сих пор не существует аналитического решения этих уравнений в общем случае[9]. Более того, на данный момент не доказано существование и гладкость подобного решения в трех измерениях. Математический институт Клэя назвал эту проблему одной из главных проблем тысячелетия. За решение задачи предложен приз в размере миллиона долларов[10]. Проблема актуальна до сих пор и активно решается математиками со всего мира.

На данный момент аналитические решение существуют только для нескольких частных случаев. В качестве примера чаще всего рассматриваются следующие случаи: параллельное течение воды через прямой канал и течение Куэтта.

При параллельном течении поток жидкости ограничен двумя параллельными стенками канала. Сила вязкого трения между стенкой канала и жидкостью уменьшает скорость движения потока около стенок. В результате образуется такая картина распределения скоростей (Рис. 2):

Рис. 2. Распределение скоростей потока при параллельном течении через прямой канал[11]

Течение Куэтта названо в честь Мориса Куэтта - французского ученого, известного своими исследованиями в области текучести жидкостей. Такой тип течений создается потоком жидкости, расположенным между двумя параллельными стенками, причем одна из стен движется с постоянной скоростью , причем вектор скорости направлен параллельно другой стенке. В таком случае течение потока происходит под воздействием сил вязкого трения между жидкостью и движущейся стенкой. В результате получается следующая картина распределения скоростей (Рис. 3).

Рис. 3. Распределение скоростей потока при течении Куэтта[11]

Аналитические решения уравнений Навье-Стокса для этих частных случаев приводятся в книге «LaminarFlowAnalysis»[11].

С конца 50-х годов XXвека, с развитием компьютерных технологий, стало возможно получение аппроксимаций решения с использованием численных методов[12]. На данный момент существует несколько численных методов, однако только два из них используются достаточно часто и имеют в основе Эйлеров подход к моделированию потока: метод конечных разностей и метод конечных элементов. Ниже будет рассмотрен каждый из методов, их достоинства и недостатки.

Метод конечных разностей

Метод конечных разностей заключается в создании разностной сетки. Пространство, представляющее собой прямоугольный параллелепипед, делится на небольшие равные части (прямоугольные параллелепипеды). Затем исходное уравнение преобразовывается в уравнение для каждого элемента сетки [6]. Для решения преобразованных уравнений требуется знать скорость потока на каждой из стенок сетки. Для этого разрабатываются различные типы граничных условий.

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

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

Метод конечных элементов

Метод конечных элементов заключается в разбиении пространства эксперимента на конечное количество подобластей (элементов). В каждом элементе аппроксимирующая функция выбирается индивидуально. Решение дифференциального уравнения ищется на границах элементов [6].

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

Такой подход позволяет сильно экономить процессорное время. Однако сам алгоритм разделения пространства эксперимента на конечные элементы весьма сложен.

В качестве алгоритма дискретизации уравнений Навье-Стокса был выбран метод конечных разностей[6] из-за лучших перспектив по распараллеливанию и более простой реализации самого алгоритма. В следующей главе описан алгоритм для двумерного случая, а затем переход от двумерного случая к трехмерному.

Рис. 4. Пример разделения пространства эксперимента на конечные элементы [13]

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

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

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

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

Разностная сеть

Пусть задано прямоугольное пространство,ориентированное параллельно осям координат и :

,

(2.1)

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

;

(2.2)

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

Рис. 5. Ячейки жидкости (белые), ячейки препятствия (светло-серые) и ячейки на границе прямоугольного пространства (темно-серые)

Каждая ячейкахарактеризует некий объем жидкости и определяется тремя параметрами: давлением , -компонентой вектора скорости и -компонентой вектора скорости .

Дискретизация уравнений Навье-Стокса происходит на разностной сетке (Staggeredgrid).Сетка обязана своим названием тому факту, что параметры, определяющие ячейку не привязаны к одной точке пространства. Давление ячейки определено по центру ячейки в координатах,-компонента вектора скорости ячейки определена в координатах , а -компонента вектора скорости ячейки определена в координатах. Визуальное представление подобной разностной сети показано на Рис. 6.

Рис. 6. Пример разностной сетки

Уравнение неразрывности (1.13)дискретизируетсяв центре каждой клетки . Частные производные выражаются следующим образом:

;

(2.3)

Cдругой стороны, уравнение движения для (1.11)дискретизируются в центре вертикальных сторон ячейки, а уравнение движения для (1.12)дискретизируется в центре горизонтальных сторон ячейки. Вторые производные , называемые диффузионными членами уравненияи частные производные давления () получаются относительно просто и выражаются следующими формулами:

;

(2.4)

;

(2.5)

;

(2.6)

;

(2.7)

;

(2.8)

;

(2.9)

При дискретизации конвекционных членов уравнения возникают некоторые трудности. Например, для дискретизации члена в центре правой стороны ячейки (черная точка на Рис. 7), нужны данные произведения в точках, отмеченных знаком на Рис. 7. В данной реализациидля получения данного значения используется среднее арифметическое значений скоростей и из соседних ячеек.

Рис. 7.Дискретизация конвекционных членов

Таким образом, конвекционные члены выражаются следующими формулами:

;

;

;

(2.12)

;

Начальные и граничные условия

Для дискретизации уравнений Навье-Стокса с использованием разностной сетки, определенной в предыдущем разделе, требуется указать начальные условия для горизонтальной скорости при и вертикальной скорости при . Таким образом, нужно определить следующие начальные значения(2.14):

;

(2.14)

Существует множество типов граничных условий на границе ячейки жидкости и ячейки-препятствия, но для разрабатываемого приложения требуется рассмотреть толькотри типа: свободное скольжение (free-slip), прилипание (no-slip) и

Свободное скольжение

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

;

(2.15)

Прилипание

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

;

(2.16)

Свободный поток

Это условие применимо на границе пространства эксперимента только когда эта граница виртуальна и поток свободно течет через границу. Таким образом, скорость жидкости на границе с этим препятствием равна скорости движения «внутри» препятствия Таким образом, при условии прилипания получаются следующие значения скоростей:

;

(2.17)

Дискретизация по времени

Для дискретизации по времени используется метод Эйлера.

Для этого разделим временной интервал эксперимента на равные интервалы . В момент времени считается, что значения всех неизвестных для временного интервала уже известны.

Результаты для временного интервала вычисляются следующим образом:

;

(2.18)

Дискретизация по ячейкам разностной сетки

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

Значение может задаваться экспериментатором, но для уменьшения погрешности измерений рекомендуется вычислять значение по формуле:

;

(2.19)

где:

- максимальная скорость движения среды по оси ;

- максимальная скорость движения среды по оси ;

Проведем дискретизацию уравнения движенияпо времени:

;

(2.20)

Здесь и далее индекс к скобках сверху указывает временной интервал, для которого верна данная переменная, например - скорость движения среды во оси в интервал времени

введем следующие обозначения:

;

(2.21)

тогда уравнение(2.20)можно записать в виде

;

(2.22)

Для завершения дискретизации уравнений движения правые части уравнений (2.22) также должны быть дискредитированы по времени.Итоговый вид уравнений представлен ниже:

;

(2.23)

После подстановки в уравнение неразрывности интервала времени получаетсяуравнение Пуассона для интервала времени :

;

(2.24)

Для получения полностью дискретизированных уравнений осталось дискретизировать уравнения (2.23), (2.24) по элементам разностной сетки. Для этого воспользуемся формулами (2.4)_(2.13):

,

;

(2.25)

,

;

(2.26)

где:

,

;

(2.27)

,

;

(2.28)

Уравнение Пуассона(2.24) в дискретизированной форме принимает следующий вид:

,

;

(2.29)

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

,

,

,

;

(2.30)

Они задаются следующим образом:

,

,

,

;

(2.31)

Уравнение Пуассона (2.29) должно быть модифицировано в соответствии с рассчитанными выше граничными значениями (2.31). После этого оно принимает следующий вид:

,

;

(2.32)

где:

Решение системы линейных уравнений

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

Пусть дана система из линейных уравнений:

;

(2.33)

где:

, , ;

Матрица может быть резделена на главную диагональ и верхнюю и нижнюю треугольные матрицы и

;

(2.34)

, , ;

Таким образом, система линейных уравнений может быть записана следующим образом:

;

(2.35)

где - фактор релаксации, константа, которая выбирается в зависимости от коэффициентов матрицы . Для задач вычислительной гидродинамики рекомендуется использовать значение [14].

Суть метода обратной релаксации заключается в итеративном поиске решения Для первой итерации дается первичная оценка значений вектора .Применительно к задаче решения уравнения Пуассона значение давлений в каждой ячейке может быть приравнено к атмосферному давлению на уровне моря (). Значение давления для каждой следующей итерации вычисляется следующим образом:

;

(2.36)

где:

- правая часть уравнения Пуассона (2.32) для ячейки

При каждой итерации высчитываетсяневязка (residual) вычислений по следующей формуле:

(2.37)

где выражается следующей формулой:

Существует два условия прекращения работы алгоритма:

Превышение значения максимального количества итераций ;

Достижение невязки вычислений заданной степени точности ().

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

(2.39)

Общая схема алгоритма

Общая схема алгоритма численного решения уравнений Навье-Стокса представлена в Приложение А. Схема алгоритма численного решения уравнений Навье-Стокса

Переход от двух измерений к трем измерениям

В трехмерном случае уравнения Навье-Стокса (1.5), (1.6) записываются следующим образом:

Уравнения движения:

Уравнение неразрывности:

где - Z-компонента вектора скорости.

Дискретизация уравнение Навье-Стокса теперь происходит в трехмерном прямоугольном параллелепипеде, ориентированном параллельно осям , и

,

(2.44)

Трехмерное пространство разбивается на маленьких прямоугольных параллелепипедов со сторонами и . Расположение переменных в разностной трехмерной сети изображены на Рис. 8.

Рис. 8. Расположение переменных в трехмерной ячейке

Граничные условия практически не подвергаются измерению при переходе к трем измерениям. Дискретизация членов уравнения Навье-Стокса производится аналогично двумерному случаю (2.4)_(2.13).

После дискретизации по времени получаются следующие уравнения движения:

;

(2.45)

где - Z-компонента вектора скорости в момент времени , а членаналогичен членам (2.27) и (2.28).

При объединении с уравнением неразрывности (2.43) получается трехмерное уравнение Пуассонадля давления в интервал времени:

;

(2.46)

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

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

Выбранные технологии

Для решения проблемы разработки под различные операционные системы Java был выбран в качестве языка программирования. Для создания пользовательского интерфейса, который на каждой операционной системе выглядел бы натурально, была выбрана библиотека пользовательского интерфейса Swing с бесплатными дополнениями внешнего вида «QuaquaLookandFeel»[15] для операционной системы Mac OS X и «JGoodiesLooks»[16] для операционных систем MicrosoftWindows. Также для создания меню были использованы бесплатные библиотеки «L2DProdCommonComponents»[17]и «JGoodiesForms»[18]. Для контроля всех зависимостейи сборки проекта под операционные системы MacOSXи MicrosoftWindow был использован фреймворкMaven[19].

В качестве инструмента визуализации используется графическая библиотека OpenGL версии 2.0. Для того, чтобы уделить большего внимания выполнению вычислительного модуля, было принято решение использовать готовый графический движок, совместимый с OpenGL и Java. В качестве такого движка был выбран JMonkeyEngine3[20].

В качествеIDEдля разработки приложения было использовано средство разработки IntelliJIdeaот компании JetBrains[21].Git[22]был использован в качестве системы контроля версий.

Алгоритм создания стартовых значений

Одной из сложностей при разработкепрограммы было задание начальных данных для алгоритма численного решения уравнений Навье-Стокса. Требовалось преобразовать трехмерную сцену, созданную с помощью jMonkeyEngine 3 в трехмерный массив ячеек, с которым работает алгоритм. Прямое преобразование (без отображения сцены) не представляется возможным, т.к. хранение трехмерной сцены jMonkeyEngine 3 осуществляется с помощью дерева объектов[23]. Было разработано следующее решение:

Пусть даны координаты двух точек

,

;

(3.1)

Эти точки задают прямоугольный параллелепипед, определяющий пространство эксперимента. Также известна сторона ячейки трехмерной разностной сетки - .

Сначала определяются переменные - размер разностной сеткиcучетом дополнительных двух рядов по каждой из координат для описания граничных условий:

;

(3.2)

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

Из центра ячейки пускается луч в направлении, параллельном положительному направлении оси . Возможности движка jMonkeyEngine3 позволяют определять координаты столкновения луча с трехмерным объектом. На основании этих данных формируются зоны жидкости и зоны препятствий.

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

Твердое тело - граничное условие свободного прилипания(2.15)

Граница пространства эксперимента - граничное условие свободного прилипания(2.16)

Место присоединения трубы - граничное условие свободного потока(2.17)

Структура файлов и каталогов

При создании проекта с именем в выбранной директории создается следующая иерархия каталоговРис. 9:

Рис. 9. Структура файлов и каталогов проекта SimulationTest

В файле, где - название проекта, хранятся общие настройки проекта, включающие в себя:

Название, дату создания проекта

Координаты двух точек, ограничивающих пространство эксперимента (3.1)

Информация об исследуемой сред

Длительность эксперимента

Фиксированный временной шаг , если отключено автоматическое определение временного шага

Начальная скорость потока из трубы

Сечение пространства эксперимента, если моделирование производится в двух измерениях

В каталогеassetsхранятся файлы, относящиеся к отображению 3D-сцены на движке jMonkeyEngine 3:

Файл solid.j3oопределяет геометрию и расположение в пространстве твердого тела

Файл flowSource.j3oопределяет геометрию и расположение в пространстве источника потока.

Данные файлы генерируются стандартным механизмом сохранения сцен движка jMonkeyEngine3. Для каждого класса объектов (твердого тела и источника потока) потребовалось реализовать интерфейса jme3.export.Savable[23].

По умолчанию модель твердого тела - сфера с радиусом 1 метр. Когда пользователь загружает свою модель твердого тела, то она также копируется в эту директорию. Трехмерная модель тела задается в формате Wavefront.OBJ [24] - одном из самых распространенных форматов представления моделей, который на данный момент поддерживается большим количеством 3D-редакторов [25]

В каталогеsimulationхранятся файлы, содержащие информацию о разностной сетке.Название файла задано следующей формулой:

;

(3.3)

где:

- название проекта;

- дата начала моделирования

- шаг по времени

Файл создается путем сериализации объекта классов model.solver.CellArray2Dи model.solver.CellArray3D. Для каждого класса был реализован интерфейс java.io.Serializable[26].

Для каждой ячейки хранятся следующие параметры:

Давление

Компоненты вектора скорости

Тип ячейки. Всего существует три типа ячеек:

Ячейка жидкости

Ячейка - препятствие

Ячейка, находящаяся в месте присоединения трубы

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

Визуализация результатов эксперимента

Визуализация результатов эксперимента представляет собой набор двумерных изображений. При моделировании двумерного случая создается одно изображение разностной сетки для каждого шага по времени. При моделировании трехмерного случая возможно построение проекций на координатные плоскости . В таком случае для каждого временного интервала создается изображений проекции на плоскость , изображений проекции на плоскость и изображений проекции на плоскость . Препятствие представлено черным цветом, место присоединения трубы - синим, а цвет ячейки с жидкостью представлен линейным градиентом от зеленого к красному (Рис. 10). Зеленый цвет соответствует давлению , а красный - давлению . Оба значения давления задаются пользователем.

Рис. 10. Картина распределения давления.

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

;

(3.4)

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

;

(3.5)

Интерфейс

Описание интерфейса программы и принципы работы с программой указаны в документе «Руководство оператора» (Приложение Д).

Заключение

Результатом работы является кроссплатформенное приложение, разработанное на языке Java, позволяющее получить картину распределения давлений и скоростей движения потока жидкости в исследуемом пространстве в рамках разработанной схемы эксперимента. Приложение было успешно протестировано как на ноутбуке под управлением MacOSX, так и на персональном компьютере под управлениемOSWindows. Для запуска моделирования пользователю требуется знать только общую схему эксперимента и несколько базовых понятий гидродинамики.

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

Основным направлением дальнейшейработы является усложнение модели, например:

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

Добавление разных моделей турбулентности.

Переход к модели сжимаемой жидкости. Данный переход кардинально изменит качество вычислений при высоких значениях скорости потока.

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

Список использованных источников

1. Bhaskaran Rajesh, Collins Lance Introduction to CFD Basics.

2. Autodesk, Inc. Программноеобеспечение Simulation // Autodesk. -- 14 02 2014 г.. -- http://www.autodesk.ru/products/autodesk-simulation-family/overview.

3. ANSYS ANSYS CFX // ANSYS. -- 14 02 2014 г.. -- http://www.ansys.com/Products/Simulation+Technology/Fluid+Dynamics/Fluid+Dynamics+Products/ANSYS+CFX.

4. Freistauer M Chapter 1. Basic Equations // Finite Volume and Finite Element Methods in CFD. -- Pargue : Charles University, 2007.

5. Foias C, Manley O, Rosa R, Temam R Navier-Stokes Equations and Turbulence. -- Cambridge : Cambridge University Press, 2001.

6. Griebel Michael, Dornseifer Thomas, Neunhoeffer Tilman Numerical Simulation in Fluid Dynamics. -- Society for Industrial and Applied Mathematics, 1998.

7. Smith Richard Laminar vs Turbulent Flow Over Airfoils // Symscape - Computational Fluid Dynamics Software for All. -- 2014. -- 23 05 2014 г.. -- http://www.symscape.com/blog/laminar-vs-turbulent-flow-over-airfoils.

8. Falkovich Gregory Fluid Mechanics. A Short Course for Physicists. -- Cambridge : Cambridge University Press, 2011.

9. Fefferman C. Existence and smoothness of the Navier-Stokes equation // Clay Millenium Problems. -- 2000.

10. Jaffe Arthur M. The Millenuim Grand Challenge in Mathematics // Notices of the American Mathematical Society. -- June/July 2006 г.. -- C. 652-660.

11. Rogers David F. Two exact solutions of the Navier-Stokes equations // Laminar Flow Analysis / авт. книги Rogers David F.. -- Cambridge : Cambridge University Press, 1992.

12. Stam Jos Proceedings of the Game Development Conference // Real-Time Fluid Dynamics for Games. -- 2003.

13. Zureks Example of 2D mesh // Wikipedia Commons. -- 2007. -- http://upload.wikimedia.org/wikipedia/commons/8/80/Example_of_2D_mesh.png.

14. Stoer J, Bulirsch R Introduction to Numerical Analysis. -- Berlin : Springer-Verlag, 1980.

15. Randelshofer Werner Quaqua Look and Feel. -- 16 02 2014 г.. -- http://www.randelshofer.ch/quaqua/.

16. JGoodies JGoodies Looks // JGoodies. -- 2014. -- 02 03 2014 г.. -- http://www.jgoodies.com/freeware/libraries/looks/.

17. L2FProd.com L2Dprod.com - Common Components. -- 2007. -- 12 03 2014 г.. -- http://www.l2fprod.com/common/.

18. JGoodies JGoodies FormLayout // JGoodies. -- 2014. -- 02 03 2014 г.. -- http://www.jgoodies.com/freeware/libraries/forms/.

19. The Apache Software Foundation Maven - Welcome to Apache Maven // Apache Maven Project. -- 2014. -- 15 03 2014 г.. -- http://maven.apache.org/.

20. jMonkeyEngine Introduction - jMonkeyEngine 3.0 // jMonkeyEngine. -- 2014. -- 12 02 2014 г.. -- http://jmonkeyengine.org/features/introduction/.

21. JetBrains s.r.o. IntelliJ IDEA - The Best Java and Polyglot IDE // JetBrains. -- 2014. -- 01 04 2014 г.. -- http://www.jetbrains.com/idea/.

22. Software Freedom Conservancy About - Git // Git. -- 2014. -- 02 04 2014 г.. -- http://git-scm.com/about.

23. jMonkeyEngine jMonkeyEngine Documentation. -- 2014. -- 15 03 2014 г.. -- http://hub.jmonkeyengine.org/wiki/doku.php/Documentation.

24. Murray D. James, van Ryper William Encyclopedia of Graphics File Formats: The Complete Reference on CD-ROM with Links to Internet Resources. -- O'Reily Media, 1996.

25. Fileinfo.com .OBJ File Extension // Fileinfo.com. -- 2014. -- 22 05 2014 г.. -- http://www.fileinfo.com/extension/obj.

Приложение

Схема алгоритма численного решения уравнений Навье-Стокса

Размещено на Allbest.ru


Подобные документы

  • Численные методы решения задачи Коши для обыкновенных дифференциальных уравнений: Эйлера, Рунге-Кутта, Адамса и Рунге. Техники приближенного решения данных уравнений: метод конечных разностей, разностной прогонки, коллокаций; анализ результатов.

    курсовая работа [532,9 K], добавлен 14.01.2014

  • Основные численные методы моделирования. Понятие метода конечных элементов. Описание основных типов конечных элементов и построение сетки. Реализация модели конструкции в пакете ANSYS, на языке программирования C#. Реализация интерфейса пользователя.

    курсовая работа [2,3 M], добавлен 22.01.2016

  • Численные методы решения нелинейных уравнений, систем линейных и нелинейных алгебраических уравнений, дифференциальных уравнений, определенных интегралов. Методы аппроксимации дискретных функций и методы решения задач линейного программирования.

    методичка [185,7 K], добавлен 18.12.2014

  • Метод половинного деления как один из методов решения нелинейных уравнений, его основа на последовательном сужении интервала, содержащего единственный корень уравнения. Алгоритм решения задачи. Описание программы, структура входных и выходных данных.

    лабораторная работа [454,1 K], добавлен 09.11.2012

  • Основные этапы математического моделирования. Метод Эйлера как наиболее простой численный метод решения обыкновенных дифференциальных уравнений. Написание компьютерной программы, которая позволит изучать графики системы дифференциальных уравнений.

    курсовая работа [1,9 M], добавлен 05.01.2013

  • Программа вычисления интеграла методом прямоугольников. Решение задачи Коши для дифференциальных уравнений. Модифицированный метод Эйлера. Методы решения краевой задачи для обыкновенного дифференциального уравнения. Задачи линейного программирования.

    методичка [85,2 K], добавлен 18.12.2014

  • Решение дифференциальных уравнений с частными производными. Метод конечных элементов, история развития, преимущества и недостатки. История разработки программной системы. Задачи, решаемые с помощью программного комплекса, области применения ANSYS.

    презентация [1,7 M], добавлен 07.03.2013

  • Упругие волны, волновое уравнение, дифракция волн. Метод коллокаций, конечных и граничных элементов. Методы возбуждения ультразвуковых волн в объекте. Численный метод решения дифференциальных уравнений с частными производными. Уменьшение зоны смещения.

    дипломная работа [1,4 M], добавлен 14.10.2013

  • Изучение численных методов решения нелинейных уравнений. Построение годографа АФЧХ, графиков АЧХ и ФЧХ с указанием частот. Практическое изучение численных методов интегрирования дифференциальных уравнений высокого порядка, метод Рунге-Кутта 5-го порядка.

    курсовая работа [398,3 K], добавлен 16.06.2009

  • Основные подходы к математическому моделированию решений дифференциальных краевых задач. Метод конечных разностей и элементов. Графическая схема алгоритма метода прогонки, программное обеспечение. Оператор конвективного переноса и одномерность задачи.

    курсовая работа [999,6 K], добавлен 22.12.2015

Работы в архивах красиво оформлены согласно требованиям ВУЗов и содержат рисунки, диаграммы, формулы и т.д.
PPT, PPTX и PDF-файлы представлены только в архивах.
Рекомендуем скачать работу.