Дифференциальное уравнение в частных производных Toolbox™ использует метод конечных элементов для решения задач PDE. Этот метод дискретизирует геометрическую область в набор простых форм, составляющих сетку. Качество сетки имеет решающее значение для получения точной аппроксимации решения.
Как правило, решатели PDE лучше всего работают с сетками, состоящими из элементов, имеющих равностороннюю форму. Такие сети идеальны. В действительности создание идеальной сетки для большинства 2-D и 3-D геометрий невозможно, поскольку геометрия имеет крошечные или узкие области и острые углы. Для таких областей генератор сетки создает сетки с некоторыми элементами, которые значительно меньше остальных элементов сетки или имеют резко отличающиеся длины сторон.
По мере искажения элементов сетки числовые аппроксимации решения обычно становятся менее точными. При уточнении сетки с использованием меньших элементов получаются элементы лучшей формы и, следовательно, более точные результаты. Однако это также может быть дорогостоящим в вычислительном отношении.
Проверка хорошего качества сетки перед выполнением анализа является хорошей практикой, особенно для моделирования, которое занимает много времени. Панель инструментов обеспечивает meshQuality для этой задачи.
meshQuality оценивает качество формы элементов сетки и возвращает числа от 0 до 1 для каждого элемента сетки. Значение 1 соответствует оптимальной форме элемента. По умолчанию meshQuality функция объединяет несколько критериев при оценке качества формы. В дополнение к метрике по умолчанию можно использовать aspect-ratio метрика, которая основана исключительно на отношении минимального размера элемента к его максимальному размеру.
Создайте модель PDE.
model = createpde;
Включение и печать геометрии тора.
importGeometry(model,'Torus.stl'); pdegplot(model) camlight right

Создайте грубую сетку.
mesh = generateMesh(model,'Hmax',10);Оцените качество формы всех элементов сетки.
Q = meshQuality(mesh);
Найдите элементы со значениями качества менее 0,3.
elemIDs = find(Q < 0.3);
Выделите эти элементы синим цветом на графике сети.
figure pdemesh(mesh,'FaceAlpha',0.5) hold on pdemesh(mesh.Nodes,mesh.Elements(:,elemIDs),'FaceColor','blue','EdgeColor','blue')

Определите, какая часть общего объема сетки принадлежит элементам со значениями качества менее 0,3. Возвращает результат в процентах.
mv03_percent = volume(mesh,elemIDs)/volume(mesh)*100
mv03_percent = 0.0198
Оцените качество формы элементов сетки, используя соотношение минимального и максимального размера для каждого элемента.
Q = meshQuality(mesh,'aspect-ratio');Найдите элементы со значениями качества менее 0,3.
elemIDs = find(Q < 0.3);
Выделите эти элементы синим цветом на графике сети.
figure pdemesh(mesh,'FaceAlpha',0.5) hold on pdemesh(mesh.Nodes,mesh.Elements(:,elemIDs),'FaceColor','blue','EdgeColor','blue')
