18 декабря 2016г.
Для упрощения инженерной разработки визуализаций с последующим включением их в научно- технический и дидактический контент мы разрабатываем модель создания визуализаций в форме периодических таблиц обобщенных методов визуализации [2]. В данной статье мы описываем разработку таких визуализаций, как сеточные разбиения и анализируем инструкции пакета Xy-pic, использованные при их разработке.
В технологических устройствах с реакторными вихревыми каналами малого радиуса с нерегулярной геометрией поперечного сечения могут проводиться тепло-, массо- обменные и гидродинамические процессы с образованием динамического многофазного слоя в пристенной области. Расчетная область показана на рис. 1. Мы вывели определяющие уравнения модели [7], [8], решили их численно для ламинарного и турбулентного режимов, определили оптимальный угол раскрытия канала.
При построении сеточного разбиения расчетной области в естественной системе координат (рис. 1) мы видим, что сеточное разбиение получается косоугольным, что затрудняет конечно-разностную аппроксимацию уравнений модели. Чтобы сделать сеточное разбиение прямоугольным отображаем исходную нерегулярную расчетную область в цилиндрическую (рис. 2).
Для получения уравнений модели в вычислительной системе координат мы раскрываем ковариантные производные контравариантных компонент вектора в уравнениях (1), (2), используем физические значения векторов скорости, уравнение неразрывности и получаем определяющие уравнения модели в вычислительной системе координат в консервативной форме. Далее мы конструируем контрольные объемы и осуществляем конечно-разностную аппроксимацию уравнений модели с последующим численным решением.
Далее мы описываем получение визуализаций сеточных разбиений расчетных областей в естественной (рис. 1) и вычислительной (рис. 2) системах координат посредством графического пакета Xy-pic.
Принимаем, что внешний поток, индуцирующий вихревое движение внутри канала, движется слева направо. На рисунке точки набегания и отрыва показаны залитыми кружками.
При выборе графического пакета для разработки визуализаций наших объектов мы проанализировали источники [6] (обзор графических расширений LaTeX), [3] (пакет Xy-pic), [5] (пакет PSTricks), [4] (пакет TikZ/PGF), [1] (пакет XyMTeX), установили и протестировали пакеты и остановили свой выбор на пакете Xy-pic.
Из набора использованных инструкций пакета Xy-pic мы выделили набор полиморфных методов (повернуть, задать позицию, задать тип линии, задать цвет и т.д.) и показали их применимость к ряду объектов (эллипс, дуга, сплайн, прямолинейная стрелка, текст, направленные объекты),
что
дает предпосылки для обобщенной интерпретации инструкций.
Зададимся некоторыми характеристиками сеточных разбиений. Будем считать, что в радиальном направлении номера узлов изменяются от 0 в центре до 9 на твердой границе, что узлы с номерами 10 и 11 находятся за пределами твердой границы и значения параметров течения в этих узлах принимаются равными нулю.
Принимаем,
что
номера линий
сеточных
разбиений в окружном направлении изменяются в
диапазоне от 0 до 38. Линии со значениями индексов, равными i=0 и i=36, i=1 и i=37, i=2 и i=38 считаем эквивалентными.
Использованное сеточное разбиение является неравномерным с коэффициентами неравномерности в радиальном, и в окружном направлении равными 0.85. Соответственно, мы рассчитываем шаги сетки в обоих направлениях, формируем из них массивы шагов, радиусов, углов.
Принимаем, что положительным направлением при отсчете углов является направление по часовой стрелке, отсчет начинается от крайней верхней точки i=0.
Приведем коды инструкций для элементов визуализации на языке Xy-pic. Рассмотрим инструкцию для рисования дуг сеточного разбиения (рис. 3)
,<0mm,0mm>*[blue][|(1.5)]{\ellipse<56.3200mm,56.3200mm>:a(270),_,:a(122){.}
которая дает элемент визуализации в виде
Эта инструкция строит дугу сеточного разбиения, используя объект эллипс
(\ellipse) из функции (feature)
«Circle, ellipse, arc», конечные
точки дуги задаются через углы и радиусы. Радиусы и углы являются изменяемыми параметрами, таких дуг мы строим 11 штук.
Вышеприведенную команду можно интерпретировать следующим образом.
1.
Текущей “,” сделать позицию с координатами, определяемыми вектором “<0mm,0mm>”.
Инструкцию можно рассматривать как реализацию полиморфного
метода
Object::SetPosition().
2.
В текущей
позиции «уронить»
“*” объект,
что соответствует реализации
полиморфного метода
Object::Drop().
3. Объектом является эллипс, из которого берется
дуга “{\ellipse< 56.3200mm, 56.3200mm>: a(270),_,:a(122){.}”.
4.
Оси эллипса равны
“{< 56.3200mm, 56.3200mm>”, т.е. строится окружность.
5.
Начальная точка дуги определяется углом “: a(270)” в текущей системе координат, конечная точка дуги находится в направлении по часовой стрелке “,_,” до положения, определяемого углом “:a(122)”. Дуга выполняет функции соединителя.
6.
Линия дуги задается пунктирной “{.}”. Это реализация полиморфного методы задания типа
линии.
8. Рис. 3. Дуга сеточного разбиения
Дугу модифицировать параметрами в угловых скобках, а именно, цвет сделать синим “[blue]”, толщину линии задать форм-фактором равным 1.5 “[|(1.5)]”. Здесь используется реализация полиморфного
метода задания цвета для эллипса Object::SetColor().
Радиальные отрезки сеточного разбиения (рис. 4) рисуются командами наподобие следующей, которая проводит радиус для i=9, используя объект «прямолинейная стрелка» из функции «Arrow and Path».
“\POS<0mm,0mm>+/v<0mm,10mm>:a(247) 0.0000mm/\ar@{.@*{[|(1.5)][blue]} /v<0mm,10mm>:a(247) 77.8000mm/*\txt{}=" 9"\POS"
9"+/3mm/*\txt{\small 9}”.
Дадим интерпретацию инструкции.
Текущей становится позиция, соответствующая началу координат рисунка Xy-pic “\POS<0mm,0mm>”, что реализует полиморфный метод Object::SetPosition().
Относительно текущей позиции задается
исходная позиция для проведения линии “+/v<0mm,10mm>:a(247) 0.0000mm/”. Здесь “v<0mm,10mm>” — это вектор, относительно которого производится отсчет угла для задания исходной позиции для проведения вектора. “:a(247)” — угол для задания направления радиального отрезка, отсчитывается против часовой стрелки. “0.0000mm” — расстояние, которое отсчитывается от основания луча для определения начальной точки для проведение радиального отрезка.
Проводится отрезок
“\ar@{.@*{[|(1.5)][blue]}” до точки “/v<0mm,10mm>:a(247) 77.8000mm/”. Линия проводится пунктирная “\ar@{.}” толщины с форм-фактором 1.5 “@*{[|(1.5)]” синего цвета “[blue]”.
В конечной точке линии «роняется» пустой объект “*\txt{}”. Позиции, в которой «уронили» объект, присваивается имя “=" 9"”. Интерпретируем позицию “\POS" 9"”.
Относительно нее смещаемся на вектор “+/3mm/” в текущем направлении и «бросаем» объект “*\txt{\small 9}”, который является текстом, набранным размером “\small”. Получаем метку 9, соответствующую текущей радиальной линии сеточного разбиения. Таким образом строим 36 радиальных отрезков.
Расставляем номера линий сетки по j.
\POS<0mm,0mm>+/v<0mm,10mm>:a(0)61.5800mm/+/r1.0mm/+/u0.5mm/*!LD\txt{\small 7}.
Новым в этой команде является то, что точкой привязки «бросаемого» объекта становится левый нижний угол объекта “!LD\txt{\small 7}”.
Рисуем точки набегания и отрыва
“\POS<0mm,0mm>
+/v<0mm,10mm>:a(212) 70.0000mm/*[red]{\bullet }”.
Присваиваем имена положениям для проведения горизонтальных линий в секторе угла раскрытия для точек набегания и отрыва, например,
“\POS<0mm,0mm> +/v<0mm,10mm>:a(212) 61.5800mm/*{}=" 13 7"”.
Реализация полиморфного метода Object::SetLabel().
Проводим горизонтальные отрезки в секторе угла раскрытия (рис. 5), например, “\POS" 23 7"\ar@{.@*{[|(1.5)][blue]}" 13 7"”.
Проставляем узлы сеточного разбиения, например,
“\POS<0mm,0mm> +/v<0mm,10mm>:a(347) 61.5800mm/ *[blue]{\circ}”.
Инструкция с изменяемыми параметрами выполняется в цикле 396 раз.
На этом построение сеточного разбиения расчетной области в естественной системе координат для текущей геометрии заканчивается.
Построение сеточного разбиения расчетной области в вычислительной системе координат строится аналогично, но чуть проще, поскольку отсутствует нерегулярный сектор.
При построении визуализаций сеточных разбиений Xy-pic-код генерируется автоматически программами на языке C.
В статье
приведены сеточные разбиения расчетных областей, необходимые для конечно-разностной аппроксимации уравнений модели гидродинамики реакторных вихревых каналов малого радиуса с нерегулярной геометрией поперечного сечения и описаны использованные инструкции.
Мы выполнили обобщенную интерпретацию инструкций пакета Xy-pic, на основе которой могут быть предложены шаблоны проектирования.
При продолжении исследований мы предполагаем использовать продемонстрированный подход в случаях других репрезентативных визуализаций, конструируя шаблоны проектирования и реализуя их на языке программирования C++. Это позволит охарактеризовать ячейки периодической таблицы методов визуализации, относящиеся к другим группам обобщенных объектов (фреймам, путям, матрицам, графам, многоугольникам, “умным” путям и т.д.) и репрезентативных визуализаций.
Список литературы
1. Fujita S. XyMTeX: Reliable tool for drawing chemical structural
formulas. — Kanagawa, Japan: Shonan Institute of Chemoinformatics and Mathematical Chemistry, 2013. — 760 p.
2.
Leontyev, B. P. Enhancement of a periodic table and generic visualization methods // Proc. 10th IASTED International Conference Computers and Advanced Technology in Education (CATE-2007). — Bejing, China: 2007. — Oct. — P. 96-101.
3.
Rose S. R. , Moore R. Xy-pic reference manual — IBM Thomas J. Watson Research Center, USA. Macquarie University, Australia,
2013. — 82 p.
4.
Tantau T. The TikZ and PGF Packages. Manual for version 3.0.1 — Institut fur Theoretische Informatik, Universitat zu Lubeck, 2013. — 1110 pp.— URL: http: //sourceforge.net/projects/pgf (дата обращения 6.05.2016).
5. Zandt T. PSTricks: PostScript macros for Generic TeX. User's guide. — 2007. — 127 p.
6.
Гуссенс М., Ратц С., Миттельбах Ф. Путеводитель по пакету LaTeX и его графическим расширениям.Иллюстрирование документов при помощи TeX'а и PostScript'а — М.: Мир, 2002. — 621 с.
7.
Леонтьев Б. П., Крайнюков Н. И., Щукин В. П. Уравнения трехмерной модели для ядра течений в областях нерегулярной геометрии // Труды 13-ой межд. конф. по химическим реакторам «Химреактор- 13» / Госуд. научный центр РФ «НИФХИ им. Л.Я. Карпова». — Новосибирск: 1996. — С. 171-173.
8.
Леонтьев, Б. П. Контекстно-ориентированные гиперсреды: Монография. — Тольятти: Изд-во ПВГУС,2013. — 228 с.