TimeDependentResults

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

Описание

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

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

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

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

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

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

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

Создание

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

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

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

Свойства

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Примеры

свернуть все

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

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

% 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])

Включайте геометрию в модель 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')

Введенный в R2016a
Для просмотра документации необходимо авторизоваться на сайте