- •РЕФЕРАТ
- •Записка к выпускной квалификационной работе изложена на 107 стр. машинописного текста, состоит из 3 разделов и включает 24 рисунка.
- •СОДЕРЖАНИЕ
- •ОПРЕДЕЛЕНИЯ, ОБОЗНАЧЕНИЯ И СОКРАЩЕНИЯ
- •ВВЕДЕНИЕ
- •1 Анализ задачи создания пользовательского интерфейса для OpenFOAM
- •1.1 Взаимодействие пользователя с OpenFOAM в процессе моделирования задачи
- •1.1.1 Предпроцессинг
- •1.1.2 Решение задачи и пост-процессинг
- •1.2 Основные требования к пользовательскому интерфейсу OpenFOAM
- •1.3 Функционал пользовательского интерфейса OpenFOAM
- •2 Определение средств для реализации пользовательского интерфейса OpenFOAM
- •2.1 Выбор операционной системы
- •2.2 Выбор языка программирования
- •2.3 Выбор IDE
- •3 Разработка пользовательского интерфейса для OpenFOAM
- •3.1 Структура приложения-интерфейса для OpenFOAM
- •3.2 Разработка классов объектов, хранящих информацию из файлов кейса OpenFOAM
- •3.2.1 Формат файлов кейсов OpenFOAM
- •3.2.2 Разработка абстрактного базового класса Dict
- •3.2.3 Разработка класса ControlDict
- •3.2.4 Разработка класса BlockMeshDict
- •3.2.5 Разработка класса Boundary
- •3.2.6 Разработка класса Field
- •3.2.7 Разработка класса Constant
- •3.2.8 Разработка класса SetFieldsDict
- •3.3 Разработка графического пользовательского интерфейса приложения
- •3.3.1 Внешний вид приложения
- •3.3.2 Вкладка «control»
- •3.3.2 Вкладка «blockMesh»
- •3.3.3 Вкладка «boundary»
- •3.3.4 Вкладка «Поля»
- •3.3.5 Вкладка «setFields»
- •3.3.6 Вкладка «Константы»
- •3.3.7 Вкладки «fvSolution» и «fvSchemes»
- •3.3.8 Вкладка «Запуск»
- •Заключение
- •СПИСОК ЛИТЕРАТУРЫ
- •ПРИЛОЖЕНИЕ А
- •Листинги ключевых частей программы
ВВЕДЕНИЕ
Данная работа посвящена разработке пользовательского интерфейса для системы OpenFOAM.
OpenFOAM (Open Source Field Operation And Manipulation) – это открытая интегрируемая платформа для численного моделирования задач механики сплошных сред [1]. Стандартная версия пакета OpenFOAM поставляется с многочисленными программами-решателями, утилитами и библиотеками, которые позволяют решать следующие задачи:
∙Прочностные расчеты;
∙Гидродинамика ньютоновских и неньютоновских вязких жидкостей как в несжимаемом, так и сжимаемом приближении с учётом конвективного теплообмена и действием сил гравитации;
∙Задачи теплопроводности в твёрдом теле;
∙Многофазные задачи, в том числе с описанием химических реакций компонент потока;
∙Задачи, связанные с деформацией расчётной сетки;
∙Сопряжённые задачи;
∙Некоторые другие задачи, при математической постановке которых требуется решение дифференциальных уравнений в частных производных в условиях сложной геометрии среды;
∙Распараллеливание расчёта как в кластерных, так и многопроцессорных системах.
Кроме программ-решателей в состав пакета входят множество утилит, позволяющих генерировать и конвертировать расчетную сетку, задавать значения полей и многие другие.
Моделирование задачи в системе OpenFOAM разделяется на три части, в соответствии с терминологией в пользовательской документации [2]:
1.Предпроцессинг (Preprocessing) – задание условий задачи моделирования. Предпроцессинг включает в себя задание информации о расчетной сетке,
9
задание граничных условий, констант, численных схем, а также настроек, связанных с управлением временем, чтением/записью данных и прочим.
2.Решение (Solving) – расчет параметров заданной системы в различные моменты времени. Производится с помощью программ-решателей (solvers), входящих в стандартный состав пакета OpenFOAM, либо пользовательских решателей, написанных с использованием библиотек OpenFOAM.
3.Пост-процессинг (Post-processing) – обработка результатов моделирования. На этом этапе производится визуализация полученных в процессе решения результатов при помощи таких программ, как paraView или EnSight.
Система OpenFOAM написана на объектно-ориентированном языке C++. Следствием этого является очевидное ее преимущество, заключающееся в гибкости и расширяемости: новые утилиты и решатели могут быть созданы пользователями при наличии знаний физики и навыков программирования.
Однако пользовательский интерфейс стандартного пакета OpenFOAM является не слишком дружественным. В пользовательской документации этап предпроцессинга предлагается осуществлять при помощи текстового редактора, задавая файлы исходных данных в некотором формате, находящихся в рабочей директории и образующих определенную структуру, необходимую для правильной работы системы. Этапы решения и пост-процессинга менее сложны, но осуществляются в стандартном пакете OpenFOAM через терминал Linux, и заключаются в запуске необходимого приложения для решения и визуализатора путем ввода команды в терминал. Ввиду того, что пользователь системы OpenFOAM, как правило, не обладает знанием операционной системы Linux, возникает необходимость в упрощенном графическом пользовательском интерфейсе, которого в составе стандартного пакета OpenFOAM нет.
Разрабатываемое в данной работе приложение призвано максимально упростить именно этап предпроцессинга, являющийся наиболее трудоемким, требующим от пользователя знания множества технических нюансов, а также предоставить возможность запускать решение задачи и визуализацию полученных результатов с помощью привычных пользователю графических элементов интерфейса.
10
Вданной работе не описываются подробно правила работы с OpenFOAM. Предполагается, что пользователь разрабатываемого приложения имеет опыт работы с данным пакетом. Разрабатываемый интерфейс должен только облегчить процесс задания исходных данных для задачи и осуществление запуска расчета и визуализации с помощью элементов графического интерфейса.
Впервом разделе данной работы приведен анализ задачи создания пользовательского интерфейса для пакета OpenFOAM, показан механизм работы пользователя с данным пакетом без применения графического интерфейса, доказаны необходимость разработки графического интерфейса. Во втором разделе будут определены средства для реализации графического интерфейса: язык программирования и интегрированная среда разработки. В последнем, третьем разделе, детально будет показан процесс разработки методов представления исходных данных задач OpenFOAM и элементов графического интерфейса для редактирования этих данных, а также для запуска решателя задачи и визуализатора результатов.
11