визуализация линий тока и методы

advertisement
ВИЗУАЛИЗАЦИЯ ЛИНИЙ ТОКА И МЕТОДЫ КОМПЛЕКСНОЙ ВИЗУАЛИЗАЦИИ
ДИСКРЕТНЫХ ВЕКТОРНЫХ ПОЛЕЙ
К.В. ДЕДКОВА, Д.В. МОГИЛЕНСКИХ, И.В. ПАВЛОВ, В.В. ФЕДОРОВ
Российский федеральный ядерный центр 
Всероссийский НИИ технической физики им. акад. Е.И. Забабахина, Снежинск, Россия
Введение
В работе приводится описание методов постобработки и визуализация результатов численного моделирования разностными методами задач механики сплошной среды, в частности, описание методов обработки
и визуализации векторных полей. Численными результатами моделирования является набор состояний моделируемой системы на некоторые моменты времени. В каждый момент времени система характеризуется набором скалярных и векторных величин на разностной сетке. Состав результирующего набора зависит от конкретной задачи и от конкретной необходимости для исследователя. Обычно накапливается довольно ограниченный набор величин, как по временным промежуткам, так и по количеству величин. Накопленный набор величин
назовем явной информацией. Постобработкой назовем обработку накопленных результатов численного моделирования после расчета. Наряду с явной информацией неявно присутствует и неявная информация, которую необходимо вычислить. По явной информации можно вычислить дополнительную информацию, которую после постобработки можно представить графически, например, изолинии или изоповерхности скалярных полей или же линии
тока (ЛТ) векторных полей. Дополнительную информацию назовем новой информацией.
Совокупность значений той или иной величины, заданных в каждой точке рассматриваемой области, называется полем этой величины. Если рассматриваемая величина скаляр, значение которого в данной точке не зависит от выбора системы координат, то поле называется скалярным. Примерами скалярных полей могут служить поле температур, поле плотностей и др. Если рассматриваемая величина  вектор, как, например,
скорость, ускорение, то поле называется векторным [1]. Дадим формальное определение векторного поля [1].
Опр. 1. Если каждой точке пространства М поставить в соответствие вектор v , в результате получим векторное поле. В декартовой системе координат двумерное векторное поле можно записать в виде:
v (x, y) = P (x, y)i + Q (x, y)j. Скалярные функции P, Q однозначно определяют векторное поле.
Для наглядного представления векторных полей применяют линии тока (векторные линии, силовые линии).
Например, в магнитной динамике ЛТ называются силовыми линиями.
Опр. 2. Через каждую точку M проходит одна линия тока. За исключением точек, где поле не определено
или v (M) = 0, линии тока никогда не пересекаются. В декартовых координатах дифференциальные уравнения
линий тока имеют вид:
dy
dx
=
P ( x, y ) Q ( x, y )
Надо отметить, что данная работа посвящена алгоритмам и методам визуализации статически заданных результатов моделирования с помощью постобработки. В этом случае нет дополнительного вмешательства в методики моделирования. Существуют разные способы динамического представления векторных полей, которые
отвечают конкретной постановке задачи [24]. Данная работа основывается на двумерном случае, т. е. рассматриваются результаты двумерного численного моделирования. Многие результаты обобщаются на трехмерный случай. Можно выделить два направления данной работы:
Постобработка накопленных явных результатов расчетов для нахождения новой информации, что позволяет увеличить информативность визуализации результатов.
Методы комплексной визуализации векторных полей.
1. Постановка задачи
Описание проводится на примере методов моделирования, которые используют двумерные регулярные
разностные сетки. Данное предположение не ограничивает общность применимости представленных здесь
алгоритмов и методов для других структур данных. Регулярные разностные сетки – наиболее часто встречаю
2
Снежинск, 812 сентября 2003 г.
щийся метод дискретизации сплошной среды. Рассмотрим состояние модели на один момент времени
и, не ограничивая общности, рассмотрим одну регулярную математическую область. Пусть геометрия данных,
т. е. регулярная двумерная сетка, описана двумерными матрицами X [M, N], Y [M, N], где M, N  размерность
сетки. На рис. 1 и 2 представлены сеточные примеры систем. Пусть на сетке задана векторная величина U, например, в каждом узле заданы две координатные составляющие (Ux, Uy). Каждая составляющая представляет
собой скалярную величину. Векторное поле записывается в виде двух матриц Ux [M, N], Uy [M, N], где M, N 
размерность сетки.
Рис. 1. Пример распределения скалярной функции
на регулярной криволинейной сетке
Рис. 2. Пример распределения скалярной функции
на регулярной прямоугольной равномерной сетке
Это пример визуализации численного метода,
использующего Лагранжеву сетку.
Это пример визуализации численного метода,
использующего Эйлерову сетку.
Содержание работы включает:
1. Численный алгоритм нахождения ЛТ  постобработка накопленных результатов и нахождение новой
информации.
2. Функции визуализации ЛТ  способы графического представления.
3. Методы комплексной визуализации для увеличения информативности  применение функций визуализации линий тока одновременно с другими функциями визуализации.
Увеличение информативности визуализации и нахождение новой информации являются важными задачами
научной визуализации (НВ). Применение алгоритмов анализа и постобработки исходной информации для
получения новой информации дает возможность увеличить степень информативности НВ и получить новое
качество анализа результатов. Алгоритмы нахождения и способы визуализации линий тока векторных полей
являются важной составляющей задачи НВ в целом. Визуализация линий тока является одним из наиболее
информативных и эффективных способов визуального представления векторного поля, что позволяет детально
передать топологию векторного поля. Линии тока  наглядная характеристика движения различных сред,
столкновения, расхождения или завихрений потоков.
2. Алгоритм нахождения линии тока
2.1. Идея алгоритма и предварительные рассуждения
Алгоритм основывается только на информации, которая явно дана в узлах расчетной сетки. Внутри ячеек
сетки информации нет. По определению ЛТ известно, что в любой точке среды проходит только одна ЛТ. Поэтому нужно определить правила, по которым можно быстро интерполировать векторное поле внутри ячейки
или, что одно и тоже, интерполировать две скалярные величины, т. е. координатные компоненты. Очевидно,
что геометрически нужно опираться на ячейки расчетной сетки или на ребра ячеек.
Для нахождения ЛТ векторного поля предлагается применить двумерный аналог алгоритма Фонга [5].
Подобный подход был применен в работе [6] для цветовой интерполяции физических величин внутри ячеек.
3
Классический алгоритм Фонга применяется в пространстве R для расчета освещенности внутренних точек
ячеек в сеточных трехмерных моделях для графического представления эффекта плавного изменения освещенности внутри ячеек. Алгоритм нахождения ЛТ базируется на билинейной интерполяции вдоль отрезков
3
VII Забабахинские научные чтения
прямой. Процесс интерполяции величины внутри ячеек при визуализации научных и экспериментальных
данных назовем «графическим восполнением» (ГВ) [7] исходных данных для их адекватной и быстрой визуализации. Строгий математический термин «интерполяция» более точно отвечает смыслу работы, но он является
фундаментальным, в смысле оценки погрешности. Поэтому в данной работе лучше применять специальное
название, чтобы отразить прикладную область и подчеркнуть, что не только оценка точности важна в визуализации, но и визуальный приближенный эффект, и скорость получения адекватного результата.
Задача интерполяции или восполнения дискретно заданных функций хорошо изучена и описана в научной
литературе, как в классических численных методах, так и в литературе по машинной графике. Акцент в таких
работах делается на трехмерное представление графиков функций или на наиболее точное нахождение промежуточных значений функций. В контексте данной работы акцент смещается в сторону нахождения приемлемо
приближенного и быстрого алгоритма нахождения ЛТ векторного поля при 2D−визуализации. Применение,
например, сплайнов возможно, но это требует больших вычислительных затрат. Размерность современных
решаемых задач огромнa, например, в механике сплошной среды, что приводит к необходимости решать очень
большие системы уравнений.
2.2. Описание алгоритма
Описание проведем по шагам.
Шаг 1 (Инициализация ЛТ). Сначала происходит инициализация базовой точки (БТ) на области определения векторного поля, которая будет определять одну ЛТ. Механизм инициализации БТ может быть разный
(раздел 3). Пусть БТ точка задана: A(Xb, Yb).
Шаг 2 (Локализация БТ). Нужно определить, какой ячейке сетки принадлежит БТ. На этом шаге работают
алгоритмы локализации точки. Время локализации точки зависит от типа разностной сетки. Можно привести
пример лагранжевой подвижной сетки (см. рис. 1) или эйлеровой неподвижной сетки (см. рис. 2). Сетка может
иметь простую геометрию, например, равномерная прямоугольная сетка (см. рис. 2). Для таких сеток задача
локализации БТ происходит очень быстро без перебора всех ячеек, т. к. известны шаги сетки по обоим сеточным направлениям. Или же сетка может быть криволинейной (см. рис.1), в этом случае нужен полный перебор
ячеек. Можно предложить два метода:
1. Последовательный полный перебор ячеек. Рассмотрим текущую четырехугольную ячейку с индексами:
(i, j), (i+1, j), (i+1, j+1), (i, j+1) (рис. 3). Вычисляется габаритный прямоугольник, описывающий ячейку.
Определение факта принадлежности точки прямоугольнику является тривиальным. Если БТ не принадлежит описывающему прямоугольнику, то заведомо БТ не принадлежит ячейке, иначе нужен более точный анализ. Можно применить следующий способ: узлы ячеек легко ориентировать по часовой стрелке
или против и рассматривать ребра в виде векторов (рис. 4). Тогда для БТ можно определить ее положение относительно каждого вектора. Если для каждого вектора БТ будет справа или слева, в зависимости
от ориентации, то она принадлежит ячейке.
(i, j+1)
Ymax
(i+1, j+1)
A (Xb, Yb)
y=Yb
Ymin
(i, j)
(i+1, j)
Xmin
x=Xb
Рис. 3. Текущая четырехугольная ячейка и габаритный описывающий прямоугольник
Xmax
X
4
Снежинск, 812 сентября 2003 г.
(i, j+1)
Y
(i+1,
j 1)
A(Xb, Yb)
(i, j)
(i+1, j)
X
Рис. 4. Текущая четырехугольная ячейка с ориентированными ребрами
2.
В этом методе полный перебор ячеек нужен только в худшем случае и количество вычислений меньше
в среднем. Рассматриваются горизонтальная (y = Yb) и вертикальная (x = Xb) прямые, которые пересекаются в БТ. Рассмотрим текущую четырехугольную ячейку с индексами: (i, j), (i+1, j), (i+1, j+1),
(i, j+1) (см. рис. 3). Сначала определяется факт пересечения, допустим, с горизонтальной прямой, т. е.
рассматриваются координаты абсцисс узлов ячейки. Если существуют узлы с координатами X1 и X2:
X1 > Xb > X2 или X1 < Xb < X2, то необходимо проверить факт пересечения с вертикальной прямой. Если нет пересечения, то переходим к следующей ячейке. Проверка факта пересечения с вертикальной
прямой аналогична горизонтальной, если ячейка не пересекает вертикальную прямую, то переход
к следующей ячейке. Если ячейка пересекает обе прямые, то ячейка анализируется более точно способом из первого метода. Таких подозрительных ячеек оказывается мало.
Примечание: Эти методы применимы только для выпуклых ячеек.
Шаг 3 (Интерполяция Фонга). Пусть нам известно, что БТ принадлежит ячейке с индексами: (i, j),
(i + 1, j), (i + 1, j + 1), (i, j + 1). Векторное поле на сетке задано в узлах, т. е. внутри ячейки нет определенности,
поэтому необходимо адекватное восполнение значений векторной величины U внутри, в БТ. Необходимо применить алгоритмы ГВ внутри ячейки. В работе [6] рассматриваются и сравниваются разные подходы к ГВ.
Можно применять любой из них для двух координатных скалярных полей. Предлагается применить алгоритм
билинейной интерполяции по горизонтали или по вертикали. Не ограничивая общность, допустим, что
i = 0 и j = 0, т. е. индексы для текущей ячейки: (0,0), (1,0), (1,1), (0,1). Текущая ячейка с узловыми векторными
величинами представлена схематично на рис. 5. Обозначим узлы так: V1 = (0,1), V2 = (1,1), V3 = (1,0),
V4 = (0,0). Координаты векторов в узлах обозначим: (uv4,vv4), (uv1,vv1), (uv2,vv2), (uv3,vv4). Алгоритм ГВ векторных величин сводится к билинейной интерполяции двух координат вектора.
(0, 1)=V1
Ymax
D
(uv1,vv1)
B
J
(u,v)
A
(uv2,vv2)
(1, 1)=V2
C
(uv4,vv4)
Ymin
(0, 0)=V4
E
(uv3,vv3)
Xmin
I
(1, 0)=V3
Xmax
Рис. 5. Текущая ячейка с направлением сканирования по горизонтали, с локализованной БТ A
и внутренними отрезками сканирующих прямых BC и DE.
X
VII Забабахинские научные чтения
5
Описание аналогично описанию алгоритма в работе [6]. Алгоритм графического восполнения векторных
величин внутри ячеек осуществляется вдоль прямой сканирования, которая проходит через локализованную
БТ А текущей ячейки (см. рис. 5). Алгоритм можно считать двумерной модификацией метода Фонга для визуализации дискретного векторного поля, заданного на сетке.
Две первые интерполяции: Для сканирующей прямой находятся точки пересечения с ребрами ячейки.
Обозначим их: В, С (см. рис. 5). Теперь в эти точки необходимо интерполировать значения U из узлов ребер.
Интерполирование значений векторной величины U подразумевает интерполирование координат вектора
(u, v). Воспользуемся линейной интерполяцией.
uB= t uv1+ (1 – t ) uv4;
uC= t uv2+ (1 – t* ) uv3;
vB= t vv1+ (1 – t ) vv4;
vC= t vv2+ (1 – t* ) vv3;
Где uB, vB, uC, vС, uv1, vv1, uv2, vv2, uv4, vv4, uv3, vv3 координаты векторов для соответствующих точек B, С, V1, V2,
V2, V4, а параметры t и t*: 0 ≤ t ≤ 1, 0 ≤ t* ≤ 1; t = |V1 B| / |V4 B|, t* = |V2 C| / |V3 C|.
Вторая интерполяция: Сейчас необходимо линейно интерполировать значение координат векторов из то–
чек B, С в точку А:
u = p uB + (1 – p ) uC,
v = p vB + (1 – p) vC, где 0 ≤ p ≤ 1 и p = |A B| / |A C|.
В результате билинейной интерполяции приближенно находится и восполняется значение векторной величины Ua в БТ (см. рис. 5).
Аналогично можно находить значение U в БТ с помощью интерполяции вдоль вертикали.
На рис. 6 представлен реальный фрагмент одной ячейки с соответствующими построениями.
Возможно применение двойной билинейной интерполяции, т. е. по горизонтали и вертикали  двойной
порядок точности. Промежуточное значение для БТ будет найдено точнее, но, во–первых, скорость вычислений будет в 2 раза медленнее, а во–вторых, если сетка достаточно мелкая, то результат будет мало отличаться
от одной билинейной интерполяции. Этот эффект был продемонстрирован в работе [6].
Можно рассмотреть возможность применения функций библиотеки OpenGL для вычисления координат
векторной величины внутри ячейки по значениям в узлах, т. к. их скорость вычисления поддерживается на аппаратном уровне. Например, можно применить функцию сглаживания цвета внутри ячейки по значениям
в узлах полигона. Т. е. координатные компоненты векторной величины можно интерпретировать как цветовые
компоненты. Надо заметить, что в OpenGL все полигоны разбиваются методом триангуляции, поэтому правильнее, если возможно, подавать сразу треугольник. Однако надо заметить, что точность построения ЛТ
будет целиком зависеть от алгоритмов OpenGL, что, как было представлено в работе [6], не всегда адекватно.
Шаг 4 (Построение ЛТ). На данный момент вычислено значение векторного поля в БТ, т. е. определено
направление движения линии тока от БТ. Теперь нужно найти приближенную кусочно–линейную траекторию
ЛТ. Предлагается два метода последовательного прослеживания или построения кусочно–линейной линии тока.
Метод 1. Эмпирически задается длина элементарного шага смещения от БТ вдоль вектора Ua. Например,
длина шага ориентировочно определяется некоторым соотношением габаритов области определения. Зная направление шага и длину, однозначно определяется следующая точка линии тока A1 (рис. 6). Вектор AA1 назовем вектором элементарного смещения (ВЭС). Если ВЭС не пересекает ни одного ребра ячейки, то точка A1
остается в текущей ячейке, тогда нужно перейти на шаг 3 интерполяции для точки A1, иначе ЛТ переходит
в соседнюю ячейку, и она однозначно определяется по пересеченному ребру. Меняется текущая ячейка и переход на шаг 3. И так далее последовательно происходит построение ЛТ в целом в виде кусочно–линейной кривой.
Метод 2. Этот способ является более быстрым, но менее точным, он базируется на одной линейной интерполяции вдоль ребра ячейки. Из БТ выпускается вектор по направлению ВЭС до пересечения с каким–либо
ребром ячейки (рис. 7). Точка пересечения A1 считается следующей точкой линии тока, и она переходит в следующую ячейку. Далее идем на шаг 3 интерполяции, в этом методе осуществляется только одна интерполяция
векторной величины вдоль пересекаемого ребра. В результате в точке A1 получаем значение векторной величины U1. Затем из точки A1 выпускается вектор по направлению ВЭС до пересечения с каким–либо ребром
данной ячейки. И процесс повторяется.
Алгоритм численного нахождения одной ЛТ завершен.
На данный момент осталось несколько существенных вопросов и замечаний по данному алгоритму, которые рассматриваются в следующих разделах.
6
Снежинск, 812 сентября 2003 г.
D
J
B
An(Xn, Yn)
C
An(Xn, Yn)
A(Xa, Ya)
A1 (X1, Y1)
E
A(Xa, Ya)
A1 (X1, Y1)
I
Рис. 6. Фрагмент текущей ячейки с локализованной
внутренней точкой A и внутренними отрезками
сканирующих прямых BC и DE
Рис. 7. Пример интерполяции вдоль ребра
3. Замечания и дополнения
Остановка построения ЛТ. Это является очень важной подзадачей. Приведем несколько примеров остановки построения ЛТ:
А. Построение ЛТ можно прекращать, когда очередной ВЭС пересечет границу расчетной области (рис. 8).
Однако эту ситуацию можно обрабатывать точнее. Можно найти точку пересечения ВЭС с граничным ребром
и вычислить с помощью одной линейной интерполяции из узлов данного граничного ребра значение векторной величины в этой точке. Тогда возможны два варианта действия. Если новый ВЭС направлен из расчетной
области, то ЛТ прерывается на данной точке пересечения, иначе, т. е. если новый ВЭС направлен внутрь расчетной области, то построение ЛТ продолжается (см. рис. 8).
A(X Y )
Рис. 8. Фрагмент двумерной сетки
с построенными линиями тока.
Граница сетки обозначена зеленым цветом.
Рис. 9. Пример трех ЛТ с разной длиной ВЭС
VII Забабахинские научные чтения
7
Рис. 10. Завихрения векторного поля и ЛТ. Пример самопересечения ЛТ
Б. ЛТ не пересекает саму себя. Наш алгоритм численный, т. е. приближенный, поэтому в случае завихрений
ситуация с самопересечением возможна. Это происходит, если ВЭС постоянной длины и не зависит от модуля
векторной величины (см. рис. 10). Поэтому необходимо постоянно проверять ЛТ на самопересечение. Проверка самопересечения довольно дорогая операция по вычислительным ресурсам, т. к. обычно строится некоторое
множество ЛТ. Предлагаются варианты для выхода из данной ситуации:
– Длину элементарного шага необходимо соотносить с абсолютным значением векторной величины
в точке, тогда ситуация, исправится в какой–то степени. Для этого необходимо заранее вычислить максимальное и минимальное значения модуля векторной величины во всех узлах расчетной сетки. Эти
значения необходимы для нормирования ВЭС. Обычно в системах визуализации эти значения уже вычислены для их отображения в виде скалярного поля. Тогда если модуль векторной величины увеличивается, то увеличивается ВЭС, и наоборот, если модуль уменьшается, то ВЭС тоже уменьшается.
– Можно ограничить количество линейных частей линии тока, а далее, если нет самопересечений, то
продолжить или закончить построение.
– Можно обратить внимание на особенности ЛТ и явно искать самопересечения с некоторым множеством
отрезков ЛТ, которое построено последним. Это связано с тем, что обычно самопересечения происходят
при образовании вихрей.
1. Пересечение ЛТ между собой. Если для каждой ЛТ выбирать ВЭС разной длинны, то возможна ситуация пересечения разных линий тока между собой. Во избежание этого необходимо выбирать ВЭС, одинаковой длинны или выдерживать точно нормировку ВЭС в зависимости от модуля вектора в каждой
текущей точке.
2. Точность численного построения ЛТ. Выбор длинны ВЭС, является параметром точности построения
ЛТ. Чем меньше длина ВЭС, тем точнее строится ЛТ, но более медленно. С другой стороны, обратим
внимание на то, что внутри ячеек вообще не определена векторная функция. В данном случае необходимо некоторое соглашение между точностью и скоростью построения ЛТ. На рис. 9 представлен пример трех линий тока, которые инициированы из одной БТ, но имеют разную длину ВЭС. Заметим, что независимо от шага ВЭС результат визуализации линий тока имеет хорошее согласование,
т. к. в каждой точке ЛТ выдерживается одно и тоже условие.
3. Построение ЛТ в обратном направлении. Проинициализировав БТ, мы определяем соответствующую ей ВЭС для ЛТ векторного поля вперед, т. е. все ЛТ имеют начало в своих базовых точках и стоятся по направлению ВЭС. В этом случае они строится не полностью, т. к. не построена «история» линии тока до БТ. По описанному выше алгоритму легко продолжить ЛТ в обратном направлении от БТ.
Для этого необходимо использовать вектор обратный вектору элементарного смещения. Другими словами, используется ВЭС той же длины, но противоположного направления.
4. Столкновение потоков, неопределенность. При реализации алгоритма ГВ для построения ЛТ имеет
место эффект «пила» при столкновении потоков векторного поля (рис. 11).
5. В нашей реализации для устранения этого эффекта применяется анализ угла между двумя последними
ВЭС. Если угол близок к нулю, то построение ЛТ прекращается (рис. 12). Можно применить более точный анализ.
8
Снежинск, 812 сентября 2003 г.
6.
Ячеечные векторы. Для реализации алгоритма построения ЛТ необходимы значения U в узлах сетки.
Физические величины в задачах могут быть ячеечными или узловыми. Если ФВ узловая, то не требуется предобработки, если ФВ ячеечная, то необходимо интерполировать ее значения в узлы. Самый простой и распространенный способ  присвоить данному узлу величину среднего арифметического значения ФВ в смежных ячейках по данному узлу.
Рис. 11. Эффект «пила»при столкновении потоков
векторного поля
Рис. 12. Столкновение потоков векторного поля
4. Анимация псевдодинамики линий тока векторного поля
Мы рассматриваем статическое состояние системы на некоторый момент времени моделирования, поэтому
о настоящей динамике мы не можем говорить. По этой причине представляемую динамику будем называть
псевдодинамикой. Несмотря на статичность, в каждом узле сетки задана вполне определенная векторная величина, у которой есть потенциальная величина изменения. Данной информации достаточно для реализации разных способов повышения информативности визуализации, что позволит более точно и качественно оценить
состояние модели. Анимационные функции визуализации трудно представить статическими картинками.
Представим несколько способов визуализации псевдодинамики, т. е. визуализация изменения модуля векторной величины векторного поля вдоль линии тока:
Способ 1. Изменение скорости графического построения траектории ЛТ, с помощью применения нормированной длинны ВЭС.
Способ 2. Вдоль траектории ЛТ движется маркер или множество маркеров с соответствующей скоростью.
Способ 3. Прорисовка траектории ЛТ штрихами, которые периодически смещаются по направлению ЛТ.
Способ 4. Статическая визуализация с помощью цветной визуализации траектории ЛТ, используя цветовую
палитру, которая соответствует диапазону изменения модуля векторной величины вдоль траектории ЛТ.
5. Методы комплексной визуализация векторных полей
Комплексность визуализации заключается в том, чтобы с помощью одновременного применения разных
функций и способов визуализации получить более информативную картину моделируемой системы. Приведем
несколько примеров комплексной визуализации с применением ЛТ.
Пример 1. Методы и примеры цветовой интерпретации физического содержания моделей представлены
в разных работах, например, [6, 8, 9]. Существует возможность совместного применения цветового изображения физических скалярных характеристик (температура, плотность, модуль скорости и т. д.) и методов визуализации векторных величин. Хорошим способом является одновременная визуализация ЛТ на фоне цветовой
визуализации модуля векторной величины (рис. 13). При совместном способе интерпретации физического
содержания системы, можно судить и о скорости, и о форме движения сплошной среды.
VII Забабахинские научные чтения
9
Рис. 13. Цветовая визуализация скалярного модуля вектора скорости векторного поля и линий тока векторного поля
Пример 2. Визуализация ЛТ на фоне явной визуализации векторного поля в виде векторов, является хорошим методом комплексной визуализации (рис 14, 15). Изменение цвета (см. рис. 14) и длины (см. рис. 15) вектора говорит об изменении скорости движения сплошной среды. На рисунке 14 представлено множество ЛТ
и цветовое изображение векторов скорости без учета их длин.
Рис. 14. Явная визуализация векторов цветом
в зависимости от их модуля без учета их длин
и визуализация ЛТ
Рис. 15. Явная визуализация векторов цветом
в зависимости от их модуля с учетом их длин
и визуализация ЛТ
На рис. 15 представлено множество ЛТ и цветовое изображение векторов скорости с учетом их длин. Такая
комплексная визуализация позволяет судить об уменьшении или увеличении скорости движения сплошной
среды.
10
Снежинск, 812 сентября 2003 г.
6. Практическая реализация.
Данный алгоритм и его модификации были реализованы и применяются в системе научной визуализации
VIZI2D [10,11]. На рис. 16 представлена одна из форм для ввода разных параметров визуализации ЛТ.
Рис. 16. Пример формы для ввода параметров визуализации ЛТ в системе VIZI2D
Надо обратить особое внимание на способы генерации базовых точек для получения множества ЛТ. Инициализация БТ на области определения векторного поля осуществляется тремя способами:
1. Пользователь интерактивно с помощью мыши указывает БТ на расчетной области или при помощи
точного ввода координат точки. Это одиночный способ задания ЛТ.
2. БТ генерируются процедурой случайного выбора, т. е. случайным образом некоторое множество БТ
набрасывается на область определения векторного поля. Далее из каждой БТ строится ЛТ.
3. БТ ассоциируются с узлами расчетной сетки. Этот способ является более регулярным и его можно
применять для реальной динамической визуализации векторных полей с помощью ЛТ по последовательности состояний системы на разные моменты времени.
На рис. 17, а, б, в векторное поле представлено множеством линий тока на разных стадиях развития процесса, здесь численно моделируется течение сплошной среды.
а
VII Забабахинские научные чтения
11
б
В
Рис. 17. Векторное поле на разных стадиях развития процесса
Заключение
Изложенные в работе алгоритмы и методы визуализации дискретных векторных полей реализованы в системе научной визуализации результатов двумерного численного моделирования и экспериментов VIZI2D [10,
11]. Линии тока позволяют детально передать топологию и структуру векторного поля. Анимация псевдодинамики ЛТ наглядно передает потенциальное направление движения сплошной среды. Методы комплексной визуализации дают возможность увеличения информативности визуализации, что в свою очередь является важной задачей НВ. В следующих работах будут представлены: обобщение на трехмерные результаты численного
моделирования и динамическая визуализация в условиях постобработки.
Ссылки
1. Седов Л.И. Механика сплошной среды.  М., Наука, 1976.  Т. 1
2. Сельвачев А.Ю., Аксенов А. А., Клименко С.В. Общий подход к многочастичным анимационным методам
визуализации векторного поля. Труды 6–ой Международной конференции по компьютерной графике
и анимации, Аниграф’98. Москва. Россия. 20–23 мая 1998.  С. 98102.
3. Буланов С.В., Ечкина Е.Ю., Иновенков И.Н., Леоненко А.В.. Анимация перезамыкания магнитных силовых
линий в двумерных конфигурациях. Труды 8–ой Международной конференции по компьютерной графике и
визуализации, Графикон’98. Москва. Россия. 711 сентября 1998.  С. 5758.
12
Снежинск, 812 сентября 2003 г.
4. Ечкина Е.Ю., Иновенков И.Н., Павлова О.А. Визуализация двумерных и трехмерных векторных полей.
Труды 8–ой Международной конференции по компьютерной графике и визуализации, Графикон’98. Москва. Россия. 7–11 сентября 1998.  С. 5960.
5. Phong, Bui–Tuong, 1975, «Illumination for Computer Generated Images», doctoral thesis, University of Utah,
1973. Also as Comp. Sci. Dept. Rep. UTEC–СSс–73–129б NTIS ADA 008 786. A condensed version is given in
CACM.  Vol. 18.  Р. 311317.
6. Dmitry V. Mogilenskikh & Igor V. Pavlov. Visualization and imaging in transport phenomena. Annals of the New
York Academy of sciences. Volume 972 2002г. Color Interpolation Algorithms in Visualizing Results of Numerical Simulations.  Р. 4352.
7. Баяковский Ю.М., Галактионов В.А., Михайлова Т.Н.. «Графор. Графическое расширение фортрана». Москва.  «Наука», 1985.
8. Могиленских Д.В., Павлов И.В., Федоров В.В., Мельникова С.Н., Сапожникова Е.Э. Принципы построения
и функциональное содержание системы визуализации для анализа скалярных и векторных полей, заданных
на двумерных регулярных сетках. // Препринт № 172.  Издательство РФЯЦ  ВНИИТФ, г. Снежинск,
2000.
9. Mogilenskikh, D.V., 2000. Nonlinear Color Interpretation of Physical processes. Proc. Int. Conf on Computer
Graphics «Graphicon’2000».  P. 201211.
10. Могиленских Д.В., Федоров В. В., Павлов И. В. Системы научной визуализации «VIZI» для графического
представления результатов математического моделирования. 3–ий сибирский конгресс по прикладной индустриальной математике (ИНПРИМ–98). Новосибирск 2227 июня 1998 год. Изд. Института математики
СО РАН.
11. Могиленских Д.В., Федоров В. В., Павлов И. В. Визуализация двумерных результатов численного моделирования физических процессов. Система визуализации «VIZI» в ОС Windows. V Забабахинские научные
чтения. Международная конференция 21–25 сентября 1998 год. Снежинск.
Download