Автор(-ы):
Федоров Игорь Андреевич
21 февраля 2024
Научный руководитель
Богданов Илья Олегович
Секция
Технические науки
Ключевые слова
Аннотация статьи
В статье рассмотрен метод Sweep (метод заметания) для генерации гексаэдрических сеток в трёхмерном пространстве. Целью исследования является изучение метода, изучение ограничений, накладываемых на фигуры, необходимые для успешной работы метода генерации, описание преимуществ и недостатков рассматриваемого метода. Предложен алгоритм данного метода в случае 1-to-1 заметания. Приведены результаты работы реализации алгоритма на языке программирования С++.
Текст статьи
В инженерном проектировании широко применяются различные математические пакеты и программные инструменты, позволяющие оценить качество конструкций на каждом этапе разработки. Такие инструменты позволяют анализировать динамику поведения проектируемого объекта и его кинематику, определять распределение температур и напряжений в механических составляющих. Эти задачи решаются с помощью средств анализа методом конечных элементов, в ходе которого происходит аппроксимация исследуемой области и деление ее на ячейки сетки для нахождения неизвестных величин [1, с. 65].
Целями данного исследования были изучение и описание алгоритма метода Sweep генерации гексаэдрических сеток для трехмерных B-rep моделей, а также реализация изученного метода на языке программирования C++.
Сетка конечных элементов – это разбиение заданной области на подобласти, которые называются элементами, так, чтобы каждая точка области находилась в одном из элементов. Вся область должна быть покрыта элементами без перекрытия, также должны выполняться условия совместимости между конечными элементами на границе.
На подобные сетки наложены такие ограничения, как отсутствие слишком больших углов (близких к 180 о), отсутствие слишком малых углов и ограничение размера конечных элементов (если по всей сетке используются элементы одинакового размера, необходимо выбрать достаточно малый размер, чтобы гарантировать достаточную точность в наиболее требовательной части области и при этом не повлечь за собой чрезмерно большие вычислительные требования).
Метод Sweep (метод заметания) – метод построения сеток конечных элементов, который позволяет строить расчетную сетку на основе призматических элементов с помощью операции протягивания элементов одного слоя вдоль некоторой оси. Данный метод может быть использован только для определенного класса геометрических моделей, полученных как тела вращения/протягивания.
Для построения сетки методом протягивания сеточных элементов геометрическая модель должна содержать поверхность-источник, элементы которой будут протягиваться вдоль некоторой оси в направлении поверхности-приемника. Данные поверхности изображены на рисунке 1.
Рис. 1. Генерация гексаэдрической сетки методом Sweep
В результате работы метода получается структурированная или полуструктурированная сетка, состоящая из призм или гексаэдров.
Алгоритм методы Sweep в случае 1-to-1 заметания можно представить следующим образом:
Промежуточные шаги можно увидеть на рисунке 2.
Рис. 2. Промежуточные шаги метода Sweep
Для генерации плоской сетки на поверхности-источнике можно воспользоваться методом трансфинитного отображения, либо методом Sweep для плоских фигур. Данные методы подробны описаны в [2, с. 81-83].
Для генерации внутренних узлов сетки необходимо переносить сетку, сгенерированную на поверхности-источнике, с помощью аффинных преобразований переноса на вектор и поворота. Более строго:
(1)
где nk,i – набор внутренних узлов (первый индекс отвечает за номер точки в слое, второй индекс – за номер слоя);
Ti – матрица 4х4, композиция перемещения и поворота для заданной точки;
N – заданное количество слоев.
Вид и способ составления матрицы преобразования описаны в [5, с. 18-23].
У метода Sweep для генерации гексаэдрических сеток для трёхмерных B-rep моделей есть ряд основных преимущества, которые проявляются вне зависимости от поставленной задачи:
К недостаткам метода Sweep можно отнести:
В ходе выполнения работы был реализован данный метод на языке C++ с использованием библиотеки Rhino 3D. На рисунках 3–5 можно увидеть результат работы программы на различных телах. Визуализация сетки выполнена в программном комплексе Ansys.
Рис. 3. Пример работы алгоритма
Рис. 4. Пример работы алгоритма
Рис. 5. Пример работы алгоритма
В результате проделанной работы был изучен метод Sweep (заметания) для генерации гексаэдрических сеток в трехмерном пространстве, изучены преимущества и недостатки метода, а также метод был реализован на языке программирования C++.
Список литературы
Поделиться
Федоров И. А. Генерация гексаэдрических сеток методом Sweep // Актуальные исследования. 2024. №8 (190). Ч.I.С. 37-40. URL: https://apni.ru/article/8535-generatsiya-geksaedricheskikh-setok-metodom