Визуализация результатов моделирования процессов газофазного синтеза наноразмерных структур при сетевом доступе к кластерному вычислителю

УДК 004.428.4

Н.В. Захаревич, Д.И. Иванов, И.А. Цикин визуализация результатов моделирования процессов

газофазного синтеза наноразмерных структур при сетевом доступе к кластерному вычислителю

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

Один из примеров применения подобных методов - область исследований, связанных с изучением процессов газофазного синтеза наноструктур и наноматериалов [4]. Такие задачи требуют как наличия высокопроизводительной системы, так и качественной визуализации полученных в результате моделирования данных. При этом актуальными становятся направления, связанные с разработкой методологии представления результатов, дающих полномасштабную информацию и об интегральных характеристиках описываемых процессов, и о детальном представлении при их визуализации (поля скоростей, давлений, концентраций реагентов и т. д.) как в локальных областях течения, так и во всем объеме нанореакторов.

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

модуль визуализации должен интегрироваться в систему удаленного доступа, реализованную как web-приложение [3];

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

тевого обращения к кластерному вычислителю;

разрабатываемые средства должны работать на максимально широком классе клиентских компьютеров;

необходимо предоставить пользователю различные способы отображения - графики, цветовые схемы, трехмерные модели;

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

Среди имеющихся дополнительных модулей к web-браузерам, которые можно использовать для создания двухмерных и трехмерных визуализаций, Adobe Flash обладает следующими преимуществами:

согласно данным корпорации Adobe, распространение Flash плеера на пользовательских компьютерах составляет более 99 %;

Adobe Flash широко используется для создания web-приложений, соответственно разработаны и апробированы стандартные методы;

для Adobe Flash существует значительное количество библиотек по работе с трехмерной графикой.

Другие дополнительные модули, такие, как Microsoft Silverlight, Adobe Shockwave, Java-апплеты либо значительно менее распространены на компьютерах пользователей, либо не обладают достаточным количеством средств для отображения трехмерной графики. Таким образом, использование Adobe Flash для разработки средств визуализации результатов моделирования в системе удаленного доступа к кластерному вычислителю представляется наиболее перспективным.

Рассмотрим подробнее средства Flash. которые необходимо использовать для решения поставленной задачи. В настоящее время при разработке Flash приложений используется язык программирования ActionScript версии 3. В данной версии языка создание растровых изображение осуществляется средствами Flash без применения сторонних расширений. Для работы с растровыми изображениями применяются классы BitmapData и Bitmap.

Для работы с трехмерной графикой на Flash необходимо использование специализированных дополнений. Существуют различные библиотеки для работы с трехмерными объектами, среди которых можно выделить следующие: PaperVision; Away3D; Sandy 3D Engine; Alternativa Platform; Yougurt3D и др.

Наиболее вероятным кандидатом на использование в условиях обозначенной специфики доступа является библиотека Away3D [5], обладающая широкой функциональностью и простотой в использовании. Библиотеки Yougurt3D и Sandy 3D Engine не обладают такими необходимыми функциями, как исправление сортировки и программное управление текстурным материалом. Система Alternativa Platform более ориентирована на создание игровых приложений, а не научных визуализаций. Функционал библиотеки PaperVision фактически идентичен функционалу Away3D, так что целесообразно рассматривать вариант использования этой библиотеки.

Также можно отметить, что использование системы классов в библиотеке Away3D проще, чем в PaperVision.

Применяемая для расчетов на кластерном вычислителе система FLUENT может сохранять результаты моделирования в различных форматах: как растровых изображений (например, формат JPG), так и различных бинарных и текстовых форматах данных. При построении системы удаленного доступа возникает задача передачи этих данных в клиентское программное обеспечение пользователя, а также задача визуализации информации, содержащейся в обозначенных бинарных и текстовых форматах. При этом информация в таких форматах сохраняется в более детализированом виде, чем в растровых форматах, что открывает широкие возможности для изучения результатов моделирования при помощи специализированных визуализаторов. При этом целесообразно выбрать один из поддерживаемых FLUENT текстовых или бинарных форматов данных.

В качестве формата данных для представления результатов можно рассмотреть два варианта: формат программы Gnuplot [6] или формат программы TecPlot [7]. Более перспективным решением представляется ASCII формат TecPlot, который для уменьшения количества информации, передаваемой через сеть, эффективно компрессируется программой gzip и, кроме того, сравнительно легко реализуется в пакете FLUENT. Этот формат является стандартным решением для экспорта и обработки результатов моделирования, следовательно, разрабатываемое решение инвариантно к программному обеспечению кластерного вычислителя.

Для решения задачи визуализации результатов работы кластерного вычислителя требуется запросить от web-приложения список данных, требующих визуализации, получить эти данные с сервера, перевести их в формат, с которым может работать Flash, и, наконец, вывести полученные изображения на экран. Рассмотрим функциональную схему модуля визуализации (рис. 1).

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

Рис. 1. Блок-схема обработки данных для визуализации

Загрузка файлов с сервера во Flash оформлена в отдельный, асинхронный с общей программой поток, что позволяет осуществлять предварительную обработку полученных данных в процессе получения следующего блока, а также визуализировать процесс загрузки. После загрузки при необходимости производится разархивирование файлов. Полученные текстовые файлы в формате TecPlot обрабатываются: находящиеся в них данные разбираются и записываются в специализированные массивы. В используемом для разработки Flash приложений языке ActionScript имеются различные средства для работы с массивами данных. Наиболее сложным в использовании, но максимально эффективным по скорости доступа к элементу и отводимой на массив области памяти является класс ByteArray. В силу большого размера загружаемых данных уменьшение времени доступа к отдельному блоку данных значительно увеличивает производительность системы, поэтому принято решение основывать реализацию именно на этом классе. Поскольку обработка данных производится в основном потоке вычислений (thread) виртуальной машины Flash, то чтение из загруженного файла и заполнение массивов производится порционно, чтобы избежать ограничений на длительность выполнения Flash программы.

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

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

создавать изображения для части поверхности;

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

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

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

Разработка Flash модуля велась с использованием языка программирования ActionScript версии 3, т. к., в отличие от второй версии этого языка, в третьей версии появилась возможность работать с бинарными файлами, а также была оптимизирована работа интерпретатора в целом, что позволило обрабатывать значительные объемы данных. Поскольку предполагается, что данные для визуализации будут загружаться с сервера,

то для загрузки внешних файлов в ActionScript 3 можно использовать класс URLLoader. Данный класс позволяет асинхронно загружать как текстовые, так и бинарные файлы. Поскольку процесс моделирования методом конечных элементов включает в себя расчет данных в значительном (до десятков тясяч) количестве узлов, то результатом моделирования могут являться файлы значительного размера (средний размер файла в текстовом несжатом формате - 10-15 Мб), так что возникает задача уменьшения размера закачиваемых по сети файлов.

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

результате расчета на кластере данных. Структура данных допускает значительную компрессию при использовании стандартного алгоритма DEFLATE [8]. Средний уровень компрессии файлов составляет около 80 %. Таким образом, удается сократить время загрузки файлов данных, а также минимизировать возможные проблемы обрыва связи в процессе загрузки. Загружаемые файлы являются бинарными, и необходимо установить свойство dataFormat класса URLLoader равным URLLoaderDataFormat.BINARY. Flash модуль последовательно загружает файлы из полученного из web-страницы списка с выводом на экран индикации процесса загрузки.

Загруженные с сервера данные необходимо перед обработкой предварительно разархивиро-вать. В ActionScript 3.0 имеется возможность работы с алгоритмом DEFLATE, используя класс ByteArray. Однако при этом на усмотрение разработчика остается обработка правильного заголовка файла и метаданных. Для этого можно воспользоваться классом GzipEncoder [9]. В случае если размер файлов данных невелик (несколько килобайт), то они могут передаваться в неархи-

Рис. 2. Блок-схема обработки загруженных данных

Рис. 3. Экран выбора переменной для визуализации

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

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

Все вычисления во Flash производятся как обработка некоторого события. При этом время вычисления ограничено. Таким образом достигается реакция на действия пользователя при работе виртуальной машины Flash в одном процессе (thread). Одним из таких событий является ENTER_FRAME - обработчик начала формирования кадра анимации. Частота вызова этого обработчика задается в свойствах Flash приложения и обычно составляет 12 или 25 кадров в секунду. Соответственно расчеты, выполняемые в этом обработчике, не должны превышать по времени выполнения 40 мс (при 25 кадрах в секунду). Таким образом, необходима подпрограмма, последовательно читающая из распакованного файла

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

Также в процессе заполнения массивов для каждой из находящихся в файле переменных может быть вычислено минимальное и максимальное значение отдельно в каждой зоне. На рис. 2 приведена блок-схема работы такой подпрограммы.

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

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

После выбора пользователем переменной, которую предстоит визуализировать, Flash модуль действует в зависимости от типа загруженных данных. Если данные представляют собой зависимость y = fx), то рисуется график этой зависимости (рис. 4).

В случае распределения значений переменной по поверхности, заданной набором узлов, модуль

Рис. 4. График распределения скорости осаждения gaas<b>

Рис. 5. Экран с контейнером для перемещения и масштабирования двумерного изображения

velocity-magnitude Zone(s)= cutx |velocity-magnitude

Рис. 6. Экран с контейнером для перемещения и масштабирования двумерного изображения

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

из всех узлов данной зоны выбираются те, которые попадают в визуализируемый интервал (исходно это все узлы);

рассчитываются координаты этих узлов в пикселях на растровом изображении;

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

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

Пользователю предоставляются следующие инструменты:

увеличение масштаба в два раза вокруг места клика мыши;

уменьшение масштаба в два раза вокруг места клика мыши;

перемещение растровой картинки с помощью мыши;

кнопка возвращения к исходному положению и масштабу.

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

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

вращение с помощью мыши вокруг осей X и Z; вращение с помощью мыши вокруг осей X и Z по отдельности;

перемещение модели; масштабирование модели; возврат положения и масштаба модели к исходному состоянию.

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

ко интегрирован в общий web-интерфейс системы удаленного доступа к кластерному вычислителю.

Работа выполнена в рамках ФЦП «Развитие инфраструктуры наноиндустрии в РФ на 2008-2011 гг.», госконтракт № 16.647.12.2020.

список литературы

1. Иванов, Д.И. Сетевая реализация стохастических моделей радиотехнических устройств [Текст] / Д.И. Иванов, И.А. Цикин // Изв. вузов России. Сер. Радиоэлектроника. -2006. -№ 3. -С. 34-41.

2. Иванов, Д.И. Удаленный сетевой доступ к специализированной среде моделирования [Текст] / Д.И. Иванов, И.А. Цикин // Научно-технические ведомости СПбГПУ -2007. -№ 4. -Т. 2. -С. 7-12.

783. Иванов, Д.И. Реализация режима удаленного программирования в специализированной среде моделирования МАТЪАБ [Текст] / Д.И. Иванов, И.А. Цикин // Информационные технологии. -2008. -№ 11. -С. 23-27.

4. Болдырев, Ю.Я. Высокопроизводительные вычисления в задачах газофазного синтеза получения наноматериалов [Текст] / Ю.Я. Болдырев, К.Ю. Замо-

тин, Е.П. Петухов // Научно-технические ведомости СПбГПУ -2011. -№ 6.2.

5. Away3D [Электронный ресурс] / Режим доступа: http://away3d.com/

6. Gnuplot [Электронный ресурс] / Режим доступа: http://www.gnuplot.info/

7. Tecplot [Электронный ресурс] / Режим доступа: http://www.tecplot.com/

8. DEFLATE Compressed Data Format Specification version 1.3 [Электронный ресурс] / Режим доступа: http://tools.ietf.org/html/rfc1951/

9. Action script GZIP compression library [Электронный ресурс] / Режим доступа: http://probertson.com/ projects/gzipencoder/

УДК 681.3.016

С.В. Мещеряков, В.М. Иванов, Д.Е. Бортяков

анализ эксплуатационных дефектов грузоподъемного оборудования в системе автоматизированного проектирования

Технический контроль состояния грузоподъемного оборудования (ГПО) осуществляется как внутренними органами технадзора на предприятии, так и внешними экспертными организациями в соответствии с Правилами устройства и безопасной эксплуатации грузоподъемных кранов [5], установленными Ростехнадзором, и рядом других руководящих документов [1-4]. Объектами комплексного обследования являются не только грузоподъемные краны, но и опорные и стыковые конструкции, крановые пути, электроподвод и прочее оборудование.

Периодичность технического освидетельствования (ТО) зависит от грузоподъемности, режима работы крана (легкий, средний, тяжелый), срока его службы и интенсивности нагружения (табл. 1). Первичное ТО проводится через три года, повторные зависят от фактического срока и

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

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

В случае внешнего ТО экспертная организация получает от заказчика техническое задание, проектно-конструкторскую и эксплуатационную документацию на ГПО, а группа экспертов на основании внешнего осмотра и сделанных поэлементных замеров оценивает текущее состояние