ВУЗ:
Составители:
147
begin
{определяем alfa начальный прогоночный коэффициент на основе левого
граничного условия, используя соотношение (48)}
alfa[1]:=2.0*tau*lamda/(2.0*tau*(lamda+kapa1*hx)+ro*c*sqr(hx));
{цикл с постусловием, позволяющий итерационно вычислять поле
температуры, вследствие наличия нелинейности в левом граничном
условии}
repeat
{определяем beta начальный прогоночный коэффициент на основе
левого граничного условия, используя соотношение (48), при этом
начинаем итерационный цикл по левому граничному условию}
d:=T[1
,j];
beta[1]:=(ro*c*sqr(hx)*Tn[1,j]+2.0*tau*kapa1*hx*Te1+2.0*tau
*eps1*sigma*hx*(sqr(sqr(Te1))-sqr(sqr(d))))
/(2.0*tau*(lamda+kapa1*hx)+ro*c*sqr(hx));
{цикл с параметром для определения прогоночных коэффициентов по
формуле (8)}
for i:= 2 to Nx-1 do
begin
{ai, bi, ci, fi – коэффициенты канонического представления СЛАУ с
трехдиагональной матрицей}
ai:=lamda/sqr(hx);
bi:=2.0*lamda/sqr(hx)+ro*c/tau;
ci:=lamda/sqr(hx);
fi:=-ro*c*Tn[i,j]/tau;
{alfa[i], beta[i] – прогоночные коэффициенты}
alfa[i]:=ai/(bi-ci*alfa[i-1]);
beta[i]:=(ci*beta[i-1]-fi)/(bi-ci*alfa[i-1]);
end;
{определяем значение температуры на правой границе, используя
соотношение (21) при условии, что q
2
= 0}
T[Nx,j]:=(ro*c*sqr(hx)*Tn[Nx,j]+2.0*tau*lamda*beta[Nx-1])
/(ro*c*sqr(hx)+2.0*tau*lamda*(1-alfa[Nx-1]));
{используя соотношение (7) определяем неизвестное поле температуры
на промежуточном (n+1/2) временном слое}
for i:= Nx-1 downto 1 do
T[i,j]:=alfa[i]*T[i+1,j]+beta[i];
until abs(d-T[1,j])<=eps; {значение температуры на левой границе
определили}
end; {поле температуры на промежуточном (n+1/2) временном слое
определили}
Страницы
- « первая
- ‹ предыдущая
- …
- 145
- 146
- 147
- 148
- 149
- …
- следующая ›
- последняя »