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

 

Соответствие интервалов

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

При построении сетки для поверхности или объема соответствие интервалов обеспечивается автоматически. В некоторых случаях проверка и обеспечение соответствия должны выполняться вручную, например при построении сетки для набора объемов или набора поверхностей, не принадлежащих одному объему. Проверка и обеспечение соответствия интервалов применимы также для контроля совместимости заданных интервалов и схемы построения сетки.

Для проверки соответствия интервалов вручную используется команда:

match intervals {surface | volume | body | group} <range>

При обеспечении глобального соответствия алгоритм присваивает интервалам значения, наиболее близкие к заданным пользователем. Целью является минимизировать изменения заданных интервалов для всех геометрических объектов. Изменения возможны только на кривых с указателем возможности управления интервалами, имеющим значение soft или default.

Пользователь может добавить дополнительные ограничения с целью локального улучшения качества сетки, в частности, задать для кривых одинаковые интервалы с помощью команды:

curve <range> interval {same | different}

Задание одинаковых интервалов приводит к сохранению кривых в качестве определенного набора. В существующий набор можно добавлять другие кривые, а разные наборы могут быть подвергнуты слиянию посредством соответствующих команд. Текущее содержимое обрабатываемых наборов кривых отображается после каждой команды. Кривая может быть удалена из набора при использовании в приведенной выше команде параметра different.

Алгоритм обеспечения соответствия интервалов пытается найти наилучшее решение (возможно, единственное) из множества доступных решений. Однако, если у большинства кривых указатель возможности управления интервалами имеет значение hard или они уже разбиты на элементы, то решения может и не быть. Чтобы повысить шансы на нахождение решения, предполагается, что там, где это возможно, для кривых установлен указатель soft. Однако решения может не существовать и в этом случае - из-за того, например, что локальным образом выбранные углы и стороны поверхностей, разбиваемых по схеме Регулярная сетка, оказываются связанными глобально для смежных поверхностей. Если решения не существует, установить причину этого помогает команда:

match intervals {surface | volume | body | group} <range> [seed curve <range>] [assign groups [only | infeasible]] [map | pave]

Параметр assign groups позволяет создавать группы для независимых подзадач в составе глобальной задачи. При использовании опции assign groups only независимые подзадачи только группируются, но не делается попытки их решения. Опция assign groups infeasible позволяет сгруппировать независимые неразрешимые подзадачи в специально поименованные группы. Благодаря этому при отображении геометрического объекта с сеткой можно выделить нерационально выбранные углы и проблемные участки поверхностных сеток. В случае использования параметров map или pave рассматриваются только подзадачи с ограничениями, действующими при построении сеток по схемам Регулярная сетка или Неструктурированная сетка. При задании параметра seed curve рассматриваются только подзадачи, включающие кривые.

Продвинутые пользователи могут использовать настройки, изменяющие интервалы в некоторых пределах, используя команды:

set match intervals rounding {on | off}

set match intervals fast {on | off}

set match intervals delta <val>

Если для параметра rounding задано значение on, то число интервалов округляется до ближайшего целого. При задании off число интервалов округляется до значения, определенного пользователем.

Если для параметра fast задано значение off, то одну итерацию процесса обеспечения соответствия обрабатывается одна единственная кривая. В некоторых случаях это может привести к построению лучшей сетки. При выборе значения on за одну итерацию может обрабатываться несколько кривых.

Параметр delta позволяет числу интервалов, заданных для кривой, отличаться от оптимального числа на указанную величину (<val>). Бόльшие величины ускоряют процесс обеспечения соответствия, но качество решения при этом может быть хуже. Рекомендуется использовать <val> = 1.0. По умолчанию <val> = 0.0.

Пользователь может также указать, является ли число интервалов разбиения кривых четным или нечетным:

{curve | surface | volume} <range> interval {even | odd}

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

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

Surface <surface_id_range> {Interval|Size|Periodic Interval} {Lower|Upper} Bound {On|Off|<bound>}