Jump to content

Уточнение Делоне

(Перенаправлено из алгоритма Руперта )

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

Второй алгоритм Чу

[ редактировать ]
Сетка, созданная с использованием текста второго алгоритма Чу.
Сетка озера Мичиган с использованием второго алгоритма Чу, реализованного в пакете Triangle .

Второй алгоритм Чу использует кусочно-линейную систему (PLS) и возвращает ограниченную триангуляцию Делоне, состоящую только из качественных треугольников, где качество определяется минимальным углом в треугольнике. Разработан Л. Полом Чу для создания сетки поверхностей, встроенных в трехмерное пространство. [ 1 ] Второй алгоритм Чу был принят в качестве генератора двумерной сетки из-за практических преимуществ перед алгоритмом Руперта в определенных случаях и является генератором сетки качества по умолчанию, реализованным в свободно доступном пакете Triangle . [ 2 ] Второй алгоритм Чу гарантированно завершает работу и создает сетки с градуировкой по размеру локальных объектов с минимальным углом примерно до 28,6 градусов. [ 3 ]

Алгоритм начинается с ограниченной триангуляции Делоне входных вершин. На каждом шаге в триангуляцию вставляется центр описанной окружности треугольника низкого качества, за одним исключением: если центр описанной окружности лежит на стороне входного сегмента, противоположной стороне треугольника низкого качества, вставляется середина сегмента. Более того, все ранее вставленные центры окружностей внутри диаметрального шара исходного сегмента (до его разделения) удаляются из триангуляции. Вставка описанного центра повторяется до тех пор, пока не исчезнут некачественные треугольники.

Алгоритм Руперта

[ редактировать ]
Входные данные алгоритма Руперта
Входной плоский прямолинейный график
Выходные данные, соответствующие триангуляции Делоне
Выходные данные, соответствующие триангуляции Делоне
Пример алгоритма Руперта

Алгоритм Руперта берет плоский прямолинейный граф (или в размерности больше двух - кусочно-линейную систему) и возвращает соответствующую триангуляцию Делоне, состоящую только из качественных треугольников. Треугольник считается некачественным, если его отношение радиуса описанной окружности к кратчайшему краю больше некоторого заданного порога. Обнаруженный Джимом Рупертом в начале 1990-х годов, [ 4 ] «Алгоритм Руперта для создания качественной двумерной сетки, возможно, является первым теоретически гарантированным алгоритмом построения сетки , который действительно удовлетворительен на практике». [ 5 ]

Мотивация

[ редактировать ]

При выполнении компьютерного моделирования, такого как вычислительная гидродинамика , каждый начинает с такой модели, как 2D-контур секции крыла. Входные данные для двумерного метода конечных элементов должны быть в виде треугольников, заполняющих все пространство, и каждый треугольник должен быть заполнен одним типом материала – в данном примере «воздухом» или «крылом». Длинные, тонкие треугольники невозможно точно смоделировать. Время моделирования обычно пропорционально количеству треугольников, поэтому желательно минимизировать количество треугольников, при этом используя достаточное количество треугольников для получения достаточно точных результатов – обычно с использованием неструктурированной сетки . Компьютер использует алгоритм Руперта (или какой-либо аналогичный алгоритм построения сетки) для преобразования многоугольной модели в треугольники, подходящие для метода конечных элементов.

Duration: 55 seconds.
Промежуточные триангуляции алгоритма Руперта

Алгоритм

[ редактировать ]

Алгоритм начинается с триангуляции Делоне входных вершин, а затем состоит из двух основных операций.

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

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

Псевдокод
function Ruppert(points, segments, threshold) is
    T := DelaunayTriangulation(points)
    Q := the set of encroached segments and poor quality triangles

    while Q is not empty:                 // The main loop
        if Q contains a segment s:
            insert the midpoint of s into T
        else Q contains poor quality triangle t:
            if the circumcenter of t encroaches a segment s:
                add s to Q;
            else:
                insert the circumcenter of t into T
            end if
        end if
        update Q
    end while

    return T
end Ruppert.

Практическое использование

[ редактировать ]

Без модификации алгоритм Руперта гарантированно завершит работу и сгенерирует качественную сетку для неострых входных сигналов и любого порога низкого качества менее 20,7 градусов. Чтобы ослабить эти ограничения, были внесены различные небольшие улучшения. Ослабив требования к качеству вблизи малых входных углов, алгоритм можно расширить для обработки любого прямолинейного входного сигнала. [ 6 ] Кривые входные данные также можно создать сетку, используя аналогичные методы. [ 7 ] Алгоритм Руперта может быть естественным образом расширен до трехмерности, однако его гарантии вывода несколько слабее из-за тетраэдра ленточного типа.

Расширение алгоритма Руперта в двух измерениях реализовано в свободно доступном пакете Triangle . Два варианта алгоритма Руперта в этом пакете гарантированно завершаются при пороге низкого качества около 26,5 градусов. [ 8 ] На практике эти алгоритмы успешны для некачественных порогов более 30 градусов. Однако известны примеры, приводящие к сбою алгоритма при пороге больше 29,06 градуса. [ 9 ]

См. также

[ редактировать ]
  1. ^ Чу, Л. Пол (1993). «Гарантированное качество создания сетки для криволинейных поверхностей». Материалы девятого ежегодного симпозиума по вычислительной геометрии . стр. 274–280.
  2. ^ Шевчук, Джонатан (2002). «Алгоритмы уточнения Делоне для построения треугольной сетки» . Вычислительная геометрия: теория и приложения . 22 (1–3): 21–74. дои : 10.1016/s0925-7721(01)00047-5 .
  3. ^ Рэнд, Александр (2011). «Где и как работает второй алгоритм уточнения Делоне Чу» (PDF) . Материалы 23-й канадской конференции по вычислительной геометрии . стр. 157–162.
  4. ^ Руперт, Джим (1995). «Алгоритм уточнения Делоне для создания качественной двумерной сетки». Журнал алгоритмов . 18 (3): 548–585. дои : 10.1006/jagm.1995.1021 .
  5. ^ Шевчук, Джонатан (12 августа 1996 г.). «Алгоритм уточнения Делоне Руперта» . Проверено 28 декабря 2018 г.
  6. ^ Миллер, Гэри; Пав, Стивен; Уокингтон, Ноэль (2005). «Когда и почему работают алгоритмы уточнения Делоне». Международный журнал вычислительной геометрии и приложений . 15 (1): 25–54. дои : 10.1142/S0218195905001592 .
  7. ^ Пав, Стивен; Уокингтон, Ноэль (2005). Уточнение Делоне за счет обрезки углов . Материалы 14-го Международного круглого стола по сетке. стр. 165–181.
  8. ^ Шевчук, Джонатан (2002). «Алгоритмы уточнения Делоне для построения треугольной сетки» . Вычислительная геометрия: теория и приложения . 22 (1–3): 21–74. дои : 10.1016/s0925-7721(01)00047-5 .
  9. ^ Рэнд, Александр (2011). «Улучшенные примеры незавершения алгоритма Руперта». arXiv : 1103.3903 [ cs.CG ]. .

Дальнейшее чтение

[ редактировать ]
Arc.Ask3.Ru: конец переведенного документа.
Arc.Ask3.Ru
Номер скриншота №: a83e0e66a6dc9857b634a9898f122e3c__1684952100
URL1:https://arc.ask3.ru/arc/aa/a8/3c/a83e0e66a6dc9857b634a9898f122e3c.html
Заголовок, (Title) документа по адресу, URL1:
Delaunay refinement - Wikipedia
Данный printscreen веб страницы (снимок веб страницы, скриншот веб страницы), визуально-программная копия документа расположенного по адресу URL1 и сохраненная в файл, имеет: квалифицированную, усовершенствованную (подтверждены: метки времени, валидность сертификата), открепленную ЭЦП (приложена к данному файлу), что может быть использовано для подтверждения содержания и факта существования документа в этот момент времени. Права на данный скриншот принадлежат администрации Ask3.ru, использование в качестве доказательства только с письменного разрешения правообладателя скриншота. Администрация Ask3.ru не несет ответственности за информацию размещенную на данном скриншоте. Права на прочие зарегистрированные элементы любого права, изображенные на снимках принадлежат их владельцам. Качество перевода предоставляется как есть. Любые претензии, иски не могут быть предъявлены. Если вы не согласны с любым пунктом перечисленным выше, вы не можете использовать данный сайт и информация размещенную на нем (сайте/странице), немедленно покиньте данный сайт. В случае нарушения любого пункта перечисленного выше, штраф 55! (Пятьдесят пять факториал, Денежную единицу (имеющую самостоятельную стоимость) можете выбрать самостоятельно, выплаичвается товарами в течение 7 дней с момента нарушения.)