pdemesh

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

Описание

пример

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

пример

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

пример

pdemesh(nodes,elements) строит график mesh, заданный как nodes и elements.

пример

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

пример

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

пример

pdemesh(p,e,t) строит графики mesh заданных данными сетки p, e, t.

пример

pdemesh(p,e,t,u) строит графики для данных о узле PDE или треугольнике u использование сетчатого графика. А графики функций данные узла, если u - вектор-столбец, и данные треугольника, если u является вектор-строка.

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

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

Примеры

свернуть все

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

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

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

Постройте график mesh.

pdemesh(model)

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

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

pdemesh(mesh)

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

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

pdemesh(mesh.Nodes,mesh.Elements)

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

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

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

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

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

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

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

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

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

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

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

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)

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

The pdemesh функция игнорирует NodeLabels и ElementLabels когда вы строите график данных решения как 3-D график.

Создайте модель УЧП, включите геометрию и создайте сетку.

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

Постройте график mesh, задав прозрачность 0,5.

pdemesh(model,'FaceAlpha',0.5)

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

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

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.

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

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

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

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

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

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

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

свернуть все

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

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

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

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

Пример: emagmodel = createpde('electromagnetic','electrostatic')

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

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

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

Пример: model.Mesh

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Задайте необязательные разделенные разделенными запятой парами Name,Value аргументы. 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

Цвет ребер сетки, заданный как краткое или длинное название цвета или триплет RGB. По умолчанию для 2-D сетей ребер одной грани синие (триплет 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

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

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

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

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

свернуть все

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

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