exponenta event banner

pdemesh

Постройте mesh УЧП

Синтаксис

pdemesh(model)
pdemesh(mesh)
pdemesh(nodes,elements)
pdemesh(model,u)
pdemesh(___,Name,Value)
pdemesh(p,e,t)
pdemesh(p,e,t,u)
h = pdemesh(___)

Описание

пример

pdemesh(model) строит mesh, содержавшуюся в 2D или 3-D объекте model типа PDEModel.

пример

pdemesh(mesh) строит mesh, заданную как свойство Mesh 2D или 3-D объекта model типа PDEModel.

пример

pdemesh(nodes,elements) строит mesh, заданную nodes и elements.

пример

pdemesh(model,u) отображает данные о решении на графике u как 3-D график. Этот синтаксис допустим только для 2D геометрии.

пример

pdemesh(___,Name,Value) строит mesh или данные о решении с помощью любого из аргументов в предыдущих синтаксисах и одного или нескольких аргументов пары Name,Value.

пример

pdemesh(p,e,t) строит mesh, заданную данными о mesh p, e, t.

пример

pdemesh(p,e,t,u) узел УЧП графиков или треугольные данные u с помощью сетчатого графика. Графики функций данные об узле, если u является вектор-столбцом и треугольными данными, если u является вектором - строкой.

Если вы хотите иметь больше контроля над своим сетчатым графиком, используйте pdeplot или pdeplot3D вместо pdemesh.

h = pdemesh(___) возвращает указатели на графику, с помощью любого из аргументов предыдущих синтаксисов.

Примеры

свернуть все

Создайте сетчатый график и отобразите узел и метки элемента mesh.

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

model = createpde;
geometryFromEdges(model,@lshapeg);
mesh = generateMesh(model);

Постройте mesh.

pdemesh(model)

Также можно построить mesh при помощи mesh как входной параметр.

pdemesh(mesh)

Другой подход должен использовать узлы и элементы mesh как входные параметры для pdemesh.

pdemesh(mesh.Nodes,mesh.Elements)

Отобразите метки узла.

pdemesh(model,'NodeLabels','on')

Используйте xlim и ylim, чтобы увеличить масштаб конкретных узлов.

xlim([-0.4,0.4])
ylim([-0.4,0.4])

Метки элемента отображения.

pdemesh(model,'ElementLabels','on')
xlim([-0.4,0.4])
ylim([-0.4,0.4])

Примените граничные условия, задайте коэффициенты и решите УЧП.

applyBoundaryCondition(model,'dirichlet','Edge',1:model.Geometry.NumEdges,'u',0);
specifyCoefficients(model,'m',0,...
                          'd',0,...
                          'c',1,...
                          'a',0,...
                          'f',1);
generateMesh(model);
results = solvepde(model)
results = 
  StationaryResults with properties:

    NodalSolution: [1177x1 double]
       XGradients: [1177x1 double]
       YGradients: [1177x1 double]
       ZGradients: []
             Mesh: [1x1 FEMesh]

u = results.NodalSolution;

Постройте решение в узловых местоположениях при помощи pdemesh.

pdemesh(model,u)

Функция pdemesh игнорирует NodeLabels и ElementLabels, когда вы отображаете данные о решении на графике как 3-D график.

Создайте модель PDE, включайте геометрию и поймайте в сети ее.

model = createpde;
importGeometry(model,'Plate10x10x1.stl');
generateMesh(model,'Hmax',5);

Постройте mesh, устанавливающую прозрачность на 0,5.

pdemesh(model,'FaceAlpha',0.5)

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

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

model = createpde;

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

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

Сгенерируйте 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')

Постройте mesh для геометрии L-образной мембраны.

[p,e,t] = initmesh('lshapeg');
[p,e,t] = refinemesh('lshapeg',p,e,t);
pdemesh(p,e,t)

Теперь решите уравнение Пуассона -Δu=1 по геометрии, заданной L-образной мембраной. Используйте граничные условия Дирихле u=0 на δΩ, и постройте результат.

u = assempde('lshapeb',p,e,t,1,0,1); 
pdemesh(p,e,t,u)

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

свернуть все

Объект модели, заданный как объект PDEModel, объект ThermalModel или объект StructuralModel.

Пример: model = createpde(1)

Пример: thermalmodel = createpde('thermal','steadystate')

Пример: structuralmodel = createpde('structural','static-solid')

Решение для УЧП, заданное как вектор или матрица.

Пример: results = solvepde(model); u = results.NodalSolution; или u = assempde(model,c,a,f);

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

Пример: model.Mesh

Узловые координаты, заданные как 2 NumNodes матрицей для 2D mesh и 3 NumNodes матрицей для 3-D mesh. NumNodes является количеством узлов.

Матрица смежности элемента с точки зрения идентификаторов узла, заданных как NodesPerElem-by-NumElements матрица. NodesPerElem является количеством узлов на элемент. Линейные сетки содержат только угловые узлы, таким образом, существует три узла на 2D элемент и четыре узла на 3-D элемент. Квадратичные сетки содержат угловые узлы и узлы посреди каждого ребра элемента. Для квадратичных сеток существует шесть узлов на 2D элемент и 10 узлов на 3-D элемент.

Поймайте в сети точки, заданные как 2 Np матрицей точек, где Np является числом точек в mesh. Для описания (p, e, t) матрицы, смотрите Данные о Mesh.

Как правило, вы используете p, e и данные t, экспортированные из приложения PDE Modeler или сгенерированные initmesh или refinemesh.

Пример: [p,e,t] = initmesh(gd)

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

Поймайте в сети ребра, заданные как 7-by-Ne матрица ребер, где Ne является количеством ребер в mesh. Для описания (p, e, t) матрицы, смотрите Данные о Mesh.

Как правило, вы используете p, e и данные t, экспортированные из приложения PDE Modeler или сгенерированные initmesh или refinemesh.

Пример: [p,e,t] = initmesh(gd)

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

Поймайте в сети треугольники, заданные как 4-by-Nt матрица треугольников, где Nt является количеством треугольников в mesh. Для описания (p, e, t) матрицы, смотрите Данные о Mesh.

Как правило, вы используете p, e и данные t, экспортированные из приложения PDE Modeler или сгенерированные initmesh или refinemesh.

Пример: [p,e,t] = initmesh(gd)

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

Аргументы в виде пар имя-значение

Укажите необязательные аргументы в виде пар ""имя, значение"", разделенных запятыми. Имя (Name) — это имя аргумента, а значение (Value) — соответствующее значение. Name должен появиться в кавычках. Вы можете задать несколько аргументов в виде пар имен и значений в любом порядке, например: Name1, Value1, ..., NameN, ValueN.

Пример: pdemesh(model,'NodeLabels','on')

Метки узла, заданные как пара, разделенная запятой, состоящая из 'NodeLabels' и 'off' или 'on'.

pdemesh игнорирует NodeLabels, когда вы отображаете данные о решении на графике как 3-D график.

Пример: 'NodeLabels','on'

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

Метки элемента, заданные как пара, разделенная запятой, состоящая из 'ElementLabels' и 'off' или 'on'.

pdemesh игнорирует ElementLabels, когда вы отображаете данные о решении на графике как 3-D график.

Пример: 'ElementLabels','on'

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

Поверхностная прозрачность для 3-D геометрии, заданной как пара, разделенная запятой, состоящая из 'FaceAlpha' и вещественного числа от 0 до 1. Значение по умолчанию 1 не указывает ни на какую прозрачность. Значение 0 указывает на полную прозрачность.

Пример: 'FaceAlpha',0.5

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

Цвет ребер mesh, заданных как короткое или длинное название цвета или триплет RGB. По умолчанию для 2D сеток ребра в одной поверхности являются синими (Триплет RGB [0 0 1]), и ребра между поверхностями являются красными (Триплет RGB [1 0 0]). Для 3-D сеток цвет обводки по умолчанию является черным (Триплет RGB [0 0 0]).

Краткие названия и длинные имена являются векторами символов, которые задают один из восьми предопределенных цветов. Триплет RGB является трехэлементным вектором - строкой, элементы которого задают интенсивность красных, зеленых, и синих компонентов цвета; интенсивность должна быть в области значений [0 1]. В следующей таблице перечислены предопределенные цвета и их эквиваленты триплета RGB.

Триплет RGB

Краткое название

Длинное имя

[1 1 0]

y

yellow

[1 0 1]

m

magenta

[0 1 1]

c

cyan

[1 0 0]

r

red

[0 1 0]

g

green

[0 0 1]

b

blue

[1 1 1]

w

white

[0 0 0]

k

black

Пример: 'EdgeColor','green'

Типы данных: double | char | string

Цвет mesh стоит для 3-D сеток, заданных как короткое или длинное название цвета или триплет RGB. Цвет поверхности по умолчанию является голубым (Триплет RGB [0 1 1]). Для получения дополнительной информации о доступных цветах, см. 'EdgeColor'.

Пример: 'FaceColor','green'

Типы данных: double | char | string

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

свернуть все

Указатели на графические объекты, возвращенные как вектор.

Представлено до R2006a