内容来源:B站计算传热学大叔
C++代码:
#include <iostream>
int main()
{
double length; //导热体的长度
double TL,TR; //左侧温度,右侧温度
double den,c,k; //物质密度,比热,导热系数
double s; //热源
double dt; //时间间隔
int n; //控制体的个数
int tstep,tmaxstep; //时间步,最大时间步
//---------------------------------------------
double dx;
double T0[11],T[11]; //从0-10共十一个元素,即左右边界两个体积为零的控制体和中间9个控制体,内部的元素对应11个温度的值
double ae0[11],aw0[11],ap0[11],ap1[11],b[11];
length=3;
TL=3;TR=5;
den=100;c=1000;k=10;
s=10;
dt=100;
n=5; //当n值取得很大时,t值不变会引起非物理现象,即ap0为负数
tmaxstep=10000;
//---------------------------------------------
int i;
dx=length/n;
for(i=2;i<n;i++)
{
ae0[i]=k/dx;
aw0[i]=k/dx;
ap0[i]=den*c*dx/dt-ae0[i]-aw0[i]; //如果n值很大可能出现负数的情况,非物理现象,解决办法dt减小。
ap1[i]=den*c*dx/dt;
b[i]=s*dx;
}
i=1;
ae0[i]