exponenta event banner

StationaryResults

Независимое от времени решение для УЧП и выведенные количества

Описание

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

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

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

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

  • Измерения массива NodalSolution, XGradients, YGradients и ZGradients позволяют вам извлечь решение и значения градиента для заданных индексов уравнения в системе УЧП.

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

Создание

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

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

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

Свойства

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

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

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

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

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

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

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

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

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

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

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

evaluateCGradientОцените поток решения для УЧП
evaluateGradientОцените градиенты решений для УЧП в произвольных точках
interpolateSolutionИнтерполируйте решение для УЧП произвольных точек

Примеры

свернуть все

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

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

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

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

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

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

Установите коэффициенты, которые представляют уравнения линейной эластичности. Смотрите 3-D Линейные уравнения Эластичности в Форме Тулбокса.

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

Создайте mesh.

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

Решите УЧП.

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
pdegplot(model,'FaceLabels','on')
view(-134,-32)
title('Bracket with Face Labels, Rear View')

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

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

Установите коэффициенты для устаревшего решателя, которые представляют уравнения линейной эластичности. Смотрите 3-D Линейные уравнения Эластичности в Форме Тулбокса.

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

Создайте mesh.

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