meshQuality

Оцените качество формы элементов mesh

Описание

пример

Q = meshQuality(mesh) возвращает вектор-строку из чисел от 0 до 1 качества формы представления всех элементов mesh. Здесь, 1 соответствует оптимальной форме элемента.

пример

Q = meshQuality(mesh,elemIDs) возвращает качество формы указанных элементов.

пример

Q = meshQuality(___,'aspect-ratio') определяет качество формы при помощи отношения минимальных к максимальным размерностям элемента. Качественные значения являются числами от 0 до 1, где 1 соответствует оптимальной форме элемента. Задайте 'aspect-ratio' после любого из предыдущих синтаксисов.

Примеры

свернуть все

Оцените качество формы элементов 3-D mesh.

Создайте модель PDE.

model = createpde;

Включайте и постройте следующую геометрию.

importGeometry(model,'PlateSquareHoleSolid.stl');
pdegplot(model)

Figure contains an axes object. The axes object contains 3 objects of type quiver, patch, line.

Создайте и постройте крупную сетку.

mesh = generateMesh(model,'Hmax',35)
mesh = 
  FEMesh with properties:

             Nodes: [3x487 double]
          Elements: [10x213 double]
    MaxElementSize: 35
    MinElementSize: 17.5000
     MeshGradation: 1.5000
    GeometricOrder: 'quadratic'

pdemesh(model)

Оцените качество формы всех элементов mesh. Отобразите первые пять значений.

Q = meshQuality(mesh);
Q(1:5)
ans = 1×5

    0.3079    0.2917    0.6189    0.6688    0.5571

Найдите элементы с качественными значениями меньше чем 0,2.

elemIDs = find(Q < 0.2);

Подсветите эти элементы синего цвета на сетчатом графике.

pdemesh(mesh,'FaceAlpha',0.5)
hold on
pdemesh(mesh.Nodes,mesh.Elements(:,elemIDs), ...
                  'FaceColor','blue', ...
                  'EdgeColor','blue')

Постройте качество элемента в гистограмме.

figure
hist(Q)
xlabel('Element Shape Quality','fontweight','b')
ylabel('Number of Elements','fontweight','b')

Figure contains an axes object. The axes object contains an object of type patch. This object represents Q.

Найдите худшее качественное значение.

Qworst = min(Q)
Qworst = 0.1691

Найдите соответствующие идентификаторы элемента.

elemIDs = find(Q==Qworst)
elemIDs = 1×2

    10   136

Оцените качество формы элементов 2D mesh.

Создайте модель PDE.

model = createpde;

Включайте и постройте следующую геометрию.

importGeometry(model,'PlateSquareHolePlanar.stl');
pdegplot(model)

Figure contains an axes object. The axes object contains an object of type line.

Создайте и постройте крупную сетку.

mesh = generateMesh(model,'Hmax',20)
mesh = 
  FEMesh with properties:

             Nodes: [2x286 double]
          Elements: [6x126 double]
    MaxElementSize: 20
    MinElementSize: 10
     MeshGradation: 1.5000
    GeometricOrder: 'quadratic'

pdemesh(model)

Figure contains an axes object. The axes object contains 2 objects of type line.

Найдите идентификаторы элементов в поле, заключающем центр пластины.

elemIDs = findElements(mesh,'box',[25,75],[80,120]);

Оцените качество формы этих элементов. Отобразите результат как вектор-столбец.

Q = meshQuality(mesh,elemIDs);
Q.'
ans = 12×1

    0.2980
    0.8253
    0.2994
    0.6581
    0.7838
    0.6104
    0.3992
    0.6921
    0.2948
    0.5726
      ⋮

Найдите элементы с качественными значениями меньше чем 0,4.

elemIDs04 = elemIDs(Q < 0.4)
elemIDs04 = 1×4

     9    19    69    83

Подсветите эти элементы зеленого цвета на сетчатом графике. Увеличьте масштаб, чтобы видеть детали.

pdemesh(mesh,'ElementLabels','on')
hold on
pdemesh(mesh.Nodes,mesh.Elements(:,elemIDs04),'EdgeColor','green')
zoom(10)

Figure contains an axes object. The axes object contains 3 objects of type line.

Определите качество формы элементов mesh при помощи отношений минимальных к максимальным размерностям.

Создайте модель PDE и включайте L-образную геометрию.

model = createpde(1);
geometryFromEdges(model,@lshapeg);

Сгенерируйте mesh по умолчанию для геометрии.

mesh = generateMesh(model);

Просмотрите mesh.

pdeplot(model)

Figure contains an axes object. The axes object contains 2 objects of type line.

Оцените качество формы элементов mesh при помощи минимального к максимальному отношению размерностей. Отобразите первые пять значений.

Q = meshQuality(mesh,'aspect-ratio');
Q(1:5)
ans = 1×5

    0.8339    0.7655    0.7755    0.8301    0.8969

Оцените качество формы элементов mesh при помощи настройки по умолчанию. Отобразите первые пять значений.

Q = meshQuality(mesh);
Q(1:5)
ans = 1×5

    0.9837    0.9605    0.9654    0.9829    0.9913

Входные параметры

свернуть все

Объект ячейки в виде Mesh свойство PDEModel возразите или как выход generateMesh.

Пример: model.Mesh

Идентификаторы элемента в виде положительного целого числа или матрицы положительных целых чисел.

Пример: [10 68 81 97 113 130 136 164]

Выходные аргументы

свернуть все

Сформируйте качество элементов mesh, возвращенных как вектор-строка из чисел от 0 до 1. Значение 0 соответствует выкачанному элементу с нулевой областью или объемом. Значение 1 соответствует элементу оптимальной формы.

Пример: [0.9150 0.7787 0.9417 0.2744 0.9843 0.9181]

Типы данных: double

Ссылки

[1] Knupp, Патрик М. "Матричные Нормы & Число обусловленности: Общие рамки, чтобы Улучшить Качество Mesh через Перемещение Узла". В Продолжениях, 8-м Международном Запутывающем Круглом столе. Лейк-Тахо, CA, октябрь 1999: 13-22.

Введенный в R2018a