ФЕДЕРАЛЬНОЕ ГОСУДАРСТВЕННОЕ БЮДЖЕТНОЕ ОБРАЗОВАТЕЛЬНОЕ УЧРЕЖДЕНИЕ ВЫСШЕГО ПРОФЕССИОНАЛЬНО ОБРАЗОВАНИЯ «МОСКОВСКИЙ

advertisement
ФЕДЕРАЛЬНОЕ ГОСУДАРСТВЕННОЕ БЮДЖЕТНОЕ ОБРАЗОВАТЕЛЬНОЕ
УЧРЕЖДЕНИЕ ВЫСШЕГО ПРОФЕССИОНАЛЬНО ОБРАЗОВАНИЯ «МОСКОВСКИЙ
ГОСУДАРСТВЕННЫЙ ИНДУСТРИАЛЬНЫЙ УНИВЕРСИТЕТ»
(ФГБОУ ВПО «МГИУ»)
Д.П. Алексеев, А.С. Кубенин, А.Ю. Чулюнин
ПРИКЛАДНЫЕ ПРОГРАММНЫЕ
КОМПЛЕКСЫ ДЛЯ АНАЛИЗА
ИНЖЕНЕРНЫХ ЗАДАЧ
УЧЕБНО-МЕТОДИЧЕСКОЕ ПОСОБИЕ
Москва, 2012
1
УДК 681.3
Рецензент: В.И. Бажанов
Авторский коллектив: Д. П. Алексеев, А. С. Кубенин, А. Ю.
Чулюнин
Прикладные программные комплексы для анализа инженерных задач: учебно-методическое пособие. – М.:
МГИУ, 2012. – 89 с.
В пособии приводятся основные сведения о технологии численного моделирования гидрогазодинамических процессов. Описываются ведущие программные комплексы для решения задач
тепломассопереноса. На примере модельных задач рассматриваются основные принципы работы в программных комплексах Ansys-CFX, STAR-CCM+, OpenFoam.
Предназначено для студентов, обучающихся по направлениям «Энергетическое машиностроение» и «Математическое обеспечение и администрирование информационных систем», а также
аспирантам, обучающимся по специальности «Математическое
моделирование, численные методы и комплексы программ»,
«Гидравлические машины и гидропневмоагрегаты», а также аспирантов, обучающихся по специальности «Математическое моделирование, численные методы и комплексы программ», «Гидравлические машины и гидропневмоагрегаты».
2
СОДЕРЖАНИЕ
Введение
1. Обзор прикладных программных систем инженерного анализа
2. Программный пакет STAR-CCM+
2.1. Рабочий интерфейс STAR-CCM+
2.2. Задача о ламинарном пограничном слое
3. Программный пакет Ansys CFX
3.1 Описание пакета Ansys CFX
3.2. Пример работы с AnsysCFX
4. Программный пакет OpenFOAM
4.1.Организация решения задачи в OpenFOAM
4.2.Генерация расчетной сетки с использованием утилиты BlockMesh
4.3. Задача о ламинарном обтекании квадратного цилиндра потоком несжимаемой жидкости
Заключение
Список используемых источников
Приложение 1. Содержимоефайла«blockMeshDict»
Приложение 2. Содержимоефайла«controlDict»
Приложение 3. Содержимое файла «p»
Приложение 4. Содержимое файла «U»
Приложение 5. Содержимое файла «transportProperties»
Приложение 6. Содержимое файла «fvSchemes»
Приложение 7. Содержимое файла «fvSolution»
Приложение 8. Содержимое файла «decomposeParDict»
4
6
11
12
17
40
40
43
63
64
65
68
78
79
80
83
84
85
86
87
88
89
3
Введение
Ещё совсем недавно, в конце прошлого - начале нынешнего
века, в любой проектной организации или проектноконструкторском подразделении промышленного предприятия
можно было увидеть огромные залы, в которых стройными рядами стояли кульманы. За каждым кульманом с карандашом и резинкой в руках трудился инженер-конструктор, непременно облачённый в белый халат. Кульман - это большая чертёжная доска,
установленная на стойках и снабжённая специальными приспособлениями, обеспечивающими перемещение по плоскости доски
двух линеек, закреплённых на градуированном транспортире.
Линейки могли фиксироваться в любом угловом положении, а
сама чертёжная доска могла занимать любое положение от вертикального до горизонтального. В совокупности с различными
циркулями и лекалами всё это позволяло чертёжнику создавать
то, что называется чертёжно-конструкторской документацией.
Сегодня эти залы удобным образом разделены невысокими
иногда в той или иной мере застеклёнными перегородками, создающими некие индивидуальные пространства, в которых располагаются рабочие столы с персональными компьютерами. Эти
удобно расположенные рабочие пространства с компьютерами,
на которых установлено соответствующее программное обеспечение, являются сегодня рабочим местом современного специалиста, участвующего в создании высокотехнологичных технических изделиях.
Сначала после определения облика изделия на этапе технических предложений и эскизного проекта к работе над техническим
проектом приступают конструктора, в распоряжении которых
находятся прикладные программные системы трёхмерного проектирования (CAD-системы). Начинается создание виртуального
изделия. Оно пока не наполнено никакими физическими свойствами. Это просто некоторый согласованный в размерах набор
сложных геометрических форм.
Приведём некоторые хорошо известные и широко используемые у нас в стране CAD пакеты. Это AutoCAD, ProEngineer,
SolidWorks, Unigraphics, Catia, Кредо и др. Все пакеты трёхмерного проектирования обладают развитым «дружественным»
интерфейсом и мощными аналитическими возможностями, кото-
4
рые позволяют создавать чертёжно-конструкторскую документацию, отвечающую соответствующим стандартам и требованиям.
Взаимодействие программных продуктов, реализующих компьютерные технологии проектирования, инженерного анализа и
разработки технологического процесса принято обозначать, как
технологическую цепочку CAD/CAE/CAM. Эта технологическая
цепочка представляет собой системы взаимосвязанных компьютерных технологий, обеспечивающих автоматизацию всех этапов
создания новых изделий промышленности от проектных разработок и анализа характеристик проектируемых изделий до организации технологического процесса их изготовления.
Второй этап работ по выполнению технического проекта в
рамках CAD/CAE/CAMтехнологий - анализ рабочих характеристик, проведение виртуальных испытаний и оптимизация конструктивных параметров изделий обычно выполняется в расчётных отделах конструкторских бюро предприятий или проектных
организаций. Средством решения соответствующих задач при
выполнении этих работ являются различные прикладные программные системы инженерного анализа. Более подробно с этими системами, их структурой, математическими моделями и вычислительными методами можно познакомиться по материалам,
содержащимся в следующих главах.
5
1. ОБЗОР ПРИКЛАДНЫХ ПРОГРАММНЫХ СИСТЕМ ИНЖЕНЕРНОГО АНАЛИЗА
В настоящее время сложилась отдельная отрасль по разработке профессиональных коммерческих программных продуктов,
реализующих компьютерные технологии инженерного анализа.
Сложился соответствующий рынок программных продуктов. Развивается и программное обеспечение, основанное на идеологии
свободного доступа.
Разработчиками таких программных продуктов, предназначенных для инженерного анализа в различных областях знаний,
являются крупные международные компании, объединяющие сообщества учёных, математиков, программистов. Перечень прикладных программных систем инженерного анализа представляет
собой достаточно внушительный список. Представим в качестве
примера четыре таких программных комплекса, относящихся к
группе так называемых пакетов «тяжёлого класса», выполненных
по технологии «HighEnd».
Это пакеты прикладных программ «ANSYS», «LS-DYNA»,
«ADAMS» и STAR-CCM+», относящиеся к наиболее известным в
своём классе пакетам.
Дадим краткую характеристику перечисленным пакетам прикладных программ (ППП).
Мультифизичный пакет ANSYS предназначен для структурного анализа сложных конструкций, испытывающих комплексное
нагружение: механическое, тепловое, гидродинамическое и электромагнитное. Под структурным анализом понимается анализ поведения конструкции, возникающих в ней внутренних напряжений и деформаций, как при статической, так и при динамической
нагрузке. Пакет ANSYS позволяет осуществлять модальный анализ конструкций при различных схемах силового нагружения.
Математической основой пакета являются уравнения потенциала. Это уравнения для деформируемого твёрдого тела, уравнения теплопроводности и уравнения Максвелла, лежащие в основе соответственно структурного, теплофизического и электромагнитного модуля.
Электромагнитный модуль также позволяет решать широкий
круг специфических задач. Это определение характеристик стационарных и нестационарных электромагнитных полей, порож-
6
даемых при работе элементов электрических цепей (трансформаторов, конденсаторов и др). Это анализ работы электрических
машин. В электромагнитном модуле предусмотрена возможность
учёта нагрева проводящих сред за счёт действия токов Фуко.
Предусмотрена также возможность анализа частотных характеристик электрических цепей. И многое другое.
В гидродинамическом модуле FLOTRAN решаются уравнения Навье-Стокса для ламинарных режимов течения и уравнения
Рейнольдса для турбулентных режимов[1]. Для численного интегрирования дифференциальных уравнений в частных производных используется метод конечного элемента. Аббревиатура ANSYS содержит в себе два слова Analysis Systems.
Отметим также, что все модули пакета могут работать в
мультифизичном режиме, так и независимо. Так, например, с помощью пакета ANSYS можно решать задачи о поведении конструкции элементов атомных станций, испытывающих комплексное воздействие со стороны горячей жидкости и её паров,
электромагнитных полей и т.п.
Разработчиком пакета является международная корпорация
ANSYS. Информацию об этой компании и о её программных
продуктах можно найти на сайте www.ansys.com.
В последнее время корпорация ANSYS приобрела и развивает пакеты CFX и Fluent, работающие в области анализа гидрогазодинамических процессов и процессов тепломассообмена.
Анализ высоконелинейных и быстропротекающих процессов
в твёрдых телах и в жидких средах позволяет проводить другой
пакет LS-DYNA. Пакет LS-DYNA позволяет моделировать пластические деформации в технологических процессах (прокатка,
обработка давлением и т.п.), взрывные процессы, ударные волны
в твёрдом теле и жидкой среде, образование отколов и трещин и
другие весьма сложные физико-механические процессы. Библиотека материалов в пакете LS-DYNA содержит реологические законы более чем для двухсот материалов, что обеспечивает широчайший круг практических приложений пакета.
Моделирование произвольного движения сложных механических систем позволяет осуществлять пакет ADAMS
(www.adams.com).охватывающий около 60% мирового рынка в
своей области. Математической основой пакета ADAMS является
7
система обыкновенных дифференциальных уравнений, описывающих движение в пространстве твёрдых тел с учётом их связей,
имеющих различную природу. С помощью пакета ADAMS можно изучать поведение практически любой механической системы.
Это работа элементов технических устройств, например, трансмиссии автомобиля или поршневой группы двигателя внутреннего сгорания, это работа механизмов подъёмного крана и экскаватора, это моделирование процесса раскрытия солнечных антенн космического аппарата в безвоздушном пространстве и многое, многое другое.
Одним из лидеров в области гидрогазодинамического анализа и моделирования процессов тепломассопереноса является пакет STAR-CD/Star-CCM+(www.cd-adapco.com).Разработчиком
пакет является международная компания cd-adapco. В основе пакетаSTAR-CD/Star-CCM+лежит численное интегрирование уравнений Навье-Стокса для ламинарных течений и осреднённые по
Рейнольдсу уравнения при анализе турбулентных течений. Для
замыкания уравнений Рейнольдса используются различные полуэмпирические модели турбулентности. Пакет содержит также
множество моделей различных физико-химических процессов,
что обеспечивает весьма широкий спектр приложений в различных областях промышленности при решении многих инженерных и природопользовательских задач.
Для интегрирования исходных уравнений в пакете STARCD/Star-CCM+используются конечно-разностные схемы, построенные на основе метода контрольного объёма. Реализация этих
схем осуществляется на основе SIMPLE-алгоритмов коррекции
давления[2].
В заключение представим некоторые широко используемые в
промышленности отечественные разработки в области компьютерного анализа гидрогазодинамических процессов и процессов
тепломассопереноса. Это коммерческие пакеты GasDynamicsTool и FlowVision, а также авторский пакет VP2/3, используемый его разработчиками для проведения широкого спектра расчётов по заказам промышленности.
Пакет GDT разрабатывается и поддерживается компанией
GDT SoftwareGroup(г. Тула), основанной на базе Тульского государственного университета. Он предназначен для численного
8
моделирования нестационарных ударноволновых газодинамических процессов, включая горение и детонацию.
Течение невязкого сжимаемого газа описывается трёхмерными нестационарными уравнениями Эйлера с уравнением состояния идеального газа. Для описания вязких течений используются уравнения Навье-Стокса. Реализованы различные подмодели, позволяющие применять пакет для исследования течений
многофазных сред и специфических физико-химических процессов.
Для численного интегрирования уравнений используется явная двухшаговая схема модифицированного метода крупных частиц. Пакет характеризуется высокой совместимостью и минимальными системными требованиями.
Пакет FlowVision разрабатывается и поддерживается компанией ТЕСИС (г. Москва). В пакете используется набор моделей
течения жидкости, описываемых уравнениями Навье-Стокса, записанных в различных приближениях, в той или иной степени
учитывающих сжимаемость среды. Для моделирования турбулентных течений в приближении Рейнольдса в пакете используется ряд полуэмпирических моделей турбулентности.
Для разностной аппроксимации исходных уравнений в пакете FlowVision используется метод контрольного объёма. Разностные уравнения имеют второй порядок аппроксимации. Алгоритм
разрешения системы разностных уравнений основан на описанном в работах академика О.М. Белоцерковского проекционном
методе MAC[7], использующем расщепление по физическим
процессам.FlowVision сертифицирован Госстандартом России.
Пакет FlowVision является менее универсальным пакетом,
чем представленные выше пакеты STAR-CD, CFX и Fluent, однако он существенно проще в освоении и менее требователен к вычислительным ресурсам. В тоже время, благодаря достаточно
большому спектру включённых в него моделей он охватывает
весьма широкий круг приложений.
Пакет VP2/3, разрабатывается и активно развиваемого научной группой профессора С.А. Исаева (Санкт-Петербургский университет гражданской авиации)[2]. Пакет предназначен для численного моделирования многомерных течений вязкой несжимаемой жидкости и вихревого теплообмена в многосвязных областях
9
криволинейной формы, с использованием пересекающихся,
скользящих и вращающихся структурированных сеток. Последовательное применение в данном пакете многоблочных вычислительных технологий (МВТ) позволяет даже на однопроцессорных
компьютерах средней мощности рассчитывать с приемлемой для
практики точностью характеристики турбулентных пространственных стационарных отрывных и плоских нестационарных
вихревых течений в многосвязных областях сложной геометрии.
Математической основой пакета служит решение уравнений
Навье-Стокса и Рейнольдса, замкнутых в последнем случае с помощью полуэмпирической дифференциальной модели переноса
сдвиговых напряжений (по Ментеру). Применяется конечнообъемная неявная процедура на основе расщепления по физическим процессам (предиктор-корректор) типа SIMPLECс элементами управления вычислительным процессом.
На протяжении последних 10 лет пакет интенсивно совершенствуется и тестируется на многих задачах отрывного обтекания тел в вязкой жидкости, имеется обширная литература, в которой детально отражены результаты этого тестирования.
Все приведённые здесь материалы по пакетам STAR-CD и
ANSYS используются в рамках академической лицензии, предоставленной Московскому государственному индустриальному
университету разработчиком пакета компанией CD-adapco и
компанией Ansys.
10
2. ПРОГРАММНЫЙ ПАКЕТ STAR-CCM+
На сегодняшний день одним из лидеров на рынке коммерческих прикладных пакетов инженерного анализа является пакет
Star-CCM+. Пакет разрабатывает международная компания CDadapco Group, включающая британскую фирму Computational Dynamic Limited, которая базируется в Лондоне и американскую
компанию Adapco (Нью-Йорк). Компания CD-adapco Group имеет офисы по всему миру, начиная от Южной и Северной Америки и заканчивая Кореей и Японией, и занимается производством
инструментов в области CAE (Computer Aided Engineering) вот
уже более 25 лет. Прародителем пакета Star-CCM+ служит не
менее известный набор программ Star-CD. Аббревиатура Star
расшифровывается как Simulation of Turbulent flow in Arbitrary
Regions (моделирование турбулентных течений в произвольных
областях).
Продукция компании CD-adapco Group предназначена для
компьютерного моделирования физических процессов в таких
областях, как массо- и теплообмен, многофазные и многокомпонентные течения, химические реакции, горение, кавитация, излучение, моделирование теплообменников и вентиляторов, электромагнитные явления (моделирование асинхронных двигателей).
Пакет Star-CCM+ является современным инструментом для
решения задач механики сплошных сред [6]. К ключевым особенностям Star-CCM+ относится мощный автоматический генератор расчетных сеток и возможность использовать расчетные
ячейки различной формы (тетроэдральные, призаматические,
многогранные). Встроенные сеточный генератор позволяет на часы сокращать время решения задач. А многогранные ячейки требуют меньший объем памяти и также позволяют сократить время
расчета. Кроме того Star-CCM+ отличается простотой использования, интуитивно понятным интерфейсом и обладает обширными средствами визуализации и распараллеливания.
Как любая программа Star-CCM+ обладает своими плюсами
и минусами. При переходе от Star-CD к Star-CCM+ разработчики
следовали философии универсализма и возможности использовать пакет для проведения быстрых и качественных коммерче-
11
ских расчетов. Следствием этого явился ряд позитивных характеристик программного комплекса. Возможность наблюдения за
расчетом в режиме онлайн позволяет контролировать ход решения задачи и вносить своевременные изменения. Мультиоконный
режим позволяет удобно и быстро переключаться между различными окнами вывода информации. Функционал пакета представлен в виде дерева функций с возможностью их добавления и
удаления.
2.1. Рабочий интерфейс STAR-CCM+
Одной из особенностей пакета Star-CCM+ является
универсализм его интерфейса. Т.е. для того, чтобы решить какую
либо задачу не нужно выходить за рамки предложенного
интерфейса, как это происходит при работе, например, в среде
Ansys. В Star-CCM+ препроцессор, решатель и постпроцессор
объединены в один общий интерфейс. Структурно этот
интерфейс можно представить в виде экрана, состоящего из трех
графических окон, расположение которых друг относительно
друга можно изменять. В одном из окон расположено дерево
функций пакета, которое является основным инструментом при
работе с пакетом. По аналогии с обычным деревом каталогов,
здесь функции представлены в виде папок и их содержимых с
возможностью создания, удаления, копирования и перемещения.
Каждая папка представляет собой набор тех или иных функций.
Например, модели движения тел и модели, описывающие
физические процессы, наборы инструментов для генерации
расчетной сетки и т.д. При выборе той или иной модели ее
настройки отображаются в специальном окне свойств под
деревом каталогов. Другое окно предназначено для вывода
информации о текущих действиях, производимых программой.
Например, там может отображаться информация о процессе
построения расчетной сетки, количестве созданных ячеек, об
ошибках, возникающих в процессе работы пакета. Третье окно
необходимо для отображения разного рода графической
информации. Например это может быть изображение того
объекта, с которым происходит работа в пакете, вывод
разнообразных графиков и т.п. Это графическое окно работает в
12
мультирежиме, благодаря чему можно создавать новые окна и
переключаться между ними с помощью вкладок.
Функционал пакета можно классически представить в виде
трех составляющих: препроцессор, решатель, постпроцессор.
В препроцессоре происходит формирование сеточных,
физических моделей и разнообразных настроек процесса
решения задачи. Здесь можно задавать форму и размер
используемых при генерации расчетной сетки ячеек
(тетроэдральные, призматические, многогранные), задавать
настройки сетки для пограничного слоя, производить отладку и
исправление сформированной сеточной модели. В Star-CCM+
формирование расчетной сетки происходит в два этапа. На
первом этапе на поверхностях исследуемого геометрического
объекта генерируется поверхностная сетка. Для работы с
поверхностными
сетками
существуют
два
генератора:
SurfaceWrapper и SurfaceRemesher. Первый необходим в случаях,
когда требуется автоматическое исправление поверхности, т. е.
имеющаяся поверхностная сетка является проблемной и
содержит серьезные ошибки, не позволяющие создать
качественную
объемную
сеточную
модель.
Генератор
SurfaceRemesher используется во всех остальных случаях. Затем
на основе поверхностной сетки производится автоматическое
формирование объемной сетки с ячейками заданной формы. Для
этого
используются
вспомогательные
генераторы:
PolyhedralMesher (многогранные ячейки), TetrahedralMesher
(тетроэдральные ячейки), ThinMesher (ячейки для моделирования
пленочных поверхностей), Trimmer (гексоэдральные ячейки).
При выборе основных моделей всплывают окна с моделями,
которые можно выбрать опционально.
Решатель осуществляет решение задачи, т.е. процесс расчета
выбранных физических моделей. Основой решателя является
метод контрольного объема, с помощью которого происходит
дискретизация
уравнений
(переход
от
системы
дифференциальных уравнений к системе алгебраических
уравнений), описывающих выбранные физические модели.
Сформированная система алгебраических уравнений решается
известным методом AMG (Algebraic MultiGrid). Решатель
13
обладает широким набором настроек (критерии сходимости,
порядок точности, разностные схемы).
Постпроцессор необходим для обработки результатов
расчета и содержит инструменты для визуализации решения
(скалярные и векторные поля параметров потока, линии тока),
построение графиков и т.д.
Кроме того, с версии 5 в пакет Star-CCM+ внедрен и
постепенно
развивается
собственный
CAD-инструмент
(Computer-AidedDesign/Система
автоматизированного
проектирования), позволяющий редактировать имеющиеся и
создавать новые геометрические модели объектов, подлежащих
расчету.
Как было упомянуто выше, интерфейс Star-CCM+
представляет собой совместное расположение трех графических
окон, одно из которых отвечает за инструментарий программы,
другое за вывод графической информации, третье - за вывод
вспомогательной
информации
о
текущих
процессах,
выполняемых программой. Общий вид интерфейса показан на
рис. 2.1
Рис. 2.1. Верхняя панель меню
Верхняя панель меню содержит следующие элементы: File, Edit,
Mesh, Solution, Tools, Window, Help. Здесь распологаются
стандартные
функции,
характерные
для
большинства
компьютерных программ. В меню File есть функции создания
нового проекта (задачи), открытия сохраненных проектов,
сохранения задач, а также, импорта в открытый проект внешних
сеточных и геометрических моделей. Пакет Star-CCM+
поддерживает множества CAD-форматов (stl, x_b, x_t, iges и др.).
Кроме того, в этом меню находится функция автосохранения
задачи в процессе расчета через определенный интервал. В меню
14
Mesh представлены инструменты для подготовки к процессу
генерации сетки (InitializeMeshing), начала процесса генерации
поверхностной
(GenerateSurfaceMesh)
и
объемной
(GenerateVolumeMesh) сеточных моделей и их удаления
(ClearGeneratedMeshes). Во вкладке Solution расположены
инструменты
управления
процессом
расчета
задачи.
Предоставляется возможность запуска задачи на счет (Run), а
также расчет одной (Step) или нескольких итераций (StepControl).
Вкладка Window служит для манипулирования окнами
интерфейса.
Над описанной панелью располагается панель с кнопками,
дублирующими ее основные функции. По умолчанию, слева
направо расположены кнопки: создание нового проекта,
открытие сохраненного проекта, сохранить, сохранить как...,
копировать, вставить, функции управления макросами, импорт
поверхностной сетки, функция исправления сеточных моделей и
др. При наведении указателем мыши на кнопку всплывает
название функции, что позволяет быстро ориентироваться среди
большого количества функций пакета.
Ниже и левее находится окно с деревом функций (рис. 2.2).
Рис. 2.2. Окно с деревом функций
15
Кромки окна поддерживают взаимодействие с курсором
мыши, т.е. можно перетаскивать его и изменять размеры. Окно
работает по принципу дерева каталогов с возможностью,
раскрытия каталогов, копирования их элементов и т. д. Дерево
имеет три основных папки с различным набором инструментов
(рис. 2.2). Папка Geometry содержит функции для работы с
геометрией исследуемых объектов. Она предоставляет
возможность редактирования существующих и создания новых
CAD-объектов. Принцип работы с деревом функций таков, что
при наведении курсором мыши на какую-либо папку и нажатием
правой клавиши появляется возможность создать подкаталог с
какими-либо функциями. Например, если кликнуть правой
кнопкой мыши на папке 3D-CAD Models и выбрать New, то
откроется окно с набором инструментов для создания
трехмерных геометрических объектов.
Рис. 2.3. Папка 3D-CADModels, окно Свойств и окно вывода
вспомогательной информации
16
При закрытии этого окна, созданная трехмерная модель
объекта будет находиться внутри папки 3D-CAD Models (рис.
2.3). По такому принципу формируются сеточная и физическая
модели для решения поставленной задачи. Для этого
предназначены следующие две папки: Continua и Regions. В
папке Continua формируются сеточные (MeshContinuum) и
физические (PhysicsContinuum) модели, выбрать которые можно
правой кнопкой мыши. После выбора соотвествующая папка
(Mesh 1 или Physics 1) появится внутри папки Continua. Можно
создать несколько таких папок в случаях, когда это нужно. Это
может быть необходимость использовать две разных физических
среды при решении задачи, например вода и воздух, или
необходимость использовать разную форму ячеек расчетной
сетки в разных областях объекта. В папке Mesh 1 можно задавать
различные
настройки
будущей
сеточной
модели
(напримерразмер ячеек, толщину пограничного слоя и др.). При
выборе тех или иных настроек их свойства отображаются в
соответствующем окне (Properties) под окном дерева функций
(рис. 2.3). В нем же вводится размер ячеек и прочие числовые
данные. Папка Regions предназначена для задания граничных
условий (ГУ) на поверхностях исследуемого объекта.
Правее от окна с деревом функций расположено окно вывода
графической информации, а под ним – окно для вывода
вспомогательной информации о процессе работы программы
(рис. 2.3).
2.2. Задача о ламинарном пограничном слое
Как было упомянуто выше, такие пакеты инженерного анализа как Star-CCM+, AnsysCFX и другие используются для решения задач во многих областях науки и техники. Рассмотрим работу в среде пакета Star-CCM+ на примере решения задачи о ламинарном пограничном слое, формирующемся при движении вязкой несжимаемой жидкости вдоль пластины [1].
Поток воды набегает со скоростью 0.01 м/сна плоскую пластину длиной 0.36 м. При обтекании ламинарным потоком воды
данной пластины на ее поверхности образуется ламинарный пограничный слой. Этот пограничный слой растет по длине пластины до некоторого значения, которое с определенными допущениями можно определить по аналитическим формулам. В задаче
17
необходимо получить векторные и скалярные поля скорости и
давления в области обтекания пластины, а также построить профиль скорости в образовавшемся ламинарном пограничном слое
и определить его толщину. Значения параметров, определенные в
cfd-расчете, необходимо сравнить с результатами аналитических
расчетов.
Решение поставленной задачи (как и любой cfd-задачи) можно разбить на несколько этапов:







Формирование расчетной области
Создание геометрической модели расчетной области
Создание сеточной модели расчетной области
Создание физической модели расчетной области
Задание параметров решателя
Проведение расчета задачи
Обработка результатов расчета
На первом этапе необходимо провести формирование расчетной области, т.е. определится с размерами расчетной области,
и изобразить ее схематически; определить граничные и начальные условия, которые будут использоваться при решении задачи;
определить форму ячеек и их количество в расчетной области.
На втором этапе необходимо создать геометрическую (твердотельную) модель сформированной расчетной области. Ее можно сделать в одном из специализированных cad-пакетов (например, SolidWorks), либо использовать средства пакета Star-CCM+.
Встроенный CAD-инструмент хоть и уступает профессиональным конструкторским программам, но, тем не менее, позволяет
во многих случаях создавать необходимые трехмерные объекты.
Создание сеточной и физической моделей подразумевает выбор и задание соответствующих параметров для сеточного генератора, а также выбор моделей, описывающих моделируемый
процесс, выбор начальных и граничных условий.
Затем необходимо определиться с параметрами решателя.
Здесь можно выбрать схемы, по которым будут дискретизироваться дифференциальные уравнения; задать шаг по времени в
случае решения нестационарного задачи; поменять параметры
релаксации, с помощью которых можно ускорить сходимость
решения и т.п.
18
На этапе расчета можно отслеживать процесс решения задачи
с помощью соответствующих инструментов. Так, например, в
случае нестационарной задачи можно наблюдать за изменением
структуры течения на каждом временном шаге. Кроме того, можно отслеживать изменения определенных параметров моделируемого процесса в виде графических зависимостей и пр.
Запустим программу Star-CCM+, сделав двойной клик левой
кнопкой мыши по соответствующему ярлыку на Рабочем столе
Windows. В появившемся интерфейсе необходимо открыть новый
сеанс работы (создать новую задачу). Для этого выбираем в верхней панели File>NewSimulation. Появится окно, показанное на
рис. 2.4.
Рис. 2.4. Создание нового сеанса
19
В поле RunMode нужно выбрать Parallel в случае если нужно
решать задачу на двух или более ядрах процессора, в противном
случае выбираем Serial. Нажимаем OK. Новая сессия содержит
четыре основных каталога функций. Открываем папку Geometry
(рис. 2.5).
Рис. 2.5. Создание геометрической модели. Папка Geometry
Правой кнопкой мыши кликаем на папке 3D-CADModels и выбираем New. Таким образом мы загрузим встроенный CADинтерфейс (Computer-AidedDesign/интерфейс системы автоматизированного проектирования) для создания трехмерной модели расчетной области (рис. 2.6).
20
Рис. 2.6.CAD-интерфейс
Теперь нам нужно выбрать плоскость, в которой мы будем строить двумерный эскиз нашей расчетной области. Правой кнопкой
кликаем на плоскости XY и выбираем CreateSketch. На появившейся сетке можно рисовать эскиз соответствующей формы, а
левее находится окно с набором разных инструментов для рисования (рис. 2.7).
Рис. 2.7. Окно инструментов для работы с эскизом
21
В поле Create Sketch Entities щелкаем левой кнопкой по
функции Create line и создаем прямоугольник необходимых размеров, как показано на рис. 2.8
Рис. 2.8 Эскиз расчетной области
При этом в поле Line Properties вводим поочередно координаты начала и конца каждой линии прямоугольника. Для простоты работы можно начертить прямоугольник любого размера и
нажать кнопку ESC. После чего, выбирая каждую прямую отдельно, зададим координаты ее начала и конца. После чего жмем
OK. В папке Features можно увидеть созданный эскиз. Теперь
необходимо создать трехмерную модель нарисованной области,
вытянув ее в направлении оси Z. Для этого кликаем правой кнопкой на эскизе и выбираем Create Extrude. В появившемся окне в
поле Distance вводим 0.00075 и нажимаем OK (рис. 2.9).
22
Рис.2.9. Окно с инструментами для создания 3D-модели
Созданную трехмерную геометрическую модель расчетной
области можно повращать и посмотреть, как она выглядит. Вращение осуществляется наведением курсора на объект и нажатием
левой клавиши мыши. Правой клавишей можно перемещать объект по окну (рис. 2.10).
23
Рис. 2.10. Трехмерная модель расчетной области
Закрываем CAD-интерфейс Close 3D-CAD. Возвращаемся к
дереву каталогов и открываем папку Bodies. В ней находится созданная трехмерная геометрическая модель. На ней кликаем правой кнопкой и выбираем New Geometry Part. Созданная геометрическая модель перемещается в папку Parts, где нам уже доступна функция работы с поверхностями. Правой кнопкой выбираем папку Scenes в дереве каталогов и указываем New Scene>Geometry. Теперь изображение нашей модели доступно в графическом окне. Для того, чтобы в будущем задать (наложить)
граничные условия, необходимо разбить объект на поверхности.
В папке Parts/Body 1/Surfaces правой кнопкой мыши кликаем на
Default и выбираем Split By Angle. После чего появится окно, в
котором все оставляем по умолчанию и нажимаем OK (рис. 2.11).
24
Рис. 2.11. Окно с инструментами для разбивки модели на поверхности
Функция Split By Angle позволяет разбивать объект на поверхности, находящиеся под углом больше 89 друг к другу. Теперь присвоим поверхностям более понятные названия. Правой кнопкой
мыши выбираем поверхность и жмем Rename. Правую границу
расчетной области назовем out, левую – in, нижнюю – plate, верхнюю – top. Поскольку мы будем решать задачу в двумерной постановке, то фронтальная и задняя поверхности объекта нам не
понадобятся, поэтому их можно не переименовывать.
Теперь можно приступать к формирование сеточной и физической моделей. Для этого переносим наш объект со всеми поверхностями в соответствующую папку. В папке Parts правой
кнопкой кликаем на объекте Body 1 и выбираем Assign Parts to
Regions. В появившемся окне в поле Region Mode выбираем One
region per part. В поле Boundary Mode выбираем One boundary per
part surface и нажимаем Create Regions. Закрываем окно нажав
Close. Для создания сеточной модели программа Star-CCM+ использует такое понятие как Области (Regions). Область это замкнутый объем, состоящий из поверхностей. Область нашей модели теперь находится в папке Regions (рис.2.12).
25
Рис. 2.12. Дерево каталогов. Папка Regions
Зададим граничные условия на каждой из поверхностей нашего
объекта. Для этого откроем папку Regions/Body 1/Boundaries и
кликнем левой кнопкой мыши по поверхности с именем plate.
При этом ниже в окне свойств (Properties) высветится текущий
26
тип граничного условия (в поле Type опция Wall). Такое граничное условие соответствует понятию Стенка. Укажем граничные
условия для остальных поверхностей. Для поверхности in выберем Velocity Inlet (скорость на входе), для поверхности out –
Pressure Outlet (статическое давление на выходе), для поверхности top – Pressure Outlet. Разные граничные условия подсвечиваются разным цветом в графическом окне (рис. 2.13)
Рис. 2.13 Граничные поверхности
Приступим к формированию сеточной модели. Для этого выберем папку Continua>New>Mesh Continuum. После чего папка
Continua должна выглядеть следующим образом (рис. 2.14)
27
Рис. 2.14. Дерево каталогов. Папка Continua
Зададим механизм генерации расчетной сетки. Правой кнопкой
выберем Models и нажмем Select Meshing Models. В открывшемся
окне будем выбирать необходимые модели. В поле Surface Mesh
выберем Surface Remesher, в поле Volume Mesh выберем Trimmer. Таким образом, будем использовать стандартный сеточный
генератор и ячейки гексоэдральной формы. Закроем окно Close.
Зададим
размеры
ячеек.
Проследуем
Continua/Mesh
1/ReferenceValues/ и кликнем левой кнопкой мыши на строчке
BaseSize. При этом в окне Свойств ниже (окно Properties) в строке Value введем значение 0.36 m, что соответствует длине нашей
расчетной области. Кликнем левой кнопки мыши на папке Maximum Cell Size и в окне Свойств выберем Absolute. Это значит,
что при задании максимально возможного размера ячейки мы будем использовать абсолютное значение его величины вместо от-
28
носительного значения (относительно значения Base Size). Далее
в дереве каталогов в папке Maximum Cell Size выберем AbsoluteSize и в окне Свойств в строке Value укажем 0.00075 m. Теперь в
папке Reference Values выберем папку Surface Size и в окне
Свойств в строке Relative/Absolute выберем Absolute, а в строке
Size Method выберем Min only. Откроем папку Surface Size и зададим значение для Absolute Minimum Size 0.00075 m (рис. 2.152.16).
Рис. 2.15. Дерево каталогов. Функция задания размера ячейки
29
Рис. 2.16. Окно со значением размера ячейки
Все необходимые параметры для генерации поверхностной и
объемной сеток теперь заданы. На верхней панели инструментов
выберем Mesh>Generate Surface Mesh. В течение некоторого времени, зависящего от мощности компьютера, будет проходить
процесс генерации поверхностной сетки. Результат можно увидеть на рис. 2.17.
Рис. 2.17. Поверхностная сетка
Посмотрим на построенную поверхностную сетку. Кликнем
правой кнопкой на папке Scenes в дереве каталогов и выберем
New Scene>Mesh. Поверхностная сетка всегда состоит из ячеек
тетроэдральной формы. Запустим процесс генерации объемной
сетки Mesh>Generate Volume Mesh. Чтобы посмотреть результат,
30
нужно открыть папку Scenes, правой кнопкой мыши выбрать
Mesh Scene 1 и выбрать Apply Representation>Volume Mesh. После чего изображение поверхностной сетки обновится на объемную. Либо можно создать вторую сеточную сцену MeshScene 2,
на которой автоматически будет выведено изображение объемной сетки (рис. 2.18).
Рис. 2.18 Объемная сеточная модель с ячейками гексоэдральной формы
Сохраним модель под именем plate_3D через меню
File>Save. Теперь преобразуем трехмерную сеточную модель в
двухмерную. Для страховки пересохраним сеанс под другим
названием plate_2D через меню File>SaveAs… .Выберем в верхней панели инструментов Mesh>ConvertTo 2D… и поставим галочку напротив Delete 3D regions after conversion. Нажем OK. Теперь в дереве каталогов в папке Regions вместо трехмерной области у нас находится двухмерная (рис. 2.19)
31
Рис.2.19 Двумерная расчетная область
Приступим к созданию физической модели исследуемого
процесса.
32
Сформируем набор моделей, которые будут отражать моделируемый физический процесс. В папке Continua откроем папку
Physics, кликнем правой кнопкой мыши на папке Models и выберем Select models. В появившемся окне зададим те физические
модели, которые описывают обтекание пластины ламинарным
потоком несжимаемой вязкой жидкости. В поле Time выберем
решение задачи в стационарной постановке Steady. В поле Material выберем Liquid. В поле Flow выберем Segregated Flow. В поле
Equation of State выберем несжимаемую жидкость Constant Density. В поле Viscous Regime выберем режим течения Laminar. Закроем окно Close. В результате список моделей у вас должен выглядеть следующим образом (рис. 2.20)
Рис. 2.20 Набор физических моделей
ОткроемContinua/Physics 1/Models/Liquid/H2O/Material Properties. Здесь можно увидеть и поменять в случае необходимости
значения плотности и динамической вязкости жидкости. Оставим
все значения по умолчанию.
33
Теперь зададим значения параметров потока (скорость, давление) на границах расчетной области. Перейдем в папку
Regions/Body 1/Boundaries. Откроем поверхность с именем in и
проследуем в папку Physics Values/Velocity Magnitude. Выберем
левой кнопкой мыши Constant и в окне свойств в строке Value
введем значение 0.01 m/s (рис. 2.21).
Зададим значения статического давления на верхней границе
расчетной области и на выходе из нее. Но вначале пройдем Continua/Physics 1/References Values и кажем значение опорного давления. Это то давление, относительно которого в программе StarCCM+ будут производиться все вычисления. Оставим значение
по умолчанию 101325 Па, т.е 1 атм. Перейдем Regions/Body
1/Boundaries, откроем поверхность с именем ou и проследуем в
папку PhysicsValues/Pressure. Выберем левой кнопкой мыши Constant и в окне Свойств в строке Value введем значение 0 Па. Таким образом с учетом опорного давления на выходной границе
расчетной области у нас будет задано статическое давления 1
атм. Аналогичным образом зададим значение статического давления на верхней границе расчетной области (поверхность top).
Подготовим графические окна для наблюдения за ходом решения в режиме реального времени. Правой кнопкой мыши выберем Scenes>New Scene>Vector. Откроется графическое окно,
где будет выводится векторное поле скорости, формирующееся
при обтекании пластины потоком жидкости. В папке Scenes появится папка Vector Scene 1. Откроем Vector Scene
1/Displayers/Vector 1. Левой кнопкой мыши выберем Vector 1 и в
окне Свойств в строке Projection Mode выберем Tangential, в
строке Vector Scale выберем Screen Size. В папке Vector 1 выберем Vector Field и в окне Свойств посмотрим на строчку Function.
Здесь можно выбрать параметр, который будет выводится в виде
векторного поля. Оставим Velocity (скорость). Откроем папку
Plots и сделаем двойной клик на папке Residuals. В графическом
окне откроется поле, в которое в процессе расчета будет выводиться информация о сходимости решения в форме графика.
34
Рис. 2.21 Параметры потока на границе расчетной области
35
Зададим критерии остановки расчета. Откроем папку Stopping Criteria. Строка Maximum Steps предназначена для задания
максимального количества итераций, отведенных на расчет задачи. Но мы воспользуемся другим критерием-критерием сходимости. Чем ниже данный критерий, тем точнее будет решения.
Установим критерий сходимости 0.0001. Для этого кликнем правой кнопкой на папке Stopping Criteria и выберем Create fromMonitor>Continuity. В строке Minimum Limit укажем 0.0001. Таким образом будем контролировать сходимость задачи по точности выполнения закона неразрывности. При достижении критерия сходимости по уравнению неразрывности 0.0001 задача будет
автоматически остановлена. Сохраним задачу.
Запустим сформированную задачу на счет. Для этого в верхней панели выберем Solution>Run. Начнется расчет задачи, при
этом в окне Output под графическим окном будет выводится текущая информация о расчете.
Как видим из графика сходимости (рис. 2.22) на решение задачи в соответствии с установленным критерием необходимо
примерно 600 итераций (процессор Core 2 Duo).
Рис. 2.22 Сходимость решения задачи
36
Откроем вкладку Vector Scene 1 в графическом окне. Как
видно из рис. 2.23 скорость потока жидкости нарастает от нуля на
пластине до некоторого значения, равного значению скорости
набегающего на пластину потока. В данном случае из рис. 2.23
видно, что максимальная скорость немного выше скорости набегающего потока. Это объясняется влиянием на результаты расчета заданных граничных условий.
Рис. 2.23 Векторное поле скорости при обтекании пластины
потоком воды
Теперь построим профиль скорости в безразмерных координатах U_(psi) , формирующийся при обтекании пластины на выU
ходе из расчетной области. Здесь U_  U/U 0 , а psi  y
. Для
νx
этого напишем ряд функций. Для начала посчитаем кинематическую вязкость воды    /  . Откроем папку Tools/Field Function. Кликнем правой кнопкой на папке Field Function и выберем
New. Переименуем созданную функцию (правая кнопка>Rename)
в nu. В окне Свойств в строке Function Name также введем nu. В
строке Definition запишем выражение для функции, для этого
37
нажмем на кнопку с изображением многоточия, находящуюся
правее, и введем выражение, показанное на рис. 2.24
Рис. 2.24 Выражение для определения кинематической вязкости
Аналогично создадим еще две функции. Функция с именем
psi будет рассчитывать безразмерный параметр, зависящий от
скорости в пограничном слое. Для этого в строке Definition введем следующее выражение:
$$Position[1]*sqrt($$Velocity[0]/($nu*0.36))
Функция с именем U_ будет рассчитывать безразмерную
скорость (скорость в пограничном слое, отнесенную к скорости
набегающего потока). Для этого в строке Definition функции U_
введем выражение:
$$Velocity[0]/0.01
После того, как все три функции созданы, построим саму зависимость. Перейдем в папку Plots. Правой кнопкой мыши кликнем на папке Plots и выберем NewPlot>X-Y. В результате появится папка XYPlot 1, а в графическом окне откроется изображение
будущего графика. Укажем входные данные по осям. В папке
XType в строке Scalar выберем функцию psi, в папке
YType/YType 1 в строке Scalar выберем функцию U_. Теперь мы
должны указать линию, вдоль которой программа будет выводить указанные функции. Для этого активируем вкладку Geometry Scene 1 графического окна и затем проследуем в папку De-
38
rived Parts, кликнем на ней правой кнопкой мыши и выберем New
Part>Probe>Line. Откроется вспомогательный интерфейс, где
необходимо ввести координаты начала и конца линии, а также
количество точек, на которые линия будет разбита. Введем координаты, как показано на рис. 2.25.
Рис. 2.25 Координаты линии
39
После этих действий на вкладке XYPlot 1 в графическом окне
должна появиться построенная графическая зависимость (рис.
2.26).
Рис. 2.26 Профиль скорости на выходе из расчетной области
Оформим график. Для этого в папке Plots/XY Plot 1/Y Type/Y
Type 1/line-probe выберем Line Style и в окне Свойств в строке
Color укажем red, а в строке Style укажем Solid.
Сравним полученный профиль скорости с профилем, рассчитанным по существующему аналитическому выражению. Откроем с помощью любого текстового редактора файл с именем u.csv,
находящийся на Рабочем столе Windows. В этом файле содержаться значения скорости и координаты в безразмерных параметрах U_(psi), вычисленных с помощью аналитического выражения. Подгрузим этот файл в виде таблицы в программу StarCCM+. Для этого откроем папку Tools/Tables, правой кнопкой
мыши кликнем на папке Tables и выберем NewTable/File. В открывшемся окне укажем файл u.csv. Перейдем в папку
Plots/XYPlot 1/Tabular. Кликнем правой кнопкой мыши на папке
Tabular и выберем NewTabularDataSet (рис. 2.27).
40
Рис.2.27 Дерево каталогов. Импорт таблицы с аналитическим профилем пограничного слоя
41
Выберем появившуюся папку tabular и в окне Свойств в
строке Table выберем u, в строке XColumn выберем column0, в
строке YColumn выберем column1. После этих действий на
вкладке графика XYPlot 1 в графическом окне должна появиться
вторая кривая, соответствующая профилю скорости, вычисленному аналитически (рис. 2.28).
Рис. 2.28 Сравнение профилей пограничного слоя
Сохраним сессию.
В рамках закрепления изученной информации учащимся
необходимо провести решение задачи с использованием ячеек не
гексоэдральной формы, как это было разобрано в примере, а многогранной формы. Для этого нужно открыть сохраненный ранее
файл plate_3D.sim и на этапе формирования сеточной модели
вместо опции Trimmer выбрать опцию Polyhedral Mesher и затем
повторить решение задачи, аналогично тому, как это было сделано в примере. При этом сгенерированная сеточная модель будет
выглядеть, как показано на рис. 2.29.
42
Рис. 2.29. Объемная сеточная модель с ячейками многогранной формы
После проведения расчета необходимо построить полученный профиль скорости и сравнить его с профилем скорости, полученным в результате расчета с использованием гексоэдральных
ячеек, и с аналитическим профилем скорости (рис. 2.30).
Рис. 2.30 Сравнение профилей пограничного слоя
43
3.ПРОГРАММНЫЙ ПАКЕТ ANSYS CFX
3.1. Описание пакета ANSYS CFX
Уже более 20 лет компании по всему миру доверяют
ANSYS CFX - мощной и надежной технологии расчетов в области вычислительной гидрогазодинамики. ANSYS CFX совмещает
в себе передовую технологию решателя с современным пользовательским интерфейсом и адаптивной архитектурой, что делает
этот инструмент доступным как для разработчиков, владеющих
общими инженерными знаниями, так и для специалистов в области гидродинамики, работающими с моделью и ее свойствами на
глубоком уровне. CFX позволяет детально изучить оборудование
и процессы изнутри, повысить эффективность, увеличить срок
службы и оптимизировать процессы.
ANSYS CFX обладает расширенным набором разнообразных математических моделей, позволяющих с высокой точностью моделировать различные задачи, начиная с расчета течения
жидкостей и газов в трубопроводах и проточных трактах турбомашин, и заканчивая моделированием тепломассобмена в сложных термогазодинамических процессах в струйных и пленочных
многокомпонентных течениях, или моделированием ламинарнотурбулентного перехода в задачах внешней аэродинамики ЛА.
Рабочая среда ANSYS CFX и ANSYS Workbench
Модуль ANSYS CFX полностью интегрирован в расчетную
среду ANSYS Workbench - платформу, объединяющую все инструменты инженерного моделирования компании ANSYS.
Адаптивная архитектура позволяет пользователю выполнять любые действия от стандартного анализа течения жидкости или газа
до обработки сложных взаимодействующих систем, используя
простые операции drag-and-drop («перетащи и оставь»). Пользователи могут легко оценить производительность во множественных расчетных точках или сравнить несколько альтернативных
конструкций. Для решения задач из различных расчетных дисциплин в рамках платформы ANSYS Workbench можно получить
доступ к общим для всех расчетов инструментам, таким как инструменты для работы с геометрией и с сеткой[5].
44
Геометрия: модуль ANSYS DesignModeler специально разработан для создания геометрии, ее подготовки к моделированию. Эта
полностью параметрическая среда является простой в использовании, обладает прямыми и двусторонними связями со всеми основными CAD-пакетами и используется как средство согласования и ввода геометрии во все программные продукты ANSYS для
последующих инженерных расчетов.
Создание сетки: для получения точных результатов расчетов в
области вычислительной динамики жидкостей и газов необходима самая совершенная технология создания сетки. ANSYS
Meshing предоставляет множество технологий построения сетки
в одном приложении. Это дает возможность выбрать наиболее
подходящий способ построения сетки на основе применения подхода последовательного построения сетки на каждой из деталей
сборки. Пользователю также доступны инструменты построения
сетки ANSYS ICEM CFD, которые дают возможности редактирования сетки и возможность построения структурированной гексагональной сетки.
При работе в ANSYS CFX выделяются следующие основные этапы:
● Предобработка в CFX-Pre
● Решатель ANSYS CFX
● Постобработка в ANSYS CFD-Post
Предобработка в CFX-Pre
Физический препроцессор ANSYS CFX - это современный,
интуитивно понятный интерфейс для подготовки к моделированию динамики жидкостей или газов. В дополнение к основному
режиму работы встроенный мастер помогает пользователю пройти процесс подготовки общих расчетов течения жидкостей или
газов.
Мощный язык программирования (expression language) дает возможность задать описание проблемы в числовом виде, как в случае со сложными граничными условиями, авторскими моделями
45
материалов или дополнительными уравнениями переноса. Адаптивная архитектура CFX-Pre также позволяет пользователю создавать собственные панели графического пользовательского интерфейса, чтобы стандартизировать ввод для выбранных приложений.
Решатель ANSYS CFX
Сердцем модуля ANSYS CFX является передовой алгебраический многосеточный сопряженный решатель, использующий
технологию Coupled Algebraic Multigrid, являющуюся ключом к
получению точных результатов в короткие сроки. Параметры
решателя, граничные условия могут быть скорректированы во
время выполнения расчета, при этом нет необходимости останавливать решатель. Решатель ANSYS CFX использует схему дискретизации второго порядка по умолчанию, обеспечивая получение максимально точных результатов.
Использование технологии сопряженных решателей ANSYS CFX
дает значительные преимущества при проведении любого расчета, неважно, для вращающихся машин, многофазных потоков, горения или для любой другой физической модели и позволяет получить устойчивые и масштабируемые решения для задач динамики жидкостей и газов.
Постобработка в ANSYS CFD-Post
Постпроцессинг результатов графического и количественного анализа, полученных в ANSYS CFX, выполняется в ANSYS
CFD-Post. Возможность написания сценариев, полная автоматизированность, генерация отчетов дают пользователю максимальное количество информации, полученной в результате расчетов.
Наивысшая производительность ANSYS CFX основана не на
какой-то одной отличительной черте. Это набор испытанных передовых технологий, применяемых во всех составляющих программного обеспечения, что дает точность, надежность, быстродействие и гибкость, которым доверяют компании-пользователи.
Интеграция в платформу ANSYS Workbench открывает двери к
большим возможностям и позволяет выйти на новый уровень
эффективности инженерного моделирования.
46
3.2. Пример работы в ANSYS CFX.
В этом разделе читатель будет ознакомлен с принципами
работы в пакете CFX при реализации задачи об испарении капель воды в аппарате распылительной сушки. Данная задача рассмотрена в стандартном туториале Spray Dryer пакета ANSYS
CFX, но в методичке более подробно рассмотрены некоторые
моменты, особенно то, что касается создания модели влажного
воздуха Gas Mixture и механизмов взаимодействия данного воздуха с распыляемыми в поток каплями воды.
Формирование расчетной модели в CFX-Pre.
Импортирование построенной сетки.
Создаем новую расчетную модель (File>NewCase, рис. 3.1).
Рис. 3.1 Меню File в CFX-Pre
Выбираем далее тип моделирования General из возможных
вариантов (Рис. 3.2).
47
Рис. 3.2 Типы моделирования в CFX-Pre
Подгружаем заранее созданную сетку (File>Import>Mesh),
выбирая в диалоге ImportMesh файл сетки spraydryer9.gtm в
установочной директории CFX (CFX\examples) (Рис. 3.3)
Рис.3.3 Диалог Import Mesh
Если все проделано правильно, то появится следующая геометрия расчетной области (Рис. 3.4)
48
Рис. 3.4 Геометрия расчетной области
Создание модели газовой смеси.
В меню окна Outline нажимаем правой кнопкой мыши на
Materials и создаем новый материал (Materials>Insert>Material) и
называем новый материал Gasmixture (Рис. 3.5)
Рис. 3.5 Диалог Insert Material
Появляется окно свойств Material: Gasmixture, в котором
конфигурируем следующие настройки:
Tab
Basic Settings
Setting
Option
Material Group
Material List
Value
Variable composition mixture
Air Data,Gas Phase Combustion
Air Ideal Gas,H20
49
Thermodynamic
State
Gas
Далее нажимаем кнопку Apply (Рис. 3.6) и закрываем вкладку Material: Gasmixture.
Примечание: Выбирать несколько позиций из списка следует
нажатием на определенные позиции при зажатой кнопке Ctrl. В
диалоге Materiallist нужно нажать на иконку ImportLibraryData и в новом диалоговом окне SelectLibraryDatatoImport в списке
под GasPhaseCombustion выбрать H20 (Рис. 3.7).
Рис. 3.6 Вкладка Material: Gas mixture
Рис. 3.7 Диалоги выбора материала
50
Редактирование региона проточной области (DefaultDomain)
В расчетном регионе будет присутствовать двухфазный поток: газовая смесь Gasmixture и фаза жидких частиц H2Ol, которые будут двигаться в среде Gasmixture. Поэтому последовательно в расчетном регионе вводится две фазы, с указанием различных свойств и моделей каждой отдельно взятой фазы. Создаются
«описания» Gasmixture И H2Ol. (При помощи нажатия правой
кнопки мыши на регионе DefaultDomain выбрать Edit. В появившейся вкладке в окне Fluid and Particle Defenitions создать указанные «описания»)
Для выделенного описания Gasmixture выполнить следующее:
Tab
Basic settings
Setting
Fluid and Particle Defenitions
Option
Option
Gravity X Dirn
Gravity Y Dirn
Gravity Z Dirn
Buyo. Ref. Density
Value
Gasmixture
Continuous Fluid
Buoyant
0 [m s^-2]
-9.81 [m s^-2]
0 [m s^-2]
1.2 [kg m^-3]
Для выделенного описания H2Ol выполнить следующее:
Tab
Setting
Fluid and Particle Defenitions
Option
Basic settings
Option
Gravity X Dirn
Gravity Y Dirn
Gravity Z Dirn
Buyo. Ref. Density
Value
H2Ol
Particle Transport
Fluid
Buoyant
0 [m s^-2]
-9.81 [m s^-2]
0 [m s^-2]
1.2 [kg m^-3]
51
По аналогии согласно таблице заполняются другие вкладки
региона DefaultDomain. (Перечисляется то, что следует заменить
по отношения к первоначальным настройкам.)
Tab
Fluid Models
Setting
Heat Transfer>Option
Fluid
Fluid > Gas mixture >Heat
Fluid Specific Transfer model>Option
Models
Fluid > Gas mixture > Fluid
Buoyancy Model > Option
Fluid > Gas mixture>
Component>Air
Ideal
Gas>Option
Fluid
Fluid > H2Ol >
Heat Transfer Model > Option
Fluid > H2Ol >
Fluid Buoyancy Model > Option
Fluid Pair Re- Component Pair Details
gion
Component Pair Details>
H20 | H20l>Option
Component Pair Details>
H20
|
H20l>Latent
Heat>Option
Value
Fluid Dependent
Gas mixture
Thermal Energy
Non Buoyant
Constraint
H2Ol
Particle Temperature
Density Difference
H20 | H20l
Liquid Evaporation
Model
From
Material
Properties
Проделав все согласно рисункам и таблице, нажимаем
кнопку Ок и закрываем окно редактирования региона DefaultDomain.
Создание и редактирование граничных условий.
Граничное условие WaterNozzleBoundary.
Выделяем в меню окна Outline позицию DefaultDomain и
нажимаем на ней правой кнопкой мыши и делаем
Insert>Boundary.
Называем
граничное
условие
52
WaterNozzleBoundary и редактируем его
таблице.
Tab
Setting
Basic Settings Boundary Type
Location
Mass
and
Momentum>Option
Mass and Momentum >
Boundary De- Normal Speed
tails
Heat Transfer > Option
Fluid Values
Fluid Values
Heat Transfer > Static
Temperature
H2Ol > Mass and Momentum > Option
H2Ol > Mass and Momentum > Normal Speed
H2Ol > Particle Position >
Number of Positions >
Number
H2Ol > Particle Mass Flow
> Mass Flow Rate
H2Ol > Particle Diameter
Distribution > Option
H2Ol > Particle Diameter
Distribution > Diameter
List
H2Ol > Particle Diameter
Distribution > Mass Fraction List
H2Ol > Particle Diameter
Distribution > Number
Fraction List
H2Ol > Heat Transfer >
Option
H2Ol > Heat Transfer >
Static Temperature
согласно приведенной
Value
Inlet
two fluid nozzle
Normal Speed
10.0 [m s^-1]
Static Temperature
300.0 K
Normal Speed
10.0 [m s^-1]
500
3.32e-6 [kg s^-1]
Discrete Diameter Distribution
5.9e-6, 1.25e-5, 1.39e-5,
1.54e-5, 1.7e-5, 1.88e-5,
2.09e-5, 2.27e-5, 2.48e5, 3.11e-5 [m]
10*0.1
10*0.1
Static Temperature
300.0 K
53
Граничное условие Air Inlet Boundary.
Tab
Basic Settings
Setting
Boundary Type
Location
Mass and Momentum > Option
Mass and Momentum > Axial
Component
Mass and Momentum > Radial
Boundary De- Component
tails
Mass and Momentum > Theta
Component
Axis Definition > Option
Axis Definition > Rotation
Axis
Heat Transfer > Option
Heat Transfer > Static Temperature
Value
Inlet
air inlet
Cyl. Vel. Component
-30.0 [m s^-1]
0.0 [m s^-1]
10.0 [m s^-1]
Coordinate Axis
Global Y
Static Temperature
423.0 K
Граничное условие Outlet.
Tab
Basic Settings
Setting
Boundary Type
Location
Boundary De- Mass and Momentum > Option
tails
Mass and Momentum > Relative Pressure
Value
Outlet
outlet
Average
Pressure
0.0 [Pa]
Static
Граничное условие Default Domain Default
При импортировании в CFX-Pre готовой сетки по умолчанию создается регион DefaultDomain, в котором так же по умолчанию создается граничное условие Имя региона Default с типом
граничного условия wall - непроницаемая стенка без скольжения.
В нашем случае это DefaultDomainDefault. Изначально это гра-
54
ничное условие включается в себя все локации, т.е. части поверхностей, ограничивающих расчетный регион. По мере создания
новых граничных условий и интерфейсов ГУ
Default Domain Default остается на тех локациях, которые не были задействованы в других ГУ или интерфейсах. Поэтому не обязательно создавать ГУ с типом wall специально, т.к. оно будет
получено методом исключения локаций, приходящихся на ГУ
другого типа и интерфейсы.
Для наглядности переименуем ГУ Default Domain Default на Wall
и отредактируем его согласно таблице.
Tab
Setting
Heat Transfer > Option
Value
Heat Transfer CoefBoundary Deficient
tails
Heat Transfer > Heat Trans. 3.0 [W m^-2 K^-1]
Coeff.
Heat Transfer > Outside Tem- 300.0 [K]
perature
Создание интерфейсов
Нажимаем правой кнопкой в окне «Outline» на позицию Interfaces и выбираем Insert > Domain Interface. Называем интерфейс Periodic и изменяем его согласно таблице и нажимаем кнопку OK.
Tab
Basic Settings
Setting
Interface Type
Interface Side 1 > Domain (filter)
Interface Side 1 > Region List
Value
Fluid Fluid
Default Domain
periodic1
Interface Side 2> Domain (fil- Default Domain
ter)
Interface Side 2> Region List periodic2
Interface Models > Option
Rotational Periodicity
55
Interface Models > Axis Defi- Global Y
nition > Rotation Axis
Mesh Connec- Mesh Connection
Automatic
tion
Mesh Connection Method >
Mesh Connection > Option
Настройки параметров решателя (SolverControl)
Следует нажать на иконку SolverControl
дующие настройки:
Tab
Basic Settings
Setting
Convergence Control > Max.
Iterations
Convergence Control > Fluid
Timescale Control > Timescale
Control
Convergence Control > Fluid
Timescale Control > Physical
Timescale
Convergence Criteria > Residual Type
и выполнить слеValue
100
Physical Timescale
0.05 [s]
1.E-4
Далее все подтверждается нажатием кнопки OK.
Настройки вывода информации (OutputControl)
Следует нажать на иконку SolverControl
следующие настройки:
Tab
Results
и выполнить
Setting
Value
Extra Output Variables List
Selected
Extra Output Variables List > H2Ol.Averaged
Extra Output Var. List
Mean Particle Diameter,
H2Ol.Averaged
Temperature
56
Далее все подтверждается нажатием кнопки OK.
Запись CFX-Solver Input (.def) файла
Следует нажать на иконку Define Run
и сохранить файл с
расширением .def в папке проекта. После этого автоматом запустится Solver Manager со следующим диалоговым окном Define
Run (Рис. 3.10),
Рис. 3.8 Диалог «Define Run»
где можно выбрать режим запуска решателя (Run Mode): serial
или parallel; а так же выбрать рабочую директорию (working directory), куда будут сохраняться результаты расчета. Нажатием
кнопки Start Run мы запускаем Solver Manager. Далее можно закрывать модуль CFX-Pre, предварительно сохранив файл под
названием SprayDryer.cfx.
Получение решения, используя CFX-SolverManager.
1. Обеспечиваем открытие диалога Define Run (Это может
быть запуск из-под модуля CFX-Pre модуля Solver Manager,
как описывалось в предыдущем разделе) или же запускаем
отдельно Solver Manager и выбираем сохраненный заранее
57
файл решения с расширением .def(в нашем случае он называется SprayDryer.def)
2. Нажимаем Star Run и запускаем счет. По окончании счета
отображается диалоговое окно, что вычисления окончены.
3. Запускаем из-под Solver Manager нажатием на иконку PostProcess Results менеджер вывода и обработки информации
CFD-Post.
4. Если использовать автономный режим, то следует закрыть
Solver Manager и отдельно запустить модуль CFD-Post, в котором указать нужный файл решения.
Просмотр полученных результатов при помощи CFD-Post
Отображение температуры, используя скалярное поле (Contour
Plot).
1. Правой кнопкой нажимаем на область просмотра, которая
по умолчанию называется View 1, и выбираем Predefined
Camera>View From –Z. Это более удобный вид просмотра
полученных результатов.
2. В главном меню выбираем Insert>Contour.
3. Меняем имя на Temperature Contour и нажимаем кнопку OK.
4. Делаем следующие настройки:
Tab
Geometry
Setting
Location
Variable
Value
Periodic Side 1
Temperature
5. Нажимаем кнопку Apply.
Если все правильно проделать, то в области View 1 появится
следующее скалярное поле, согласно рис. 3.11.
6. Когда проделаны 5-ть первых пунктов, то следует в дереве
вкладки Outline нажать правой кнопкой ранее созданный
Contour Plot и выбрать Hide
58
Рис. 3.9 Скалярное поле температуры (Temperature).
Отображение массовой концентрации воды (Water
Fraction), используя скалярное поле (Contour Plot).
Mass
Повторите 6-ть пунктов, которые проделали ранее в параграфе
«Отображение температуры, используя скалярное поле (Contour
Plot)». Изменив в пункте 3 имя контура на H2O Mass Fraction
Contour, а пункте 4 в переменную на H2O.Mass Fraction.
59
Рис. 3.10 Скалярноеполе H2O Mass Fraction Contour.
Отображение осредненного диаметра капли воды (Liquid Water
Averaged Mean Particle Diameter), используя скалярное поле (Contour Plot).
Повторите 6-ть пунктов, которые проделали ранее в параграфе
«Отображение температуры, используя скалярное поле
(ContourPlot)». Изменив в пункте 3 имя контура на H2Ol Averaged
Mean Particle Diameter Contour, а пункте 4 в переменную на
H2Ol.Averaged Mean Particle Diameter.
60
Рис. 3.11 Скалярное поле осредненного диаметра капли воды.
Отображение
осредненной
температуры
капли
воды
(LiquidWaterAveragedTemperature), используя скалярное поле
(Contour Plot)
Повторите 6-ть пунктов, которые проделали ранее в параграфе
«Отображение температуры, используя скалярное поле (Contour
Plot)». Изменив в пункте 3 имя контура на H2Ol Averaged Temperature
Contour,
а
в
пункте
4
переменную
на
H2Ol.AveragedTemperature.
61
Рис. 3.12 Скалярное поле осредненной температуры капли воды.
Отображение температуры капель воды, использую траекторные данные частиц
1. Правой кнопкой нажимаем на область просмотра, которая
по умолчанию называется View 1, и выбираем Predefined
Camera>IsometricView (Z up). Это более удобный вид просмотра полученных результатов.
2. В главном меню выбираем Insert>ParticleTrack.
3. Меняем имя на Temperature и нажимаем кнопку OK.
4. Делаем следующие настройки:
Tab
Color
Setting
Mode
Variable
Value
Variable
H20l.Temperature
5. Нажимаем кнопку Apply.
62
Если все правильно проделать, то в области View 1 появится
следующее скалярное поле, согласно рис. 3.15.
6. Когда проделаны 5-ть первых пунктов, то следует в дереве
вкладки Outline нажать правой кнопкой мыши на ранее созданный Contour Plot и выбрать Hide
Рис. 3.13 Эволюция температуры капель воды вдоль их собственных траекторий.
Отображение диаметра капель воды, используя траекторные
данные частиц
Повторите 2-5 пункты, которые проделали ранее в параграфе
«Отображение температуры капель воды, использую траекторные
данные частиц». Изменив в пункте 3 имя трека на
H2OlMeanParticleDiameter, а в пункте 4
переменную на
H20l.MeanParticleDiameter.
63
Рис. 3.14 Эволюция диаметра капель воды вдоль их собственных
траекторий.
64
4.ПРОГРАММНЫЙ ПАКЕТ OPENFOAM
В настоящее время пакет OpenFOAM (Open Source Field Operation And Manipulation CFD ToolBox) является одним из лидеров на рынке открытого программного обеспечения для решения
задач механики сплошной среды. Первоначально, программа появилась в Лондонском Имперском Колледже и в результате многолетнего академического и промышленного развития на сегодняшний момент позволяет решать такие задачи как:
1)Ламинарные течения ньютоновской и неньютоновской жидкости
2)Расчет турбулентных течений сжимаемой и несжимаемой жидкости методами RANS, LES, DNS.
3) Многофазные течения
4) Течения потоков, насыщенных частицами
5)Расчеты на прочность
6)Моделирование взаимодействия жидкости с подвижными объектами
7) Горение и детонация и т.д.
Рабочим языком OpenFOAM является язык C++. Данный
язык выбран для удобства представления математических операторов и выражения в удобной форме до компиляции в исполняемый файл. Сам продукт состоит из инструментов для решения
систем дифференциальных уравнений в частных производных
(solvers), утилит (utilities) и библиотек (libraries). Решаемые уравнения, например уравнение сохранения количества движения для
ньютоновской несжимаемой жидкости без действия массовых
сил:
ρU
   ρUU     μU   p
t
Записываются в удобной и понятной форме как[]
solve
(
Fvm::ddt(rho, U)
+
fvm::div::laplacian(mu, U)
_
fvm::laplacian (mu, U)
==
- Fvc::grad(p)
);
65
в состав базовой комплектации пакета OpenFOAM входит
удобный инструмент для визуализации данных Paraview[4].Часто
для моделирования исходной сетки используется программный
продукт SALOME, также распространяемый по бесплатной лицензии.
В число пользователей OpenFOAM входят много авторитетныхкомпаний и НИИ: ABB Corporate Research, Audi, Airbus, Bayer,
CD-adapco group, Danone, Daimler, Hitachi, Mitsubishi, Obayashi,
SKF, Shell, Toyota, Tokyo Gas, Volkswagen, Electrolux, Fluid Technology, Icon-CG, The Technology Partnership plc, Imperial College
London, Kings College London, Chalmers University, University of
Exeter, University of Guelph, HirosakiUniversty, Tokyo Institute of
Technology[8].
4.1.Организация решения задачи в OpenFOAM
Для решения задач, в программном пакете OpenFOAM необходимо придерживаться определенной структуры, базовые элементы которой представлены на рис.4.1.
Рис.4.1 Базовая структура файлов для решения простейшей задачи в OpenFOAM
66
Директория constant содержит сведения о расчетной сетке
(поддиректория polyMesh), а также файлы отвечающие за физические свойства (напр. плотность, вязкость) решаемой задачи
transportProperties.
Директория system содержит как минимум три файла, непосредственно связанных с процедурой решения задачи: controlDict
содержит такие параметры как шаг по времени, время начала и
время окончания решения, периодичность сохранения результатов; файл fvSchemes описывает конечно-разностных схемы, используемые для дискретизации конвективных и диффузионных
производных; fvSolution описывает точность и алгоритмы решения систем уравнений.
Директории time содержат файлы с информацией о полях
величин в различные моменты времени. Отметим, что начальное
поле при t=0 необходимо задавать в папке 0/
4.2. Генерация расчетной сетки с использованием утилиты
BlockMesh
Процесс создания расчетной сетки для задач вычислительной
гидромеханики, как правило, является сложной процедурой. По
некоторым оценкам на построение расчетной сетки тратится до
90% человеческого времени. При этом не качественно построенная сетка может сильно исказить получающиеся результаты. В
этой связи необходимо иметь инструмент, позволяющий в максимально сжатые сроки строить высококачественные сетки.
Пакет OpenFOAM позволяет импортировать сетки, построенные в таких программных продуктах как ICEMCFD, STARCCM+ и т.д. Кроме того, в стандартную комплектацию OpenFOAM входят 2 утилиты(blockMesh, snappyHexMesh) позволяющие строить сетки внутри самого пакета. В данном учебном пособии излагаются основы работы c blockMesh, желающие ознакомиться со второй утилитой могут получить сведения в документации к пакету[4].
Утилита blockMesh позволяет создать структурированные
сетки, состоящие из 1 или более блоков и имеющие тип гексаэдра. Каждый блок содержит определенное количество ячеек, которые могут содержать как прямолинейные, так и криволинейные
грани. Сетка создается на базе файла blockMeshDict, который
67
должен быть расположен в каталоге constant/polyMesh. Команда
blockMesh считывает информацию с файла, создает сетку и записывает информацию о ней в файлы (faces, point и т.д).
Каждый блок определяется заданием 8 точек (вершин), расположенных в углах гексаэдра. В качестве примера, на рис.3.2
представлен блок с нумерацией вершин. Отметим, что любой
блок начинается с точки, имеющей номер «0».
Рис.4.2 Иллюстрация одиночного блока[8]
Ключевые выражения, позволяющие сформировать файл blockMeshDict, представлены в табл.4.1
Таблица 4.1 Ключевые выражения blockMeshDict
Ключевое выраже- Описание
ние
convertToMeters
Масштабный множитель для вершин
vertices
Задает координаты
вершин
edges
Используется
для
задания кромок ячеек в виде дуги или
сплайна
block
Определяет блок с
помощью
набора
вершин и размера
Пример
0.001 переводит значения в миллиметры
(0 0 0)
arc 1 4 (0.939 0.342 0.5)
hex (0 1 2 3 4 5 6 7)
(10 10 1)
simpleGrading
(1.0
68
patches
mergePatchPairs
сетки
1.0 1.0)
Определяет
сово- symmetryPlanebase
купность
вершин ( (0 1 2 3) )
как границу
Определяет грани, mergePatchPairs
которые необходи(
мо объединить
)
Опишем некоторые ключевые выражения более подробно
Кромки
По умолчанию edges соединяет 2 точки прямой линией. Однако
можно создать и криволинейные линии. Для этого необходимо
вставить определение интересующей кривой в блок edges:
edges
(
arc 1 5 (1.1 0.0 0.5)
);
В описанном выше коде, создается кривая, соединяющая вершины 1 и 5 по дуге. Для формирования дуги используется 1 дополнительная точка с координатами (1.1 0.0 0.5). Кроме задания дуги, 2 точки могут соединяться различными сплайнами
(simpleSpline, polyLine и polySpline),но для этого необходимо задать набор точек, необходимых для построения сплайна
Блоки
Опишем следующий код, определяющий блок:
blocks
(
hex (0 1 2 3 4 5 6 7) // номеравершин
(10 10 10)
// число ячеек в каждом направлении
simpleGrading (1 2 3) // рост ячеек в каждом направлении
);
69
в номерах вершин указываются вершины определяющие блок,
при этом блок всегда имеет форму гексаэдра. Вторая строка
определяет, на какое количество элементов в каждом направлении разбит расчетный блок. В третьей строке указано отношение
размера 1-й ячейки к последней в каждом из направлении.
Наглядная иллюстрация этого параметра представлена на рис.4.3.
Здесь δs начальный размер ячейки, δe – конечный размер ячейки.
Expansionratio – число, которое указывается в simpleGrading
Рис.4.3.Иллюстрация параметра simpleGrading
Границы
Описание границ области происходит посредством ключевого
слова boundary.
boundary
(
inlet
{
type patch;
faces
(
(0 4 7 3);
);
}
);
В приведенном примере задается граница inlet, которая обладает
типом patch и расположена на границе, с номерами вершин 0, 4,
7, 3. Для задания условий прилипания и периодичности используются другие типы ГУ – wall и cyclic соответственно
4.3.Ламинарное обтекание квадратного цилиндра потоком
несжимаемой жидкости
В
качестве
примера,
иллюстрирующего
возможности
OpenFOAM, рассмотрим задачу обтекания квадратного цилиндра
70
потоком несжимаемой жидкости с Re=5000. Расчетная область
представлена на рис.4.4 Сторона цилиндра D=0.04 м. Все остальные размеры приведены в таблице 4.2 и отнесены к D.
Таблица 4.2. Геометрические размеры расчетной области
Размер
Величина
L1 – расстояние от входа в расчетную область до центра цилиндра
L2 – расстояние от центра цилиндра до выхода из расчетной
области
L3=L4 – расстояние от центра
цилиндра до верхней и нижней
границы
L5 – ширина рабочей области
10
24
10
12
Рис.4.4. Расчетная область
Перед началом решения задачи, создадим папку с рабочим
названием flowSquare, в которой будут храниться все данные о
рассматриваемом проекте. Для этого в терминале Linux набираем
команду
mkdir -p flowSquare
Выполняя аналогичную команду, создаем еще 4 папки, чтобы
структура проекта имела следующий вид:
71
Рис.4.5. Структура проекта на начальном этапе
Для построения сеточной модели необходимо создать два файла:
blockMeshDict и controlDict в папках polyMesh и system соответственно. Содержание этих файлов представлено в приложениях
1,2. После этого в корневом разделе проекта следует выполнить
команду
blockMesh
В результате будет сгенерирована расчетная сетка, а в папке
polyMesh появятся новые файлы содержащие информацию о
расположении граничных условий(boundary), граней ячеек(faces)
и т.д.
Рис.4.6. Содержимое папки polyMesh после генерации сетки
72
Для определения начальных и граничных условий в папке 0 необходимо создать 2 файла: p и U отвечающие за задание давления и
скорости соответственно. Содержимое этих файлов представлено
в приложениях 3 и 4. Отметим, что число файлов, содержащих
информацию о граничных условиях, зависит от типа решаемой
задачи. Например, в случае турбулентного течения кроме скорости и давления необходимо также задавать граничные условия
для параметров k и epsilon.
Описание физических свойств рабочей среды осуществляется в
файле transportProperties, который необходимо создать в каталоге constant (приложение 5).
Задание различных разностных схем и методов решения систем
уравнений
осуществляется
в
файлах
fvSchemes
и
fvSolution(каталог system), содержимое которых представлено в
приложениях 6 и 7. Таким образом, полностью сформированная
структура проекта имеет следующий вид:
Рис.4.7. Окончательная структура проекта
73
Для запуска задачи на расчет необходимо в терминале Linux в
корневом каталоге проекта выполнить команду
icoFoam
Отметим, что данной командой мы запускаем солверicoFoam на
одном ядре. Для расчета в параллельном режиме необходимо создать в папке system дополнительный файл decomposeParDict содержащий информации в частности о числе подобластей, на которые будет разбита расчетная область (numberOfSubdomains).
Содержание файла decomposeParDict представлено в приложении
8. После формирования файла необходимо в корневой директории проекта запустить команду
decomposePar
после чего будет создано n-папок c названием processor(число nравняется числу подобластей, в нашем случае n=4) (рис.4.8).
Рис. 4.8. Содержимое корневой директории проекта после команда decomposePar
Для запуска задачи в параллельном режиме необходимо запустить команду
mpirun -np 4 icoFoam -parallel > log &
здесь –np указывает число ядер, на которых будет произведен
расчет, icoFoam – солвер соответствующий решаемой задачи,
>log& создает файл log, в который записываются данные о решении задачи. Командой top можно получить сведения о загрузке
процессора задачей:
74
Рис.4.9. вывод команды top
Отметим, что в данном случае распараллеливание происходит на
одном узле. Чтобы запустить расчет на нескольких узлах необходимо в корневой директории создать файл machinesс перечислением имен узлов участвующих в расчете. После этого нужно выполнить команду:
mpirun --hostfile machines -np 4 icoFoam -parallel > log &
Когда расчет будет окончен, полученное решение можно визуализировать с помощью пакета Paraview. Для этого в терминале
нужно ввести команду
paraFoam
после чего появится главное окно пакета визуализации Paraview
Рис.4.10. Главное окно Paraview
75
Чтобы просмотреть расчетную область необходимо нажать кнопу
Apply в меню управления объектом (рис.4.11)
Рис.4.11. Меню управления объектами
Визуализация расчетной сетки осуществляется выбором параметра surfacewithedges на приборной панели. Построенная сеточная модель представлена на рис.4.13,4.14
Рис.4.12. Фрагмент приборной панели
Рис.4.13. Расчетная сетка. Общий вид
76
Рис.4.14 Расчетная сетка у поверхности цилиндра
Для визуализации полей давлений и скоростей первым делом
необходимо создать плоскость, на которой эти поля будут построены. Для этого на приборной панели нужно нажать иконку
плоскости (рис.4.15) после чего в меню управления объектами
выставить параметры, указанные на рис.4.16 и нажать кнопку
Apply.
Рис.4.15. Фрагмент приборной панели. Иллюстрация иконки
плоскости
Рис.4.16 Параметры построения плоскости
77
Для визуализации поля интересующей нас величины необходимо
выбрать ее на соответствующей вкладке приборной панели
рис.4.17 и выставить время, для которого выводится решение
(рис.4.18)
Рис.4.17. Выбор поля для визуализации
Рис.4.18. Выбор момента времени
Таким образом, были построены скалярные поля модуля скорости и давления для срединного сечения расчетной области, соответствующие моменту времени t=0.32 с.
Рис.4.19. Поле модуля скорости
78
Рис.4.20 Поле давлений
79
ЗАКЛЮЧЕНИЕ
Книга «Прикладные программные комплексы для анализа
инженерных задач» вводит читателя в увлекательный мир возможностей численного моделирования сложных и разнообразных
процессов, протекающих в жидких и газообразных средах. Изучив это пособие и выполнив простые, но важные для изучения
основ компьютерного моделирования задачи, читатель получит
первоначальные представления о вычислительной гидродинамике, основах и особенностях моделирования гидрогазодинамических процессов в ведущих программных комплексах. В совокупности со знаниями, полученными в рамках курса «Пакеты прикладных программ», это позволяет читателю осваивать современные программные продукты, реализующие компьютерные
технологии инженерного анализа.
Выполняя дипломные, а также выпускные квалификационные работы и магистерские диссертации с использованием таких
программных средств, обучающийся приобретает необходимый
опыт и навыки работы с современными средствами исследователя и инженера.
80
БИБЛИОГРАФИЧЕСКИЙ СПИСОК
1. Лойцянский Л.Г. Механика жидкости и газа: Учеб. для вузов. – 7-е изд., испр.
– М.: Дрофа, 2003. – 840 с.
2. Управление обтеканием тел с вихревыми ячейками в приложении к летательным аппаратам интегральной компоновки (численное и физическое моделирование) / Под ред. А.В. Ермишина и С.А. Исаева. – М.: Изд-во Моск. Ун.та.,2003. – 360 с.
3. Роуч П. Вычислительная гидромеханика. М.: Мир, 1980. – 616 с.
4. Open FOAM: The Open Source CFD Toolbox. User Guide. 2012. -211p.
5. Ansys CFX-solver Theory Guide. Release 14.0 – 2012, Ansys Inc.
6. STAR-CCM+ methodology. Version 6.06. – London, 2011. - 1204 p.
7. Белоцерковский О. М., Давыдов Ю. М., Метод крупных частиц в газовой динамике, М., 1982
81
ПРИЛОЖЕНИЯ
Приложение 1
Содержимое файла blockMeshDict
FoamFile
{
version
2.0;
format ascii;
class dictionary;
object blockMeshDict;
}
convertToMeters
1.0;
vertices
(
( -0.4 0.28 0 )
( -0.02 0.28 0 )
( 0.02 0.28 0 )
( 0.96 0.28 0 )
( -0.4 0.02 0 )
( -0.02 0.02 0 )
( 0.02 0.02 0 )
( 0.96 0.02 0 )
( -0.4 -0.02 0 )
( -0.02 -0.02 0 )
( 0.02 -0.02 0 )
( 0.96 -0.02 0 )
( -0.4 -0.28 0 )
( -0.02 -0.28 0 )
( 0.02 -0.28 0 )
( 0.96 -0.28 0 )
( -0.4 0.28 0.392 )
( -0.02 0.28 0.392 )
( 0.02 0.28 0.392 )
( 0.96 0.28 0.392 )
( -0.4 0.02 0.392 )
( -0.02 0.02 0.392 )
( 0.02 0.02 0.392 )
( 0.96 0.02 0.392 )
( -0.4 -0.02 0.392 )
( -0.02 -0.02 0.392 )
( 0.02 -0.02 0.392 )
( 0.96 -0.02 0.392 )
( -0.4 -0.28 0.392 )
( -0.02 -0.28 0.392 )
( 0.02 -0.28 0.392 )
( 0.96 -0.28 0.392 )
);
blocks
(
hex (4 5 1 0 20 21 17 16) (29 19 59) simpleGrading (0.05 20 1)
hex (5 6 2 1 21 22 18 17) (21 19 59) simpleGrading (1 20 1)
hex (6 7 3 2 22 23 19 18) (73 19 59) simpleGrading (20 20 1)
82
hex (8 9 5 4 24 25 21 20) (29 21 59) simpleGrading (0.05 1 1)
hex (10 11 7 6 26 27 23 22) (73 21 59) simpleGrading (20 1 1)
hex (12 13 9 8 28 29 25 24) (29 19 59) simpleGrading (0.05 0.05 1)
hex (13 14 10 9 29 30 26 25) (21 19 59) simpleGrading (1 0.05 1)
hex (14 15 11 10 30 31 27 26) (73 19 59) simpleGrading (20 0.05 1)
);
edges
(
/*
arc 5 6 ( 0 0.02 0 )
arc 6 10 ( 0.02 0 0 )
arc 9 10 ( 0 -0.02 0 )
arc 9 5 ( -0.02 0 0 )
arc 21 22 ( 0 0.02 0.392 )
arc 26 22 ( 0.02 0 0.392 )
arc 25 26 ( 0 -0.02 0.392 )
arc 25 21 ( -0.02 0 0.392 )
*/
);
patches
(
wall walls
(
(5 21 22 6)
(6 22 26 10)
(10 26 25 9)
(9 25 21 5)
)
patch inlet
(
(4 20 16 0)
(8 24 20 4)
(12 28 24 8)
)
patch outlet
(
(3 19 23 7)
(7 23 27 11)
(11 27 31 15)
)
wall sides
(
(16 17 1 0)
(17 18 2 1)
(18 19 3 2)
(12 13 29 28)
(13 14 30 29)
(14 15 31 30)
)
walllowerUpper
(
83
(0 1 5 4)
(1 2 6 5)
(2 3 7 6)
(4 5 9 8)
(6 7 11 10)
(8 9 13 12)
(9 10 14 13)
(10 11 15 14)
(20 21 17 16)
(21 22 18 17)
(22 23 19 18)
(24 25 21 20)
(26 27 23 22)
(28 29 25 24)
(29 30 26 25)
(30 31 27 26)
)
);
mergPatchPairs
(
);
84
Приложение 2
Содержимое файла controlDict
FoamFile
{
version 2.0;
formatascii;
class
dictionary;
location "system";
objectcontrolDict;
}
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
applicationicoFoam;
startFromstartTime;
startTime
0;
stopAtendTime;
endTime
0.32;
deltaT
0.00032;
writeControltimeStep;
writeInterval 20;
purgeWrite
0;
writeFormatascii;
writePrecision 6;
writeCompression off;
timeFormat
general;
timePrecision 6;
runTimeModifiable true;
85
Приложение 3.
Содержимое файла “p”
FoamFile
{
version 2.0;
formatascii;
classvolScalarField;
object
p;
}
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
dimensions
[0 2 -2 0 0 0 0];
internalField uniform 0;
boundaryField
{
walls
{
typezeroGradient;
}
inlet
{
typezeroGradient;
}
outlet
{
typefixedValue;
value
uniform 0;
}
sides
{
type
zeroGradient;
}
lowerUpper
{
type
zeroGradient;
}
}
86
Приложение 4
Содержимое файла «U»
FoamFile
{
version 2.0;
formatascii;
classvolVectorField;
object
U;
}
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
dimensions
[0 1 -1 0 0 0 0];
internalField uniform (0 0 0);
boundaryField
{
walls
{
typefixedValue;
value
uniform (0 0 0);
}
inlet
{
typefixedValue;
value
uniform (1.25 0 0);
}
outlet
{
typezeroGradient;
}
sides
{
type
value
}
lowerUpper
{
type
value
}
}
fixedValue;
uniform (0 0 0);
fixedValue;
uniform (0 0 0);
87
Приложение 5
Содержимое файла transportProperties
FoamFile
{
version 2.0;
formatascii;
class
dictionary;
location "constant";
objecttransportProperties;
}
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
nunu [ 0 2 -1 0 0 0 0 ] 0.00001;
// *************************************************************************
88
Приложение 6
Содержимое файла fvSchemes
FoamFile
{
version 2.0;
formatascii;
class
dictionary;
location "system";
objectfvSchemes;
}
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
ddtSchemes
{
default
Euler;
}
gradSchemes
{
default
Gauss linear;
grad(p)
Gauss linear;
}
divSchemes
{
default
none;
div(phi,U)
Gauss linear;
}
laplacianSchemes
{
default
none;
laplacian(nu,U) Gauss linear corrected;
laplacian((1|A(U)),p) Gauss linear corrected;
}
interpolationSchemes
{
default
linear;
interpolate(HbyA) linear;
}
snGradSchemes
{
default
corrected;
}
fluxRequired
{
default
no;
p
;
}
// ****************//
89
Приложение 7
Содержимое файла fvSolution
FoamFile
{
version 2.0;
formatascii;
class
dictionary;
location "system";
objectfvSolution;
}
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
solvers
{
p
{
solver
PCG;
preconditioner DIC;
tolerance
1e-06;
relTol
0;
}
U
{
solverPBiCG;
preconditioner DILU;
tolerance
1e-05;
relTol
0;
}
}
PISO
{
nCorrectors 2;
nNonOrthogonalCorrectors 0;
pRefCell
0;
pRefValue
0;
}
// *******//
90
Приложение 8
Содержимое файла decomposeParDict
FoamFile
{
version 2.0;
formatascii;
class
dictionary;
location "system";
objectdecomposeParDict;
}
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
numberOfSubdomains 4;
method
simple;
simpleCoeffs
{
n
( 2 2 1 );
delta
0.001;
}
hierarchicalCoeffs
{
n
( 1 2 2 );
delta
0.001;
order
xyz;
}
manualCoeffs
{
dataFile
"cellDecomposition";
}
scotchCoeffs
{
}
// ************************************************************************* //
91
Download