Гексаэдры там, где решается точность, тетраэдры во всём остальном
Структурированные блоки гексаэдров вокруг отверстий, галтелей и валов, состыкованные с окружающей тетраэдральной сеткой через уравнения связи. И строятся они временным вычитанием из CAD-тела, а не сдвигом узлов готовой сетки.
Тетраэдрами разбивается что угодно — за это их и выдаёт любой автоматический построитель сетки. Они же худший элемент на изгиб: тетраэдры первого порядка страдают сдвиговым запиранием и дают завышенную жёсткость, а неструктурированная сетка приближает криволинейную кромку фасетами, и на них появляются пики напряжений, относящиеся к сетке, а не к детали. Обычное лекарство — измельчить везде; так модель и дорастает до миллиона степеней свободы, после чего перестаёт считаться за разумное время.
Другой путь — поставить структурированные гексаэдры ровно там, где велик градиент напряжений, а всё остальное оставить тетраэдрам.
Пять генераторов
Генераторов теперь пять, и каждый рассчитан на форму, которая действительно встречается в машиностроительных деталях. Блок — для параллелепипедов и шпоночных пазов. Кольцевая зона вокруг отверстия — с радиальным сгущением по закону 1/r², как убывает возмущение напряжений от отверстия. Цилиндр по схеме O-grid — для бобышек и пальцев: он собран из центрального блока и четырёх секторов, поэтому на оси не возникает вырожденных элементов. Лента вдоль пространственной галтели — она ведётся вдоль осевой линии скругления. И тороидальная зона для перехода цилиндра в плоскость, замкнутая на все 360 градусов без задвоенных узлов.
Все пять строят элементы и первого, и второго порядка. У двадцатиузловых гексаэдров срединные узлы аналитически ложатся на настоящую криволинейную границу — на дугу цилиндра, на радиус галтели, на поверхность тора, — а не остаются посередине хорды. Тесты проверяют, что у каждого элемента якобиан строго положителен, а объём сходится к аналитическому.
Резать CAD, а не двигать узлы
Первая попытка была очевидной: разбить деталь тетраэдрами целиком, удалить элементы внутри радиуса зоны, а оставшиеся узлы сдвинуть точно на радиус. Получились вывернутые элементы и видимые разрывы. В неструктурированной сетке граничные узлы принадлежат заодно и крупным наружным тетраэдрам, поэтому сдвинуть их, не перестроив соседей, невозможно.
Работает другой подход — вырезать место под зону из самого тела. Перед построением сетки из CAD-тела вычитается инструмент нужной формы: цилиндр, сфера, параллелепипед или кольцо. Остаток выгружается в STEP, и автоматический построитель заполняет его тетраэдрами уже по гладкой аналитической поверхности выреза. Структурированный блок гексаэдров строится отдельно и встаёт на освободившееся место. Исходная модель пользователя при этом не меняется: это временное разбиение только ради сетки, и стоит оно примерно 50–300 мс булевых операций при выгрузке.
Как стыкуются две сетки
Гексаэдральная зона и окружающие тетраэдры не имеют общих узлов, поэтому связываются уравнениями связи: перемещение каждого подчинённого узла выражается через взвешенную сумму перемещений узлов главной грани, а система перед факторизацией соответственно сокращается. На той же механике держатся контакты между отдельными телами сборки.
На реальной сборке это выглядит так: 88 тел, 3 410 гексаэдров второго порядка, 1 106 контактных пар, которые дают 3 318 уравнений связи, и 74 262 степени свободы после сокращения системы. В десктопной сборке такой расчёт занимает около трёх секунд, а невязка по связям равна нулю.
- Тел
- 88
- Уравнений связи
- 3 318
- Степеней свободы после сокращения
- 74 262
- Сборка системы и сокращение
- ~0,95 с
- Факторизация и решение
- ~2,1 с
- Невязка по связям
- 0
Поиск концентраторов
Отдельный инструмент умеет находить в модели цилиндрические отверстия, галтели и сферические выемки и предлагать под них гексаэдральные зоны — из ленты или через скриптовый интерфейс. Это подсказка, а не готовое решение: радиус зоны и число слоёв по-прежнему выбираете вы.
Честные оговорки
Зоны не должны пересекаться. Если радиусы двух зон перекрываются, из тела вырежется их объединение, а генераторы всё равно построят налезающие друг на друга элементы. Зона не должна выходить за габарит детали. Тороидальная зона строится корректно и проходит проверку якобиана, но передача её стыковочных граней в решатель связей пока не доведена, а режущий инструмент имеет прямоугольное сечение вместо настоящего профиля галтели — из-за этого срезаются мелкие углы на переходе к плоскости.
И ещё: у нас пока нет замеренного сравнения гексаэдров с тетраэдрами на одной и той же детали. Доводы в пользу этих элементов сейчас опираются на теорию и на качество построенной сетки, а не на число, которое можно показать. Следующий шаг — сверка коэффициентов концентрации напряжений со справочными данными Петерсона; опубликуем, когда она будет сделана.