这个例子说明了如何求解带有源项的热方程。
有单位源项的基本热方程为
该方程是在一个不连续的初始条件和边界温度为零的方形区域上求解的。
创建一个瞬态热模型。
thermalmodel = createpde (“热”,瞬态的);
创建一个正方形的几何图形为中心x = 0
和y = 0
边长为2。包括一个半径为0.4的与正方形同心圆。
R1 =[3、4、1;1;1;1;1;1;1;1];C1 =[1、0、0;0.4);C1 = [C1;zeros(length(R1) - length(C1),1)];gd = (R1, C1);科幻小说=“R1 + C1”;ns = char (R1的,“C1”)”;g = decsg (gd、科幻、ns);
将几何图形添加到模型中。
geometryFromEdges (thermalmodel g);
说明材料的热性能。
thermalProperties (thermalmodel“ThermalConductivity”,1,...“MassDensity”,1,...“SpecificHeat”1);
指定内部热源。
internalHeatSource (thermalmodel, 1);
绘制几何图形并显示边界条件定义中使用的边缘标签。
图pdegplot (thermalmodel,“EdgeLabels”,“上”,“FaceLabels”,“上”)轴([-1.1 1.1 -1.1 1.1]);轴平等的标题带有边缘和子域标签的几何图形
把正方形的四个外缘都设为零温度。
thermalBC (thermalmodel“边缘”1:4,“温度”, 0);
不连续的初始值是圆内为1,圆外为0。把初始温度设为零。
thermalIC (thermalmodel 0);
在圆内指定非零初始温度(面2)。
thermalIC (thermalmodel 1“脸”2);
生成并绘制一个网格。
msh = generateMesh (thermalmodel);图;pdemesh (thermalmodel);轴平等的
在0到0.1之间的20个点处找到解。
nframes = 20;tlist = linspace(0、0.1、nframes);thermalmodel.SolverOptions.ReportStatistics =“上”;结果=解决(thermalmodel tlist);
99个成功的步骤0个失败的尝试200个函数计算1个偏导数20个LU分解199个线性系统的解万博 尤文图斯
T = result.Temperature;
策划解决方案。
图Tmax = max(max(T));Tmin =最小(最小值(T));为J = 1:nframes pdeplot(热模型,“XYData”T (:, j),“ZData”T (:, j));caxis ([Tmin达峰时间]);轴([-1 1 -1 1 0 1]);Mv (j) = getframe;结束
要播放动画,请使用电影(Mv, 1)
命令。