Разработка и реализация алгоритмов трехмерной триангуляции сложных пространственных областей:
прямые методы
|
Критерий |
Формула |
Интервал возможных значений |
Оптимальное значение |
Отношение радиуса описанной сферы к радиусу вписанной |
|
|
3.0 |
Отношение длины наибольшего ребра к радиусу вписанной окружности |
|
|
4.898979... |
Отношение радиуса описанной окружности к длине наибольшего ребра |
|
|
0.612375... |
Отношение длин наибольшего и наименьшего ребер |
|
|
1.0 |
Отношение 4-й степени объема тетраэдра к кубу суммы квадратов площадей граней |
|
|
4.572474e-4 |
Отношение куба среднего арифметического длин ребер к объему тетраэдра |
|
|
8.4852816... |
Отношение куба среднего геометрического длин ребер к объему тетраэдра |
|
|
8.4852816... |
Наибольший двугранный угол |
|
|
(1.2309594...) |
Минимальный телесный угол |
|
|
|
Таблица 1. Критерии оценки качества элементов сетки [25]
1.3 Особенности
построения сеток в сложных областях
Одной из распространенных
задач дискретизации является триангуляция сложных областей, т.е. областей, на
которые наложены различные дополнительные ограничения, обусловленные, например,
изменением свойств материала либо некими конструкционными особенностями
моделируемого объекта. Как правило, ограничения, накладываемые на область, а
точнее говоря, на сетку в этой области, носят характер запрета на пересечение
ребрами сетки некоторых заданных поверхностей. То есть, например, если речь
идет о композитном материале, ребра сетки не должны пересекать границу между
включением и матрицей. Фактически это равнозначно тому, что каждый конечный
элемент сетки должен "состоять" строго из одного материала. Это
ограничение вызвано вполне понятными причинами, и его необходимо учитывать при
построении сетки.
Еще один вариант
(встречается очень редко) - это ограничение в виде заданной кривой, которая не
должна пересекать грани элементов сетки, то есть должна быть аппроксимирована
непрерывной цепочкой ребер.
Таким образом, условно
можно выделить два типа сложных областей:
1) области, состоящие из
непересекающихся замкнутых подобластей;
2) области с внутренними
ограничениями в виде поверхностей или кривых.
Примером области первого
типа служит модели композитных материалов, примером второго - модели,
исследующие развитие трещин в материале (в двумерном случае типичным примером
областей II типа служат геодезические карты, где узлами сетки служат замеры высот, а
линиями-ограничениями - контуры рек, оврагов и озер).
|
|
Рис. 1. Пример сложной области I типа: шар в кубе (композитный материал) |
Рис. 2. Пример сложной области II типа: фрагмент плоскости в кубе |
По сути дискретизация
сложных областей первого типа заключается в независимой дискретизации каждой
подобласти с условием согласования сеток на границах. Из такой постановки
задачи естественным образом вытекает следующая возможная схема решения:
1) триангуляция границ
смежных подобластей;
2) дискретизация
подобластей исходя из заданной триангуляции границ.
При этом для
дискретизации каждой подобласти может быть использован наиболее подходящий
метод. В частности, для областей простой геометрической формы (параллелепипеды,
шары, цилиндры, призмы) могут быть использованы прямые методы (более
ресурсоемкие методы использовать просто нецелесообразно). Для геометрически
сложных областей наиболее естественным является использование методов
исчерпывания, так как результат триангуляции границы дает фактически
необходимые исходные данные для этих методов (т.е. начальный фронт).
Для сложных областей
второго типа обычно используются методы на основе критерия Делоне, так как они
позволяют предварительно размещать узлы на заданных ограничениях
(поверхностях/кривых), либо методы граничной коррекции. Эти методы с некоторыми
дополнительными условиями можно использовать и для дискретизации областей
первого типа.
Заметим также, что могут
встречаться сложные области и комбинированного типа, т.е., например, одна из
подобластей может включать в себя ограничения в виде поверхностей или кривых.
Поэтому указанное разграничение на типы весьма условно.
Главными преимуществами
прямых методов являются высокая скорость работы, надежность и простота
реализации; основным недостатком - ограниченная область применения. Фактически,
эффективно использовать прямые методы можно только для триангуляции самых
простых областей - шара, параллелепипеда, цилиндра и т.п. Впрочем, нередко
такие области являются частью некоторых сложных областей, и использование
прямых методов вместо итерационных в этом случае позволяет существенно
экономить машинные ресурсы и время. Кроме того, прямые методы могут
использоваться также для триангуляции и геометрически сложных областей
заданного типа, что, однако, требует индивидуального подхода к каждой задаче.
При этом даже несмотря на то, что алгоритм получается адаптированным под
заданную область, не всегда можно гарантировать хорошее качество сетки.
Сетки, построенные с
помощью прямых методов, могут быть использованы и в итерационных методах. В
первую очередь это касается методов граничной коррекции. Размещение узлов в
методах на основе критерия Делоне нередко осуществляется с помощью одного из
прямых алгоритмов (с последующей коррекцией).
Таким образом, несмотря
на все ограничения, прямые методы все равно находят свое применение в
дискретизации пространственных областей.
Важной особенностью
сеток, построенных с помощью прямых методов, является их структурированность.
Структурированные сетки имеют четкую топологию и позволяют ввести особую
индексацию вершин. Таким образом, зная только индексы узла, можно легко
определить всех его соседей (иными словами, инцидентные ему узлы, т.е. все
узлы, с которыми у него есть общее ребро), а также вычислить его координаты.
Рассмотрим, например, так
называемую "кубическую сетку", то есть сетку, полученную разбиением
исходного параллелепипеда на равные "кубы" (слово "куб"
здесь употребляется исключительно в топологическом смысле, поскольку ребра у
такого "куба" необязательно строго равны). Если размеры куба - hx, hy, hz, и он ориентирован по осям координат,
то узел с индексами i,j,k имеет координаты (Ox + i*hx, Oy + j*hy, Oz + k*hz), а его соседями являются узлы с
индексами (i ± 1, i, k), (i, j ± 1, k) и (i, j, k ± 1).
Таким образом, нет
необходимости хранить в памяти ни координаты узла, ни список его соседей.
Аналогичную систему индексации можно использовать и для других
структурированных сеток. Помимо экономии ресурсов, структурированность сетки
заметно облегчает написание алгоритмов, в том числе алгоритмов сгущения и
оптимизации.
Рис. 3. Кубическая сетка
Шаблоном называют некий
принцип размещения узлов и установки связей между ними. Каждый шаблон применим
только к областям заданного вида. Благодаря такой узкой специализации, сетки,
построенные на шаблонах, часто могут быть высокого качества.
Из-за четкой
структурированности сетки на шаблонах, как правило, невозможно стыковать друг с
другом. Решением этой проблемы может быть использование специальных
"переходных" областей, сетка в которых строится либо на основе
специальных шаблонов, либо с помощью одного из итерационных методов.
2.1.1 Триангуляция параллелепипеда
Самая простая для
триангуляции и в то же время довольно часто встречающая область - это
параллелепипед. Для нее предложено несколько различных шаблонов, и все они
базируются на описанной выше кубической сетке.
При "классическом
подходе", описанном в каждой книге по триангуляции [1, 6, 19, 30, и др.],
область разбивается на кубы, а затем каждый куб уже разбивается на пять или
шесть тетраэдров путем вставки диагональных и внутренних ребер:
Рис. 4. Разбиение куба на шесть (слева) и пять (справа) тетраэдров
У каждого из этих
вариантов есть свои достоинства и недостатки:
Шаблон 1: "6 тетраэдров" |
Шаблон 2: "5 тетраэдров" |
Однородность сетки: все внутренние
узлы имеют одинаковое число соседей (по 14). |
Сетка
неоднородна, узлы имеют "сильно" разное число соседей
("половина" - 6, а "половина" - 18). |
Низкое качество сетки (средняя АХ
получающихся тетраэдров - 0.3). |
Хорошее
качество сетки (средняя АХ тетраэдров - 0.7). |
Простота построения и согласования
сетки на границе. |
Большая сложность построения и согласования (из-за
необходимости чередовать направления диагональных ребер). |
Существуют и другие,
лучшие шаблоны. Рассмотрим два из них. Оба этих шаблона базируются на идее
вставки внутрь каждого элемента кубической сетки дополнительного узла. Каждый
из этих дополнительных узлов соединяется ребрами с вершинами куба, в результате
чего исходный параллелепипед разбивается на два типа элементов:
1) граничные - в виде
четырехугольной пирамиды (т.е. пирамиды, основанием которой является квадрат);
2) внутренние - в виде
объемного ромба, составленного из двух четырехугольных пирамид, соединенных
основаниями.
Рис. 5. Вставка внутрь кубической сетки дополнительных вершин; справа отдельно изображен получающийся в результате ромбовидный элемент.
Чтобы разбить граничные
пирамидальные элементы, достаточно вставить диагональное ребро (причем
произвольно ориентированное); при этом получаются два одинаковых тетраэдра с АХ
порядка 0.5.
Разбить внутренние
ромбовидные элементы можно уже несколькими различными способами, и именно
выбранным вариантом различаются между собой вышеупомянутые шаблоны.
Шаблон 3: вставка диагонального ребра между
узлами кубической сетки.
Шаблон 4: вставка ребра между дополнительными
узлами.
И в том и в другом случае
при этом получается 4 одинаковых
тетраэдра. Однако есть и существенные различия:
Шаблон
3: |
Шаблон
4: |
допускает
2 варианта вставки ребер; |
допускает
единственный вариант вставки ребер (для внутренних элементов); |
неоднородность сетки
(дополнительные узлы имеют всего по 8 соседей); |
подавляющая
однородность сетки (все внутренние узлы, за исключение дополнительных
приграничных узлов, имеют по 14 соседей); |
полная
элементная однородность - все элементы одинаковы; |
приграничные
элементы отличаются от внутренних; |
хорошее качество сетки (все
тетраэдры имеют АХ порядка 0.5); |
очень высокое качество сетки (приграничные тетраэдры имеют АХ порядка 0.5, внутренние - порядка
0.9) |
|
|
Рис. 6. Шаблон 3 - вставка ребра между узлами кубической сетки |
Рис. 7. Шаблон 4 - вставка ребра между дополнительными узлами |
Разумеется, можно
использовать и комбинированный шаблон, в котором из трех возможных вариантов
вставки ребра выбирается наилучший (например, по критерию максимизации
минимальной АХ четырех получающихся тетраэдров). Этот подход особенно оправдан
в случае сильного геометрического искажения области (когда область представляет
собой не параллелепипед, а, например, криволинейную шестигранную призму).
Недостатком этих шаблонов
является чуть большая, по сравнению с предыдущими вариантами, сложность
построения сетки. К их достоинствам дополнительно стоит отнести произвольность
направления диагональных ребер на границе, что облегчает согласование
триангуляции при дискретизации сложных областей. Кроме того, эти шаблоны
позволяют легко осуществлять локальное сгущение сетки с помощью
специального переходного шаблона.
В завершение заметим, что
по совокупности достоинств и недостатков оптимальным является использование
шаблона 4.
Прежде чем приступить к
триангуляции цилиндра, обратимся к триангуляции круга.
Существует несколько
различных подходов к решению этой задачи. Один из вариантов предполагает
разбиение круга на несколько четырехугольных
областей, которые затем разбиваются на "квадраты";
окончательно полученные "квадраты" делятся на два треугольника (рис.
8).
Очевидно, что полученная
таким образом сетка не обладает ни однородностью, ни качеством. Существует
шаблон, который позволяет получить на круге однородные сетки высокого качества.
Оказывается, для этого достаточно делить круг не на четырехугольники, а на
треугольные сектора - ведь треугольник элементарно дробится на треугольники
меньшего размера. Причем количество секторов может варьироваться от 4 до 7
(меньше или больше приведет уже к значительным искажениям сетки).
Рис. 8. Разбиение круга на 5 четырехугольных подобластей с последующим их разбиением на "квадраты" и треугольники
Размещение узлов внутри
секторов производится с помощью концентрических окружностей, причем на каждой
последующей окружности количество узлов увеличивается на число секторов (т.е. в
каждый сектор добавляется по узлу). Если распределять узлы на отрезках дуг
равномерно, то (полярные) координаты узлов можно вычислять по индексам с
помощью формул вида:
,
где i - номер окружности, - ее радиус, j - номер узла, а N - количество секторов.
На рис. 9 и рис. 10
приведены примеры использования этого шаблона. Как можно видеть, построенные
сетки обладают неплохим качеством, а также подавляющей однородностью (все
вершины, кроме граничной и центральной, имеют одинаковое число соседей), а
сетка на основе 6 секторов - даже полной однородностью.
|
|
Рис. 9. Построение сетки в круге на основе 4 секторов |
|
|
|
Рис. 10. Построение сетки в круге на основе
6 секторов |
Ввиду очевидных
достоинств шаблона (подавляющей однородности сетки, ее высокого качества и
простоты построения), в дальнейшем будет использоваться именно он.
Дискретизацию цилиндра
разумнее всего проводить путем разбиения его на слои. Каждый слой будет
представлять собой тонкий цилиндр ("блин"), причем триангуляции обоих
его оснований должны быть идентичны. Соединив ребрами соответствующие друг
другу узлы на разных основаниях, можно получить так называемую
"призматическую" сетку, то есть разбиение цилиндра на пятигранные
призмы [1] (см.
рис. 11).
Рис. 11. Построение призматической сетки в цилиндре путем его разбиения на слои и
одинаковой триангуляции каждой разделяющей поверхности
Таким образом исходная
задача сведена к вопросу о разбиении конечного элемента - пятигранной призмы -
на тетраэдры. Как и в случае с кубической сеткой, это можно делать несколькими
способами. Первый, самый простой способ, это разбиение каждой призмы на три
тетраэдра с помощью диагональных ребер. При этом, однако, необходимо тщательно
согласовывать направление вставляемых ребер, чтобы не столкнуться с
краеугольной проблемой трехмерной дискретизации - невозможностью разбиения
многогранника на непересекающиеся тетраэдры без использования дополнительных
узлов. В данном конкретном случае это означает, что при некоторых комбинациях
диагональных ребер призма не будет разбиваться на тетраэдры (см. рис. 12).
Существует лучший способ,
связанный со вставкой дополнительного узла внутрь призмы. Однако теперь, после
соединения дополнительного узла с вершинами призмы, будут получены элементы уже
трех типов: четырехугольные пирамиды на внешней ("круглой") границе
цилиндра, объемные ромбы между призмами на одном слое и собственно готовые
тетраэдры на основаниях цилиндров-"блинов" (рис. 13).
Рис. 12. Пример комбинации диагональных
ребер, при которой невозможно разбить пятигранную призму на тетраэдры без
вставки дополнительного узла.
Рис. 13. Вставка в призматическую сетку дополнительных узлов
Окончательно полученные
элементы разбиваются на тетраэдры. Граничные пирамиды - вставкой диагональных
ребер, внутренние ромбы - вставкой ребра между дополнительными узлами. При
удачном подборе параметров итоговая сетка будет обладать неплохим качеством
(среднее значение АХ порядка 0.5). К сожалению, однородности добиться не
удастся (дополнительные узлы будут иметь всего по 11 соседей, а базовые - по
18), хотя четкая структурированность по-прежнему будет иметь место.
Один из самых популярных
методов дискретизации сферических областей основан на варианте метода
дробления. Как и в случае с кругом, шар разбивается на сектора, но уже
тетраэдрической формы. Для этого можно использовать либо 3 взаимно перпендикулярные
плоскости, проходящие через центр шара (рис. 14), либо вписанный в шар икосаэдр
(правильный 20-гранник, гранями которого являются равносторонние треугольники).
Второй вариант предпочтительней из-за существенно меньших геометрических искажений
сетки при ее построении (рис. 15).
|
|
Рис. 14. Разбиение сферы на 8 секторов |
Рис. 15. Разбиение сферы на 20 секторов с помощью вписанного икосаэдра |
Идея методов дробления
состоит в последовательном измельчении некоторой уже построенной грубой сетки путем
дробления ее элементов. В данном случае необходимо раздробить сектора, имеющие
форму тетраэдров с одной кривой гранью. Особенностью этой задачи является то,
что использование одинакового шаблона для каждого сектора автоматически
обеспечивает согласование триангуляции между секторами ввиду очевидной
симметрии.
Рассмотрим два возможных
шаблона дробления тетраэдра.
Первый шаблон
предполагает разбиение тетраэдра на 8 частей. Для этого каждое его ребро
делится надвое дополнительным узлом; через эти узлы проводятся плоскости,
отсекающие 4 тетраэдра с исходными вершинами. Оставшийся в итоге объемный ромб
(если тетраэдр был правильный, то получится октаэдр) делится на 4 тетраэдра
вставкой внутреннего ребра (из трех возможных вариантов проведения ребра выбирается
оптимальный).
Рис. 16. Дробление тетраэдра на 8 частей
При использовании второго
шаблона тетраэдр разбивается на 27 частей. Для этого необходимо разбить каждое
его ребро на три равные части и вставить по дополнительному узлу в центр каждой
грани. Каждая грань при этом разобьется на 9 треугольников. Соединив ребрами
узлы, лежащие в центрах граней, получим разбиение исходного тетраэдра на 11
тетраэдров и 4 объемных ромба, каждый из которых затем оптимальным образом
разбивается на 4 тетраэдра.
Рис. 17. Дробление тетраэдра на 27 частей
Процесс дробления можно
продолжать итерационно до тех пор, пока элементы не станут нужного размера.
Единственная сложность, с
которой можно столкнуться при использовании этого шаблона для дискретизации
секторов, заключается в наличии "кривой" (выпуклой) грани. Однако
этой сложности можно избежать, если использовать не декартовы, а сферические
координаты. В этом случае нужные координаты новых узлов будут получаться
автоматически, без использования каких-либо процедур отображения. Ниже
приведена двумерная аналогия этого принципа.
|
|
Декартовы координаты |
Полярные координаты (полюс в точке 1) |
|
|
|
|
Заметим, что при
использовании метода дробления на основе 20 секторов сетка, которая образуется
на границе сферы, будет состоять из правильных треугольников. Это весьма
благотворно сказывается на качестве аппроксимации граничных условий [18]. Общее
качество дискретизации шара методом дробления также довольно велико, хотя и (слабо
экспоненциально) ухудшается с каждым шагом дробления. Для трех шагов дробления
(при дроблении на 27 тетраэдров) средняя АХ будет около 0.5 (при этом линейные
размеры элементов будут составлять примерно 1/50 от диаметра шара). К
сожалению, сетки на основе метода дробления неоднородны и, как правило, не
имеют четкой топологической структуры (при оптимальном подборе направления
вставляемых ребер).
Методы отображения
основаны на возможности построения взаимнооднозначного отображения между
областями различной геометрической формы. Таким образом, используя оператор
отображения, можно перенести сетку из некоторой (более простой) области на
заданную.
Существенным недостатком
этих методов является неизбежное ухудшение качества сетки из-за геометрических
искажений, возникающих при отображении. Вместе с тем даже достаточно сложные
операции отображения требуют сравнительно небольших затрат ресурсов, ведь при
отображении меняются только координаты узлов, связи остаются неизменными.
Ввиду этого в качестве
отображаемых сеток ("образов") имеет смысл использовать только сетки,
построенные на шаблонах. Более универсальные итерационные методы разумнее
применять сразу для заданной области.
Как правило, для
отображения используются два типа преобразований - "простейшие"
аффинные, позволяющие только растягивать/сжимать сетку и более универсальные
изопараметрические, позволяющие отображать сетки даже в криволинейные области
(рис. 18).
Рис. 18. Виды преобразований
Напомним, что аффинным
называется линейное преобразование координат:
(3)
То есть это
преобразование сжатия/растяжения и сдвига. Оно позволяет приводить произвольную
геометрическую форму (квадрат, треугольник, параллелепипед...) к так
называемому "стандартному виду" (см. рис. 19). Обычно это необходимо
делать потому, что многие программные библиотеки, а также справочные таблицы
(например, коэффициентов кубатурных формул) ориентированы именно на стандартные
формы. Таким образом, в методах триангуляции аффинные преобразования, как
правило, играют лишь незначительную вспомогательную роль.
Рис. 19. "Стандартный вид"
некоторых геометрических форм:
квадрат, треугольник, круг
Большее
значение имеют изопараметрические преобразования. Заметим, что они нашли
широкое применение не только в методах отображения, но и при решении задач на
основе криволинейных элементов [1].
Сущность
изопараметрического преобразования заключается в следующем: задается некая
система внутренних координат (называемых "барицентрическими"),
которая однозначным образом связывает положение любой точки данной
геометрической формы (треугольник, квадрат, тетраэдр и т.д.) с определенным
множеством базисных точек, также принадлежащих данной геометрической форме (в
качестве таких точек обычно выбираются углы, середины сторон и т.п.). Таким
образом, изменив положение базисных точек, можно легко определить и новое
положение всех остальных точек, используя их барицентрические координаты.
Проиллюстрируем
вышесказанное на простейшем примере. Рассмотрим некоторый невырожденный
треугольник с вершинами (вершина
имеет координаты
) и определим его барицентрические координаты. Для каждой
точки
этого треугольника
барицентрические координаты
вводятся как решение
системы
(4)
Поскольку определитель
этой системы равен удвоенной площади треугольника, она имеет единственное
решение для каждой точки x. (Заметим также, что, поскольку , функции
являются базисными для
элемента-треугольника.)
Таким образом мы связали
(декартовы) координаты каждой
точки треугольника с (декартовыми)
координатами его вершин:
(5)
Пусть необходимо отобразить сетку, построенную
в треугольнике , на треугольник
. Для этого сперва нужно найти барицентрические координаты
всех узлов сетки. При этом нет необходимости решать систему (4); вместо этого
можно воспользоваться интересной геометрической интерпретацией,
проиллюстрированной рис. 20. Оказывается, барицентрические координаты легко
определяются через отношения площадей треугольников. Сами площади элементарным
образом высчитываются методами векторной алгебры. Нахождение обратной матрицы
системы линейных алгебраических уравнений (4), как правило, также не
представляет каких-либо проблем, поэтому в любом случае затраты вычислительных
ресурсов на этом этапе минимальны.
|
|
Рис. 20. Барицентрические
координаты |
После того, как
барицентрические координаты узла найдены, его новое положение вычисляется простой
подстановкой в формулу (5) координат вершин вместо координат
.
В рассмотренном примере
прямолинейный треугольник отображался в прямолинейный треугольник. В этом
случае вполне можно обойтись и аффинным преобразованием. Рассмотрим теперь
отображение прямоугольной области в некоторую криволинейную.
На рис. 21 показана
исходная прямоугольная область (), которую необходимо отобразить в область (
) с двумя криволинейными границами.
Рис. 21. Изопараметрическое отображение
Поскольку у области
имеются криволинейные границы, необходимо использовать дополнительные базисные
вершины, чтобы отразить эту кривизну. В данном случае достаточно двух для
верхней и одной для нижней кривой. Отрезки и
при этом необходимо
дополнительными узлами разбить на равные части; узлы
размещаются более
произвольно, но на заданных кривых и желательно на примерно равных интервалах.
Теперь необходимо построить систему барицентрических координат или, что
фактически то же самое, систему базисных функций. В этой задаче проявляется
одно замечательное свойство изопараметрического отображения - его базисные
функции можно легко выразить через функции другого базиса этой же области. В
данном конкретном случае систему из 7 нужных базисных функций можно выразить
через 4 базисные функции прямоугольника (
).
Пусть имеется система
базисных функций ,
. Для указанного на рисунке прямоугольника шириной С и высотой H она может
иметь, например, следующий вид [1]:
,
, (6)
,
.
(По сути это отношения
площадей прямоугольников.)
Тогда набор базисных
функций выражается через
следующим образом:
(7)
Несложно проверить, что
для данного набора также выполняется свойство .
Таким образом алгоритм
вычисления новых декартовых координат узла x выглядит следующим образом:
1) поиск прямым
вычислением барицентрических координат ;
2) вычисление по (7)
барицентрических координат ;
3) вычисление новых
декартовых координат узла х по формуле
.
Список литературы
1.
Шайдуров В.В.
Многосеточные методы конечных элементов. - М., Наука, 1989. - 288с.
2.
Скворцов А.В.
Обзор алгоритмов построения триангуляции Делоне // Вычислительные методы и программирование, 2002, №3, c. 14-39.
3.
Скворцов А.В.
Алгоритмы построения триангуляции с ограничениями // Вычислительные методы и программирование, 2002, №3, c. 82-92.
4.
I.Babushka, W.C. Rheinboldt. A-posteriori Error
Estimates for Finite Element Method // Int.
J. Numer. Meth. Eng., Vol. 12,
p.p. 1597-1615, 1978.
5.
T.J. Baker. Automatic Mesh Generation for Complex
Three-Dimensional Regions Using a Constrained Delaunay Triangulation // Engineering With Computers,
Springer-Verlag, № 5, p.p. 161-175, 1989.
6.
M. Bern, D. Eppstein. Mesh Generation and Optimal
Triangulation // Computing in Euclidean
Geometry, World Scientific Publishing Co., p.p. 23-90, 1995.
7.
D.K. Blandford, G. Blelloch, D. Cardoze, C. Kadow.
Compact Representations of Simplicial Meshes In Two and Three Dimensions // Proceedings of 12th International Meshing
Roundtable, Sandia National Laboratories, p.p.135-146, Sept. 2003.
8.
H. Borouchaki, S.H. Lo. Fast Delaunay Triangulation In
Three Dimensions // Computer Methods In
Applied Mechanics And Engineering, Elsevier, Vol. 128, p.p. 153-167, 1995.
9.
E.K. Buratynski. A Three-Dimensional Unstructured Mesh
Generator for Arbitrary Internal Boundaries // Numerical Grid Generation in Computational Fluid Mechanics,
Pineridge Press, p.p. 621-631, 1988.
10. P.R. Cavalcanti,
U.T. Mello. Three-Dimensional
Constrained Delaunay Triangulation: A Minimalist Approach // Proceedings of the 8th International Meshing
Roundtable, p.p. 119-129, 1999.
11. Dey, K. Tamal, K.
Sugihara, C.L. Bajaj. Delaunay Triangulations In Three Dimensions With Finite
Precision Arithmetic // Computer Aided
Geometric Design, North-Holland, № 9, p.p. 457-470, 1992.
12.
H.N. Djidjev. Force-Directed Methods For Smoothing
Unstructured Triangular And Tetrahedral Meshes // Proceedings of 9th International Meshing Roundtable, Sandia
National Laboratories, p.p. 395-406, October 2000.
13. L. Durbeck. Evaporation: A Technique For Visualizing Mesh
Quality // Proceedings of 8th
International Meshing Roundtable, South Lake Tahoe, CA, U.S.A., p.p.
259-265, October 1999.
14.
D.A. Field. Laplacian Smoothing And Delaunay
Triangulations // Communications in Applied Numerical Methods., vol. 4,
p.p. 709-712, 1988.
15.
P.J. Frey, H. Borouchaki, P.-L. George. Delaunay
Tetrahedralization Using an Advancing-Front Approach // Proceedings of 5th International Meshing Roundtable, Sandia
National Laboratories, p.p. 31-46, October 1996.
16.
L.A. Freitag, C. Ollivier-Gooch. A Comparison of
Tetrahedral Mesh Improvement Techniques // Proceedings
of 5th International Meshing Roundtable, Sandia National Laboratories, p.p.
87-106, October 1996.
17.
L.A. Freitag, C. Ollivier-Gooch. Tetrahedral Mesh Improvement Using Swapping
and Smoothing // International Journal for Numerical Methods in Engineering,
vol. 40, p.p. 3979-4002, 1995.
18.
L.A. Freitag, C. Ollivier-Gooch. The Effect Of Mesh
Quality On Solution Efficiency // Proceedings
of 6th International Meshing Roundtable, Sandia National Laboratories,
p.p.249, October 1997.
19.
P.L. George. TET MESHING: Construction, Optimization
and Adaptation // Proceedings of 8th International
Meshing Roundtable, p.p.133-141, 1999.
20. N.A. Golias, T.D.
Tsiboukis. An Approach to Refining Three-Dimensional Tetrahedral Meshes Based
on Delaunay Transformations // International
Journal for Numerical Methods in Engineering, John Wiley, № 37,
p.p.793-812, 1994.
21.
C. Hazlewood. Approximating Constrained
Tetrahedralizations // Computer Aided Geometric Design, vol. 10, p.p.
67–87, 1993.
22.
B. Joe. Delaunay Triangular Meshes in Convex polygons,
SIAM J. Sci. Stat. Comput., Vol. 7, p.p. 514-539, 1986.
23. B. Joe.
Construction Of Three-Dimensional Delaunay Triangulations Using Local
Transformations // Computer Aided
Geometric Design, Vol. 8, p.p. 123-142, 1991.
24.
B. Joe. Construction of Three-Dimensional
Improved-Quality Triangulations Using Local Transformations // Siam J. Sci.
Comput., vol. 16, p.p. 1292-1307, 1995.
25. R.W. Lewis, Yao
Zheng, D.T. Gethin. Three-Dimensional Unstructured Mesh Generation: Part 3.
Volume Meshes // Computer Methods In
Applied Mechanics And Engineering, Elsevier, Vol 134, p.p.285-310, 1996.
26.
A.Liu, B. Joe. On The Shape Of Tetrahedra From
Bisection // Mathematics of Computation, vol. 63, №207, 141–154, 1994.
27. S.H. Lo. Volume
Discretization into Tetrahedra-I. Verification and Orientation of Boundary
Surfaces // Computers and Structures,
Pergamon Press, Vol. 39, № 5, p.p. 493-500, 1991.
28. S.H. Lo. Volume
Discretization into Tetrahedra - II. 3D Triangulation by Advancing Front
Approach // Computers and Structures,
Pergamon, Vol. 39, № 5, p.p. 501-511, 1991.
29.
R. Lohner. Generation Of Three-Dimensional
Unstructured Grids By The Advancing Front Method //Proceedings of the 26th
AIAA Aerospace Sciences Meeting, Reno, Nevada, 1988.
30. S.J. Owen. A Survey
of Unstructured Mesh Generation Technology // Proceedings of 7th International Meshing Roundtable, p.p. 239-269,
Dearborn, MI, 1998.
31. V.N. Parthasarathy,
C.M. Graichen, A.F. Hathaway. A Comparison of Tetrahedron Quality Measures // Finite Elements in Analysis and Design,
Elsevier, №. 15, p.p. 255-261, 1993.
32.
S. Pirzadeh. Unstructured Viscous Grid Generation by
Advancing-Layers Method // AIAA-93-3453-CP, AIAA, p.p. 420-434, 1993.
33. V.T. Rajan.
Optimality of Delaunay Triangulation in // Proc. 7th ACM Symp.
Comp. Geometry, p.p. 357-363, 1991.
34. A.Rassineux.
Generation and Optimization of Tetrahedral Meshes by Advancing Front Technique
// International Journal for Numerical
Methods in Engineering, Wiley, Vol. 41, p.p. 651-674, 1998.
35.
S. Rebay. Efficient Unstructured Mesh Generation by
Means of Delaunay Triangulation and Bowyer-Watson Algorithm // Journal Of
Computational Physics, vol. 106, p.p. 125-138, 1993.
36.
M.-C. Rivara. Selective Refinement/Derefinement
Algorithms For Sequences Of Nested Triangulations // International Journal for Numerical Methods in Engineering, №28,
p.p. 2889-2906, 1998.
37.
M.-C. Rivara, C. Levin. A 3D Refinement Algorithm
Suitable For Adaptive And Multigrid Techniques // Communications in Applied Numerical Methods, № 8, p.p. 281-290,
1998.
38.
J. Ruppert. A Delaunay refinement algorithm for
quality 2-dimensional mesh generation // Journal
of Algorithms, №18, p.p. 548-585, 1995.
39.
M.S. Shephard, M.K. Georges. Three-Dimensional Mesh
Generation by Finite Octree Technique // International Journal for Numerical
Methods in Engineering, vol. 32, p.p. 709-749, 1991.
40.
M.S. Shephard, F. Guerinoni, J.E. Flaherty, R.A.
Ludwig, P.L. Baehmann. Finite octree mesh generation for automated adaptive 3D
Flow Analysis // Numerical grid
generation in computational Fluid mechanics, Miami, 1988
41.
K. Shimada, D.C. Gossard. Bubble Mesh: Automated
Triangular Meshing of Non-manifold Geometry by Sphere Packing // Proceedings of 3rd Symposium on Solid Modeling and Applications, p.p.
409-419, 1995.
42.
K. Shimada, A. Yamada, T. Itoh. Anisotropic Triangular
Meshing of Parametric Surfaces via Close Packing of Ellipsoidal Bubbles // Proceedings
of 6th International Meshing Roundtable, p.p. 375-390, 1997.
43.
D.F. Watson. Computing the Delaunay Tessellation with
Application to Voronoi Polytopes // The Computer Journal, Vol. 24(2),
p.p. 167-172, 1981.
44.
M.A. Yerry, M.S. Shephard. Three-Dimensional Mesh
Generation by Modified Octree Technique // International
Journal for Numerical Methods in Engineering, Vol. 20, p.p. 1965-1990,
1984.
45.
Галанин М.П.,
Щеглов И.А. Разработка и реализация алгоритмов трехмерной триангуляции сложных
пространственных областей: итерационные методы. Препринт ИПМ им. М.В. Келдыша
РАН, 2006, в печати.
[1] Эти элементы обычно называются клиновидными или клиньями (англ. wedge) и также могут использоваться в качестве конечных элементов