findElements

Найдите элементы mesh в заданной области

Описание

пример

elemIDs = findElements(mesh,'region',RegionType,RegionID) возвращает идентификаторы элементов mesh, которые принадлежат заданной геометрической области.

elemIDs = findElements(mesh,'box',xlim,ylim) возвращает идентификаторы элементов mesh в ограничительной рамке, заданной xlim и ylim. Используйте этот синтаксис для 2D сеток.

пример

elemIDs = findElements(mesh,'box',xlim,ylim,zlim) возвращает идентификаторы элементов mesh, расположенных в ограничительной рамке, заданной xlimylim, и zlim. Используйте этот синтаксис для 3-D сеток.

пример

elemIDs = findElements(mesh,'radius',center,radius) возвращает идентификаторы элементов mesh, расположенных в кругу (для 2D сеток) или сфера (для 3-D сеток) заданный center и radius.

пример

elemIDs = findElements(mesh,'attached',nodeID) возвращает идентификаторы элементов mesh, присоединенных к заданному узлу. Здесь, nodeID ID углового узла. Этот синтаксис игнорирует идентификаторы узлов, расположенных посреди ребер элемента.

Для нескольких узлов задайте nodeID как вектор.

Примеры

свернуть все

Найдите элементы сопоставленными с геометрической областью.

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

model = createpde;

Включайте геометрию встроенной функции lshapeg. Постройте геометрию.

geometryFromEdges(model,@lshapeg);
pdegplot(model,'FaceLabels','on','EdgeLabels','on')

Figure contains an axes. The axes contains 14 objects of type line, text.

Сгенерируйте mesh.

mesh = generateMesh(model,'Hmax',0.5);

Найдите элементы сопоставленными с поверхностью 2.

Ef2 = findElements(mesh,'region','Face',2);

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

figure
pdemesh(mesh,'ElementLabels','on')
hold on
pdemesh(mesh.Nodes,mesh.Elements(:,Ef2),'EdgeColor','green')

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

Найдите элементы расположенными в заданном поле.

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

model = createpde;

Импортируйте и постройте геометрию.

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

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

Сгенерируйте mesh.

mesh = generateMesh(model,'Hmax',2,'Hmin',0.4)
mesh = 
  FEMesh with properties:

             Nodes: [2x386 double]
          Elements: [6x172 double]
    MaxElementSize: 2
    MinElementSize: 0.4000
     MeshGradation: 1.5000
    GeometricOrder: 'quadratic'

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

Eb = findElements(mesh,'box',[5 10],[10 20]);

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

figure
pdemesh(model)
hold on
pdemesh(mesh.Nodes,mesh.Elements(:,Eb),'EdgeColor','green')

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

Найдите элементы расположенными в заданном диске.

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

model = createpde;

Импортируйте и постройте геометрию.

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

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

Сгенерируйте mesh.

mesh = generateMesh(model,'Hmax',2,'Hmin',0.4,'GeometricOrder','linear')
mesh = 
  FEMesh with properties:

             Nodes: [2x107 double]
          Elements: [3x172 double]
    MaxElementSize: 2
    MinElementSize: 0.4000
     MeshGradation: 1.5000
    GeometricOrder: 'linear'

Найдите элементы расположенными в радиусе 2 от центра [5,10].

Er = findElements(mesh,'radius',[5 10],2);

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

figure
pdemesh(model)
hold on
pdemesh(mesh.Nodes,mesh.Elements(:,Er),'EdgeColor','green')

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

Прилагается элементы к заданному угловому узлу.

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

model = createpde;

Импортируйте и постройте геометрию.

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

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

Сгенерируйте линейную треугольную mesh путем установки геометрической стоимости заказа на linear. Эта mesh содержит только угловые узлы.

mesh = generateMesh(model,'Hmax',2,'Hmin',0.4, ...
                          'GeometricOrder','linear');

Найдите узел самым близким к точке [15; 10].

N_ID = findNodes(mesh,'nearest',[15;10])
N_ID = 10

Прилагается элементы к этому узлу.

En = findElements(mesh,'attached',N_ID)
En = 1×3

    95    97    98

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

figure
pdemesh(model)
hold on
plot(mesh.Nodes(1,N_ID),mesh.Nodes(2,N_ID),'or','Color','g', ...
                                           'MarkerFaceColor','g')
pdemesh(mesh.Nodes,mesh.Elements(:,En),'EdgeColor','green')

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

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

свернуть все

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

Пример: model.Mesh

Геометрический тип области в виде 'Cell' или 'Face'.

Пример: findElements(mesh,'region','Face',1:3)

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

Геометрический ID области в виде вектора из положительных целых чисел. Найдите идентификаторы области при помощи pdegplot.

Пример: findElements(mesh,'region','Face',1:3)

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

x- ограничительной рамки в виде двухэлементного вектора-строки. Первый элемент xlim более низкий ограниченный x, и вторым элементом является верхний ограниченный x.

Пример: findElements(mesh,'box',[5 10],[10 20])

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

y- ограничительной рамки в виде двухэлементного вектора-строки. Первый элемент ylim более низкий ограниченный y, и вторым элементом является верхний ограниченный y.

Пример: findElements(mesh,'box',[5 10],[10 20])

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

z- ограничительной рамки в виде двухэлементного вектора-строки. Первый элемент zlim более низкий ограниченный z, и вторым элементом является верхний ограниченный z. Можно задать zlim только для 3-D сеток.

Пример: findElements(mesh,'box',[5 10],[10 20],[1 2])

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

Центр круга ограничения или сферы в виде двухэлементного вектора-строки для 2D mesh или трехэлементного вектора-строки для 3-D mesh. Элементы этих векторов содержат координаты центра круга или сферы.

Пример: findElements(mesh,'radius',[0 0 0],0.5)

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

Радиус круга ограничения или сферы в виде положительного числа.

Пример: findElements(mesh,'radius',[0 0 0],1)

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

ID углового узла элемента в виде положительного целого числа или вектора из положительных целых чисел. findElements функция может найти ID элемента ID углового узла элемента. Функция игнорирует идентификаторы узлов, расположенных посреди ребер элемента. Для нескольких узлов задайте nodeID как вектор.

Пример: findElements(mesh,'attached',[7 8 21])

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

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

свернуть все

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

Введенный в R2018a