Разностные методы решения задач теплопроводности. Кузнецов Г.В - 148 стр.

UptoLike

148
{решаем СЛАУ в направлении оси Оу для определения поля
температуры на целом (n+1) временном слое}
for i:=1 to Nx do
begin
{определяем начальные прогоночные коэффициенты на основе нижнего
граничного условия, используя соотношения (20) при условии, что
q
1
= 0}
alfa[1]:=2.0*tau*lamda/(2.0*tau*lamda+ro*c*sqr(hy));
beta[1]:=ro*c*sqr(hy)*T[i,1]/(2.0*tau*lamda+ro*c*sqr(hy));
{цикл с параметром для определения прогоночных коэффициентов по
формуле (8)}
for j:= 2 to Ny-1 do
begin
{ai, bi, ci, fi – коэффициенты канонического представления СЛАУ с
трехдиагональной матрицей}
ai:=lamda/sqr(hy);
bi:=2.0*lamda/sqr(hy)+ro*c/tau;
ci:=lamda/sqr(hy);
fi:=-ro*c*T[i,j]/tau;
{alfa[j], beta[j] – прогоночные коэффициенты}
alfa[j]:=ai/(bi-ci*alfa[j-1]);
beta[j]:=(ci*beta[j-1]-fi)/(bi-ci*alfa[j-1]);
end;
{запоминаем значение температуры на правой границе с
промежуточного (n+1/2) временного слоя}
d:=T[i,Ny];
{цикл с постусловием, позволяющий итерационно вычислить значение
температуры на правой границе, вследстви
е наличия нелинейности в
этом граничном условии}
repeat
d1:=T[i,Ny];
{определяем значение температуры на правой границе на основе
правого граничного условия, используя соотношение (49)}
T[i,Ny]:=(ro*c*sqr(hy)*d+2.0*tau*(lamda*beta[Ny-1]+kapa2*hy*Te2
+eps1*sigma*hy*(sqr(sqr(Te2))-sqr(sqr(d1)))))/(ro*c*sqr(hy)
+2.0*tau*(lamda*(1-alfa[Ny-1])+kapa2*hy));
until abs(d1-T[i,Ny])<=eps; {значение температуры на правой
границе определили}
{используя соотношение (7) определяем неизвестное поле температуры
на целом (n+1) временном слое}
for j:= Ny-1 downto 1 do