Построение неструктурированных треугольных сеток с почти правильными ячейками

Вычислительные технологии

Том 15, № 1, 2010

Построение неструктурированных треугольных сеток с почти правильными ячейками*

А. С. Лебедев

Институт вычислительных технологий СО РАН, Новосибирск, Россия

e-mail: sasa@ict.nsc.ru

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

Ключевые слова: триангуляция, сглаживание сетки.

Введение

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

Как правило, точность расчетов снижается, если треугольные ячейки сетки сильно деформированы, т. е. сильно отличаются от правильных треугольников. Поэтому независимо от того, какой численный метод предполагается использовать, универсальной целью при построении сетки является минимизация в ней количества ячеек с углами, близкими к 0 и 180°. Для оценки качества треугольной ячейки обычно вводят какой-нибудь числовой показатель, характеризующий степень отклонения ячейки от правильного треугольника. В работе [1] обсуждаются и сравниваются между собой способы оценки качества ячейки, встречающиеся в литературе по построению сеток.

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

*Работа выполнена при финансовой поддержке РФФИ (грант № 09-01-00352-а). © ИВТ СО РАН, 2010.

с построением и адаптацией неструктурированных расчетных сеток, используемых для численного моделирования физических процессов, можно познакомиться, например, в обзоре [2].)

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

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

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

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

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

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

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

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

1. Построение треугольной сетки

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

Построение треугольной сетки выполняется в несколько этапов, некоторые из них показаны на рис, 1, Считается, что граница области, в которой строится сетка, задана аналитически. На практике это достигается, например, путем задания точек, определяющих границу (рис, 1, о), и построения по ним параметрического кубического сплайна. Граница может иметь изломы и задаваться несколькими функциями (сплайнами), которые стыкуются в точках излома. Граница может быть и внутренней (фиктивной), т, е, линией, к обеим сторонам которой примыкает триангулируемая область. Применяемый метод триангуляции гарантирует, что в сетке не будет ребер, пересекающих границу. Это позволяет использовать внутренние границы для сгущения или разрежения сетки, а также, например, для того, чтобы направить ребра треугольников вдоль заданных линий (скачкообразного) изменения физических свойств моделируемого объекта и повышения тем самым точности расчета.

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

Для включения в уже имеющуюся триангуляцию нового узла сначала отыскивается треугольник, в котором находится этот новый узел. Затем для каждого из ребер данного треугольника проверяется, находится ли добавляемый узел внутри окружности, описанной около треугольника, лежащего по другую сторону от ребра. Если этот узел находится внутри, то ребро убирается из триангуляции и для лежащих за ним двух ребер выполняется та же самая проверка, и т.д. Граничные ребра не убираются. По завершении процесса исключения ребер вставляемый узел оказывается внутри многоугольника, все ребра которого видны из вставляемого узла. Остается соединить узел с каждой из вершин этого многоугольника. На рис, 1, б" показан результат триангуляции вспомогательных узлов, задающих охватывающий треугольник, и граничных узлов.

Затем вспомогательные узлы, а вместе с ними и примыкающие к ним ребра и треугольники убираются. На рис, 1,е видно, что в триангуляции остались треугольники, лежащие снаружи триангулируемой области. Так бывает, когда область не является выпуклой. Эти треугольники тоже исключаются, в результате получается сетка, показанная на рис, 1, г. Наконец, внутри области генерируются и включаются в триангуляцию новые узлы. На рис, 1, д показана промежуточная стадия процесса, а на рис, 1, е — окончательная сетка. Критерий, на основании которого принимается решение о необходимости добавления новых узлов, и метод сглаживания (коррекции положений уже имеющихся узлов), который использовался для получения окончательной сетки, будут описаны ниже.

2. Сглаживание сетки

Будем считать, что узлы сетки на границе и внутри области каким-то образом расставлены и для каждого узла определены его соседи. Отрезки прямых, соединяющие соседние узлы, являются ребрами треугольных ячеек. Если сетка используется как элемент вычислительного алгоритма, форма ее ячеек является немаловажным фактором, влияющим на точность вычислений. Вообще говоря, наличие, например, сильно вытянутых тупоугольных ячеек снижает точность, поэтому алгоритмы триангуляции часто включают в себя процедуры сглаживания, целью которых является коррекция положений узлов (насколько это позволяют границы области и/или другие ограничения) без изменения связей между ними. Новые положения узлов находятся в результате решения уравнений, задуманных таким образом, чтобы ячейки сетки приняли (или по крайней мере стремились принять) желательные в рассматриваемом случае размер и форму. Чаще всего ячейкам стараются придать наиболее близкую к правильному треугольнику форму,

2.1. Монотонное сглаживание

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

5>р^рг) = о, ^ =

г р г

В уравнениях (1) единичный вектор ерг задает направление из узла с номером р на соседний с ним узел с номером г. Суммирование ведется по всем соседним с узлом р узлам. Фактическое расстояние между узлами р и г равно Брг, величина 5рг равна относительной разности между фактическим и требуемым расстояниями (Ор + О г)/2, Последнее определено здесь как среднее арифметическое расстояний Оръ Сг, задаваемых положениями узлов р и г с помощью упомянутой выше функции. Если ^(5рг) = 5рг, то записанные для всех внутренних узлов уравнения вида (1) представляют собой систему уравнений, решение которой задает положение равновесия системы узлов, соединенных пружинами с одинаковой и не зависящей от деформации жесткостью. Заметим, что в положении равновесия расстояния между узлами могут отличаться от рекомендуемых функцией расстояний. Например, расстояния во всех направлениях могут быть больше требуемых, что соответствует растянутым пружинам. Это означает, что узлов слишком мало. Однако даже добавление узлов может не исправить ситуацию в полной мере, так как в положении равновесия узлы могут располагаться, например, на избыточном расстоянии друг от друга в горизонтальном направлении и находиться слишком близко друг к другу по вертикали. Треугольные ячейки сетки оказываются вытянутыми,

В альтернативном описанному подходе расстояния между узлами не задаются заранее известной функцией, а вместе с положениями узлов находятся в процессе построения сетки. Узлу с номером р сопоставим величину Ср, означающую рекомендуемое

расстояние от данного узла до соседних узлов. Для узлов, которые лежат на границе области и положения которых фиксированы, так как являются входными данными процедуры триангуляции, величины Ср будем считать известными (вычисленными как некие средние расстояний до соседних граничных узлов). Расстояния между узлами всюду в области будут определяться, таким образом, положениями граничных узлов. Например, если на одной границе узлы расставлены реже, чем на другой, то размер треугольников в построенной сетке будет плавно изменяться, увеличиваясь с уменьшением расстояния от данного треугольника до границы с более редким расположением узлов. Заметим, что зависимость размера ячеек внутри области только от расположения граничных узлов не означает, как может показаться на первый взгляд, что возможность управлять размером внутренних ячеек полностью отсутствует. Чтобы обеспечить требуемые размер ячеек и ориентацию ребер (например вдоль некоторых линий), внутри области можно задать фиктивные границы и с необходимым шагом расставить на них узлы, положения которых в дальнейшем меняться не будут.

Для получения уравнений, из которых находятся положения узлов и соответствующие им расстояния до соседей, рассмотрим одномерный случай. Пусть три узла, расположенные последовательно на прямой линии, имеют координаты х1; хр и х2, Величины, задающие расстояния для этих узлов, обозначим соответственно С1; Ср и С2, Потребуем, чтобы фактическое расстояние хр — х1 между узлами XI и хр во столько же раз превышало рекомендуемое расстояние между ними, определенное из соображений симметрии как (Ср + С^/2, то сколько раз фактическое расстоянпе х2 — хр между узлами хр и х2 превышает рекомендуемое между ним и расстояние (Ср + С2)/2, В результате получаем уравнение

Х1 хр ^ х2 хр _ д ^

Ср + Ср + С2

Потребуем, чтобы величина С на участке между узлами х1 и х2 изменялась линейно, что с учетом (2) дает уравнение

~ ^ С2 - Ор = ^ Ср + С1 Ср + С 2

На двумерный случай требования (2) и (3) переносятся формально разными способами, Например, можно считать, что узел, положение которого задано вектором хр и

Ср

того контура Гр, Рекомендуемое расстояние в точке х(в) на контуре обозн ачим С (в). Вместо (2) запишем

х( в ) — х

-¿з = 0.

х(в) — хр

^Гр Ср + С

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

\ ^ (хг0 хр) + (хг1 хр) Сг0 + 2Ср + Сг1

Sг = 0.

В выражении (5) суммирование выполняется по всем ребрам контура, длина г-го ребра обозначена Si, а узлы, задающие ребро, имеют координаты (хг0,уг0) и (хг1,уг1), Уравнения для ур и Ср записываются аналогичным образом.

При обобщении уравнений (2) и (3) на двумерный случай можно считать, что узел р взаимодействует не с контуром, составленным из ребер, а только с самими соседними узлами. Тогда вместо (5) получается уравнение

=

г '

Примеры сеток в единичном круге, для сглаживания которых использовалось уравнение (6), приведены на рис, 2,1, II, б. Сетки на рис, 2,1 сгущаются к центру области. Для этого на границе круга = 1.0 узлы расставлены с шагом НохЛ = 0.2, а на внутренней фиктивной границе в виде окружности радиуса Д;п = 0.15 узлы расставлены с шагом ^¡п = ^ои1;/4. Сетки на рис, 2,11 сгущаются к внешней границе области, для чего на внутренней фиктивной границе в виде окружности радиуса Д;п = 0.65 узлы расставлены с шагом Н-ш = 0.2, а на внешней границе при Лои1; = 1.0 расстояние между узлами равно НохА = Ып/4.

I

а бе

Рис. 2. Сетка со сгущением ячеек к центру (I) и к границе (II) области: а — без сглаживания, б— с монотонным сглаживанием, в — с немонотонным сглаживанием

Сглаженные ееткн, как и следовало ожидать, имеют ячейки заметно более правильной формы и более плавно меняющегося размера по сравнению с сетками, к которым не применялись процедура сглаживания (рис, 2,1, II, о). Тем не менее из рис, 2,1,11,6" видно, что даже после сглаживания в сетках есть вытянутые ячейки. Главной причиной вытянутоети ячеек в данном случае является сгущение сетки, обусловленное расстановкой узлов на границах. Ячейки вытягиваются тем сильней, чем больше различаются размеры треугольников, прилегающих к разным границам, и чем меньше расстояние между этими границами. Невозможно покрыть область треугольной сеткой с ячейками одновременно правильной формы и неодинакового размера.

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

2.2. Немонотонное сглаживание

В данной работе для сглаживания сетки предлагается использовать уравнения

^ у ергФ(5рг) ° 5рг

2Spi,

рг

Ср + Сг

— 1,

в которых все величины имеют тот же смысл, что и в уравнениях (1), Функцию Ф(5) определим следующим образом:

ад

2^1

в2 2

в1 1 -

в1 1 —

Тв1

5, если 5 Е [—1,0],

если 5 € [0, в2],

если 5 € [в2, в3],

если 5 > в3.

т в3 - в2

Можно снова считать, что уравнения (7) определяют положение равновесия системы узлов, при этом вектор ергФ(5рг) задает силу взаимодействия между узлами р и г, которая по-прежнему зависит от относительной разности между фактическим расстоянием Spi и требуемым расстоянием (Ср + Сг)/2. Однако эта зависимость, задаваемая в (8), теперь немонотонна и имеет следующий качественный характер. При расстоянии, равном требуемому, сила отсутствует. Если расстояние между узлами меньше требуемого, то узлы отталкиваются, С удалением узлов друг от друга на расстояние больше требуемого возникает сила притяжения, которая сначала увеличивается, но при дальнейшем удалении узлов уменьшается, В результате для узла, расположенного между двумя другими узлами (которые закреплены и находятся на большом расстоянии друг от друга), имеется не одна, а три точки равновесия, одна из которых (средняя) неустойчива, а две другие

расположены на (почти) требуемом расстоянии от первого или второго узла, В одну из этих двух устойчивых точек равновесия и попадает средний узел в результате решения уравнений (7), При этом необходимый размер сетки для оставшегося закрепленного узла обеспечивается тем, что процедура сглаживания сетки чередуется с процедурой вставки/удаления узлов,

В формуле (8) есть несколько параметров, с помощью которых можно изменять количественные характеристики немонотонной зависимости, в частности, задавать относительное расстояние, на котором притяжение между узлами максимально. Типичные значения этих параметров, с которыми строились обсуждаемые ниже сетки, следующие: = 1, э2 = 0.01, з3 = 10з2 + 1, т = 0.1.

Чтобы решить, надо ли добавить новый узел в триангуляцию, фактическая суммарная площадь Бр треугольников (их количество обозначим пр), примыкающих к узлу р, делится па эту же суммарную площадь Б^, но найденную согласно функции, задающей расстояния. Если величина Б^/Б^ больше единицы и отличается от единицы больше, чем величина пр/(пр + 1) • Бр/БГр, то в центр примыкающего к узлу р треугольника, для которого отличие фактической площади от рекомендуемой максимально, добавляется новый узел. При этом не допускается добавление в окрестность узла триангуляции более одного нового узла. Для удаления существующих узлов (которое фактически требуется намного реже, чем добавление новых узлов) используется аналогичный принцип.

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

3. Результаты расчетов

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

Для получения количественных характеристик сетки, по которым можно судить об отличии ее треугольных ячеек от правильных треугольников, для ячейки с длинами сторон а1, а2, а3 будем вычислять коэффициент деформации Q по формуле

В случае невырожденного треугольника коэффициент Q положителен, не превышает единицу и принимает максимальное значение только для правильного треугольника. На рис, 3 показаны изолинии коэффициента Q в зависимости от величины двух углов треугольника, выраженной в градусах. Например, для треугольника с углами 10, 80 и 90° коэффициент деформации ^ ^^^^^ ^^^лизительпо 0.3.

Рис. 3. Изолинии коэффициента деформации Q треугольника в зависимости от величины (в градусах) двух его углов

В табл. 1 для сгущающихся к центру круга сеток с монотонным сглаживанием приведена информация о доле ячеек сетки, имеющих коэффициент деформации Q не меньше заданного. Шаг сетки на границе круга радиуса Дои1; = 1.0 равен 0.1 или 0.05, а на внутренней (фиктивной) границе Д;п = 0.15 шаг сет ки Н-т либо такой же, л ибо в 4 или 16 раз меньше. Наряду с заданными на границах размерами ребер в заголовках колонок в скобках указано общее число треугольных ячеек в соответствующей сетке. Смысл данных табл. 1 поясним на примере, для чего рассмотрим пересечение строки с Q = 0.95 и колонки с = 0.1/4, НохЛ = 0.1, Стоящее па этом пересечении число 60.2 означает, что в сетке, ребра которой на внутренней и внешней границах имеют

0.95 0.99

Таблица 1. Качество б^сеток, сгущающихся к центру круга

Ып = 0.1 Ып = 0.1/4 Ып = 0.1/16 Ып = 0.05 Ып = 0.05/4 Ып = 0.05/16

Я Л-сий =0.1 Ь'ОХА = 0.1 Ь'ОХА = 0.1 Л-сий = 0.05 Л-сий = 0.05 Л-сий = 0.05

0.90 90.4 83.0 82.0 92.9 87.5 86.7

0.91 89.2 79.5 79.0 90.9 84.5 84.2

0.92 86.9 76.3 75.8 87.9 81.0 81.0

0.93 82.2 72.2 71.4 84.5 76.3 76.9

0.94 77.5 68.0 66.1 79.8 70.7 71.5

0.95 71.2 60.2 60.2 73.8 63.4 65.1

0.96 62.9 52.1 53.1 65.8 54.9 57.2

0.97 53.2 41.5 44.6 56.0 44.6 47.7

0.98 39.6 28.7 34.4 44.0 31.6 36.0

0.99 23.5 15.2 20.3 25.9 17.0 21.3

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

В табл. 2 приведены аналогичные результаты для сеток, построенных с использованием немонотонного сглаживания. Сравнивая данные табл. 1 и 2, видим, что во всех рассмотренных случаях качество е-сеток значительно превышает качество б-сеток. Уменьшение размера ячеек при фиксированном сгущении приводит для е-сеток к более существенному улучшению качества по сравнению с б^сетками. Обращает на себя внимание также то, что в сетках со сгущением, построенных с помощью немонотонной процедуры сглаживания, оказывается большее число ячеек, чем в соответствующих б^сетках, что также способствует улучшению качества сетки за счет более постепенного изменения размеров ячеек.

Таблица 2. Качество е-сеток, сгущающихся к центру круга

Ып = 0.1 Ып = 0.1/4 Ып = 0.1/16 Ып = 0.05 Ып = 0.05/4 Ып = 0.05/16

Я Л-сий =0.1 Ь'ОХА = 0.1 Ь'ОХА = 0.1 Л-сий = 0.05 Л-сий = 0.05 Л-сий = 0.05

0.90 98.3 99.2 99.4 98.8 99.4 99.6

0.91 96.8 98.9 98.9 98.1 98.9 99.3

0.92 94.5 97.6 98.2 97.1 98.3 98.7

0.93 92.4 96.2 97.2 95.7 97.3 97.9

0.94 88.8 94.6 95.9 94.3 96.1 97.0

0.95 84.5 92.2 94.2 92.0 94.3 95.6

0.96 80.4 88.8 91.5 88.9 91.8 93.6

0.97 72.1 83.2 88.1 83.9 88.1 90.4

0.98 61.8 73.5 82.2 76.1 82.3 85.7

0.99 44.0 57.0 69.3 62.8 70.8 76.7

Таблица 3. Качество б-сеток, сгущающихся к границе круга

Ып = 0.1 Ып = 0.1 Ып = 0.05 Ып = 0.05

Я кохЛ = 0.1/4 Кш = 0.1/16 Кш = 0.05/4 Кш = 0.05/16

0.90 57.4 38.7 73.2 59.5

0.91 53.5 35.4 68.9 54.5

0.92 49.2 31.8 64.2 49.3

0.93 44.6 28.4 58.5 43.8

0.94 39.9 25.1 52.1 38.3

0.95 34.5 21.1 45.2 32.2

0.96 28.4 17.3 38.1 26.1

0.97 22.0 13.3 30.5 19.9

0.98 15.7 9.3 21.4 13.5

0.99 8.2 4.9 11.6 7.0

Таблица 4. Качество e-сеток, сгущающихся к границе круга

hin = 0.1 hin = 0.1 hin = 0.05 hin = 0.05

Q /¿out = 0.1/4 /¿out = 0.1/16 /¿out = 0.05/4 /¿out = 0.05/16

0.90 96.9 98.8 99.0 99.5

0.91 95.5 98.2 98.2 99.1

0.92 94.1 97.3 97.2 98.5

0.93 92.0 96.3 96.0 97.7

0.94 89.8 95.0 94.5 96.6

0.95 86.6 93.3 92.4 95.2

0.96 82.2 90.8 89.3 93.1

0.97 75.2 86.8 84.7 89.8

0.98 65.1 80.5 77.6 84.7

0.99 46.5 66.6 63.0 74.5

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

Заключение

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

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

fl] Baker T.J., Рев ay P.P. A comparison of triangle quality measures // Proc. 10th Intern. Meshing Roundtable. Newport Beach, California, 2001. P. 327-340.

[2] Круглякова Л.В., Неледова А.В., Тишкин В.Ф., Филатов А.Ю. Неструктурированные адаптивные сетки для задач математической физики (обзор) // Мат. моделирование. 1998. Т. 10, № 3. С. 93-116.

[3] Field D.A. Laplacian smoothing and delaunav triangulation // Comm. Appl. Numerical Methods. 1988. Vol. 4. P. 709-712.

[4] tlan Zhou, Kenji Shimada. An angle-based approach to two-dimensional mesh smoothing // Proc. 9th Intern. Meshing Roundtable. New Orleans, Louisiana, 2000. P. 373-384.

[5] Djidjev H.N. Force-directed methods for smoothing unstructured triangular and tetrahedral meshes // Proc. 9th Intern Meshing Roundtable. New Orleans, Louisiana, 2000. P. 395-406.

[61 Borouchaki H., Lapon P., Laug P., George P.L. Minimal variational surfaces and quality triangular meshes // Ibid. P. 217-225.

[7] Ruppert J. A delaunav refinement algorithm for quality 2-dimensional mesh generation // J. Algorithms. 1995. Vol. 18. P. 548-585.

[8] Лебедев A.C., Федорук М.П., Штырина O.B. Конечно-объемный алгоритм решения уравнений Максвелла на неструктурированной сетке // Журн. вычисл. математики и мат. физики. 2006. Т. 46, № 7. С. 1302-1317.

[91 Bowyer A. Computing dirichlet tesselation // The Comp. J. 1981. Vol. 24, No. 2. P. 162-166.

[10] Watson D.F. Computing the n-dimensional delaunav tesselation with application to voronoi politopes // Ibid. P. 167-171.

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