exponenta event banner

StationaryResults

Не зависящий от времени раствор PDE и производные количества

Описание

A StationaryResults объект содержит решение PDE и его градиенты в форме, удобной для печати и постобработки.

  • A StationaryResults объект содержит решение и его градиент, рассчитанный в узлах треугольной или тетраэдрической сетки, генерируемой generateMesh.

  • Значения решения в узлах отображаются в NodalSolution собственность.

  • Три компонента градиента значений решения в узлах отображаются в XGradients, YGradients, и ZGradients свойства.

  • Размеры массива NodalSolution, XGradients, YGradients, и ZGradients позволяет извлекать значения решения и градиента для указанных индексов уравнений в системе PDE.

Интерполяция решения или его градиента в пользовательскую сетку (например, заданная meshgrid), использовать interpolateSolution или evaluateGradient.

Создание

Существует несколько способов создания StationaryResults объект:

  • Решение не зависящей от времени задачи с помощью solvepde функция. Эта функция возвращает решение PDE в виде StationaryResults объект. Это рекомендуемый подход.

  • Решение не зависящей от времени задачи с помощью assempde или pdenonlin функция. Затем используйте createPDEResults для получения функции StationaryResults объект из PDE-решения, возвращенный assempde или pdenonlin. Обратите внимание, что assempde и pdenonlin являются устаревшими функциями. Они не рекомендуются для решения проблем PDE.

Свойства

развернуть все

Сетка конечных элементов, возвращаемая как объект FEMesh Properties.

Значения решения в узлах, возвращаемые в виде вектора или массива. Для получения подробной информации о размерах NodalSolution, см. Размеры решений, градиенты и потоки.

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

x-компонент градиента в узлах, возвращаемый как вектор или массив. Для получения подробной информации о размерах XGradients, см. Размеры решений, градиенты и потоки.

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

y - компонент градиента в узлах, возвращаемый как вектор или массив. Для получения подробной информации о размерах YGradients, см. Размеры решений, градиенты и потоки.

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

Z-компонент градиента в узлах, возвращаемый как вектор или массив. Для получения подробной информации о размерах ZGradients, см. Размеры решений, градиенты и потоки.

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

Функции объекта

evaluateCGradientОценка потока раствора PDE
evaluateGradientОценка градиентов решений PDE в произвольных точках
interpolateSolutionИнтерполяция PDE-решения в произвольные точки

Примеры

свернуть все

Создайте модель PDE для системы из трех уравнений. Импорт геометрии скобки и печать меток граней.

model = createpde(3);
importGeometry(model,'BracketWithHole.stl');

figure
pdegplot(model,'FaceLabels','on')
view(30,30)
title('Bracket with Face Labels')

Figure contains an axes. The axes with title Bracket with Face Labels contains 3 objects of type quiver, patch, line.

figure
pdegplot(model,'FaceLabels','on')
view(-134,-32)
title('Bracket with Face Labels, Rear View')

Figure contains an axes. The axes with title Bracket with Face Labels, Rear View contains 3 objects of type quiver, patch, line.

Установить граничные условия таким образом, чтобы грань 4 была неподвижной, а грань 8 имела силу в отрицательном z направление.

applyBoundaryCondition(model,'dirichlet','Face',4,'u',[0,0,0]);
applyBoundaryCondition(model,'neumann','Face',8,'g',[0,0,-1e4]);

Задайте коэффициенты, представляющие уравнения линейной упругости. См. раздел Уравнения линейной упругости.

E = 200e9;
nu = 0.3;
specifyCoefficients(model,'m',0,...
                          'd',0,...
                          'c',elasticityC3D(E,nu),...
                          'a',0,...
                          'f',[0;0;0]);

Создайте сетку.

generateMesh(model,'Hmax',1e-2);

Решите проблему PDE.

results = solvepde(model)
results = 
  StationaryResults with properties:

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

Доступ к решению в узловых местоположениях.

u = results.NodalSolution;

Постройте график решения для z- компонент, являющийся компонентом 3.

pdeplot3D(model,'ColorMapData',u(:,3))

Получить StationaryResults объект из устаревшего решателя вместе с createPDEResults.

Создайте модель PDE для системы из трех уравнений. Импорт геометрии скобки и печать меток граней.

model = createpde(3);
importGeometry(model,'BracketWithHole.stl');

figure
pdegplot(model,'FaceLabels','on')
view(30,30)
title('Bracket with Face Labels')

Figure contains an axes. The axes with title Bracket with Face Labels contains 3 objects of type quiver, patch, line.

figure
pdegplot(model,'FaceLabels','on')
view(-134,-32)
title('Bracket with Face Labels, Rear View')

Figure contains an axes. The axes with title Bracket with Face Labels, Rear View contains 3 objects of type quiver, patch, line.

Задайте граничные условия таким образом, чтобы F4 неподвижен, и F8 имеет силу в отрицательном z направление.

applyBoundaryCondition(model,'dirichlet','Face',4,'u',[0,0,0]);
applyBoundaryCondition(model,'neumann','Face',8,'g',[0,0,-1e4]);

Задайте коэффициенты для устаревшего решателя, которые представляют уравнения линейной упругости. См. раздел Уравнения линейной упругости.

E = 200e9;
nu = 0.3;
c = elasticityC3D(E,nu);
a = 0;
f = [0;0;0];

Создайте сетку.

generateMesh(model,'Hmax',1e-2);

Решите проблему с помощью устаревшего решателя.

u = assempde(model,c,a,f);

Создать StationaryResults объект из решения.

results = createPDEResults(model,u)
results = 
  StationaryResults with properties:

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

Доступ к решению в узловых местоположениях.

u = results.NodalSolution;

Постройте график решения для z- компонент, являющийся компонентом 3.

pdeplot3D(model,'ColorMapData',u(:,3))

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