Поиск по документации
Введите не менее 2 символов
Введите не менее 2 символов
![]() |
CAE Fidesys 9.0 Руководство пользователя |
Генерация сетки часто бывает итерационным процессом, включающим первичное разбиение на элементы, удаление сетки и повторное ее построение. Операция перестроения является удобным средством обойти этап удаления сетки в случае применения ее к объему. Приводимую ниже в разных вариантах команду remesh можно использовать также для замены локального набора деформированных тетраэдров после выполнения расчета напряженно-деформированного состояния. Таким образом, перестроение сетки может стать частью процесса оптимизации. Для перестроения объемной сетки из гексаэдральных элементов применима команда:
remesh volume <range>
Перестроение сетки из тетраэдральных элементов возможно с помощью команды:
remesh {volume | block | tet} <range> [FIXED | free]
Чтобы перестроить сетку в области, соответствующей заданному диапазону тетраэдров с учетом критериев качества, следует использовать другой вариант команды:
remesh tet <ID_range> | [quality <tet_metric> [less than | greater than] <value> ...] [inflate <value>] [FIXED | free] [preview]
Перестроение сетки может быть полезным при использовании схемы Протяжка. Когда эта схема применяется для разбиения объема, удаляется сетка с конечной поверхности и производится генерация объемной сетки из гексаэдров, например, с помощью команд:
volume 1 scheme sweep
mesh volume 1
При этом пользователь может обнаружить, что сгенерированы элементы низкого качества. Если это так, то можно повторить операции, введя в первую команду опцию сглаживания, а в качестве второй команды использовать команду перестроения сетки:
volume 1 sweep smooth winslow
remesh volume 1
Таким образом, перестроение объемной сетки выполняется с использованием сглаживания Уинслоу.
Применительно к тетраэдрам команда remesh генерирует новую сетку после удаления существующего сеточного объекта, заданного списком объемов, блоков или тетраэдров. В этом случае заменяется по возможности наименьшей набор тетраэдров, т.е. производится частичное переразбиение на элементы объемов, поверхностей или кривых. Этот набор всегда включает тетраэдры, заданные в списке, но может содержать и дополнительные элементы. Каждый тетраэдр может принадлежать только одному объему или блоку, но список тетраэдров может охватывать несколько объемов или блоков. При задании нескольких блоков каждый из них обрабатывается отдельно.
Опция FIXED, действующая по умолчанию, гарантирует, что любой треугольник или ребро, соответствующий (-ее) списку тетраэдров и расположенный (-ое) на геометрических поверхностях или кривых, не подвергается перестроению. В противоположность этому, опция free позволяет удалять и перестраивать сетку на кривых и поверхностях. Опция FIXED используется, когда важно сохранить конфигурацию сетки на границе перестраиваемой области.
Команда remesh может применяться для выборочного удаления и перестроения небольших наборов тетраэдров, качество которых оказывается низким, в том числе, для улучшения качества сетки, деформированной в процессе приложения нагрузки (как уже упомянуто выше).
Указание в команде параметра quality позволяет идентифицировать такие тетраэдры в модели и применить операцию перестроения только к ним. При этом в качестве <tet_metric> возможно задание любой из стандартных метрик качества для тетраэдров: отношение сторон (aspect ratio beta или aspect ratio gamma), объем элемента (element volume), число обусловленности (condition number) и т.д., а также обобщенных метрик, описанных в подразделе Команда для оценки качества сетки. Задание метрики может сопровождаться ключевыми словами less than или greater than с указанием определенного порогового значения. Например, приводимая ниже команда выполняет перестроение всех тетраэдров в сетке, у которых метрика нормированный якобиан меньше 0,2:
remesh tet quality scaled Jacobian less than 0.2 inflate 1 free
Параметр inflate может использоваться для расширения набора тетраэдров, выбранных для перестроения по критериям качества. Вводимое значение этого параметра (<value>) определяет число слоев тетраэдров, окружающих тетраэдры низкого качества, которые включаются в область перестроения сетки. Обычно одного слоя оказывается достаточным для генерации элементов лучшего качества. Значение 0 использовать не рекомендуется, поскольку оно не обеспечивает алгоритму перестроения достаточного пространства для улучшения качества элементов. Опция inflate может использоваться и независимо от команды remesh как самостоятельная команда (см. ниже).
Возможно совместное использование нескольких критериев качества, например:
remesh tet quality scaled Jacobian less than 0.2 aspect ratio beta greater than 4 inflate 1 free
Опция preview позволяет отображать тетраэдры, выбранные по критериям качества (quality) и с учетом опции inflate, без выполнения операции перестроения.
При перестроении сетки из тетраэдров могут использоваться размерные функции и функция поля на основе Exodus II.
При перестроении набора тетраэдров полезно иметь возможность его расширения за счет добавления окружающих элементов. Это дает алгоритму перестроения больше свободы для размещения элементов хорошего качества и формирования самой области работы. Приводимая ниже команда начинает обработку с заданного набора тетраэдров и расширяет этот набор, присоединяя определенное пользователем число слоев, а также учитывая критерии многообразия. Результат перестроения добавляется в текущую группу или создается новая группа. Команда расширения набора тетраэдров имеет вид:
inflate [group <ID> | tet <range>] [manifold] [layer <value>] [add | create <"name">] [draw]
Значение параметров (опций) этой команды следующее:
group <ID> | tet < range> - задание набора тетраэдров; группа должна содержать, как минимум, один тетраэдр; тетраэдры не обязательно должны быть смежными;
manifold - указание добавлять тетраэдры к набору там, где граница или граничный слой тетраэдров имеют единственное ребро или узел; это гарантирует определение границы набора тетраэдров в виде многообразия, которое требуется алгоритмом генерации сетки; описываемая опция может использоваться вместе с параметром layer (см. ниже);
layer <value> - добавление к набору указанного числа слоев тетраэдров; при этом в слой входят все тетраэдры, соединенные, по крайней мере, одним узлом с внешним слоем заданного набора; параметр сам по себе не гарантирует многообразия, поэтому для обеспечения требуемого многообразия он используется в команде вместе с опцией manifold;
add | create <"name"> - при задании add тетраэдры, попадающие в область расширения, добавляются во входную группу, которая должна быть определена; в случае create создается новая группа с именем <"name"> и в нее помещаются все тетраэдры (включая исходные); если не задано ни то, ни другое, то по умолчанию создается новая группа с именем "inflated_tets"; если группа с таким именем уже существует, то тетраэдры будут добавлены в нее;
draw - указание для отображения в графическом окне и заданного (исходного), и расширенного наборов тетраэдров; исходные тетраэдры изображаются зеленым цветом, а включенные в расширение - красным.
Пример:
Сгенерируем простую сетку из тетраэдров. Для элементов с идентификаторами от 1 до 10 определим один буферный слой с гарантией многообразия его границы. Результат поместим в новую группу "inflated_tets" и отобразим в графическом окне. Этим действиям соответствуют команды:
brick x 10
vol 1 scheme tetmesh
mesh vol 1
inflate tet 1 to 10 layer 1 manifold draw
Создадим группу с именем "bad_tets", содержащую все тетраэдры в объеме 1, у которых метрика качества нормированный якобиан меньше 0,2. Предусмотрим возможность расширения этой группы на один слой тетраэдров и выполним для нее перестроение сетки. Используется следующая цепочка команд:
group 'bad_tets' equals qual vol 1 scaled high 0.2
inflate bad_tets layer 1 manifold add
remesh tet in bad_tets