exponenta event banner

TimeDependentResults

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

Описание

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

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

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

  • Время решения отображается в SolutionTimes собственность.

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

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

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

Создание

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

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

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

Свойства

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Примеры

свернуть все

Решите параболическую задачу с 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