Теплопередача в блоке с полостью

В этом примере показано, как решить для распределения тепла в блоке с полостью.

Рассмотрите блок, содержащий прямоугольную трещину или полость. Левая сторона блока нагревается к 100 градусам по Цельсию. В правой стороне блока, тепловых потоков от блока до окружающего воздуха на постоянном уровне, например -10W/m2. Все другие контуры изолируются. Температура в блоке в то время начала t0=0 0 градусов. Цель состоит в том, чтобы смоделировать распределение тепла в течение первых пяти секунд.

crackg.m файл описывает геометрию блока.

thermalmodel = createpde('thermal','transient');
geometryFromEdges(thermalmodel,@crackg);

Постройте геометрию с метками ребра.

pdegplot(thermalmodel,'EdgeLabels','on');
ylim([-1,1])
axis equal

Примите, что блок имеет эти тепловые свойства.

thermalProperties(thermalmodel,'ThermalConductivity',1,...
                               'MassDensity',1,...
                               'SpecificHeat',1);

Установите граничные условия, чтобы иметь решение u равняйтесь 20 на левом крае (ребро 6), и g равняйтесь -10 на правом краю (ребро 1). Граничное условие в напряжении 1 соответствует постоянному тепловому потоку к внешнему виду. Тулбокс использует значение по умолчанию, изолирующее граничное условие для всех других контуров.

thermalBC(thermalmodel,'Edge',6,'Temperature',20);
thermalBC(thermalmodel,'Edge',1,'HeatFlux',-10);

Установите начальное значение 0 для температуры.

thermalIC(thermalmodel,0);

Установите времена решения быть от 0 до 5 на шагах 1/2.

tlist = 0:0.5:5;

Создайте mesh и решите задачу.

generateMesh(thermalmodel);
thermalresults = solve(thermalmodel,tlist);
T = thermalresults.Temperature;

Вычислите плотность потока тепла. Постройте решение в t = 5,0 секунд с изотермическими линиями с помощью контурного графика и постройте поток тепла векторное поле с помощью стрел.

[qx,qy] = evaluateHeatFlux(thermalresults);
pdeplot(thermalmodel,'XYData',T(:,end),'Contour','on',...
                     'FlowData',[qx(:,end),qy(:,end)],'ColorMap','hot')