TimeDependentResults

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

Описание

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

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

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

  • Время решения появляется в SolutionTimes свойство.

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

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

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

Создание

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

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

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

Свойства

расширить все

Конечный элемент mesh, возвращенный как объект Свойств FEMesh.

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

Типы данных: double
Поддержка комплексного числа: Да

Время решения, возвращенное как вектор действительных чисел. SolutionTimes является тем же самым, что и tlist вход в solvepde, или tlist вход в наследие parabolic или hyperbolic решатели.

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

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

Типы данных: double
Поддержка комплексного числа: Да

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

Типы данных: double
Поддержка комплексного числа: Да

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

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

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

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

Примеры

свернуть все

Решите параболическую задачу с 2-D геометрией.

Создайте и просмотрите геометрию: квадрат с круговым поддоменом.

% Square centered at (1,1)
rect1 = [3;4;0;2;2;0;0;0;2;2];
% Circle centered at (1.5,0.5)
circ1 = [1;1.5;.75;0.25];
% Append extra zeros to the circle
circ1 = [circ1;zeros(length(rect1)-length(circ1),1)];
gd = [rect1,circ1];
ns = char('rect1','circ1');
ns = ns';
sf = 'rect1+circ1';
[dl,bt] = decsg(gd,sf,ns);
pdegplot(dl,'EdgeLabels','on','FaceLabels','on')
axis equal
ylim([-0.1,2.1])

Figure contains an axes. The axes contains 11 objects of type line, text.

Включите геометрию в модель PDE.

model = createpde();
geometryFromEdges(model,dl);

Установите граничные условия, чтобы верхний и левые края находились при температуре 10.

applyBoundaryCondition(model,'dirichlet','Edge',[2,3],'u',10);

Установите начальные условия, чтобы квадратная область была при температуре 0, и круг был при температуре 100.

setInitialConditions(model,0);
setInitialConditions(model,100,'Face',2);

Задайте коэффициенты модели.

specifyCoefficients(model,'m',0,'d',1,'c',1,'a',0,'f',0);

Решите задачу от 0 до 1/2 раз в шагах 0,01.

generateMesh(model,'Hmax',0.05);
tlist = 0:0.01:0.5;
results = solvepde(model,tlist);

Постройте график решения для времени 0.02, 0.04, 0.1 и 0.5.

sol = results.NodalSolution;
subplot(2,2,1)
pdeplot(model,'XYData',sol(:,3))
title('Time 0.02')
subplot(2,2,2)
pdeplot(model,'XYData',sol(:,5))
title('Time 0.04')
subplot(2,2,3)
pdeplot(model,'XYData',sol(:,11))
title('Time 0.1')
subplot(2,2,4)
pdeplot(model,'XYData',sol(:,51))
title('Time 0.5')

Figure contains 4 axes. Axes 1 with title Time 0.02 contains an object of type patch. Axes 2 with title Time 0.04 contains an object of type patch. Axes 3 with title Time 0.1 contains an object of type patch. Axes 4 with title Time 0.5 contains an object of type patch.

Введенный в R2016a