Перейти к статье

 

Масштабирование нескольких элементов в гексаэдральной сетке

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

Методы уточнения на основе emplate заменяют каждый элемент в сетке шаблоном 2x2x2 гексаэдров, что приводит к увеличению количества элементов в 8 раз. Напротив, масштабирование сетки разбивает сетку на локально структурированные и развернутые подблоки, часто называемые блочная декомпозиция. Блоки в разложениях охватывают границы элементов, останавливаясь только в особых точках сетки без протяжки (т. е. не 4-валентных узлах и ребрах), и геометрические, граничные условия и ограничения нагрузки на сетку. Масштабирование сетки затем перестраивает всю модель в соответствии с блоками в разложении, используя исходную сетку как функцию размера, умноженную на коэффициент масштабирования.

Масштабирование сетки позволяет строить серию сеток, каждая из которых содержит аналогичную структуру сетки, которую можно использовать для проверки решения. Например, если входная сетка имеет 10 000 гексаэдров, масштабирование с множителем 2,0 приведет к созданию сетки с приблизительно 20 000 гексаэдров, которая также имеет такую же ориентацию элементов и приблизительные градации размеров элементов, что и исходная сетка. Дополнительные сетки могут быть построены путем повторного масштабирования исходной сетки с множителями 4, 6, 8 и т. д. Для создания серии сеток. Затем эту серию сеток можно использовать для исследования сходимости решения при гораздо меньших вычислительных затратах, чем при использовании традиционного глобального уточнения.

Синтаксис для масштабирования сетки в CAE Fidesys:

scale mesh [multiplier <double>] [minimum <int>] [{SWEPT_BLOCKS|structured_blocks}] [feature_angle <value>] [force_structured in {[volume <ids>] [surface <ids>]}]

Командную панель графического интерфейса для этой команды можно найти в разделе Сетка /Объемная / Улучшить /Масштабирование.

 

Параметр Значение множителя указывает целевое количество шестигранных элементов, которые должны быть в сетке после масштабирования сетки. Если не указан, значение множителя по умолчанию равно 2,0. Расположение новых узлов на границе сетки, созданной во время масштабирования, будет спроектировано так, чтобы лежать на связанной геометрии САПР. Например, на рисунке 1 показана сетка всего гексаэдра, связанная с моделью САПР с 3025 гексаэдральными элементами. На рисунке 2 показана сетка после масштабирования с множителем 2,0, в результате чего получается 6804 гексаэдральных элемента. Обратите внимание, что команда Scale Mesh пытается максимально точно сопоставить запрошенный множитель, но нет гарантии, что он будет точно соответствовать ему.

Рис. 1 - Входная сетка для масштабирования сетки. Сетка содержит 3025 гексаэдральных элементов

Рис. 2 - Сетка с рисунка 1, масштабированная с помощью команды «Scale Mesh Multi 2». Результирующая сетка содержит 6804 гексаэдральных элемента.

 

Масштабирование сетки разделяет сетку на декомпозицию блоков, состоящую из блоков «Структурированный» или «Протяжка». Структурированный блок - это локально структурированная сетка MxNxO. Масштабирование сетки увеличивает или уменьшает M, N и O на небольшую величину для выполнения масштабирования, пока не будет достигнут желаемый множитель. Например, структурированный блок, который изначально имеет размер 3x4x10, может масштабироваться до 4x5x12, распределяя уточнение по всем трем направлениям.

Блоки протяжки - это локальные протяжки от одного источника к одной цели с источником с четырехугольными элементами, которые охватывают любое количество слоев, образующих гексаэдральные элементы по пути. Каждый четырехугольник в источнике образует столбец или стопку гексаэдральных элементов вдоль развертки. Масштабирование сетки заменяет исходную поверхность новой четырехугольной сеткой, используя функцию изменения размера, полученную из исходной сетки на источнике, умноженной на масштабный коэффициент. Затем новая сетка на источнике перемещается по новому количеству слоев, которое представляет собой старое количество слоев, умноженное на коэффициент масштабирования.

Пользователи могут контролировать, какие типы блоков создаются при декомпозиции блоков, используя параметры swept_blocks или structured_blocks. Если указано swept_blocks, при декомпозиции блоков блоки протяжкой будут помещены в области, где можно идентифицировать развертки, а структурированные блоки - повсюду. Если указано structured_blocks, везде будут добавляться структурированные блоки. В общем, использование swept_blocks даст вам более плавное, более равномерно распределенное уточнение по сравнению с использованием structured_blocks. Это связано с тем, что указание swept_blocks обычно приводит к значительному сокращению количества блоков в разложении. При большем количестве блоков в разложении запрошенный масштабный коэффициент часто достигается до того, как все блоки получат какое-либо уточнение, особенно для меньших масштабных коэффициентов. Это приводит к тому, что участки сетки не претерпевают изменений. Напротив, с swept_blocks, как правило, в разложении значительно меньше блоков, что увеличивает вероятность того, что все блоки получат хотя бы некоторое уточнение. Однако использование structured_blocks приведет к созданию сетки с ориентацией элементов, более близкой к исходной. Это связано с тем, что структурированные блоки обязаны поддерживать любую особенность сетки  (то есть внутреннюю кромку сетки с чем-то другим, кроме 4 прикрепленных гексаэдров). Указание swept_blocks не поддерживает все особенности сетки, скорее они включаются в блоки развертки, и размывание исходной поверхности может привести к другому набору особенностей сетки.

Если ничего не указано, создание блоков протяжкой выполняется по умолчанию.

В некоторых случаях пользователь может захотеть включить swept_blocks для некоторых частей модели и выключить их для других частей модели. Если исходная сетка была построена с особой тщательностью, уделяемой построению структурированной сетки в нескольких небольших областях, включение swept_blocks может разрушить тщательно добавленную структуру, заменив ее сеткой pave-and-swept. Этого можно избежать, используя параметр force_structured. Например, на рисунке 3 показана сетка с двумя выделенными поверхностями. Поверхность 34 была разбита на элементы при помощи схемы "Замощение". Напротив, поверхность 108 была создана с большой осторожностью со стороны пользователя, чтобы обеспечить очень структурированную сетку вокруг отверстий. Однако сетка на поверхности 108 действительно имеет некоторые неровности сетки, а структура смежных шестигранных элементов представляет собой сетку по траектории. Следовательно, по умолчанию Mesh Scaling обнаруживает это как развернутый блок. На рисунке 4 показана сетка, которую вы получите с помощью команды "scale mesh multi 2". Обратите внимание, что тщательно сконструированная структурированная сетка вокруг отверстий была заменена стандартной сеткой. На рисунке 5 показана сетка с рисунка 3 в масштабе с использованием опции force_structured. В этом случае был задан параметр "scale mesh multi 2 force_structured in surface 108", позволяющий масштабировать сетку на поверхности 34 с помощью новой  сетки со схемой "Замощение", в то же время позволяя использовать структурированные блоки вблизи поверхности 108. При желании мы также могли бы использовать команду: scale mesh multi 2 force_structured в объеме 1, хотя это приведет к сохранению всех нерегулярных узлов как на поверхности 108, так и на 34, что приведет к большему количеству блоков и, следовательно, к менее гладкому результату.

 

Рис. 3 - Входная сетка для масштабирования сетки. Поверхность 108 содержит структурированную сетку. Поверхность 34 содержит сетку со схемой "Замощение".

Рис. 4 - Сетка с Рис. 3, масштабированная с помощью команды «Scale Mesh Multi 2». Структурированная сетка на поверхности 108 заменяется сеткой со схемой "Замощение.

Рис. 5 - Сетка с Рис. 3, масштабированная с помощью команды «Scale Mesh Multi 2 force_structured in Surface 108». Структурированная сетка на поверхности 108 сохраняется, в то время как остальная часть объема масштабируется с помощью протянутых блоков.

 

Параметр minimum обеспечивает дополнительное управление, позволяя пользователю указать минимальное количество интервалов, добавляемых на кривые при декомпозиции блока. Множитель, предоставленный в команде mesh_scale, служит целевым показателем количества элементов в выходной сетке. Масштабирование сетки выводит сетку с приблизительным множителем * n, где n - количество элементов во входной сетке. В зависимости от структуры сетки, для низких множителей и если указано минимальное значение = 0, нет гарантии, что каждый блок в разложении будет уточнен во всех трех направлениях. Это связано с тем, что целевое количество элементов могло быть достигнуто до того, как каждый блок в разложении будет уточнен во всех трех направлениях, что приведет к неравномерно распределенному уточнению, описанному выше. Чтобы гарантировать, что каждый блок будет уточняться во всех трех направлениях, можно использовать минимальный параметр. Указание минимума 1 (по умолчанию) гарантирует, что по крайней мере один интервал элемента будет добавлен к каждому блоку элементов во всех трех направлениях, что гарантирует, что весь домен сетки будет масштабирован хотя бы немного. Неравномерное распределение уточнения также является результатом, если tructured_blocks указан, когда у вас есть смежные структурированные блоки, которые имеют существенно разные размеры. Например, если вы получаете два смежных структурированных блока в разложении, где первый блок имеет размер 1x10x12, который непосредственно примыкает ко второму блоку, который изначально имеет размер 6x10x12, mesh Scaling может изменить структуру блоков как 2x11x13 и 7x11x13, что является минимальным уточнением, которое можно сделать, обеспечивая некоторую доработку везде. Однако это приводит к неравномерному измельчению сетки.

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

(2X, 1) (4X, 2) (8X, 3) (16X, 4), etc.

где каждый множитель вдвое больше предыдущего множителя, а увеличение минимального  интервала на 1 больше, чем указанное ранее. Однако следует проявлять осторожность, чтобы не быть слишком "агрессивными" с параметрами минимального интервала. Например, ряд параметров:

(2X, 1) (3X, 2) (4X, 3) (5X, 4) (6X, 5) (7X, 6) (8X, 7) etc.

был бы слишком "агрессивным", учитывая, что множитель увеличивается очень медленно, в то время как минимальный интервал увеличивается быстро. Это приведет к тому, что мешер при разбиении поверхности схемой "Замощение" будет вынужден создавать очень большие переходы в размерах элементов, что часто приводит к низкому качеству элементов или отказу при создании сетки. Если вы должны использовать эти множители, то рекомендуется менее агрессивный минимальный ряд, например:

(2X, 1) (3X, 1) (4X, 2) (5X, 2) (6X, 2) (7X, 2) (8X, 3) etc.

Для достижения наилучших результатов никогда не масштабируйте ранее масштабированную сетку. Лучше сгенерировать все сетки в серии, масштабируя исходную сетку с использованием разных множителей.

Увеличения можно добиться, задав множитель меньше 1. Например, множитель 0,9 попытается уменьшить количество элементов на 10%. Однако укрупнение ограничивается неровностями сетки и ограничениями геометрии, граничных условиий и  нагружений. Таким образом, огрубление будет возможно только до того момента, когда эти ограничения все еще могут быть выполнены.