meshQuality

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

Описание

пример

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

пример

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

пример

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

Примеры

свернуть все

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

Создайте модель УЧП.

model = createpde;

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

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

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

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

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)

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

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. The axes 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

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

Создайте модель УЧП.

model = createpde;

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

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

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

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

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. The axes contains 2 objects of type line.

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

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)

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

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

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

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

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

mesh = generateMesh(model);

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

pdeplot(model)

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

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

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

    0.8339    0.7655    0.7755    0.8301    0.8969

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

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

    0.9837    0.9605    0.9654    0.9829    0.9913

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

свернуть все

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

Пример: model.Mesh

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

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

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

свернуть все

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

Пример: [0,9150 0,7787 0,9417 0,2744 0,9843 0,9181]

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

Ссылки

[1] Knupp, Patrick M. «Matrix Norms & the Число Обусловленности: A General Framework to Update Mesh Quality Through Node-Movement». В работе 8-го Международного круглого стола по вопросам сетки. Лейк-Тахо, Калифорния, октябрь 1999: 13-22.

Введенный в R2018a