Научная статья на тему 'Разработка графической оболочки для параллельных расчетов на базе платформы OpenFOAM'

Разработка графической оболочки для параллельных расчетов на базе платформы OpenFOAM Текст научной статьи по специальности «Компьютерные и информационные науки»

CC BY-NC
142
45
i Надоели баннеры? Вы всегда можете отключить рекламу.
Ключевые слова
ЧИСЛЕННОЕ МОДЕЛИРОВАНИЕ / МЕХАНИКА СПЛОШНЫХ СРЕД / ПАРАЛЛЕЛЬНЫЕ ВЫЧИСЛЕНИЯ / OPENFOAM / ОТКРЫТОЕ ПРОГРАММНОЕ ОБЕСПЕЧЕНИЕ / ГРАФИЧЕСКИЙ ИНТЕРФЕЙС ПОЛЬЗОВАТЕЛЯ / ЯЗЫК ПРОГРАММИРОВАНИЯ PYTHON / БИБЛИОТЕКА PYQT / СУБД SQLITE / BASH-СКРИПТИНГ / GRAPHICAL USER INTERFACE / OPEN SOURCE SOFTWARE / PARALLEL COMPUTING / CONTINUUM MECHANICS / NUMERICAL SIMULATION / PYTHON PROGRAMMING LANGUAGE / PYQT LIBRARY / SQLITE DBMS / BASH-SCRIPTING

Аннотация научной статьи по компьютерным и информационным наукам, автор научной работы — Читалов Дмитрий Иванович, Калашников Сергей Тимофеевич

Графические интерфейсы являются важнейшим элементом человеко-компьютерного взаимодействия. Они обеспечивают формирование входных данные для программ и визуализацию результатов. Коммерческое программное обеспечение преимущественно поставляется со встроенными графическими средствами взаимодействия. При этом некоторые открытые программные решения, в частности, платформа OpenFOAM лишена встроенных средств взаимодействия. Данная проблема сохраняет свою актуальность, поскольку существующие графические интерфейсы имеют недостатки. В настоящей работе представлен поэтапный процесс разработки графической оболочки для реализации взаимодействия пользователя с платформой OpenFOAM для постановки численных экспериментов применительно к задачам механики сплошных сред (МСС) в режиме параллельного выполнения. Для достижения поставленной цели определен список задач и необходимых инструментов: язык программирования Python 3.5, фреймворк описания элементов интерфейса PyQt5, интегрированная среда разработки PyCharm. Приведены диаграммы, демонстрирующие взаимосвязь модулей программы, и механизм работы программы. Сформулированы результаты разработки и тестирования приложения на примере проекта одной из стандартных задач МСС, входящих в дистрибутив платформы OpenFOAM. Сформулирована научная новизна исследования, в частности: сериализация параметров численного эксперимента с помощью модуля Pickle языка Python и таблиц базы данных в формате SQLite, возможность создания различных версий файлов с параметрами задач МСС, возможность запуска консольных команд с помощью bash-скриптов. Также определена практическая ценность работы и дальнейшие перспективы.

i Надоели баннеры? Вы всегда можете отключить рекламу.

Похожие темы научных работ по компьютерным и информационным наукам , автор научной работы — Читалов Дмитрий Иванович, Калашников Сергей Тимофеевич

iНе можете найти то, что вам нужно? Попробуйте сервис подбора литературы.
i Надоели баннеры? Вы всегда можете отключить рекламу.

DEVELOPMENT OF A GRAPHICAL SHELL FOR PARALLEL CALCULATIONS BASED ON THE OPENFOAM PLATFORM

Graphical interfaces are an essential element of human-computer interaction. They provide the formation of input data for programs and visualization of results. Commercial software predominantly comes with integrated graphical communication tools. At the same time, some open-source software solutions, in particular, the OpenFOAM platform, have no built-in interaction tools. This problem remains relevant because existing graphical interfaces have disadvantages. This paper presents a phased process for developing a graphical shell for implementing user interaction with the OpenFOAM platform for setting up numerical experiments in relation to the tasks of continuum mechanics (MSS) in parallel execution mode. To achieve this goal, a list of tasks and necessary tools is defined: the Python 3.5 programming language, the PyQt5 interface element description framework, and the PyCharm integrated development environment. The diagrams showing the interconnection of the program modules and the mechanism of the program. The results of the development and testing of the application are formulated using the example of a project of one of the standard tasks of the MSS included in the distribution platform platform OpenFOAM. The scientific novelty of the study is formulated, in particular: serialization of the parameters of a numerical experiment using the Python Pickle module and database tables in SQLite format, the ability to create various versions of files with MCC task parameters, the ability to run console commands using bash scripts. The practical value of the work and further prospects are also determined.

Текст научной работы на тему «Разработка графической оболочки для параллельных расчетов на базе платформы OpenFOAM»

Кибернетика и программирование

Правильная ссылка на статью:

Читалов Д.И., Калашников С.Т. — Разработка графической оболочки для параллельных расчетов на базе платформы OpenFOAM // Кибернетика и программирование. - 2019. - № 4. - С. 36 - 50. DOI: 10.25136/26445522.2019.4.29202 URL: https://nbpublish.com'Hbrary_read_article.php?id=29202

Разработка графической оболочки для параллельных расчетов на базе платформы OpenFOAM

Читалов Дмитрий Иванович

Младший научный сотрудник, Южно-Уральский научный центр 456317, Россия, Челябинская область, г. Миасс, ул. Пр. Октября, 31, кв. 44

И cdi9@yandex.ru

Калашников Сергей Тимофеевич

кандидат технических наук

Зав. отдела фундаментальных проблем аэрокосмических технологий, Южно-Уральский научный центр 456317, Россия, Челябинская область, г. M/iacc, ул. Ильменский Заповедник, 1

И src@makeyev.ru

Статья из рубрики 'Теория, программное обеспечение и языки параллельных вычислений"

Аннотация.

Графические интерфейсы являются важнейшим элементом человеко-компьютерного взаимодействия. Они обеспечивают формирование входных данные для программ и визуализацию результатов. Коммерческое программное обеспечение преимущественно поставляется со встроенными графическими средствами взаимодействия. При этом некоторые открытые программные решения, в частности, платформа OpenFOAM лишена встроенных средств взаимодействия. Данная проблема сохраняет свою актуальность, поскольку существующие графические интерфейсы имеют недостатки. В настоящей работе представлен поэтапный процесс разработки графической оболочки для реализации взаимодействия пользователя с платформой OpenFOAM - для постановки численных экспериментов применительно к задачам механики сплошных сред (МСС) в режиме параллельного выполнения. Для достижения поставленной цели определен список задач и необходимых инструментов: язык программирования Python 3.5, фреймворк описания элементов интерфейса PyQt5, интегрированная среда разработки PyCharm. Приведены диаграммы, демонстрирующие взаимосвязь модулей программы, и механизм работы программы. Сформулированы результаты разработки и тестирования приложения на примере проекта одной из стандартных задач МСС, входящих в дистрибутив платформы OpenFOAM.Сформулирована научная новизна исследования, в частности: сериализация параметров численного эксперимента с помощью модуля Pickle языка Python и таблиц базы данных в формате SQLite, возможность создания различных версий файлов с параметрами задач МСС, возможность запуска консольных команд с помощью bash-скриптов. Также определена практическая ценность работы и дальнейшие перспективы.

Ключевые слова: численное моделирование, механика сплошных сред, параллельные вычисления, OpenFOAM,открытое программное обеспечение, графический интерфейс пользователя, язык программирования Python, библиотека PyQt, СУБД SQLite,bash-скриптинг

DOI:

10.25136/2644-5522.2019.4.29202

Дата направления в редакцию:

11-03-2019

Дата рецензирования:

15-03-2019

Введение

Персональный компьютер является неотъемлемым элементом жизни человека. Использование первых вычислительных устройств было сопряжено с большими сложностями из-за отсутствия удобных и понятных средств взаимодействия между пользователем и самим устройством. Первый графический пользовательский интерфейс (GUI) был разработан в 1973 году в рамках проекта Xerox Alto - родоначальника всех персональных компьютеров. Предложенная графическая оболочка отличалась простотой, но уже предусматривала наличие меню, кнопок, примитивных окон и даже курсора мыши с возможностью выделения объектов. С появлением в 1981 году ОС Xerox Star существующий GUI был усовершенствован до версии, которая во многом идентична существующим -Ш.

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

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

OpenFOAM-2!, не предусматривающая наличие GUI. Платформа OpenFOAM является свободно распространяемым инструментарием для проведения расчетов в области механики сплошных сред (МСС) посредством численных методов. При этом создаются цифровые модели, имитирующие процессы (задачи), связанные с такими разделами МСС, как газо- и гидродинамика, механика деформируемого твердого тела и др. Пример численного исследования для задачи МСС представлен в работе ^^

Платформа OpenFOAM успешно зарекомендовала себя в конструкторских и

технологических подразделениях предприятий различных отраслей машиностроения: автомобилестроения, двигателестроения, ракетостроения, космического строения. Среди пользователей OpenFOAM представлены крупнейшие гиганты машиностроения: Audi, Volvo, Toyota, Volkswagen, Shell Oil.

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

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

Первая версия OpenFOAM была выпущена в 2004 году и первоначально специалисты для взаимодействия с данной платформой использовали только традиционный подход, но позднее ряд иностранных IT-компаний разработали собственные графические оболочки для OpenFOAM. Среди них наибольшую известность получили программные продукты

Salome [4], Visual-CFD-5-, Helyx-OS ^ которые позволяют выполнять все этапы построения цифровых моделей задач МСС на базе платформы OpemFOAM: препроцессинг, решение, постпроцессинг.

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

Актуальность проблемы

Перед началом создания оригинального программного продукта авторы проанализировали функциональные возможности и особенности нескольких наиболее известных аналогов. Результаты сравнения приведены в таблице 1.

Таблица 1. GUI для постановки численных экспериментов на базе платформы OpenFOAM

Название Лицензия Техническая поддержка Обучающая документация

Salome Свободно- распространяемое ПО Существует, платная Предусмотрена

Visual-CFD Бесплатная версия на 30 дней Существует, платная Только базовое описание возможностей

Helyx-OS Свободно- распространяемое ПО Существует, платная Только базовая инструкция для по л ьз о в а те ле й

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

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

Постановка целей и задач

Первая версия графической оболочки для платформы OpenFOAM была разработана авторами в 2016 г ^^ Она имела ограниченный функционал - возможность использования только применительно к решателю rhoCentralFoam (невязкий сжимаемый поток) платформы OpenFOAM. Кроме того, первая версия не предусматривала выполнение параллельных вычислений.

Цель настоящего исследования состоит в разработке графической оболочки (GUI) для платформы OpenFOAM с возможностью проведения параллельных расчетов (O penFO AM_decompose_GU I) и с возможностю применения для широкого круга решателей OpenFOAM: icoFoam (несжимаемый ламинарный поток), simpleFoam (стационарный, несжимаемый, турбулентный поток), pisoFoam (нестационарный несжимаемый турбулентный поток), sonicFoam (нестационарный сжимаемый турбулентный поток).

Для реализации поставленной цели авторами изучена официальная документация по OpenFOAM 6.0 и описание решения учебных задач[8, 9]. Описываемая графическая оболочка должна быть реализована в виде отдельного программного приложения и предусматривать выполнение каждого из этапов численного эксперимента с помощью платформы OpenFOAM: препроцессинг (определение и установка параметров задачи МСС), решение (численное моделирование задачи МСС), постпроцессинг (визуализация результатов численного эксперимента). Особенности и примеры решения задач МСС на базе платформы OpenFOAM приведены в работах[10-13]. Для выполнения каждого из этапов численного эксперимента необходимо спроектировать структуру GUI и определить логику его работы.

Структура GUI:

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

2 . Панель управления базовыми настройками численного эксперимента. Должна содержать: кнопку открытия окна подготовки расчетного случая платформы OpenFOAM, кнопку окна выбора языковой версии интерфейса и кнопку открытия универсального окна для создания файлов с начальными условиями численного эксперимента, т.е. файлов для директории «0» расчетного случая. Окно подготовки расчетного случая должно предусматривать радио-кнопки для выбора нужной опции: создание нового расчетного случая или выбор существующего. Также в окне необходимо предусмотреть поле ввода для указания названия расчетного случая и кнопку для открытия стандартного окна выбора директории расчетного случая. Окно выбора языковой версии интерфейса должно содержать радио-кнопки для выбора языковой версии интерфейса.

3 . Панель управления подготовкой моделей сеток. В этой панели необходимо реализовать кнопку открытия окна для указания опций работы с расчетными сетками, кнопку запуска формирования моделей сеток, кнопку запуска отображения результатов. Окно указания опций работы с расчетными сетками должно содержать элементы управления для выбора механизма генерации сетки - импорт внешнего файла, созданного посредством стороннего ПО или создание сетки средствами OpenFOAM (с помощью утилит blockMesh и snappyHexMesh). Механизм построения моделей сеток на основе указанных утилит описан в работах [14-15].

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

5. Блок дерева расчетного случая. Реализовать вывод структуры проекта задачи МСС в древовидном формате в отдельном окне. По выделению нужной ветви дерева (нужного служебного файла расчетного случая) в блоке редактирования параметров служебных файлов расчетного случая должна загружаться соответствующая экранная форма.

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

7. Блок отображения содержимого служебных файлов. Реализовать данный блок в виде окна, в котором должно отображаться содержимое каждого служебного файла расчетного случая.

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

9. Блок отображения путей до проекта расчетного случая и файла расчетной сетки (или директории со служебными файлами параметров расчетной сетки).

Логика работы GUI:

1 . Возможность подготовки нового расчетного случая и изменение параметров существующего.

2 . Возможность генерации моделей сеток на основе msh-файлов, подготовленных посредством сторонних программных продуктов и генерации моделей сеток средствами OpenFOAM - с помощью встроенных утилит blockMesh и snappyHexMesh.

3 . Запуск и останов численного эксперимента, визуализация результатов моделирования.

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

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

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

Разрабатываемая графическая оболочка является программным средством, т.е. набором файлов с программным кодом. Для его написания применяется специальный инструментарий, который включает язык программирования и среду разработки. Разрабатываемый интерфейс предполагается реализовать в виде настольного программного приложения. При этом применяются различные высокоуроневые языки программирования, например, С/С++, Java и Python. Они входят в список наиболее популярных языков программирования по рейтингу TIOBE

Принято решения реализовать логику работы программы с помощью языка Python, который по итогам 2018 года укрепил свои позиции и считается одним из наиболее популярных средств описания логики работы настольных и веб-приложений. Это мощный язык программирования, предусматривающий использование стандартных типов данных, а также поддерживающий многочисленные библиотеки для решения широкого перечня задач программирования. Кроме того, важным преимуществом языка Python является минимальный порог входа, т.е. достаточно иметь минимальные знания в программировании для его освоения. Python отличается простым, интуитивно понятным синтаксисом J17!.

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

Еще одним важным аспектом определения инструментария является выбор среды разработки для написания, отладки и запуска программного кода. В последние годы среди Python-разработчиков пользуется популярностью интегрированная среда разработки PyCharm. Она позволяет для каждого проекта определить нужную версию интерпретатора Python, а также в режиме реального времени установить необходимые пакеты и расширения, в том числе PyQt.

Полный перечень применяемого инструментария представлен в таблице 2. Каждый из инструментов является открытым, т.е. не требует приобретения лицензии. Версия Community среды разработки PyCharm является специальной бесплатной версией с

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

Язык программирования Фреймворк графических элементов Среда разработки

Python 3.5 PyQt5 PyCharm 2.4 (Community Edition)

Для использования графической оболочки необходимо соблюдать требования по ПО. Его список приведен в таблице 3.

Таблица 3. Список ПО для работы с графической оболочкой

ОС Программная среда Среда визуализации результатов

Linux OpenFOAM 6.0 ParaView

Среда визуализации результатов ParaView [19] - это специализированная открытая программа, которая предоставляет возможность исследователям выполнять визуализацию (отображение) результатов численного эксперимента.

Структура и логика работы приложения

Приложение О penFO AM_decompose_GU I реализовано по модульному принципу, в соответствии с которым за реализацию определенной функциональности отвечает определенный блок кода, помещенный в файл с расширением .ру (Ру^оп-модуль). Набор модулей формирует общую структуру программы. Структура представлена на рис. 1.

Рис. 1. Структура приложения OpenFOAM_decompose_GUI

Исходные коды программы распределены по соответствующим служебным директориям, включенным в главную директорию OpenFOAM_decompose_GUI. За запуск программы отвечает файл run . py . Он содержит инструкции визуализации главного окна и ряд базовых инструкций, описывающих логику работы приложения.

Рис. 2. Логика работы приложения

OpenFOAM_decompose_GUI Результаты исследования

Итогом выполненной авторами исследовательской работы является графическая оболочка OpenFOAM_decompose_GUI для проведения параллельных расчетов в OpenFOAM в рамках моделирования задач МСС в конструкторских и технологических подразделениях машиностроительных предприятий. Параллельные вычисления осуществляются в режиме синхронного выполнения на распределенных ресурсах. При этом сеточная модель и связанные поля разбиваются на отдельные компоненты и распределяются между процессорами (или ядрами процессора) для решения. По завершению параллельного запуска расчетный случай может быть реконструирован для последующей обработки, а также визуализации результатов на базе пакета ParaView. Параллельное вычисление обеспечивает экономию затрат времени на выполнение процесса численного моделирования задачи МСС.

На рис. 3-8 представлены изображения главного окна программы (графического интерфейса пользователя), а также отдельных интерфейсных блоков. Тестирование приложения проведено на базе учебной задачи depthCharge3D, входящей в блок учебных примеров стандартного дистрибутива платформы OpenFOAM.

Рис. 3. Главное окно приложения OpenFOAM_decompose_GUI на этапе работы с окном подготовки расчетного случая OpenFOAM, где: 1-главное окно программы, 2-панель управления базовыми настройками численного эксперимента, 3-панель управления подготовкой расчетных сеток, 4-панель управления ходом численного эксперимента, 5-окно подготовки расчетного случая OpenFOAM.

Рис. 4. Главное окно приложения

OpenFOAM_decompose_GUI на этапе работы с окном для указания опций работы с расчетными сетками, где: 6-блок дерева расчетного случая, 7-панель отображения служебных сообщений, 8-окно для указания опций работы с расчетными сетками.

Рис. 5. Главное окно приложения ОpenFOAM_decompose_GUI на этапе завершения создания файла blockMeshDict с параметрами расчетной сетки, где: 9-блок отображения путей до директории расчетного случая и файла расчетной сетки, 10-блок редактирования параметров служебных файлов расчетного случая, 11-блок отображения содержимого служебных файлов.

Рис. 6. Главное окно приложения OpenFOAM_decompose_GUI на этапе завершения генерации расчетной сетки.

Рис. 7. Главное окно приложения OpenFOAM_decompose_GUI

на этапе завершения создания одного из служебных файлов расчетного случая.

Рис. 8. Главное окно приложения OpenFOAM_decompose_GUI

на этапе завершения численного эксперимента и визуализации результатов.

Предложенная авторами программа OpenFOAM_decompose_GUI расширяет исходный код свободно-распространяемой платформы OpenFOAM. Программа является универсальной и может быть внедрена на предприятиях различных отраслей машиностроения. Программа находится в свободном доступе на платформе хостинга 1Т-проектов GitHub

Приложение может быть протестировано потенциальными специалистами при решении учебных или реальных задач МСС на базе OpenFOAM.

Научная новизна исследования

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

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

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

2 . Подход сериализации параметров расчетных сеток. Предложен механизм «консервирования» параметров сеточных моделей в виде набора служебных файлов, где каждый файл содержит параметры сеточной модели, хранящиеся в определенном блоке главного файла сеточной модели, например файла blockMeshDict или snappyHexMeshDict. Благодаря такому подходу параметры сеточной модели "консервируются" и могут быть восстановлены для последующего редактирования.

3 . Подход создания таблиц базы данных для файлов параметров расчетного случая. Предложен механизм сохранения параметров задачи МСС, определяемых в рамках моделируемого расчетного случая. Эти параметры записываются в соответствующие файлы расчетного случая, например, в файлы controlDict, thermophysicalProperties, decomposeParDict. Согласно предложенному механизму, для каждого из расчетных случаев создается файл базы данных в формате SQLite, где каждая из таблиц соответствует определенному файлу, т.е. содержит структуру полей и соответствующих им значений (параметров задачи МСС). Благодаря этому механизму, параметры задачи МСС могут быть не только сохранены в базе, но и загружены в соответствующую экранную форму при необходимости их редактирования.

iНе можете найти то, что вам нужно? Попробуйте сервис подбора литературы.

4 . Подход генерации bash-скриптов и запуска их в качестве дочерних процессов средствами языка программирования Python i21^. Использование данного подхода позволяет отказаться от привычного ручного запуска консольных команд по подготовке расчетных сеток и проведению численного моделирования на базе платформы OpenFOAM.

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

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

7 . Подход реализации возможности создания служебных файлов с различными начальными условиями численного эксперимента. Данный подход позволяет в рамках одного расчетного случая (одной задачи МСС) создать любое количество служебных файлов с начальными параметрами, т.е. у пользователя есть возможность выполнить численное моделирование при различных начальных условиях. Речь идет о файлах директории 0 расчетного случая OpenFOAM: p (давление), T (температура) и U (скорость). Согласно предложенному подходу, пользователь может создать сразу несколько вариантов этих файлов, с различными параметрами.

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

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

Использование созданной авторами программы OpenFOAM_decompose_GUI позволяет заменить традиционный - сложный и затратный по времени подход альтернативным -осуществлять все этапы численного эксперимента в OpenFOAM централизованно, посредством привычного оконного графического интерфейса. Это подход дает ряд преимуществ:

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

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

3 . Упрощение освоения платформы OpenFOAM. Процесс численного моделирования с помощью программы OpenFOAM_decompose_GUI осуществляется по строго определенному алгоритму. Например, пользователь не может запустить расчетный случай на решение, не установив параметры сеточной модели.

Заключение

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

Интерфейсы современных компьютерных программ, как правило, реализованы в виде графических элементов экрана, которые являются звеном, связывающим человека и компьютер. Оконные графические интерфейсы являются наиболее понятным средством взаимодействия специалиста и вычислительного устройства. В настоящее время практически все коммерческое ПО включает программные интерфейсы пользователя. При этом коммерческое ПО требует приобретения лицензии, что может не вписываться в бюджет компании. Таким образом, предприятия переходят на открытые программные продукты, не уступающие по функциональным возможностям существующим коммерческим решениям. К таким программным продуктам относится платформа OpenFOAM, которая успешно себя зарекомендовала при моделировании задач МСС на предприятиях различных отраслей машиностроения.

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

параметров задач МСС, а также использовать командную строку для управления ходом численного моделирования. Это сложный и затратный по времени подход. В качестве альтернативы предлагается использование специализированных графических оболочек: Salome, Helyx-OS и Visual-CFD. Однако, данный подход не лишен недостатков: не все продукты из названных находятся в свободном доступе, кроме того, предприятия вынуждены оплачивать работу специалистов по технической поддержке и работу консультантов. Таким образом, проблема отсутствия средства взаимодействия с пользователем для OpenFOAM сохраняет свою актуальность.

В настоящей работе представлена оригинальная графическая оболочка для проведения численных исследований на базе OpenFOAM, реализованная с помощью языка программирования Python 3.5 и фреймворка графических элементов PyQt5. Программа позволяет выполнять параллельные вычисления в рамках численного эксперимента, способствуя экономии ресурсов вычислительного устройства и времени проведения численного моделирования. Приложение находится в свободном доступе, обладает интуитивно понятным интерфейсом и не требует оплаты услуг по сопровождению. Программа размещена на сервисе GitHub и может применяться частными коллективами исследователей, а также на предприятиях машиностроения, использующих в работе платформу OpenFOAM.

В программе реализованы механизмы, определяющие научную новизну разработки, прежде всего возможность подготовки любого количества расчетных сеток для одного расчетного случая (задачи МСС), возможность валидации вводимых данных и проверки комплектности расчетного случая, возможность создания служебных файлов с различными начальными условиями численного эксперимента, реализация программного запуска консольных команд OpenFOAM с помощью программной генерации и запуска средствами языка Python соответствующих bash-скриптов. Практическая ценность приложения выражается в экономии рабочего времени специалистов, упрощении процесса изучения OpenFOAM и минимизации ошибок в постановке численного эксперимента.

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

Библиография

1. Operating System Interface Design Between 1981-2009 URL:

https ://www.webdesignerdepot.com/2009/03/operating-system-interface-design-between-1981-2009/ (дата обращения: 25.01.2019).

2. OpenFOAM. The open source CFD toolbox. URL: https://www.openfoam.com/ (дата обращения: 25.01.2019).

3. Etrati, A., & Frigaard, I. A. (2018). Viscosity effects in density-stable miscible displacement flows: Experiments and simulations. Physics of Fluids, 30(12) doi:10.1063/1.5065388.

4. Salome. The Open Source Integration Platform for Numerical Simulation. URL: http://www.salome-platform.org (дата обращения: 25.01.2019).

5. Visual-CFD for OpenFOAM. URL: https://www.esi-group.com/software-solutions/virtual-environment/cfd-multiphysics/visual-cfd-openfoam (дата обращения: 25.01.2019).

6. HELYX-OS. The market leading open-source GUI for OpenFOAM. URL:

http://engys.com/products/helyx-os (дата обращения: 25.01.2019).

7. Читалов Д.И., Меркулов Е.С., Калашников С.Т. Разработка графического интерфейса пользователя для программного комплекса OpenFOAM. Программная инженерия, вып. 12, 2016 г., стр. 568-574. DOI: 10.17587/prin.7.568-574. doi: 10.17586/prin.7.568-574.

8. OpenFOAM. User Guide. URL: http://foam.sourceforge.net/docs/Guides-a4/OpenFOAMUserGuide-A4.pdf (дата обращения: 25.01.2019).

9. OpenFOAM. Tutorial Guide. URL: https://www.openfoam.com/ documentation/tutorial-guide/index.php (дата обращения: 25.01.2019).

10. Galindo-Lopez, S., Salehi, F., Cleary, M. J., Masri, A. R., Neuber, G., Stein, O. T. (2018). A stochastic multiple mapping conditioning computational model in OpenFOAM for turbulent combustion. Computers and Fluids, 172, 410-425.

doi: 10.1016/j.compfluid.2018.03.083.

11. Kyriazis, N., Koukouvinis, P., & Gavaises, M. (2018). Modelling cavitation during drop impact on solid surfaces. Advances in Colloid and Interface Science, 260, 46-64.

doi: 10.1016/j.cis.2018.08.004.

12. H. Al-Jelawy, S. Kaczmarczyk, D. AlKhafaji, S. Mirhadizadeh, R. Lewis and M. Cross, "A Computational Investigation of a Turbulent Flow over a Backward Facing Step with OpenFOAM," 2016 9th International Conference on Developments in eSystems Engineering (DeSE), Liverpool, 2016, pp. 301-307. doi: 10.1109/DeSE.2016.47.

13. Mohseni, M., Esperanca, P. T., & Sphaier, S. H. (2018). Numerical study of wave run-up on a fixed and vertical surface-piercing cylinder subjected to regular, non-breaking waves using OpenFOAM. Applied Ocean Research, 79, 228-252.

doi: 10.1016/j.apor.2018.08.003.

14. Читалов Д.И., Калашников С.Т. Разработка приложения для подготовки расчетных сеток с градуирующими и изогнутыми краями для программной среды OpenFOAM. Системы и средства информатики. 2018. Т. 28. №4. стр. 122-135. doi: 10.14357/08696527180412.

15. Читалов Д.И., Калашников С.Т. Разработка приложения для подготовки расчетных сеток посредством утилиты snappyHexMesh программной среды OpenFOAM. Программные продукты и системы. 2018. Т. 31. № 4. стр. 715-722. doi: 10.15827/0236-235X.124.715-722.

16. TIOBE index for January 2019. URL: https://www.tiobe.com/tiobe-index/ (дата обращения: 25.01.2019).

17. Python 3.5 documentation. URL: https://docs.python.org/3.5/ (дата обращения: 25.01.2019).

18. PyQt5 Reference Guide. URL: http://pyqt.sourceforge.net/Docs/PyQt5/ (дата обращения: 25.01.2019).

19. ParaView. URL: https://www.paraview.org/ (дата обращения: 25.01.2019).

20. OpenFOAM_decompose_GUI. Available at:

https ://github.com/DmitryChitalov/OpenFOAM_decompose_GUI (дата обращения: 25.01.2019).

21. Advanced bash-scripting guide. URL: https://www.tldp.org/LDP/abs/html/ (дата обращения: 25.01.2019).

i Надоели баннеры? Вы всегда можете отключить рекламу.