Разделение триангулированной многосвязной области на подобласти без ветвления внутренних границ

УЧЕНЫЕ ЗАПИСКИ КАЗАНСКОГО УНИВЕРСИТЕТА. СЕРИЯ ФИЗИКО-МАТЕМАТИЧЕСКИЕ НАУКИ

2018, Т. 160, кн. 3 С. 544-560

ISSN 2541-7746

УДК 515.164:519.6

РАЗДЕЛЕНИЕ ТРИАНГУЛИРОВАННОЙ МНОГОСВЯЗНОЙ ОБЛАСТИ НА ПОДОБЛАСТИ БЕЗ ВЕТВЛЕНИЯ ВНУТРЕННИХ ГРАНИЦ

И.Р. Кадыров, С.П. Копысов, А.К. Новиков

Удмуртский федеральный исследовательский центр УрО РАН , г. Ижевск, 426067,

В работе рассмотрены два подхода к разделению триагулированной многосвязной области на связные подобласти без ветвления внутренних границ.

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

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

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

Ключевые слова: неструктурированная сетка, многосвязная область, определение топологии, граф Риба, граф связности слоев, триангуляция, разделение сетки без ветвления

В параллельных вычислениях, основанных на сеточной аппроксимации, разделение неструктурированных сеток на подобласти без ветвления внутренних границ позволяет упростить коммуникации между вычислительными процессами, уменьшить число передач данных или управления и использовать полученное упорядочение в самих вычислениях. Исключение ветвления актуально для методов декомпозиции области [1, 2], при построении иерархий сеток [3] и огрублении сеточных моделей, при адаптации сеток и межсеточной интерполяции [4, 5].

Алгоритмы разделения неструктурированных сеток [6] для методов декомпозиции области основываются на двух больших классах: включающих только геометрические параметры сетки и основанных на построении графа сетки [7, 8], ребра которого определяются смежностью к-симплексов. В случае многосвязных триангулированных областей использование таких алгоритмов разделения не приводит

Россия

Аннотация

Введение

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

Ранее в работе [9] предложен алгоритм послойного разделения неструктурированных сеток, позволяющий исключить конфликты при параллельной записи в общую память; упорядочить ячейки по слоям сетки; объединить слои в подобласти и построить иерархии подобластей сетки. Предложенный алгоритм тестировался на так называемых поэлементных схемах метода конечных элементов. Для таких схем связность ячеек в подобластях сетки не является необходимым условием. В методах декомпозиции области требование связности ячеек сетки в подобластях исключить не представляется возможным. В случае многосвязной области необходимо определить точки ветвления (разрывов) слоев расчетной сетки.

Традиционные методы определения топологических свойств трехмерных областей, как непрерывной, так и дискретной, основываются на построении их скелетов или сегментации сеток [10].

Методы построения криволинейного скелета многосвязной области можно разделить на две основные группы: объемные и геометрические - в зависимости от того, используется ли внутреннее представление или только поверхностное представление. Большинство существующих методов извлечения криволинейных скелетов сеток использует объемное дискретное представление либо регулярно разделенное вокселизированное представление, либо дискретную функцию поля, определенную в трехмерном пространстве. Данные методы характеризуются возможными потерями некоторых элементов геометрии и численной неустойчивостью, связанной с переменным шагом сетки дискретной области. Геометрические методы работают непосредственно с трехмерной сеткой. Методы, основанные на сглаживании по Лапласу, позволяют обрабатывать геометрию сетки и решают систему уравнения Лапласа с различными весами для ограничения глобальной гладкости и сохранения объема. Один из известных геометрических подходов основывается на построении диаграмм Вороного [11] и некоторых других подходах [12]. Другой подход связан с восстановлением топологии поверхности и построением графа Риба - структуры, описывающей критические точки рассматриваемой поверхности [13, 14].

Граф топологии, определяющий области ветвления, имеет очевидные преимущества во многих приложениях в различных областях, таких как описание формы, поверхностная параметризация, сегментация сетки, извлечение 3Б-модели, деформирование и перестроение расчетных сеток и др.

Рассмотрим для заданной триангуляции Т в некоторой области из М3, поверхность которой М имеет имеет род д > 0, Ь граничных компонент и, соответственно, тип (д, Ь), где д,Ь € Ъ. Такое разделение содержит подобласти типов (д, Ь) при 0 < Ь < 3, то есть число внутренних граничных компонент, связывающих подобласти без учета внешней границы области не больше двух. Отметим, что допускаются разрывы внутренних границ подобластей внешними границами области. На искомое разделение накладываются топологические ограничения, например, каждая подобласть имеет одну связную компоненту.

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

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

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

1. Основные определения

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

Пусть ] - вещественно значимая функция, определенная на гладком многообразии М, ] : М ^ М и пусть также точка V € М. Точка V называется критической точкой функции ], если градиент функции в точке равен нулю, в противном случае V определяется как регулярная точка. Критическая точка Vе функции f не вырождена, если матрица гессиана ] в точке V не сингулярна. Вещественная функция f на гладком многообразии М называется функцией Морса, если все ее критические точки не вырождены.

Индекс критической точки Vе из ], обозначаемый индексом f (Vе), определяется как число отрицательных собственных значений его матрицы гессиана. Так как гессиан скалярной функции на гладкой поверхности является симметричной матрицей 2 х 2, индекс принимает значения 0, 1 или 2. На невырожденной критической точке с индексом 0 функция ] принимает значение минимума, в невырожденной критической точке индекс равен 1 и график функции выглядит как седло, в невырожденной критической точке с индексом 2 функция f принимает максимальное значение (рис. 1).

Рис. 1. Критические точки дискретной функции Морса: а) регулярная вершина; б) максимум; в) минимум; г) 2-седло; д) 3-седло

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

В дискретном случае вычисление графа Риба на триангулированных поверхностях основано на кусочно-линейной функции Морса, для которой все критические вершины невырождены. Случаи аппроксимации критических и регулярных точек на вершинах триангуляции представлены на рис. 1. Функцию Морса f определим как дискретную функцию уровня по одной из координат [16]. Проходом по всем симплексам в триангуляции с некоторым «уровнем» (функцией уровня Морса) выполняется локализация всех особенностей многообразия. Обобщим понятия из гладкой дифференциальной геометрии и анализа на множество симплексов

Рис. 2. Комплексы 0-симплекса: а) связь Ьк

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

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

Определим к-симплекс а как выпуклую оболочку множества к + 1 аффинно независимых точек $ = «о, VI,..., в М3, которые будем называть вершинами симплекса. Для каждого симплекса а определим ребра, которые будем обозначать как т  а. Отметим, что 0-симплекс — вершина, ребро — 1 -симплекс, треугольник — 2-симплекс.

Триангуляция симплексов содержит конечное число симплексов таких, что для любых т  а, а € Т, следует, что т € Т, и для любых а\, а2 € Т следует, что т = а1р| а2, т  а\, т  а2 .

Некоторые комплексы к-симплексов приведены на рис. 2. Замыканием подмножества симплексов $ С Т является наименьший подкомплекс, содержащий $: 01(5} = $и{т : 3 а € $ | т  а}.

Звездой симплекса т называется множество всех симплексов, имеющих грань т: Б^т} = {а € Т 1т  а}.

Связью (линком) симплекса т является множество всех граней симплексов его звезды и не содержащих т: Ьк(т} = {а € Б^т}|ар|т = 0} или Ьк(т} = С1(8!;(т}} — - Б^т}.

Верхний линк вершины V есть множество: Ьк+(«} = {и € Ьк(«} : /(и} > /(«}}, а нижний линк - множество Ьк~(«} = {и € Ьк(«} : ](и} < f («}}.

Смешанный линк - это Ьк^(«} = {(и^^} : /(и1} < f («} < /(и2}}.

Вершина V является регулярной, если |Ьк^(«}| = 2, в случае |Ьк^(«}| = 2 +2т вершина есть седловая точка с индексом 1 и кратностью т ^ 1.

Обозначим слой уровня V, как подмножество Ь8(а}, где ](«} = а: Ь8(«} := = Ь8(а}|а = ](«} и определяет все пересекающиеся ребра и грани с а и вершины. Введем также для вершины V контур уровня СБ(«}, который определяется связанной компонентой ЬБ^}, содержащей V.

2. Построение графа Риба и разделение триангуляции

Определим дерево связей между критическими точками Vе и построим граф Риба Н(У, Е} с ребрами в^и^/и^} € Е для поверхностной триангуляции Т € М3, состоящей из 2-симплексов (Алгоритм 1). Будем использовать функцию «уровня» Морса ] для определения критических точек Vе и введем параметр с(Vе}, соответствующий числу выходящих из нее ребер и принимающий значение: 1 - одно ребро; 2 - два ребра; 3 - ветвь; 0 - вспомогательная точка Vа, которая с ближайшими критическими точками Vе образует криволинейные дуги между критическими точками при ветвлении [17].

Алгоритм 1: Построение графа Риба для поверхностной триангуляции T

Входные данные: T - триангуляция из 2-симплексов a G T; f -

функция уровня Морса Результат: Граф Риба R

1 while m < |V(T)| do

2 Вычисляем значения функции Морса f (vm) для всех узлов триангуляции

3 m ^ m + 1

/* Сформируем слои функции Морса f */

4 while i |LSj (a)| < \TM do

forall v do

_ LSm(a) = а e Cl(LS(a)) : Vv  a, f (v) > а,

m = m +1

8 foreach LS(am) do

/* Определим 2-симплексы а , содержащие Vi foreach vi do

St(vi) = {a e T\vi  а} /* линк «звезда» foreach vh e St do

/* Определяем линк 0-симплекса vh

if (Lk+(vh), Lk-(vh), Lk±(vh), Lk^(vh)) then vh = vh

L(vh) = l, где l = {1, 2, 3,4} - тип линка 0-симплекса

9 10 11

12

13

14

/* Определим вспомогательные вершины

15 foreach vC do

16 if L(vc) = 2 Л L(v?+1) = 3 then

17 Ищем вершины v?,v?,i на поверхности между ve

vi+i

= Vi и v.

i+2

vi+1)

С vf, L(vf) = 0 Л L(vi+i)=0

Вершины перенумеруем и полагаем i ^ i + 2

/* Сформируем и запишем граф Риба R(V, E) 18 foreach vf do

19

20 21

22

23

24

25

26 27

vf ^ V if L(vf) = 1 V L(vf) = 0 then /* Определим ребро

e{vC,vC+i} ^ E

if L(vc) = 2 then

/* Сформируем ветвь вверх из двух рёбер e{vt,v-i\[j e{v?,v?_2}^ E /* Определим циркуляр отверстия из четырёх рёбер

if L(vf) = 3 then

e{vf, vf

i+i

Ш e{v

Vi+2

Ш e{v

-1> Vi+3

}U e{

i+2, Vi+3

}^ E

где vi+i и vi+2 - вспомогательные точки на дуге

if L(vc) = 4 then

/* Сформируем ветвь вниз из двух рёбер

e{vC,v?+i}U e{vC,vi+2}^ E

*/ */ */

*/

*/ */

*/ */

*/

a

a

V

На Шагах 1-3 Алгоритма 1 для всех 0-симплексов триангуляции Т вычисляются значения функции Морса f. Далее для каждого 0-симплекса берется под-

множество ближайших 0-симплексов с одинаковым значением функции Морса f, которые образуют 2-симплексы и отдельные слои LS(am) для функции Морса со значением am (Шаги 4-7). Для каждого 0-симплекса из слоя LS(am) определяем линк симплекса «звезда» St(v), где v G LS(am) (Шаг 10). Линк симплекса типа «звезда» позволяет определить тип смешанного линка (Lk+; Lk-; Lk^; Lk^ ) для каждой точки, что дает возможность локализовать критические точки области (Шаг 13).

Определив критические точки, на поверхности уже локализованного ветвления введём вспомогательные вершины графа va (Шаги 15-17) в множество vc, отдельно перенумеровав для каждого ветвления необходимые точки.

Рёбра соединяются в графе Риба в соответствии с линком (Lk+; Lk-; Lk^; Lk^ ), и для каждого ветвления выполняется перенумерация вершин, включая вспомогательные вершины и соединяя их с ближайшими, соответствующими критическим точкам (Шаги 18-27) [17]. На выходе Алгоритма 1 формируется граф Риба R(V, E), где V - множество вершин, а E - множество рёбер.

Разделение без ветвления определим формированием границ подобластей из слоев ячеек триангуляции, разрезая ребра графа Риба. Всем вершинам графа R(V, E) поставим в соответствие 0-симплексы триангуляции T (Шаг 1). Через две вспомогательные вершины графа, находящиеся между двумя критическими точками, к примеру vm+1 и vm+2, определяем секущую плоскость. Например, все 3-симплексы, у которых координата узлов z(vi) меньше секущей плоскости и не принадлежат предыдущим слоям, относим к слою LSm(a) = о- G LSm(a), о G LSm(a) У LSm-i(a), где LSm-i(a) - предыдущий слой (Шаг 6). При объединении слоев получаем подобласти типа (0, 2).

Алгоритм 2: Разделение триангуляции T на основе графа Риба

Входные данные: T — триангуляция из 3-симплексов о G T; R(V, E) -

граф Риба Результат: Множество слоёв {LSm(a)}

1 Определим вспомогательные вершины va = {va С vc | c(vc) = 0}

2 while vm < |V(R)| do

3

4

5

if vm = 3 then

if (c(vm+1) =0) Л (c(vm+2) = 0) then

Проводим плоскость через z(vm+i) и z(vm+2) /* Всё, что ниже, относим к слою */

LSm

m ^ m + 1

6

7

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

В этом случае выполним модификацию графа Риба, перемещая его вспомогательные вершины 2(^+1}, 2(^+2} относительно функции Морса, для получения разделения на подобласти вида (0, 2} (см. рис. 3).

В результате выполнения Алгоритма 2 получим множество слоев {Ь8т(а}} и разделение триангуляции Т на подобласти типа (0, 2} с помощью графа Риба, построенного с помощью Алгоритма 1.

3. Разделение на основе графа слоев

Рассмотрим разделение триангуляции Т из М3 , состоящей из 3-симплексов а на подобласти без ветвления внутренних границ с использованием послойного раз-

деления [9]. Для этого обобщим понятие полосы уровня LS(a) на множество 3-симплексов LS(a) = {а} из T. Зададим в T некоторое множество 3-симплексов T* С T, полагая LSi(a) = T* . Для триангуляции T построим слои LSj(а) = {а € € T | LSj (а) р| LSj (а) = 0 при j = i ± 1}, i € [2, m — 1], согласно Алгоритму 3, здесь m - число слоев.

Алгоритм 3: Разделение триангуляции T на слои 3-симплексов.

Входные данные: T - триангуляция из 3-симплексов а, T* - заданное множество {а} С T.

Результат: {LSj^)} — множество слоев из 3-симплексов.

/* Определяем а, которые содержат 0-симплексы из T . */

1 V v € T строим Cl(St(v)) = {а € T | v ^ а}.

/* Находим а, у которых общий 0-симплекс. */

2 Vа € T находим Lk^) = (J Cl(St(v)) \ а.

v^a

/* Формирование слоев 3-симплексов. */

3 Полагаем i = 1 и слой LSj (а) = T* .

4 while j |LSj (а)| < \Tdo

/* Строим слой LSj+^а) из 3-симплексов а . */

5 if i = 1 then

6 | LS j+^а) = {а € Lk(а ) | а € LSj (а) Л а€ LSj(а)} .

7 else

8 |_ LSj+^а) = {а € Lk(а-) | а- € LSj (а) Л а€ LSjM ULSj-^а)}.

9 Полагаем i ^ i +1.

Для каждой вершины триангуляции находим замыкание С1(8^)) (Шаг 1) и определяем линки 3-симплексов Ьк(а) (Шаг 2), множества С1^^)) и линки Ьк(а) состоят из 3-симплексов. Через а- обозначим 3-симплекс из предыдущего слоя 1/8—1 (а). Замыкание С1(Я1(^)) содержит все 3-симплексы, которым принадлежит данная вершина V € Т, линк Ьк(а) - замыкания всех вершин 3-симплекса а, исключая а. На основе сформированных линков строятся слои 3-симплексов (Шаги 3-9). Выбираем начальный слой ЬБх (а) = Т* и строим последующие слои Ь8^+1(а), пока все 3-симплексы триангуляции Т не будут принадлежать слоям.

г

При этом на слой Ь8г+1(а) вносятся 3-симплексы а € Т\ У Ь8- (а), имеющие

3=1

общие вершины с 3-симплексами из ЬЭг(а).

Результатом выполнения Алгоритма 3 является упорядоченное множество из т слоев (а), в котором соседние с ЬЭг(а) слои имеют номера г — 1 и г + 1. Полученные слои представляют собой триангулированные области из М3 типа (д, 2) : д ^ 0, а все вершины 3-симплексов лежат на поверхности, ограничивающей слой. В общем случае слой ЬЭг(а) состоит из множества подслоев {Ь8(й)(а)}, в котором каждый подслой Ь8(й)(а) - множество 3-симплексов из ЬЭг(а), имеющих хотя бы одно пересечение с а € ЬЭг(а). Если некоторый слой ЬЭг(а) состоит из одного подслоя Ь8(й)(а), полагаем слой ЬЭДа) связным. По построению разделение Т на слои ЬЭг(а) не содержит ветвления границ слоев.

Таким образом, задача формирования множества подобластей {Т;} = Т на основе полученного разделения на слои (а) состоит в следующем: найти объединение слоев ЬЭг(а) в множество подобластей {Т\}, удовлетворяющих некоторым

Алгоритм 4: Объединение слоев {LSj(a}} в связные подобласти.

*/

Входные данные: {LSj(a}} - множество слоев из 3-симплексов. Результат: {Т;} - множество подобластей триангуляции Т.

/* Находим подслои в каждом слое LSj(a).

1 for LSj(a), У г е [l,m] do

2 Строим дуальный граф Gd(V,E) связей Уа е LSj(a) по 2-симплексам.

3 Определяем связные компоненты Gd(V, E).

4 Связным компонентам Gd

5 Строим граф связей подслоев G(V, E). /* Формируем подграфы Gi графа G(V, E) .

6 l = 1, m* = 1, mark(LSj(a)) =0, У г е [1, m]. while m* < m do /* Находим не помеченный слой с максимальным числом подслоев

*/

7 LSj(a) : Ki = к* A mark(LSj(a)) = 0, к* = max^ Ki.

8 G; < {v е Vg : v & LS(fc)(a) С LSi(a)}.

9 mark(LSi(a)) = m* , m* ^ m* + 1, j = 1. 10 while K* > 1 do

/* Присоединяем соседние слои к начальному слою области. if г - j > 0 A mark(LSi_j(а)) = 0 then

*/

11 12

13

14

15

16

17

18

19

*/

G; ^ G; + Gi_j , где Gi_j ^ {v е Vg : v & LS(_j(а) С LS_(а)}. mark(LSi_j(а)) = m* , m* ^ m* + 1. if г + j < m A mark(LSi+j(а)) = 0 then

G; ^ G; + Gi+j, где Gi+j ^ {v е Vg : v & LS(+j (а) С LSi+j(а)}. mark(LSi+j(а)) = m* , m* ^ m* + 1. Определяем к* - число связных компонент G;. j ^ j + 1. l ^ l + 1.

(k).

20 if v е VG A deg(v) = 1 A v & LSV ' (а) then

21 Присоединяем {v} & LSi(а) к Gj & LS^i^), j е [1, l].

22 Разделяем триангуляцию T, полагая Т; & G;.

ограничениям. Первым условием является связность получаемых подобластей Т, из которого следует, что номера г € [1, т] слоев ЬБДа), входящих в Т, образуют непрерывную последовательность в N. Число слоев, включаемых в подобласть, ограничим снизу двумя слоями, что является достаточным условием существования а € Т вершин, не принадлежащих границе Т.

Для того чтобы построить связные объединения слоев в подобласти сетки, необходимо найти подслои и их связи. Поиск подслоев и определение их связей в Алгоритме 4 осуществляется при помощи дуального графа О^(У, Е) связей любых а € ЬБДа) по 2-симплексам. Далее находятся связные компоненты О^(V, Е). Соответствующие связным компонентам О^(У, Е) множества 3-симплексов обозначим как подслои ЪБ(к)(а),к = 1, 2,...,к^, где к = |{Ь8(й)(а)}| - число подслоев в слое ЬБДа).

На Шаге 5 строится граф подслоев О(У, Е), вершинам которого ставятся в соответствие подслои V € Уа : V Ь8(й)(а), где Ь8(й)(а) С ЬБДа) - к-й подслой

слоя LSj^) и к ^ 1. Ребра графа G(V,E) связывают подслои соседних слоев Eg = {{v,u} : v,u € VG,v & LS(к)(а),и & LS^^)}, к € [1,Kj], j € [1,Kj±i], 3-симплексы которых имеют пересечения по 2-симплексам. Связному слою LSj(a) соответствует одна вершина графа G. Число вершин графа G равно числу всех

m

подслоев в триангуляции, то есть |VG| =5^ kj.

j=i

Формирование подграфов Gi (V, E) начинается с маркировки слоев (Шаг 6). Из слоев, отмеченных mаrk(LSj(a)) = 0 выбирается слой с максимальным числом подслоев к* = max kj (Шаг 7). В подграф Gi заносятся вершины из Vg ,

j=i

соответствующие слою LSj^). К подграфу Gi добавляются подграфы Gi±j , отображающие последовательности из соседних слоев LSj±j (а).

Анализ связности Gi (Шаг 20) осуществляется при помощи поиска в глубину [18] на графе Gi(V,, E). Подмножество вершин {v} С Vg , соответствующее некоторому слою LSj^) и содержащее висячие вершины (deg(v) = 1) графа G(V, E) присоединяется к подграфу, соответствующему предыдущему слою LS—^а) (Шаг 21).

Алгоритм 4 расширяет подход к разделению на слои из [9] на многосвязные области и разделение без ветвления на основе отношения соседства сводится к применению Алгоритма 3 для послойного разделения триангуляции T и объединению слоев LSj^), для всех i € [1, m] по Алгоритму 4 в подобласти Ti.

4. Численные эксперименты

В ходе вычислительных экспериментов сравнивались три метода разделения сеток: алгоритм, использующий дискретные функции Морса, и граф Риба (Алгоритм 2); алгоритм на основе послойного разделения сетки (Алгоритм 4) и широко используемый в практике параллельных вычислений многоуровневый графовый k-way-алгоритм из библиотеки METIS [8].

Вычислительные эксперименты проводились на трехмерных неструктурированных сетках для многосвязных областей, отличающихся типом топологии, геометрией поверхности и характерным размером ячеек сетки. При сравнении получаемых сеточных подобластей рассматривались топологические ограничения, число связанных подобластей и качество по y — числу общих 2-симплексов.

На рис. 3 представлена трехмерная многосвязная Г-образная область с четырьмя отверстиями, расположенными в разных плоскостях имеющие конические участки поверхности и приведены линии дискретных функций Морса, соответствующих графу Риба, и полученное на его основе разделение без ветвления подобластей типа (0, 2). Расчетная сетка имела следующие параметры: 0-симплексов - 584; 2-симплексов - 1439; 3-симплексов - 1174. Дискретная функция Морса содержала 12 уровней и 8 критических точек, а построенный на ее основе граф Риба включал 8 критических вершин, 8 вспомогательных вершин и 21 ребро. Построенное разделение имеет 4 подобласти типа (0, 2), рода 0 с двумя границами, y = 276.

На рис. 4 для сравнения представлено разделение той же расчетной сетки с использованием Алгоритмов 3 и 4. Из 22 построенных слоев 13 имели несвязные дуальные графы. Отметим, что в этом случае 7 подобластей имеют тип (0, 2) и 6 внутренних границ при y = 68. При разделении многоуровневым k-way-алгоритмом получены все подобласти типа (1, 2) с общими границами, y = 52.

В качестве примера рядного размещения отверстий с центральной симметрией и несимметричной сеткой была выбрана область в виде перфорированной пластины, для которой неструктурированная сетка содержала: 0-симплексов - 4136; 2-симплексов - 17411; 3-симплексов - 4452. Поверхность перфорированной пластины имеет род

а)

б)

в)

Рис. 3. Разделение триангуляции на основе графа Риба: а) функция уровня Морса; б) граф Риба; в) разделение графа Риба

а) б) в)

Рис. 6. Варианты разделения: а) граф Риба; б) граф слоев; в) дуальный граф

с 32 слоями и 18 критическими точками, граф Риба (рис. 5, б) и его разделение сетки на четыре подобласти с общим числом 2-симплексов на внутренних границах равным 7 = 514. Для сравнения на рис. 5, в) показано разделение на слои по Алгоритму 3.

На рис. 6 приведены разделения, получаемые из графа Риба, графа слоев и дуального графа. Послойное разделение области включало двадцать три слоя, из которых семнадцать слоев имели разрывы. В результате объединения слоев по Алгоритму 4 получено разделение сетки на пять подобластей с общими границами, 7 = 525. Каждая из подобластей включала от двух до семи слоев.

а)

б)

Рис. 7. Граф Риба на сетках с различным числом ячеек: а) грубая сетка - 12351; б) вложенная сетка - 60017

а)

в)

Рис. 8. Область «петля»: а) сетка и граф Риба; б) функция Морса; в) подобласти Т, 7 = 1127

а)

в)

Рис. 9. Область «петля»: а) граф Риба; ласти Т, 7 = 1265

б) модифицированный граф Риба; в) подоб-

Для данной сетки к^ау-разделение состоит из четырех подобластей типа (1, 2) и 7 = 326. Пример показателен тем, что именно наличие отверстия в некоторых случаях позволяет получать разделения без ветвления (рис. 6, в). Здесь граф подобластей является циклом, а при отсутствии отверстия в центре области - полностью связным.

Следующая область «петля» характеризуется наличием отверстий, осевые линии которых лежат в ортогональных плоскостях. Сетка Т содержит к-симплексы: 0-симплексов - 12883; 2-симплексов - 60017, 3-симплексов - 10404. На данной области тестировался подход сокращения вычислительных затрат при получении разделения графа Риба на грубой сетки с последующим его отображением и применением для разделения вложенной сетки с меньшим шагом. Как показали вычислительные эксперименты, затраты существенно сокращаются. На рис. 7 показаны графы Риба на сетках с разным шагом.

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

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

При разделении триангулированной области «петля» на подобласти без ветвления внутренних границ Алгоритмом 3 получены сорок два слоя (28 несвязных) из 3-симплексов (рис. 10, а), которые объединены Алгоритмом 4 в одиннадцать связных

подобластей триангуляции (рис. 10, б). Число общих 2-симплексов составило 7 = = 2658. Разделение многоуровневым алгоритмом k-way-разделения (рис. 10, в) триангулированной области «петля» на одиннадцать подобластей содержало только одну подобласть типа (1,2), при 7 = 1980. Данный пример показателен тем, что k-way-разделение содержит пять ветвлений (рис. 10, в).

Вычислительные затраты алгоритма поиска критических точек и построения графа Риба триангулированной поверхности трехмерной области составляет O(gK log2 K), где K - общее число вершин и треугольников в сетке; g - род поверхности области [19].

Дополнительные затраты определяются алгоритмом формирования подобластей вида (0, 2), которые составляют O(\V(R)\Llog2 L), где L - общее количество всех вершин, треугольников и тетраэдральных ячеек в сетке, то есть поиском 0,2,3-симплексов в слоях и формированием границ подобластей по вершинам V(R) полученного ранее графа Риба.

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

Вычислительные затраты при послойном формировании подобластей без ветвления и многоуровневым k-way-алгоритмом непосредственно не зависят от геометрических характеристик ячеек сетки. Разделение многоуровневым k-way-алгоритмом из библиотеки METIS состоит из: огрубления дуального графа Gd (V, E) = Gd (V, E) рассматриваемой сетки T в виде G1d (V, E) D G2d (V,E) D ... D D Gld(V,E); разделения графа Gld(V,E) и отображения полученного разделения на последовательность графов Gd (V, E), Gl—1 (V, E),... ,Gd (V, E), здесь l - число уровней. Затраты на огрубление составляют O(\EGi \), где \Egi \= \EGd \ - число ребер исходного графа; разделение грубого графа - O(VGt log VGi). Полагая затраты на отображение примерно равными затратам на огрубление графа и учитывая, что \VGd \^ \VGd \, получим оценку затрат всего алгоритма O(2\EGd \), где число ребер дуального графа ограничено величиной 2\T\< \EGd \< 4\T\, \T\ - число 3-симплексов в T .

Затраты послойного формирования подобластей состоят из затрат на послойное разделение сетки (Алгоритм 3) и объединение слоев в подобласти сетки (Алгоритм 4). Поиск линков по узлам сетки имеет NP-сложность, но в настоящей работе использован поиск по вершинам 3-симплексов. В этом случае сложность

поиска не зависит от степеней вершин сетки. Благодаря предварительному определению линков Lk(a) в Алгоритме З (Шаги 1, 2) затраты на формирование слоев составляют 0(\Ti) . Затраты на объедение слоев связаны с проверкой связности подграфов графа связей подслоев G(V, E). Сложность поиска связных компонент этих подграфов составляет 0(|E| + |V|), здесь \V\VQd j - число подслоев, |E|^ \EQd j - число ребер в графе связей подслоев, EQd - множество ребер дуального графа G¿(V, E) сетки T, причем \VQd j= \Tj по определению число вершин дуального графа равно числу З-симплексов в T.

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

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

Благодарности. Работа выполнена при частичной финансовой поддержке РФФИ (проекты № 16-01-00129-a, 17-01-00402-a).

Литература

1. Korneev V., Langer U. Domain decomposition methods and preconditioning // Encyclopedia of Computational Mechanics. - Wiley-Blackwell, 2004, - P. 617-647.

2. Копысов С.П., Кузьмин И.М., Недожогин Н.С., Новиков А.К. Параллельные алгоритмы формирования и решения системы дополнения Шура на графических ускорителях // Учен. зап. Казан. ун-та. Сер. Физ.-матем. науки. - 2012. - Т. 154, кн. 3. -С. 202-215.

3. Мартыненко С.И. Формализация вычислений при численном решении краевых задач // Учен. зап. Казан. ун-та. Сер. Физ.-матем. науки. - 200S. - Т. 150, кн. 1. -C. 76-90.

4. Lei Y., Baojun L., Zhangquan L., Wenbin H., Ping H. Finite element mesh deformation with the skeleton-section template // Comput.-Aided Des. - 2016. - V. 43. - P. 11-25. -doi: 10.1016/j.cad.2015.11.002.

5. Kopysov S.P., Kuzmin I.M., Novikov A.K., Nedozhogin N.S., Tonkov L.E. Radial basis function for parallel mesh-to-mesh interpolation in solving fluid-structure interaction problem // Izv. Inst. Mat. Inform. Udmurt. Gos. Univ. - 201S. - V. 51. - P. 42-50.

6. Копысов С.П., Новиков А.К. Параллельные алгоритмы адаптивного перестроения и разделения неструктурированных сеток // Матем. моделирование. - 2002. - Т. 14, № 9. - С. 91-96.

7. Якобовский М.В. Инкрементный алгоритм декомпозиции графов // Вестн. Ниже-гор. ун-та им.Н.И. Лобачевского. Сер. Матем. моделирование и оптимальное управление. - 2005. - № 1. - С. 243-250.

8. Karypis G., Kumar V. Multilevel k-way partitioning scheme for irregular graphs // J. Parallel Distrib. Comput. - 1998. - V. 48. - P. 96-129.

9. Новиков А.К., Копысов С.П., Пиминова Н. К. Послойное разделение конечно-элементных сеток для мультиядерных архитектур // Суперкомпьютерные дни в России: Труды Междунар. конф. - М.: Изд-во Моск. ун-та, 2016. - С. 493-504.

10. Au O.K.-C, Tai C.-L., Chu H.-K, Cohen-Or D., Lee T.-Y. Skeleton extraction by mesh contraction // ACM Trans. Graph. - 2008. - V. 27, No 3. - Art. 44, P. 1-10.

11. Местецкий Л.М. Непрерывная морфология бинарных изображений: фигуры, скелеты, циркуляры. - М.: Физматлит, 2009. - 288 с.

12. Зимовнов А.В., Местецкий Л.М. Построение криволинейного скелета трехмерной модели по плоским проекциям // Вестн. ТвГУ. Сер. Прикл. матем. - 2016. - № 3. -С. 67-83.

13. Иванов А.О., Тужилин А.А., Фоменко А. Т. Компьютерное моделирование кривых и поверхностей // Фундамент. и прикл. матем. - 2009. - Т. 15, № 5. - C. 63-94.

14. Berretti S., Bimbo A.D., Pala P. 3D Mesh decomposition using Reeb graphs // Image Vision Comput. - 2009. - V. 27, No 10. - P. 1540- 1554. - doi: 10.1016/j.imavis.2009.02.004.

15. Постников М.М. Введение в теорию Морса. - М.: Наука, 1971. - 568 с.

16. Hajij M., Dey T., Li Х. Segmenting a surface mesh into pants using Morse theory // Graphical Models. - 2016. - V. 88. - P. 12-21. - doi: 10.1016/j.gmod.2016.09.003.

17. Lupescu A. Note on an algorithm for computing the Reeb graph // Int. J. Geom. -2017. - V. 6, No 1. - P. 89-94.

18. Ахо А., Хопкрофт Дж., Ульман Дж. Построение и анализ вычислительных алгоритмов. - М.: Мир, 1979. - 536 c.

19. Harvey W., Wang Y., Wenger R. A Randomized O(mlog m) time algorithm for computing Reeb graphs of arbitrary simplicial complexes // Proc. Twenty-sixth Annual Symposium on Computational Geometry (SoCG '10). - N. Y.: АСМ, 2010. - P. 267-276.

Поступила в редакцию 13.03.18

Кадыров Ильяс Ринатович, инженер-программист

Удмуртский федеральный исследовательский центр УрО РАН

ул. Т. Барамзиной, д. 34, г. Ижевск, 426067, Россия E-mail: slasheeck@gmail.com

Копысов Сергей Петрович, доктор физико-математических наук, главный научный сотрудник

Удмуртский федеральный исследовательский центр УрО РАН

ул. Т. Барамзиной, д. 34, г. Ижевск, 426067, Россия E-mail: s.kopysov@gmail.com

Новиков Александр Константинович, кандидат физико-математических наук, старший научный сотрудник

Удмуртский федеральный исследовательский центр УрО РАН

ул. Т. Барамзиной, д. 34, г. Ижевск, 426067, Россия E-mail: alexander.k.novikov@gmail.com

ISSN 2541-7746

2018, vol. 160, no. 3, pp. 544-560

Partitioning of Triangulated Multiply Connected Domain into Subdomains without Branching of Inner Boundaries

I.R. Kadyrov* , S.P. Kopysov**, A.K. Novikov***

Udmurt Federal Research Center, Ural Branch, Russian Academy of Sciences, Izhevsk, 426067 Russia E-mail: *slasheeck@gmail.com, **s.kopysov@gmail.com, ***alexander.k.novikov@gmail.com

Received March 13, 2018 Abstract

This paper considers two approaches to partitioning of a triangulated multiply connected domain into connected subdomains without branching of internal boundaries. A modified algorithm for constructing the Reeb graph for the topology determining of the triangulated surface of a three-dimensional domain has been proposed. On the basis of the partition of the Reeb graph, formation of subdomains of triangulation without branching of internal boundaries has been performed. Another approach is based on the formation of an ordered set of layers -subsets of 3-simplexes of triangulation using its topological properties, such as vertex and face connectivity. By construction, the layers do not contain branches of internal boundaries. At the same time, for multiply connected computational domains it is characteristic to obtain disconnected layers. The algorithm for combining layers into connected subdomains of triangulation has been developed based on the graph of sublayers, its vertices corresponding to the connected components of each layer. Thus, the union of layers reduces to the union of vertices and edges of the graph of sublayers - a problem with much smaller dimension, and the mapping of the partition of the graph of sublayers into triangulation. The proposed algorithms have been compared following the partitioning of triangulated multiply connected domains with surfaces of different types and genus. The complexity estimates of the algorithms have been given and the quality of the partitions by the number of 2-simplexes common for the obtained subregions of the triangulation has been compared.

Keywords: unstructured mesh, multiply connected domain, shape description, Reeb graph, graph connectivity layers, triangulation, mesh partitioning without branching

Acknowledgments. The study was partially supported by the Russian Foundation for Basic Research (projects nos. 16-01-00129-a, 17-01-00402-a).

Figure Captions

Fig. 1. Critical points of the discrete Morse function: a) regular vertex; b) maximum; c) minimum; d) 2-saddle; e) 3-saddle.

Fig. 2. Complexes of the 0-simplex: a) the connection Lk(v); b) the star St(v); c) the closure of Cl(St(v)).

Fig. 3. Partition of a triangulation "angle" on the basis of the Reeb graph: a) Morse level function; b) Reeb graph; c) partition into subdomains.

Fig. 4. Partition of the triangulation "angle": a) layers of 3-simplexes; b) subdomains from the layers; c) k-way partition.

Fig. 5. Partition of the triangulation "perforated plate": a) Morse function; b) Reeb graph; c) layers of 3-simplexes, produced by Algorithm 3.

Fig. 6. Partitioning on the basis of the: a) Reeb graph; b) graph of the layers; c) dual graph.

Fig. 7. The Reeb graph of the triangulations with number of 3-simplexes: a) low definition mesh - 12351; b) nested mesh - 60017.

Fig. 8. Domain "hinge": a) mesh and Reeb Graph; b) Morse function; c) subdomains T,

Y = 1127.

Fig. 9. Domain "hinge": a) Reeb graph; b) modified Reeb graph; c) subdomains T,

Y = 1265.

Fig. 10. Domain "hinge": a) layers of 3-simplexes; b) partitioning on the basis of the sublayers graph; c) k-way partitioning.

References

1. Korneev V., Langer U. Domain decomposition methods and preconditioning. In: Encyclopedia of Computational Mechanics. Wiley-Blackwell, 2004, pp. 617-647.

2. Kopysov S.P., Kuzmin I.M., Nedozhogin N.S., Novikov A.K. Parallel algorithms for constructing and solving the Scliur complement on graphics accelerators. Uchenye Zapiski Kazanskogo Universiteta. Seriya Fiziko-Matematicheskie Nauki, 2012, vol. 154, no. 3, pp. 202-215.

3. Martynenko S.I. Formalization of computations at numerical solution of boundary value problems. Uchenye Zapiski Kazanskogo Universiteta. Seriya Fiziko-Matematicheskie Nauki, 2008, vol. 150, no. 1, pp. 76-90.

4. Lei Y., Baojun L., Zhangquan L., Wenbin H., Ping H. Finite element mesh deformation with the skeleton-section template. Comput.-Aided Des., 2016, vol. 43, pp. 11-25. doi: 10.1016/j.cad.2015.11.002.

5. Kopysov S.P., Kuzmin I.M., Novikov A.K., Nedozhogin N.S., Tonkov L.E. Radial basis function for parallel mesh-to-mesh interpolation in solving fluid-structure interaction problem. Izv. Inst. Mat. Inform. Udmurt. Gos. Univ., 2018, vol. 51, pp. 42-50.

6. Kopysov S.P., Novikov A.K. Parallel algorithms of adaptive refinement and partitioning of unstructured grids. Mat. Model., 2002, vol. 14, no. 9, pp. 91-96.

7. Yakobovskii M.V. An incremental algorithm for graph decomposition. Vestn. Nizhegorod. Univ. im. N.I. Lobachevskogo. Ser. Mat. Model. Optim. Upr., 2005, no. 1, pp. 243-250.

8. Karypis G., Kumar V. Multilevel k-way partitioning scheme for irregular graphs. J. Parallel Distrib. Comput., 1998, vol. 48, pp. 96-129.

9. Novikov A.K., Kopysov S.P., Piminova N.K. Layer-by-layer partitioning of finite-element meshes for multi-core architectures. Superkomp'yuternye dni v Rossii. Trudy Mezhdunar. Konf. [Russian Supercomputing Days: Proc. Int. Conf.]. Moscow, Izd. Mosk. Univ., 2016, pp. 493-504.

10. Au O.K.-C., Tai C.-L., Chu H.-K., Cohen-Or D., Lee T.-Y. Skeleton extraction by mesh contraction. ACM Trans. Graph., 2008, vol. 27, no. 3, art. 44, pp. 1-10.

11. Mestetskiy L.M. Nepreryvnaya morfologiya binarnykh izobrazhenii: figury, skelety, tsirkulyary [Continuous Morphology of Binary Images: Figures, Skeletons, and Circulars]. Moscow, Fizmatlit, 2009. 288 p.

12. Zimovnov A.V., Mestetskiy L.M. On algorithm of curve-skeleton extraction for 3D model based on planar projections. Vestn. TvGU Ser.: Prikl. Mat., 2016, no. 3, pp. 67-83.

13. Ivanov A.O., Tuzhilin A.A., Fomenko A.T. Computer modeling of curves and surfaces. J. Math. Sci., 2011, vol. 172, no. 5, pp. 663-689. doi: 10.1007/s10958-011-0212-2.

14. Berretti S., Bimbo A.D., Pala P. 3D Mesh decomposition sing Reeb Graphs. Image Vision Comput., 2009, vol. 27, no. 10, pp. 1540- 1554. doi: 10.1016/j.imavis.2009.02.004.

15. Postnikov M.M. Vvedenie v teoriyu Morsa [Introduction to Morse Theory]. Moscow, Nauka, 1971. 568 p.

16. Hajij M., Dey T., Li X. Segmenting a surface mesh into pants using Morse theory. Graphical Models, 2016, vol. 88, pp. 12-21. doi: 10.1016/j.gmod.2016.09.003.

17. Lupescu A. Note on an algorithm for computing the Reeb graph. Int. J. Geom., 2017, vol. 6, no. 1, pp. 89-94.

18. Aho A.V., Hopcroft J.E., Ullman J.D. The Design and Analysis of Computer Algorithms. London, Amsterdam, Don Mills, Sydney, Addison-Wesley Publ. Comp., 1974. x, 470 p.

19. Harvey W., Wang Y., Wenger R. A randomized O(m log m) time algorithm for computing reeb graphs of arbitrary simplicial complexes. Proc. 26th Annu. Symp. on Computational Geometry (SoCG '10). New York, ACM, 2010, pp. 267-276.

Для цитирования: Кадыров И.Р., Копысов С.П., Новиков А.К. Разделение триангулированной многосвязной области на подобласти без ветвления внутренних границ // Учен. зап. Казан. ун-та. Сер. Физ.-матем. науки. - 2018. - Т. 160, кн. 3. -С. 544-560.

For citation: Kadyrov I.R., Kopysov S.P., Novikov A.K. Partitioning of triangulated / multiply connected domain into subdomains without branching of inner boundaries. \ Uchenye Zapiski Kazanskogo Universiteta. Seriya Fiziko-Matematicheskie Nauki, 2018, vol. 160, no. 3, pp. 544-560.