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)

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

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')

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

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)

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

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)

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

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

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

Q = meshQuality(mesh,elemIDs)
Q = 1×12

    0.2980    0.8253    0.2994    0.6581    0.7838    0.6104    0.3992    0.6921    0.2948    0.5726    0.7016    0.5669

Найдите элементы с качественными значениями меньше чем 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)

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

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

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

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

mesh = generateMesh(model);

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

pdeplot(model)

Оцените качество формы элементов 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