Улучшенные возможности построения сетки на основе тетраэдральных элементов

Björn Bretz 27/09/2016
Share this on Facebook Share this on Twitter Share this on Google+ Share this on LinkedIn

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

Требования к Генератору сеток

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

Каждая операция построения сетки в COMSOL Multiphysics создаёт сетку, соответствующую определённой геометрии. Генератор тетраэдральной сетки – алгоритм, лежащий в основе узла Free Tetrahedral (Свободная сетка на тетраэдрах) в дереве модели, — это единственный полностью автоматический генератор сетки в 3D, который, к тому же, может быть применён к любой геометрии. Кроме того, за счет создания неструктурированной сетки (сетки с неравномерной связью), он хорошо подходит для сложной геометрии с доменами различной формы и размера. Генератор сеток должен быть очень гибким, так как тетраэдральная сетка в COMSOL Multiphysics используется для различных физик, включая мультифизические задачи. В общем случае он должен позволять строить очень мелкую и подробную сетку, очень крупную сетку, сетку с высоким разрешением на криволинейных границах, сетку с анизотропными элементами в узких областях и т.п.

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

Благодаря последним обновлениям в COMSOL Multiphysics вы теперь можете улучшить качество тетраэдральной сетки и тем самым повысить надёжность результатов. Давайте теперь подробно разберём алгоритм создания тетраэдральной сетки.

Построение сетки на основе тетраэдров в COMSOL Multiphysics®

Большинство генераторов тетраэдральных сеток относятся к одному из трёх видов:

  • Генераторы на основе метода движущегося фронта (Advancing front), которые последовательно заполняют область тетраэдральными элементами, начиная с границы геометрии.
  • Генераторы на основе восьмеричного разбиения (Octree-based), которые сначала разбивают область на октанты, а затем каждый из них дробится на тетраэдры.
  • Генераторы на основе алгоритмов Делоне (Delaunay-based), которые обеспечивают тетраэдрализацию Делоне в конкретной области и имеют ряд важных математических свойств.

Генератор тетраэдральной сетки в COMSOL Multiphysics — это генератор последнего типа на основе алгоритмов Делоне. В следствие этого, процесс построения тетраэдральной сетки можно разделить на пять основных шагов, описание которых приводится ниже. В новых версиях COMSOL Multiphysics начиная с 5.2a третий и пятый шаги были значительно улучшены. Давайте разберем все эти шаги на учебном примере с геометрией поршня, для которой генерируется с достаточно грубой (very coarse) в плане размера сетка (данный пример доступен в Библиотеке приложений в разделе Meshing).

piston geometry Улучшенные возможности построения сетки на основе тетраэдральных элементов
Геометрия учебной модели поршня.

1. Создание сетки на границе (Boundary Mesh)

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

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

piston boundary mesh Улучшенные возможности построения сетки на основе тетраэдральных элементов
Граничная сетка для учебной модели поршня. Размер элементов — Extremely Coarse (Очень крупный).

2. Создание тетраэдрализации по алгоритмам Делоне (Delaunay Tetrahedralization) на основе узловых точек граничной сетки

На втором этапе создаётся тетраэдрализация Делоне на основе узловых точек граничной сетки, в результате чего получается так называемая выпуклая оболочка множества данных точек. Получившееся множество имеет некоторые интересные математические свойства. К примеру, ни одна его точка не находится внутри описанной вокруг любого из тетраэдров сферы. В 2D триангуляция Делоне множества точек максимизирует минимальный из всех возможных углов треугольника в разбиении, однако это свойство не применимо к 3D геометрии. На данном этапе нет никакой гарантии, что рёбра и треугольные элементы граничной сетки существуют в качестве рёбер и треугольников тетраэдрализации Делоне, даже для изначально выпуклого граничного разбиения. Мы "займемся" этим на следующем этапе.

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

3. Согласование тетраэдрализации Делоне и граничной сетки

На предыдущих двух шагах мы создали граничную сетку и тетраэдрализацию Делоне на основе ее узловых точек. На третьем этапы мы "принудительно" включим в тетраэдрализацию рёбра и треугольники граничной сетки. Данная операция является самой ресурсоёмкой и трудной частью всего процесса построения сетки.

В одном из обновлений выпущенных в 2015 году, мы добавили в генератор совершенно новый алгоритм для реализации этого шага. В версии 5.2a COMSOL Multiphysics он был существенно улучшен. В более ранних версиях при построении сетки для сложной геометрии вы могли получать следующие ошибки: "failed to respect boundary element edge on geometry face" (Ошибка обработки граничного ребра элемента на границе геометрии) или "internal error in boundary respecting" (Внутренняя ошибка при обработке границ). Такие ошибки возникали именно на этом шаге построения сетки. Благодаря улучшениям релиза 5.2a, стало возможным безопасное удаление всех тетраэдров, расположенных за пределами ("поверх") границы после проведения "принудительного" включения в тетраэдрализацию рёбер и треугольников граничной сетки, при этом учитываются и обрабатываются все тетраэдры, пересекающие треугольники граничной сетки.

respecting mesh COMSOL Multiphysics Улучшенные возможности построения сетки на основе тетраэдральных элементов
Слева вверху серым показана построенная граничная сетка, а синим — тетраэдрализация Делоне на основе её узловых точек. Справа снизу на выноске показано небольшая часть из нескольких сотен тетраэдров, пересекающих рёбра и треугольники граничной сетки. На этом этапе тетраэдрализация была модифицирована таким образом, чтобы ни один тетраэдр не пересекал граничную сетку. При этом могут быть добавлены некоторые точки (так называемые точки Штайнера/Steiner points) для получения тетраэдрализации, совпадающей с границами (Boundary Conforming Tetrahedralization).

4. Детализация и измельчение тетраэдрализации, совпадающей с границами (Boundary Conforming Tetrahedralization) путём добавления внутренных точек

Теперь, у нас есть тетраэдрализация для всей геометрии, внешняя граница которой соответствует граничной сетке, построенной на первом шаге, но при этом тетраэдрализация всё ещё не содержит никаких внутренних точек (кроме точек Штайнера, которые могли быть добавлены на предыдущем шаге). Следующий этап — детализация и измельчение тетраэдрализации путём добавления внутренних точек до тех пор, пока по всему объему элементы не станут соответствовать заданным размерам. Такие точки легко добавлять, используя схему измельчения Делоне (Delaunay refinement). Однако при этом потребуется особая доработка, так как на этом этапе тетраэдрализация не везде удовлетворяет свойствам Делоне.

refining tetrahedralization Улучшенные возможности построения сетки на основе тетраэдральных элементов
Слева сверху изображена внутренняя часть (ей срез) тетраэдрализации после третьего этапа, содержащей лишь несколько внутренних точек. Снизу изображена тот же срез только после четвёртого этапа построения. Тетраэдрализация в этом случае соответствует всем заданным для генератора критериям для размеров конечных элементов внутри доменов.

5. Улучшение качества детализированной тетраэдрализации

Мы уже практически закончили генерацию сетки. Но прежде чем "показывать" полученную сетку пользователю, нам нужно улучшить качество тетраэдров. Качество каждого элемента варьируется в диапазоне от 0 до 1. Правильный тетраэдр имеет значение 1, а абсолютно плоский (максимально "расплющенный" и вытянутый) — 0. В версии 5.2a COMSOL Multiphysics появился новый алгоритм, который дополнительно улучшает качество сетки. В этот алгоритм встроена функция предотвращения появления инвертированных криволинейных элементов, а также настройки, которые позволяют избегать создание слишком больших элементов.

На данном этапе проводится улучшение качества наихудших элементов, так как от него в большой степени зависит общее качество сетки. Новый алгоритм имеет расширенный функционал по улучшению качества сетки, как-то: функции перестроения точек (так называемое сглаживание) и операции топологической модификации, включая замену границ и поверхностей, свёртывание граней и добавление вершин. Многократное применение этих операций позволяет достигать бесконечного количества уникальных тетраэдрализаций для области, ограниченной граничной сеткой. Данный факт означает, что всегда можно будет построить сетку лучше, чем прежде. Однако для заданной тетраэдрализации, в которой плохое качество элементов не может быть изменено путём сглаживания, не всегда очевидно, какую из вышеперечисленных топологических операций применять. Иногда необходимо применить сразу несколько таких операций, чтобы добиться нужного результата. К примеру, добавление вершин с последующим отражением граней и сглаживанием.

В алгоритм включены три уровня оптимизации: Базовый (Basic), Средний (Medium) и Высокий (High). Каждый из данных уровней подразумевает определённое количество затраченных ресурсов на оптимизационный процесс. Например, если выбрать Базовый уровень построения сетки (который установлен по умолчанию), то при расчёте могут возникать ошибки сходимости или снижение точности результатов ввиду очень грубой сетки. В этом случае вы можете перестроить сетку с улучшенным уровнем оптимизации, чтобы добиться лучшей сходимости и корректных результатов.

quality optimization levels Улучшенные возможности построения сетки на основе тетраэдральных элементов
В настройках узла Free Tetrahedral доступны три уровня оптимизации для улучшения качества сетки (Базовый, Средний и Высокий), определяющие затрачиваемые на этот процесс ресурсы.

qual levels COMSOL Multiphysics mesh Улучшенные возможности построения сетки на основе тетраэдральных элементов
На рисунке показаны внутренние части тетраэдрализации (ее срезы) и выделены самые некачественные элементы при различном уровне оптимизации: сетка без какой-либо оптимизации (слева сверху), с базовым уровнем оптимизации (посередине) и с высоким уровнем оптимизации (справа снизу). Красным цветом выделены тетраэдры с качеством меньше 0.1, а жёлтым — со значением от 0.1 до 0.25. Серые треугольники соответствуют элементам, примыкающим к граничной сетке.

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

accept lower element quality Улучшенные возможности построения сетки на основе тетраэдральных элементов
Если в вашей модели есть скругления или другие изогнутые области с относительно грубой сеткой и при этом вы используете дискретизацию выше первого порядка, то можно поставить флажок напротив опции Avoid inverted curved elements (Избегать инвертированных криволинейных элементов). Таким образом, алгоритм минимизирует количество конечных элементов, которые становятся инвертированными при построении сетки на скруглении. Если же результаты расчёта сильно зависят от размера больших конечных элементов, можно поставить флажок напротив Avoid too large elements (Избегать слишком больших элементов), что позволит избежать генерации тетраэдров с размерами, которые больше заданных изначально.

Улучшение генератора конечно-элементной тетраэдральной сетки для соответствия требованиям клиентов

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

Узнайте больше о возможностях построения сетки в COMSOL Multiphysics®


Загрузка комментариев...

Темы публикаций


Теги