exponenta event banner

findNodes

Поиск узлов сетки в указанной области

Описание

пример

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

пример

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

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

пример

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

пример

nodes = findNodes(mesh,'nearest',point) возвращает идентификаторы узлов сети, ближайших к точке запроса или нескольким точкам запроса с декартовыми координатами, заданными point.

Примеры

свернуть все

Найдите узлы, связанные с геометрической областью.

Создайте модель 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 = generateMesh(model,'Hmax',0.5);

Найдите узлы, связанные с гранью 2.

Nf2 = findNodes(mesh,'region','Face',2);

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

figure
pdemesh(model,'NodeLabels','on')
hold on
plot(mesh.Nodes(1,Nf2),mesh.Nodes(2,Nf2),'ok','MarkerFaceColor','g')  

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

Найдите узлы, связанные с ребрами 5 и 7.

Ne57 = findNodes(mesh,'region','Edge',[5 7]);

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

figure
pdemesh(model,'NodeLabels','on')
hold on
plot(mesh.Nodes(1,Ne57),mesh.Nodes(2,Ne57),'or','MarkerFaceColor','g')

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 = generateMesh(model,'Hmax',2,'Hmin',0.4,'GeometricOrder','linear');

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

Nb = findNodes(mesh,'box',[5 10],[10 20]);

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

figure
pdemesh(model)
hold on
plot(mesh.Nodes(1,Nb),mesh.Nodes(2,Nb),'or','MarkerFaceColor','g')

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 = generateMesh(model,'Hmax',2,'Hmin',0.4,'GeometricOrder','linear');

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

Nb = findNodes(mesh,'radius',[5 10],2);

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

figure
pdemesh(model)
hold on
plot(mesh.Nodes(1,Nb),mesh.Nodes(2,Nb),'or','MarkerFaceColor','g')

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 = generateMesh(model,'Hmax',2,'Hmin',0.4);

Найдите узел, ближайший к точке [15; 10].

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

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

figure
pdemesh(model)
hold on
plot(mesh.Nodes(1,N_ID),mesh.Nodes(2,N_ID),'or','MarkerFaceColor','g')

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

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

свернуть все

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

Пример: model.Mesh

Тип геометрической области, указанный как 'Cell', 'Face', 'Edge', или 'Vertex'.

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

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

Идентификатор геометрической области, заданный как вектор положительных целых чисел. Поиск идентификаторов регионов с помощью pdegplot.

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

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

X-пределы ограничивающей рамки, заданные как двухэлементный вектор строки. Первый элемент xlim является нижней x-границей, а второй элемент является верхней x-границей.

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

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

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

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

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

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

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

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

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

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

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

Радиус ограничивающей окружности или сферы, заданный как положительное число.

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

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

Декартовы координаты точек запроса, заданные как матрица 2-by-N или 3-by-N. Эти матрицы содержат координаты точек запроса. Здесь N - количество точек запроса.

Пример: findNodes(mesh,'nearest',[15 10.5 1; 12 10 1.2])

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

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

свернуть все

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

Представлен в R2018a