Поиск по документации
Введите не менее 2 символов
Введите не менее 2 символов
![]() |
CAE Fidesys 9.0 Руководство пользователя |
Размерная функция, адаптивная к геометрии, которая называется также скелетной размерной функцией [Quadros, 2005; Quadros, 2004; Quadros, 2004(2)], формируется автоматически на основе геометрических характеристик модели. Предполагается, что такая функция обеспечивает в случае нерегулярных схем разбиения генерацию сеток со следующими свойствами:
размеры элементов плавно изменяются в пределах сетки;
элементы сетки представляют геометрию с достаточной точностью;
степень разбиения на элементы с точки зрения геометрии не является избыточной.
Описываемая функция может использоваться для построения сеток на поверхностях, в объемах и сборках.
При формировании функции этого типа вычисляются (оцениваются):
3D-протяженность (толщина объемного тела);
2D-протяженность (толщина поверхности);
1D-протяженность (длина кривой);
кривизна областей поверхности;
кривизна участков кривой.
Эти характеристики используются для определения значений размерной функции применительно к геометрическому объекту или набору объектов (сборке). На основе полученных значений генерируется сетка - мелкая в областях сложной конфигурации и более грубая в областях сравнительно простой формы. В частности, более мелкая сетка строится при большой кривизне поверхности.
На Рис. 1 представлена обобщенная схема построения сетки для CAD-модели, а на Рис. 2 - пример использования размерной функции, адаптивной к геометрии, с помощью графического интерфейса пользователя (GUI) Fidesys.

Рис. 1 - Обобщенная схема построения сетки

Рис. 2 - Пример использования размерной функции, адаптивной к геометрии, с помощью графического интерфейса пользователя Fidesys
Построение сетки с целью адаптации ее к геометрии может быть выполнено для одного или нескольких геометрических объектов в виде поверхностей или объемов как с помощью графического интерфейса пользователя, так и посредством окна командной строки. При задании параметров сетки необходимо учитывать следующие особенности.
Если описываемая размерная функция применяется к отдельным поверхностям или объемам, то размеры элементов одного объекта не оказывают влияния на другие объекты. В командное строке вводится отдельная команда для каждого объекта, а в рамках графического интерфейса пользователя указывается по одному объекту.
В случае набора поверхностей геометрические особенности каждой поверхности могут оказывать влияние на соседние поверхности.
При указании набора объемов (сборки) возможно влияние геометрических особенностей каждого объема на соседние объемы. До применения размерной функции объемы должны быть подвергнуты проецированию и слиянию.
Для применения размерной функции рассматриваемого типа к поверхностям вводится команда:
surface <surface_ID_range> sizing function skeleton
{[scale <1 to 10 = 7>] [time_accuracy_level <1 to 3 = 2>]
[min_depth <3 to 8 = 5>] [max_depth <4 to 9 = 7>] [facet_extract_ang <1 to 30 = 10>]
[min_num_layers_2d < 1 to N = 1>] [min_num_layers_1d < 1 to N = 1>]
[max_span_ang_surf <5.0 to 75.0 = 45.0 degrees>]
[max_span_ang_curve <5.0 to 75.0 = 45.0 degrees>]
[min_size <float>] [max_size <float>] [max_gradient <float=1.5>]}
Соответствующая команда для объемов имеет вид:
volume <range> sizing function skeleton
{[scale <1 to 10 = 7>] [time_accuracy_level <1 to 3 = 2>]
[min_depth <3 to 8 = 5>] [max_depth <4 to 9 = 7>] [facet_extract_ang <1 to 30 = 10>]
[min_num_layers_3d < 1 to N = 1>] [min_num_layers_2d < 1 to N = 1>]
[min_num_layers_1d < 1 to N = 1>]
[max_span_ang_surf <5.0 to 75.0 = 45.0 degrees>]
[max_span_ang_curve <5.0 to 75.0 = 45.0 degrees>]
[min_size <float>] [max_size <float>] [max_gradient <float=1.5>]}
Смысл и значения параметров (опций) этих команд поясняются ниже.
max_size - максимальный размер элементов; значение по умолчанию: auto, вычисляется автоматически; вместо этого пользователь может задать любое положительное действительное число, исходя из размеров модели.
min_size - минимальный размер элементов; значение по умолчанию: auto, так же вычисляется автоматически; для управления минимальным размером элементов пользователь может задать любое положительное действительное число.
max_gradient - максимальный градиент изменения размеров элементов в зонах перехода между разными плотностями сетки; диапазон значений: от 1,0 до 3,0; значение по умолчанию: 1,5; бόльшие значения соответствуют меньшему числу генерируемых элементов, приводят к более резкому изменению плотности сетки и, возможно, к пониженному качеству элементов.
scale - масштаб общего изменения размеров элементов; диапазон значений: от 1 до 10; значение по умолчанию: 7; более грубая сетка может быть сгенерирована при увеличении масштаба до 10, а более мелкая - при его уменьшении до 1.
time_accuracy_level - уровень затрат времени и точности вычислений; он определяет ряд внутренних параметров функции; диапазон значений: от 1 до 3; значение по умолчанию: 2; уровню 1 соответствует наименьшее время вычислений размерной функции, а уровню 3 - наибольшее, при этом точность вычислений на уровне 1 меньше, чем на уровнях 2 и 3; рекомендуется выполнять пробное задание различных уровней в порядке их повышения.
Размерная функция, адаптивная к геометрии, формируется и сохраняется на фоновой сетке октодерева, ячейки которой образованы путем разбиения трехмерного пространства на основе видимых граней модели. Октодерево - это тип древовидной структуры данных, характеризуемой наличием у каждого внутреннего узла восьми "потомков". Применительно к пространству октодерево соответствует его рекурсивному разбиению каждый раз на 8 ячеек. Уровень градации фоновой сетки оказывает влияние на возможности учета функций геометрической сложности и других особенностей рассматриваемой модели. К параметрам фоновой сетки октодерева относятся следующие.
min_depth - минимальный уровень глубины разбиения пространства; он оказывает влияние на размер ячеек сетки: чем больше уровень, тем меньше размер наиболее крупной ячейки, при этом возрастает время вычислений; значение по умолчанию: auto - соответствует учету функций геометрической сложности исходной модели и размеров сетки, заданных для входящих в нее объектов.
max_depth - максимальный уровень глубины разбиения пространства, влияющий на размер ячеек сетки таким образом, что чем мельче геометрические особенности модели, тем большее значение этого параметра желательно; максимально допустимое значение равно 9; значение по умолчанию: auto; при выборе значения по умолчанию размерная функция учитывает геометрическую сложность исходной модели и размеры сетки, заданные для входящих в нее объектов.
facet_extract_ang - допустимое значение угла, определяющее точность фасеточного представления модели, построенной с помощью сплайнов типа NURBS (Non-Uniform Rational B-Spline - неоднородный рациональный B-сплайн); для областей с сильной кривизной меньшие значения этого параметра обеспечивают лучшую аппроксимацию и позволяют избежать генерации сеток "случайной" (неконтролируемой) плотности, но вызывают увеличение времени вычислений; слишком большие значения угла могут привести к генерации дефектных граней; значение по умолчанию: 10 градусов.
min_num_layers_3d - минимальное число слоев элементов по толщине объема; любое число больше 1; значение по умолчанию: 1.
min_num_layers_2d - минимальное число слоев элементов по толщине поверхности; любое число больше 1; значение по умолчанию: 1.
min_num_layers_1d - минимальное число интервалов разбиения кривой; любое положительное целое больше 1; значение по умолчанию: 1.
max_span_ang_curve - максимальная величина угла, определяющая размер элементов на криволинейных участках кривых (угла между нормалями в крайних узлах ребра сетки); диапазон значений: от 5,0 до 75,0 (градусов); значение по умолчанию: 45,0 градусов; чем мельче требуется сетка на криволинейном участке, тем меньше должно быть вводимое значение этого параметра.
max_span_ang_surf - максимальная величина угла, определяющая размер элементов в искривленных областях поверхностей (угла между нормалями в крайних узлах ребра поверхностной сетки); диапазон значений: от 5,0 до 75,0 (градусов); значение по умолчанию: 45,0 градусов.
Примечание: При задании расширенных параметров отменяется действие некоторых основных параметров. Например, ввод значения основного параметра time_accuracy_level = 1 определяет минимальный и максимальный уровни глубины разбиения пространства с помощью фоновой сетки октодерева: min_depth = 4 и max_depth = 6. В случае непосредственного задания этих уровней: min_depth = 4 и max_depth = 7 (что рекомендуется для моделей с мелкими особенностями) действуют именно последние заданные значения. Таким образом, чтобы изменить глубину разбиения, устанавливаемую автоматически при вводе в командной строке значения time_accuracy_level, нужно следом ввести желаемые значения min_depth и max_depth.
Размерная функция, адаптивная к геометрии, образует в сочетании с другими доступными в Fidesys средствами управления размерами элементов гибкий инструмент, сглаживающий различия в плотности сетки, сгенерированной в разных частях модели (см. Рис. 3). Действие этой функции подобно действию значения soft, присвоенному указателю возможности управления интервалами. Размерная функция, адаптивная к геометрии, всегда учитывает число интервалов разбиения, заданное для кривых. Эта функция учитывает размеры интервалов на кривых и поверхностях только, если они заданы после вызова функции.

Рис. 3 - Примеры сочетания размерной функции, адаптивной к геометрии, с другими средствами калибровки сетки
В качестве особенностей, ограничивающих применение описываемой размерной функции, можно упомянуть следующие:
В нынешнем виде эта функция предназначена преимущественно для работы с моделями в формате ACIS. Она может использоваться и для фасеточных моделей (MBG-моделей) в форматах STL или Facet, но результаты не гарантируются.
функция тестировалась, главным образом, со схемами вариантной триангуляции (trimesh) и разбиения на тетраэдры (tetmesh). Регулярные или частично регулярные схемы генерации сеток не обладают, вообще говоря, достаточной гибкостью для использования функции этого типа. Применять ее рекомендуется только с нерегулярными схемами. В случае использования этой функции при генерации поверхностной сетки по схеме Неструктурированная сетка (pave) следует задавать малые значения параметров max_gradient и scale.
При формировании функции для сборок рекомендуется задавать значение параметра time_accuracy_level, как минимум, равное 2. Это обеспечивает необходимый учет малых геометрических особенностей модели. Пример команды: volume all sizing function skeleton time_accuracy_level 2.