exponenta event banner

pdemesh

Описание

пример

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

пример

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

пример

pdemesh(nodes,elements) выводит на график сетку, определяемую nodes и elements.

пример

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

пример

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

пример

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

пример

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

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

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

Примеры

свернуть все

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

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

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

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

pdemesh(model)

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

Также можно распечатать сетку с помощью mesh в качестве входного аргумента.

pdemesh(mesh)

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

Другой подход заключается в использовании узлов и элементов сетки в качестве входных аргументов для 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.

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

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.

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

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

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

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

pdemesh(model,'FaceAlpha',0.5)

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

Создайте модель 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.

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.

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

[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')

PDE раствор, указанный как вектор или матрица.

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

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

Пример: model.Mesh

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

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

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

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

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

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

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

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

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

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

Треугольники сети, заданные как 4около-Nt матрица треугольников, где Nt - количество треугольников в сетке. Для описания (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