Численное моделирование в области механики сплошных сред (МСС) позволяет эффективно исследовать закономерности протекания процессов, связанных с ее основными разделами, прежде всего с аэрогидродинамикой и механикой деформируемого твердого тела. При этом могут использоваться различные пакеты прикладных программ. Часть из них распространяется на коммерческой основе (ANSYS, ТЕСИС, ESI GROUP), а часть относится к так называемому свободно распространяемому ПО. В области численного моделирования задач МСС широкое распространение и популярность получила программная среда (ПС) OpenFOAM [1, 2] с открытым исходным кодом.
Данное программное решение в настоящее время совершенствуется, дополняется новыми решателями для обеспечения возможности работы с большим количеством задач МСС. Но его применение инженерами всего мира сопряжено с некоторыми трудностями, прежде всего с отсутствием встроенной графической оболочки для централизованного управления всеми этапами процесса численного моделирования задач МСС. В связи с отсутствием графического интерфейса пользователи вынуждены осуществлять вручную, через терминал все этапы численного эксперимента на базе ПС OpenFOAM − предобработку, решение, пост- обработку. При этом от пользователя требуется знание широкого перечня консольных команд и обозначений параметров задач МСС в ПС OpenFOAM.
Актуальность проблемы подтверждается интересом к ней зарубежных разработчиков. Ряд иностранных компаний запустили собственные проекты по созданию полноценных графических оболочек для ПС OpenFOAM. Их результатом стали программные решения, некоторые из которых нашли свое применение, но в итоге не были положительно оценены всеми участниками международного сообщества исследователей. Речь идет о таких программных решениях, как Salome [3, 4], Helyx-OS [5] и Visual-CFD [6], которые, с одной стороны, обеспечивают выполнение всех этапов процесса численного моделирования, а с другой − не обеспечены официальной русскоязычной документацией и либо не предусматривают техническую поддержку, либо она платная, что затрудняет эксплуатацию ПС OpenFOAM отечественными инженерами и исследователями.
Над созданием графической оболочки для ПС OpenFOAM работают не только компании, но и независимые коллективы исследователей, преимуще- ственно иностранных [7]. Использование их раз- работок отечественными специалистами связано с трудностями, аналогичными указанным выше: отсутствие русифицированного интерфейса и необходимость приобретения самого продукта и услуг по его обслуживанию.
Описанные сложности возникли в Государственном ракетном центре Макеева, специализирующемся на проектировании ракетно-космической техники и использующем ПС OpenFOAM в процессе проведения численных исследований в области газовой динамики и гидродинамики. В связи с этим перед авторами данной работы была поставлена задача поэтапной разработки оригинальной графической оболочки для обеспечения эффективного проведения численных экспериментов, которая предусматривала бы русскоязычные интерфейс и руководство пользователя.
Первый этап решения поставленной задачи представлен в работе [8], содержащей описание результатов разработки базовой версии оболочки для решателя rhoCentralFoam ПС OpenFOAM. Данная графическая оболочка обеспечивает программную подготовку расчетного случая к решению, запуск процесса решения и визуализацию результатов на базе пакета интерактивной визуализации научных исследований в сфере МСС ParaView [9].
Процесс подготовки РС относится к этапу предобработки численного моделирования. От качества подготовленной РС зависят верность и точность результатов численного эксперимента. В работе [8] предусмотрена только возможность импорта готовых РС, созданных с помощью стороннего ПО. При этом в ПС OpenFOAM реализованы собственные механизмы (утилиты) для генерации РС. Одним из типов параметрических сеток, генерация которых предусмотрена в ПС OpenFOAM, является трехмерная сеточная модель, состоящая из шестигранных блоков и разделенных шестигранников, формируемая утилитой snappyHexMesh на основе геометрий триангулированной поверхности. Настоящая статья посвящена особенностям разработки приложения с графической оболочкой, обеспечивающего централизованное выполнение всех шагов по подготовке данного типа РС.
В качестве объекта исследования в данном случае выступает процесс подготовки РС, состоящих из шестигранных блоков и разделенных шестигранников, генерируемых утилитой snappyHexMesh на базе геометрий триангулированной поверхности для постановки численных экспериментов посредством ПС OpenFOAM. Авторами настоящей работы исследованы принцип работы данной утилиты, а также необходимые для ее выполнения служебные файлы и содержащиеся в них параметры РС. Изучены официальное учебное пособие [10] и руководство пользователя [11] по ПС OpenFOAM, находящиеся в открытом доступе.
Цель настоящего исследования состоит в проек- тировании графической оболочки с возможностью выполнения централизованной подготовки РС, имеющих в своей структуре шестигранные блоки и разделенные шестигранники, генерируемые на базе геометрий триангулированной поверхности. В соответствии с обозначенной целью и после изучения объекта исследования для авторов сформулирован следующий комплекс задач:
- реализовать стартовое окно программы с возможностью выбора опции создания новой РС или выбора созданной РС для редактирования;
- реализовать основное окно приложения с несколькими интерфейсными блоками: панелью управления, блоком подготовки исходных данных для РС, блоком отображения результатов и панелью вывода служебной информации;
- в блоке подготовки исходных данных обеспечить отображение окна с интерфейсными элементами управления для обеспечения возможности указания исходных параметров сетки;
- обеспечить элементы управления системой защиты от неверных действий пользователя, привязать к элементам управления систему всплывающих подсказок;
- в блоке отображения результатов реализовать окно представления результатов сформированного файла с исходными параметрами РС, а также результатов выполнения процессов генерации и визуализации сетки;
- в панели вывода служебной информации разработать систему оповещения пользователя о статусе выполняемых им действий (корректное, нейтральное, с ошибками);
- реализовать возможность отображения созданной сетки с помощью пакета визуализации научных исследований ParaView.
Анализ объекта исследования
Утилита snappyHexMesh обеспечивает автоматическое формирование трехмерных параметрических сеток, состоящих из простых и разделенных шестигранников, на базе геометрий триангулированной поверхности. При этом сетка формируется для прямоугольной расчетной области, которая окружает объект, представленный в виде три-поверхности. Объект в данном случае может относиться к одному из разделов МСС и представляет собой файл (или набор файлов) с расширением .stl или .obj.
На основе анализа документации по ПС OpenFOAM [10, 11] и стандартного комплекса учебных задач, входящих в дистрибутив ПС OpenFOAM, авторами выявлены следующие особенности выполнения утилиты snappyHexMesh, которые представляют важность для разработки графической оболочки.
1. На первом шаге работы с утилитой пользователю необходимо описать моделируемый объект в виде файлов геометрий три-поверхности и сохранить файлы в поддиректории constant/triSurface соответствующего расчетного случая. Моделирование объекта в виде набора STL-файлов осуществляется с помощью специализированных 3D-программ.
2. На втором шаге осуществляется подготовка фоновой шестигранной сетки, определяющей характеристики расчетной области и свойства сетки на базовом уровне. Для выполнения данной задачи в ПС OpenFOAM предусмотрена встроенная утилита blockMesh.
3. Создать файл исходных параметров РС snappyHexMeshDict и заполнить его по методологии, представленной в учебном пособии по ПС OpenFOAM [10]. Все параметры, содержащиеся в данном файле, делятся на несколько блоков, каждый из которых отвечает за описание определенной группы свойств сетки (см. таблицу).
Название и характеристика разделов файла snappyHexMeshDict
Name and characteristics of snappyHexMeshDict file sections
Название блока параметров
|
Описание блока параметров
|
castellatedMesh
|
Переключатель включения опции генерации зубчатой сетки
|
snap
|
Переключатель запуска процесса привязки к поверхности
|
doLayers
|
Переключатель включения поверхностных слоев
|
mergeTolerance
|
Величина допуска для граничной рамки базовой сетки
|
writeFlags
|
Дополнительные опции управления генерацией сетки
|
geometry
|
Блок используемых геометрий и их параметров
|
castellatedMeshControls
|
Блок свойств зубчатой сетки
|
snapControls
|
Блок параметров определения привязки к поверхности
|
addLayers Controls
|
Блок параметров управления добавлением слоев
|
meshQuality Controls
|
Блок параметров, управляющих качеством сетки
|
Каждый из приведенных в таблице разделов, содержащих определенный набор параметров РС, содержит также дополнительные подразделы, которые подробно описаны в учебных материа- лах [10, 11].
На основе анализа объекта исследования авторами предложен подход, согласно которому процесс подготовки РС начинается с указания базовых параметров РС, определяющих структуру файла snappyHexMeshDict. Первые пять разделов файла, представленные в таблице 1, не содержат вложенных параметров. Их значения задаются в форме указания базовых данных. Другие пять разделов имеют вложенные элементы, и для указания соот- ветствующих этим разделам параметров РС предложено использовать отдельные формы. Набор элементов управления этих форм формируется на основе данных, определенных в форме с базовыми параметрами РС.
Выбор инструментария разработки
Несмотря на наличие обширного перечня высокоуровневых языков программирования (ВЯП), например, C++ и Java, в которых реализованы все необходимые средства для создания полноценных программных решений, среди разработчиков большой популярностью пользуется ВЯП Python. На основе данного языка программирования реализована логика работы многих современных десктопных и веб-приложений. В ВЯП Python встроены многочисленные структуры данных, предусмотрена поддержка списков, словарей, кортежей. Кроме того, разработчики могут при создании собственных приложений использовать возможности встроенных библиотек, а также устанавливать и подключать дополнительные расширения. Стоит также отметить простоту изучения данного ВЯП.
Перечисленными достоинствами обусловлен выбор языка программирования Python (версии 3.4) в качестве основной технологии реализации логики работы приложений. При этом элементы графического интерфейса предложено реализовать за счет подключения библиотеки PyQt4 и использования соответствующих ей программных инструкций. Библиотека PyQt4 показала свою эффективность при проектировании десктопных программ на базе ВЯП Python. Установка ВЯП Python 3.4 и библиотеки PyQt4 не требует приобретения лицензии и не представляет сложностей для разработчиков. Теоретические основы разработки программных средств на базе связки инструментария Python 3.4 и PyQt4 изучены авторами с помощью учебных материалов [12, 13].
Разработку предложено провести в интегрированной среде IDLE, обеспечивающей возможности редактирования, запуска и отладки программных приложений, созданных с помощью ВЯП Python. Поскольку ПС OpenFOAM функционирует на компьютерах под управлением ОС Linux, для работы с данной ПС и с приложением snappyHexMesh_ generator для подготовки РС, разработка которого описывается в настоящей статье, на компьютерах пользователей должна быть установлена данная ОС. В качестве дополнительного ПО также требуется наличие установленного пакета ParaView для отображения результатов численного моделирования задач МСС.
Структура программы
Приложение snappyHexMesh_generator состоит из набора служебных директорий и файлов, содержащих программный код. Диаграмма структуры приложения приведена на рисунке 1.
Основная директория программы snappyHexMesh_generator содержит шесть вложенных директорий и запускаемый файл run.py. Первая вложенная директория, ../windows/, содержит четыре служебных файла. Первый, prj_window, содержит программный код, отвечающий за отображение и логику работы стартового окна выбора директории проекта (расчетного случая). Второй, lng_window.py, является модулем, обеспечивающим функционирование окна выбора языка интерфейса программы. Следующие два файла директории − bMD_window.py и sHMD_window.py обеспечивают отображение набора форм, каждая из которых соответствует определенному блоку параметров РС из файлов snappyHexMeshDict и blockMeshDict. Наборы форм расположены в директориях ../bMD_forms/ и ../sHMD_forms/ второй вложенной директории ../forms/. Авторами предложен подход, согласно которому программный код каждой из экранных форм хранится в отдельном файле, что упрощает дальнейшую модификацию форм. При этом отдельной утилите генерации РС соответствует отдельная директория с файлами форм.
Поскольку описываемая в настоящей статье программа предусматривает работу с утилитами blockMesh и snappyHexMesh, для этих утилит подготовлены две директории с наборами экранных форм. Эти формы импортируются в служебные файлы bMD_window.py и sHMD_window.py, которые отвечают за их объединение в набор форм и отображение его в блоке подготовки исходных данных основного окна программы. Кроме того, в служебных файлах bMD_window.py и sHMD_window.py реализованы сериализация (запаковка) введенных параметров в совокупность промежуточных файлов, а также система защиты от неверных действий пользователя. Система всплывающих подсказок реализована отдельно для каждой формы в соответствующем ей файле.
Третья вложенная директория, ../functions/, содержит файлы blockMeshDict_generation и snappyHexMeshDict_generation, обеспечивающие генерацию файлов blockMeshDict и snappyHexMeshDict, содержащих служебные параметры РС. Кроме того, в этой директории хранится файл со служебными функциями msh_functions.py.
Четвертая вложенная директория, ../threads/, содержит файлы, отвечающие за запуск процессов генерации сеток и визуализации результатов.
В пятой вложенной директории, ../matches/, расположены файлы с шаблонами файлов параметров РС blockMeshDict, snappyHexMeshDict и surfaceFeatureExtractDict. Шестая вложенная директория, ../styles/, содержит служебный файл стилизации элементов графического интерфейса программы.
Реализация алгоритма работы программы
Основной алгоритмической сложностью, возникшей при разработке приложения snappyHexMesh_generator, стала реализация возможности не только создания новых РС, но и редактирования параметров уже существующих сеток. Для решения этой проблемы авторами предложено использовать набор промежуточных файлов для каждой из утилит (blockMesh и snappyHexMesh). Каждый промежуточный файл соответствует определенной экранной форме набора и применяется для сохранения данных, введенных пользователем в эту форму. Принято решение реализовать данный механизм за счет средств модуля Pickle [14] ВЯП Python, отвечающего за сериализацию данных.
Таким образом, при подготовке отдельной РС формируется набор промежуточных файлов с параметрами этой РС. Модуль Pickle выполняет сериализацию введенных пользователем параметров. Далее на основании запакованных данных осуществляются генерация файлов параметров сеток (blockMeshDict или snappyHexMeshDict), а также формирование их структуры и наполнение па- раметрами РС. Для обеспечения возможности изменения уже созданных РС также применяются возможности модуля Pickle, который выполняет десериализацию (распаковку) введенных пользователем данных. При этом распакованные данные выводятся в набор экранных форм и доступны для редактирования пользователем. На рисунке 2 приведена блок-схема, описывающая последовательность действий пользователя при работе с программой snappyHexMeshDict_generator.
Реализация логики работы программы
В процессе разработки приложения перед авторами встала задача обеспечения программного запуска консольных команд ПС OpenFOAM, отвечающих за подготовку РС. В качестве решения проблемы предложено применение технологии bash-скриптинга [15], когда формируется набор консольных команд и помещается в служебный файл (сценарий), который затем выполняется в командном интерпретаторе без необходимости ручного ввода команд. Приведем программный код, обеспечивающий автоматизацию запуска команд, осуществляющих генерацию РС, состоящих из шестигранников и разделенных шестигранников на основе геометрий триангулированной поверхности:
#!/bin/sh
. /opt/openfoam4/etc/bashrc
surfaceFeatureExtract
snappyHexMesh
exit
Автоматизированный запуск bash-сценария предложено реализовать за счет применения мо- дуля subprocess ВЯП Python. Данный модуль предусматривает запуск сторонних процессов параллельно работе пользователя в основном окне программы. При этом сторонний процесс выносится в отдельный, параллельный главному. Данный механизм позволяет пользователю осуществлять запуск любых дочерних процессов, в данном случае генерацию и визуализацию РС. Програм- мная инструкция, отвечающая за запуск bash-сценария как внешнего процесса, следующая:
run_subprocess = subprocess.Popen(
[bash + 'путь до файла со скриптом'],
cwd = 'директория расчетного случая',
shell = True,
stdout='путь до файла с результатами',
stderr='путь до файла с ошибками')
Команда Popen реализует запуск выполнения сторонней программы (сценария) в отдельном процессе. Через эту команду передается набор аргументов, управляющих ходом выполнения внешнего процесса. Первый аргумент содержит указание на bash-интерпретатор и путь до файла сценария. Второй аргумент (cwd) передает ссылку на директорию расчетного случая, третий (shell) содержит указание на выполнение скрипта через терминал. Четвертый и пятый аргументы (stdout и stderr) содержат указание на файлы, содержащие результаты выполнения программы и возможные ошибки.
Обобщая предложенные авторами подходы, заложенные в основу реализации разработки приложения snappyHexMeshDict_generator и решения сформулированных задач, в рамках описания научной новизны разработки могут быть приведены следующие положения.
1. Файлы blockMeshDict и snappyHexMeshDict с параметрами сеток формируются на основе набора промежуточных файлов, который создается средствами модуля Pickle ВЯП Python 3.4, обеспечивающего сериализацию данных. Сохраненные в наборе промежуточных файлов параметры сетки загружаются в набор форм для обеспечения возможности ее редактирования. Благодаря предложенному подходу для пользователей реализована возможность как подготовки новых РС, так и изменения уже созданных. Данный подход позволяет пользователям приложения snappyHexMeshDict_ generator создавать любое количество РС для отдельного расчетного случая.
2. Общая структура файлов blockMeshDict и snappyHexMeshDict формируется на основе формы с описанием базовых параметров сетки (файл initial_form.py). После указания базовых параметров сетки происходит автоматическая генерация остальных форм набора и структуры элементов управления форм. Форма с базовым описанием выполняет функцию инициализации ключевых свойств сетки.
3. Базовой и другим формам набора соответствуют отдельные файлы, содержащие PtQt4-инструкции, формирующие элементы управления форм. Предложенный подход обеспечивает отделение логики работы форм от их представления. Логика функционирования форм реализуется в служебных файлах bMD_window и sHMD_window, в которые импортируются файлы экранных форм. Служебные файлы bMD_window и sHMD_window выполняют функцию формирования окон блоков подготовки исходных данных для утилит blockMesh и snappyHexMesh соответственно.
4. Для реализации програм- много запуска утилит генерации РС и отображения результатов посредством пакета научной визуализации ParaView предложено использовать методологию bash-скриптинга как механизма программного запуска консольных команд. Bash-скрипты запускаются на выполнение посредством Python-модуля subprocess.
Демонстрация работы программы
Программное приложение, разработанное авторами статьи и предназначенное для подготовки РС, состоящих из шестигранников и разделенных шестигранников на основе геометрий триангулированной поверхности (snappyHexMeshDict_generator), относится к ПО с открытым исходным кодом.
Дистрибутив приложения размещен авторами на интернет-ресурсе GitHub [16], предоставляющем услуги хостинга IT-про- ектов. Дистрибутив, помимо служебных файлов с исходным кодом приложения, содержит инструкции пользователя для русскоязычной и англоязычной версий приложения.
Работа созданной программы протестирована авторами статьи на учебном примере, моделирующем одну из задач МСС и включенном в стандартный дистрибутив ПС OpenFOAM. В данном случае рассматривается учебная задача ПС OpenFOAM версии 4.0. Пример находится в директории учебных задач (.../openfoam4/tutorials/compressible/ rhoCentralFoam/forwardStep). Основное окно программы с загруженным стартовым окном выбора директории РС и основное окно программы с набором экранных форм в окне блока подготовки исходных данных для сетки и с результатами ее генерации в блоке вывода результатов представлены на рисунках (см. http://www.swsys.ru/uploaded/image/ 2018-4/2018-4-dop/15.jpg, http://www.swsys.ru/uploaded/image/2018-4/2018-4-dop/16.jpg). На рисунке 3 отображено основное окно приложения после отображения результатов визуализации, подготовленной РС посредством пакета ParaView.
Заключение
Представленное в настоящей статье исследо- вание посвящено изучению особенностей подготовки РС, состоящих из шестигранников и раз- деленных шестигранников на основе геометрий триангулированной поверхности, и разработке приложения с графическим пользовательским интерфейсом, обеспечивающим централизованную подготовку РС данного типа.
По итогам проведенной работы авторами представлена программа (snappyHexMeshDict_genera- tor), которая предварительно протестирована специалистами Государственного ракетного центра Макеева, отметившими снижение затрат рабочего времени на подготовку описанного типа РС по сравнению с традиционным подходом, предусматривающим выполнение всех этапов подготовки через консольное окно, то есть без приложения с графическим интерфейсом пользователя. Предполагается использовать созданное приложение при решении задач МСС, относящихся к специфике предприятия [17].
Несмотря на то, что предложенное програм- мное приложение создано под нужды Государственного ракетного центра Макеева, оно может применяться специалистами других предприятий, занимающимися численным моделированием за- дач МСС и использующими в работе ПС OpenFOAM. Кроме того, поскольку приложение snappyHexMeshDict_generator имеет свободно распространяемый исходный код, пользователи могут дорабатывать программу и изменять ее функциональные возможности под собственные задачи.
Рассматривая дальнейшие перспективы исследования в данном направлении, авторы предполагают изучение особенностей подготовки других типов РС, генерируемых посредством утилит ПС OpenFOAM, а также последующую разработку программных приложений с графическим интерфейсом, автоматизирующих процесс подготовки таких РС.
Литература
1. OpenFOAM. The open source CFD toolbox. URL: https://www.openfoam.com/ (дата обращения: 03.03.2018).
2. Jasak H. OpenFOAM: Open source CFD in research and industry. Intern. J. of Naval Architecture and Ocean Eng., 2009, vol. 1, iss. 2, pp. 89–94. DOI: 10.3744/JNAOE.2009.1.2.089.
3. Salome. The Open Source Integration Platform for Numerical Simulation. URL: http://www.salome-platform.org (дата обращения: 20.11.2017).
4. Ribes A., Caremoli C. Salome platform component model for numerical simulation. Proc. 31st COMPSAC, 2007, vol. 2, pp. 553–564. DOI: 10.1109/COMPSAC.2007.
5. HELYX-OS. The market leading open-source GUI for OpenFOAM. URL: http://engys.com/products/helyx-os (дата обращения: 20.11.2017).
6. Visual-CFD for OpenFOAM. CFD simulation software aimed at solving complex flow applications. URL: https://www.esi-group.com/software-solutions/virtual-environment/cfd-multiphysics/visual-cfd-openfoam (дата обращения: 20.11.2017).
7. Kaald H. A Graphical User Interface for the Computa-tional Fluid Dynamics Software OpenFOAM. Proc. Norwegian Univ. of Sc. and Tech., 2014. URL: https://brage.bibsys.no/xmlui/handle/11250/2351767 (дата обращения: 20.11.2017).
8. Читалов Д.И., Меркулов Е.С., Калашников С.Т. Разработка графического интерфейса пользователя для програм- много комплекса OpenFOAM // Программная инженерия. 2016. Вып. 12. С. 568–574. DOI: 10.17587/prin.7.568-574.
9. ParaView. Open-source, multi-platform data analysis and visualization application. URL: https://www.paraview.org/ (дата обращения: 20.12.2017).
10. OpenFOAM. Tutorial Guide. URL: https://www.openfoam.com/documentation/tutorial-guide/index.php (дата обращения: 25.12.2017).
11. OpenFOAM. User Guide. URL: http://foam.sourceforge.net/docs/Guides-a4/OpenFOAMUserGuide-A4.pdf (дата обращения: 15.12.2017).
12. Прохоренок Н.А. Python 3 и PyQt. СПб: БХВ-Петербург, 2012. 704 с.
13. PyQt4 Reference Guide. URL: http://pyqt.sourceforge.net/ Docs/PyQt4/ (дата обращения: 10.01.2018).
14. Сериализация объектов Python. URL: http://python-3.ru/page/module-pickle-python (дата обращения: 20.01.2018).
15. Искусство написания Bash-скриптов. URL: https://www. opennet.ru/docs/RUS/bash_scripting_guide/ (дата обращения: 01.02.2018).
16. Приложение для подготовки расчетных сеток из шестигранников и разделенных шестигранников на основе геометрий триангулированной поверхности. URL: https://github.com/DmitryChitalov/snappyHexMesh_generator (дата обращения: 18.04.2018).
17. Дегтярь В.Г., Пегов В.И., Меркулов Е С. Численное моделирование эволюции границы каверны при пуске торпеды // Вестн. ЮУрГУ. Сер.: Матем. моделирование и программирование. 2013. Т. 6. Вып. 1. С. 5–12.
References
- OpenFOAM. The open source CFD toolbox. Available at: https://www.openfoam.com/ (accessed March 3, 2018).
- Jasak H. OpenFOAM: Open source CFD in research and industry. Intern. J. of Naval Architecture and Ocean Engineering. 2009, vol. 1, iss. 2, pp. 89–94. DOI: 10.3744/JNAOE.2009.1.2.089.
- Salome. The Open Source Integration Platform for Numerical Simulation. Available at: http://www.salome-platform.org (accessed November 20, 2017).
- Ribes A., Caremoli C. Salome platform component model for numerical simulation. Proc. 31st Annual Intern. Computer Software and Applications Conf. (COMPSAC) 2007. 2007, vol. 2. DOI: 10.1109/COMPSAC.2007.
- HELYX-OS. The market leading open-source GUI for OpenFOAM. Available at: http://engys.com/products/helyx-os (accessed November 20, 2017).
- Visual-CFD for OpenFOAM. CFD Simulation Software Aimed at Solving Complex Flow Applications. Available at: https://www.esi-group.com/software-solutions/virtual-environment/cfd-multiphysics/visual-cfd-openfoam (accessed November 20, 2017).
- Kaald H. A Graphical User Interface for the Computa-tional Fluid Dynamics Software OpenFOAM. Proc. Norwegian Univ. of Sc. and Tech., 2014. URL: https://brage.bibsys.no/xmlui/handle/11250/2351767 (accessed November 20, 2018).
- Chitalov D.I., Merkulov E.S., Kalashnikov S.T. Development of a graphical user interface for the OpenFOAM software package. Software Engineering. 2016, iss. 12, pp. 568–574 (in Russ.). DOI: 10.17587/prin.7.568-574.
- ParaView. Open-source, Multi-Platform Data Analysis and Visualization Application. Available at: https://www.paraview.org/ (accessed December 20, 2017).
- OpenFOAM. Tutorial Guide. Available at: https://www.openfoam.com/documentation/tutorial-guide/index.php (accessed December 25, 2017).
- OpenFOAM. User Guide. Available at: http://foam.sourceforge.net/docs/Guides-a4/OpenFOAMUserGuide-A4.pdf (дата обращения: 15.12.2017).
- Prokhorenok N.A. Python 3 and PyQt. SPb, BHV-Peterburg Publ., 2012, 704 p.
- PyQt4 Reference Guide. Available at: http://pyqt.sourceforge.net/Docs/PyQt4/ (accessed January 10, 2018).
- Serialization of Python Objects. Available at: http://python-3.ru/page/module-pickle-python (accessed January 20, 2018).
- The art of Writing Bash Scripts. Available at: https://www.opennet.ru/docs/RUS/bash_scripting_guide/ (accessed Febuary 1, 2018).
- An Application to Prepare Meshes Containing Hexahedra and Split-Hexahedra from Triangulated Surface Geometries. Available at: https://github.com/DmitryChitalov/snappyHexMesh_generator (accessed April 18, 2018).
- Degtyar V.G., Pegov V.I., Merkulov E.S. Numerical simulation of the evolution of the cavern boundary during torpedo launch. Bulletin of South Ural State Univ. Series: Computational Mathematics and Software Engineering. 2013, vol. 6, iss. 1, pp. 5–12 (in Russ.).