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

 

Устранение скрученности сетки

Область применения: поверхностные сетки из треугольных или четырехугольных элементов и объемные сетки из тетраэдров или гексаэдров; устранение скрученности не применимо к смешанным сеткам.

Краткая характеристика: Схема сглаживания с устранением из сетки максимально возможного числа отрицательных якобианов на основе минимизации определенной целевой функции (untangle).

Используемые команды:

surface <surface_ID_range> smooth scheme untangle [beta <double=0.02>] [CPU <double=10>]

volume <volume_ID_range> smooth scheme untangle [beta <double=0.02>] [CPU <double=10>]

Родственная команда:

surface <surface_ID_range> smooth scheme condition number

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

Опции fixed или free в приведенных выше командах не применимы; узлы на границах всегда остаются зафиксированными. Поэтому устранение с помощью описываемой схемы скрученности объемной сетки может не дать результат, если объем содержит поверхность, сетка на которой имеет отрицательный якобиан. В этом случае необходимо прежде всего избавиться от участков поверхностной сетки с отрицательными якобианами путем устранения скрученности поверхностной сетки, а затем уже устранить скрученность объемной сетки.

Приведенные выше команды только определяют схему сглаживания; для выполнения сглаживания сетки нужно вызвать команду smooth surface <surface_ID_range> или smooth volume <volume_ID_range>.

Процесс устранения скрученности продолжается до тех пор, пока не будет достигнут минимум целевой функции или превышено выделенное время (CPU). Это время составляет по умолчанию 10 минут. Оптимизация сетки может быть также остановлена путем нажатия на клавиатуре клавиш Сtrl+C.

Параметр beta играет роль в определении оптимальной сетки. Оптимизация продолжается до тех пор, пока минимальное значение масштабированного якобиана сетки не станет больше значения beta. Чтобы устранить отрицательные якобианы, необходимо значение beta=0 (однако в качестве безопасного порога используется значение по умолчанию beta=0.02). Для дальнейшего улучшения масштабированного якобиана можно ввести большее значение beta. Если соответствующая сетка не находится, то процесс оптимизации продолжится, пока не будет достигнут критерий CPU.

Чтобы посмотреть подробный отчет о процессе сглаживания, до его начала следует ввести команду set debug 91 on. В отчете будет представлена информация, необходимо ли устранение скрученности сетки и какие критерии остановки процесса сглаживания удовлетворяются. Дополнительно приводятся сведения по каждой итерации оптимизации, выполняемой методом сопряженных градиентов:

Iteration=n, Evals=m, Fcn=value1, dfmax=value2, time=value3 min_jsc=value4

Здесь n - номер итерации; m - число вычислений целевой функции, выполняемых в пределах итерации; value1 - значение целевой функции (обычно оно уменьшается монотонно); value2 - норма градиента (она не всегда уменьшается монотонно); value3 - общее время CPU (в секундах), потраченное до текущей итерации; value4 - минимальное значение масштабированного якобиана. Минимальное возможное значение целевой функции равно 0; оно достигается только тогда, когда минимальное значение масштабированного якобиана сетки превышает значение beta.