Научная статья на тему 'Построение адаптивных сеток на основе триангуляции Делоне для метода конечных элементов'

Построение адаптивных сеток на основе триангуляции Делоне для метода конечных элементов Текст научной статьи по специальности «Математика»

CC BY
859
106
i Надоели баннеры? Вы всегда можете отключить рекламу.

Аннотация научной статьи по математике, автор научной работы — Морозкин Н. Д., Гилёв А. Ю.

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

i Надоели баннеры? Вы всегда можете отключить рекламу.
iНе можете найти то, что вам нужно? Попробуйте сервис подбора литературы.
i Надоели баннеры? Вы всегда можете отключить рекламу.

THE CONSTRUCTION OF ADAPTIVE MESHES ON THE BASIS OF DELONE TRIANGULATION FOR FINITE ELEMENTS METHOD

The problem of construction of triangular meshes in multiply connected two-dimensional domains is considered. Algorithms for obtaining of initial triangulation, optimization and mesh refinement are suggested. Complexity of the proposed calculating algorithm is evaluated.

Текст научной работы на тему «Построение адаптивных сеток на основе триангуляции Делоне для метода конечных элементов»

(1 , . Ыц/{Х)

-гЖ>= \тгЧт- <2»

& 1(Л-гУ Объединяя (15), (17) и (21) получим, что при г = ///,// —> +оо

1а-*) 1(Л-2)

Предположим теперь, что для функции Ц/{Х), определяемой равенством (17), выполнено следующее

( V

X

условие: каково бы ни было С>/ существуют константы у и /V, 1 < у < 2, N>0 такие, что - ^ <

Иу)

для x>y>N

Тогда при Л —» +оо справедливы асимптотические формулы

М(Я) = —= рл Г-——(1 + 0(1)). (23)

п42 о пі я(х,5) I

Доказательство формул (23) следует из асимптотического равенства (22) в силу тауберовой теоремы 4.1

[б].

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

ЛИТЕРАТУРА

1. Прочность. Устойчивость. Колебания. Т.1 ( под ред. Биргера И. А., Пановко Я. Г.) М.Машиностроение, 1968.-382с.

2. Работнов Ю. Н. Механика деформируемого твердого тела. М.: Наука, 1988.-712 с.

3. Гайдамак О. Г., Султанаев Я. Т. Об асимптотике спектра одного квадратичного пучка дифференциальных операторов.// ДАН 1996. Т. 351. № 3. С. 297-298.

4. Введение в спектральную теорию полиноминальных операторных пучков. Кишинев.: Штииница, 1986.-398с.

5. Султанаев Я. Т., Гайдамак О. Г. Асимптотика функции Грина одного квадратичного пучка дифференциальных операторов// Вестник Башкирского университета 1996. № 1. С. 14-19.

6. Костюченко А. Г., Саргсян И. С. Распределение собственных значений. М.: Наука, 1979.- 400 с.

ББК 22.193 УДК 519.62

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

ПОСТРОЕНИЕ АДАПТИВНЫХ СЕТОК НА ОСНОВЕ ТРИАНГУЛЯЦИИ ДЕЛОНЕ ДЛЯ МЕТОДА КОНЕЧНЫХ ЭЛЕМЕНТОВ

Морозкин Н.Д., Г плёв А.Ю.

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

Введение

В последнее время интенсивно развиваются методы построения неструктурированных сеток. Наиболее простыми и универсальными сетками являются треугольные сетки, построенные по критерию Делоне. Этот критерий позволяет из всевозможных треугольных сеток на заданном множестве узлов, выбрать сетку с наибольшим минимальным уг лом. Однако трудности в определении множества узлов сетки остаются.

' ’Иорозкин Николай Данилович - д.ф.-м.н., профессор, проректор по учебной работе ЬашГ'У Гилев Антон Юрьевич - аспирант кафедры вычислительной математики БашГУ

8

раздел МАТЕМАТИКА и МАТЕМАТИЧЕСКОЕ МОДЕЛИРОВАНИЕ

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

Постановка задачи

Пусть на плоскости хОу дана двумерная многосвязная область £2, ограниченная ломанными

Будем строить в этой области неструктурированную сетку, ячейками которой являются треугольники (триангуляцию).

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

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

и(х,у)е с(о) с помощью кусочно-квадратичных базисных функций. В книге [1] доказывается, что для функции и{х,у) Е С2 (Г), где Т - некоторая ячейка, существует сеточная функция и” Е \УУ\

что:

И

и - и

к

. -с ^ <п біп О

и

такая,

(1)

I \viwy

где к - наибольшая сторона ячейки, 0 > О- наименьший угол в ячейке Т, С > 0 - постоянная, не зависящая от Ы и И .

Норма

2

ы/21'т'\ и константа С при решении задачи еще не известны. Для нас важен множитель

Уг2 (/ )

И~ / 8Ш$, означающий, что точность аппроксимации увеличивается при уменьшении к и увеличении 0. Учитывая сказанное введём функцию оптимальности ячейки следующим образом:

2

(2)

ътв о)~ (.V, у) Щ

где С1){х^ у) - функция, задаваемая пользователем из физического смысла задачи, указывающая области сгущения сетки.

Ячейка будет оптимальной, если =1. Если > 1 -треугольник слишком большой или вытянутый,

и если Од < 1 - размеры треугольника малы, что приводит к увеличению числа узлов и вычислительной

сложности задач, решаемых на данной сетке.

Отметим, что сама по себе функция оптимальности ячеек не даёт полноценного ответа на вопрос о густоте сетки, она устанавливает допустимый баланс между линейными размерами и формой ячейки. Чтобы число узлов сетки было минимально, треугольники должны быть как можно ближе к равносторонним. Такой эффект достигается при использовании критерия Делоне.

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

Построение первичной сетки

Будем называть первичной сетку, построенную на множестве узлов ломанных Г , I = 1,2...УУГ.

Любой сегмент / границы Г,, вместе с некоторым граничным узлом рк будет образовывать ячейку

сетки. Ячейки, выходящие за пределы области не допускаются. Назовём ребро свободным, если на нём ешё не построена смежная ячейка.

Первичную сетку построим согласно следующему алгоритму:

1. Сформируем набор свободных рёбер из сегментов границы.

2. Возьмём любое ребро / из набора свободных рёбер.

3. Найдем такой узел р, граничащий со свободными ребрами, чтобы треугольник Л, образованный / и р целиком содержался в области О. Этот факт можно записать и так: « узел р

находится с той стороны от ребра /, с которой это ребро граничит с областью; ни одно из свободных ребер не пересекает треугольник Л ».

4. Полученный треугольник добавляется в сетку. Если стороны треугольника совпадают со свободными рёбрами, то эти рёбра удаляются из набора, в противном случае эти стороны добавляются в набор свободных ребер.

5. Если список свободных ребер пуст, то работа алгоритма закончена, в противном случае переходим к шагу 2.

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

Триаш^ляция Делоне

Говорят, что треугольная сетка удовлетворяет условию Делоне, если в открытый круг, описанный у любой ячейки сетки не попадает ни один из узлов сетки [2].

Для получения триангуляции Делоне из произвольной триангуляции используется процесс перестановки рёбер [3].

Измельчение сетки

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

Ранее нами было предложено добавлять новые узлы в геометрические центры ячеек [4]. В статье [5] предлагается помещать новые узлы в середину наибольшего ребра сетки. В рассматриваемой постановке задачи, эти методы могут привести излишнему сгущению сетки. Допустим требуется получить однородную

сетку с шагом И . Если длина сегментов ломанных Г( равна Ъ , а размеры области О много больше И , то первичная сетка будет состоять из сильно вытянутых треугольников (см. рис. 1), АС = И.

Рис. 1 Рис. 2

После двух последовательных делений сторон АВ и ВС получим ребро А'С'= 0.5АС = 0.5/?.

Таким образом, мы получили ребро, в два раза меньше заданной величины И .

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

Назовём треугольник «некачественным» если функция > 1 .

Алгоритм измельчения сетки:

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

2. Если набор некачественных треугольников пуст - алгоритм завершен.

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

4. Может оказаться что центр окружности: 1) выходит за пределы области; 2) попадает на некоторое ребро; 3) принадлежит некоторому треугольнику.

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

6. Новый узел соединяется рёбрами с узлами треугольников, с которыми он граничит. Старые треугольники удаляются (1 или 2), а взамен появляются новые (2, 3 или 4).

7. На списке новых рёбер проводится триангуляция Делоне.

10

раздел МАТЕМАТИКА и МАТЕМАТИЧЕСКОЕ МОДЕЛИРОВАНИЕ

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

9. Применяем алгоритм оптимизации сетки вблизи нового узла (см. далее).

iНе можете найти то, что вам нужно? Попробуйте сервис подбора литературы.

10. Перейти к шагу 2.

Оптимизация сетки без добавления новых узлов

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

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

минимизации этого функционала в сетке появлялись большие неоднородности. Окончательно мы остановились на сумме квадратов длин рёбер.

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

(ВС), пропорциональной числу узлов в триангуляции N . Приведём рекурсивный алгоритм оптимизации сетки вблизи узла р . Самый первый узел маркируется числом (ТПр = 1 ).

1. Оптимизируем положение узла р (остальные узлы неподвижны).

2. Если положение узла изменилось на величину, меньше определённого порогового значения, то работа алгоритма завершена (условие прекращения рекурсии).

3. Все не маркированные соседние для р узлы маркируем числом ТПр + 1.

4. Ко всем соседним для р узлам маркированным числом + 1 применяем данный алгоритм рекурсивно.

5. Перед выходом из алгоритма вторично оптимизируем положение узла р (как на шаге 1).

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

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

Число треугольников в первичной сетке будет ~ Nц . Пусть N - текущее число свободных рёбер. Для

нахождения одного треугольника требуется перебор максимум N узлов, и для каждого предварительно

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

уменьшиться на 1 или на 2. Но всего треугольников - А^0 , в начальный момент число свободных рёбер , а

в последний - 0. Поэтому можно считать, что число рёбер после добавления одного треугольника уменьшается на единицу. В результате, для выражения вычислительной сложности получаем:

вс,(Л0~ /Уд + (Ма -1)2 +..+к -(ЛГ0 -1))!

Заменив приближённо сумму интегралом, получим

всАЮ-кХ о)

Где к] - величина, не зависящая от . Эта зависимость очень точно подтверждается экспериментально.

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

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

нового узла, кроме процедуры включения новых треугольников, имеют сложность порядка 0(1). Это поиск

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

треугольников на данный момент М , тогда ВС поиска места для нового треугольника ~ log1 М , ВС

вставки треугольника ~ М . Будем считать, что Л/(а?)~ /7. Учитывая, что число новых треугольников, возникших после добавления одного узла не зависит от общего числа узлов, окончательно получаем ВС включения новых треугольников:

ВС2 (/?)« к2п + к, log, п + к4.

Теперь подсчитаем ВС полной триангуляции:

ВС(п) = ^ВС^п)* к2~- -— + к4 (/V - N0)+ к^ Jlog2 Л7<^Л7.

п= Л;о V 2 У No

Окончательно получаем

BC(N)*aN2 +bN\nN + cN + d (4)

где коэффициенты a,b,C,d не зависят от N. Они зависят от деталей реализации алгоритма (используемого языка программирования, структур данных и т.д.) и компьютера, на котором производятся вычисления, и определяются из численного эксперимента.

Заключение

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

На рис. 3 представлены однородные и неоднородные триангуляции различных областей.

Рис. 3

ЛИТЕРАТУРА

1. Марчук Г.И., Агошков В.И. Введение в проекционно-сеточные методы.-М.: Наука, 1981.

2. Скворцов А.В. Обзор алгоритмов построения триангуляции Делоне// Вычислительные методы и программирование. 2002. Т. 3. С. 14-39.

3. Пушкина И.Г., Тишкин В.Ф. Адаптивные расчетные сетки из ячеек Дирихле для решения задач математического физики: методика построения, примеры // Математическое моделирование. 2000. Т. 12. №

3. С. 97-109.

4. Чудинов В.В., Гилев А.Ю. О триангуляции двумерной области с кусочно-гладкой границей // • Обозрение прикладной и промышленной математики. 2002. Т. 9. Выпуск 2. С. 485-486.

5. Попов И.В., Поляков С.В. Построение адаптивных нерегулярных треугольных сеток для двумерных многосвязных невыпуклых областей// Математическое моделирование, 2002. Т. 14, № 6. С. 25-

35.

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

i Надоели баннеры? Вы всегда можете отключить рекламу.