Главная  Журналы 

0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 [ 47 ] 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99

8.5.2. Построение подпрограммы ADAPT

GRID. Для полярной системы координат (MODE = 3) значения х в вычислительной программе воспринимаются как углы 0, выраженные в радианах. Используем процедуру ZGRID и создадим одну зону по координате 0 и две зоны по координате г. Если MODE = 2 или 3, то должен быть задан радиус внутренней поверхности R (1).

BEGIN. В случае нестационарной задачи итерации представляют собой шаги по времени. В данном случае сделаем 35 шагов по времени с постоянно увеличивающимся значением А/. Впоследствии будет видно, что стационарное распределение температуры достигается примерно за 30 шагов.

Зададим значения соответствующих переменных [см. (8.8)- (8.8в)]. Переменной DT присвоено начальное значение А/, которое впоследствии будет увеличиваться. Массив температур Т (I, J) заполнен начальным значением Т. Для стационарных задач эти начальные значения представляют собой лишь начальное приближение, а для нестационарных задач заданные в BEGIN значения Т(1, J) для внутренних точек являются известными начальными температурами.

Наконец, на внутренней границе зададим температуру Г,.

OUTPUT. В нестационарных задачах новое поле температуры получается на каждом шаге по времени. Часто бывает неудобно вызывать PRINT для полного вывода каждого нового поля. Вместо этого можно после каждого временного шага выводить на печать лишь несколько полезных величин, а все поле распечатывать после некоторого числа шагов по времени.

В этом примере на каждом временном шаге выводится на печать четыре характерные температуры и суммарные тепловые потоки на внутренней и внешней поверхностях тела. При вычислении этих потоков величины XCV (I) *RV (2 ) и XCV(I) *RV(M1) представляют собой площади (при единичной «глубине») граней контрольных объемов на внещней и внутренней границе соответственно.

Во многих нестационарных задачах температура меняется очень быстро в начале процесса и довольно медленно в конце. Поэтому целесообразно использовать очень маленькие шаги по времени для расчета начальных изменений, а затем постепенно увеличивать их. Одним из удобных способов увеличения шага является применение выражения

DT = DT*1.2,

в соответствии с которым шаг по времени увеличивается на 20 % каждый раз. Можно начать расчет с очень малого значения DT, иметь



разумно небольшие значения А; в течение начального этапа и в итоге достигнуть существенно больших значений At, приемлемых для финального приближения к стационарному решению.

В этой задаче процедура PRINT вызывается только после заключительного шага по времени и на печать выводится только стационарное распределение температуры. Если вы желаете получить некоторое число промежуточных полей температуры, то для удобства нужно положить KPGR = О после первого вызова PRINT. Тогда информация о сетке не будет больше выводиться вместе с полями температуры.

PHI. Для решения нестационарных задач обычно требуется два дополнительных действия: во-первых, задание DT и, во-вторых, заполнение массива ALAM{I, J). Поэтому в процедуре PHI в дополнение к GAM(I,J) hSC(I,J) задается масс и в ALAM (I, J).

Определение граничных условий заключается в задании конвективного теплообмена на внешней границе, известного теплового потока на плоской поверхности и условия равенства нулю потока на вертикальной линии симметрии. Все эти величины задаются через соответствующие значения КВС, FLXC и FLXP.

8.5.3. Дополнительные имена на ФОРТРАНе

COND - теплопроводность к [см. (8.8в)];

НЕ - коэффициент теплоотдачи [см. (8.86)];

PI - число тс;

QB - постоянная плотность теплового потока [см. (8.86)];

QBTM - суммарный тепловой поток через нижнюю границу;

QTOP - то же через верхнюю границу;

RHOCP - объемная теплоемкость рс [см. (8.8в)];

SOURCE- мощность источника тепла в единице объема S, [см. (8.86)];

Т (I, j) - температура Т;

TI - температура на внутренней поверхности Г, [см. (8.8)];

TINF - температура окружающей среды [см. (8.8)];

TZERO - начальная температура Tq при t = О [см. (8.8)].

8.5.4. Листинг подпрограммы ADAPT

ссссссссссссссссссссссссссссссссссссссссссссссссссссссссс

SUBROUTINE ADAPT

с.---.

с--EXAMPLE 5 - UNSTEADY CONDUCTION WITH HEAT GENERATION

С---



$ INCLUDE: COMMON

DIMENSION T(NI,NJ) EQUIVALENCE (F(1,1,1),T(1,1))

ENTRY GRID

HEADER=UNSTEADY CONDUCTION WITH HEAT GENERATION

PRINTF=PRINTS

PL0TF=PLOTS

M0DE=3

PI=3.141S9

CALL INTAS(NZX,1,NCVX(1),10,NZY,2,NCVY(1),3,NCVY(2),9) CALL DATA4(XZONE(1),0.S*PI,POWRX(1),1.2,YZONE(1),0.2S, 1 YZ0NE(2),0.7S) CALL ZGRID R(1)=0.S RETURN

ENTRY BEGIN

TITLE(1)= TEMPERATURE

CALL INTA4(KSOLVE(1),1,KPRINT(1),1, KPLOT(1),1,LAST,3S) CALL DATA6(COND,1.,RH0CP,1. , SOURCE, 1000. , HE,S. , 1 QB,60.,DT,0.001)

CALL DATA3(TINF,20.,TZER0, SO. ,TI, 100. ) DO 100 J=1,M1 DO 100 1=1,LI T(I,J)=TZER0 100 CONTINUE

DO 110 1=2,L2 T(I, 1)=TI 110 CONTINUE RETURN

ENTRY OUTPUT QBTM=0. QTOP=0. DO 200 1=2,L2

QBTM=QBTM+XCV(I)* RV(2)* FLUXJ1(1,1) QT0P=QT0P+XCV(I)*RV(M1)*FLUXM1(1,1) 200 CONTINUE

DO 210 IUNIT=IU1,IU2

IF(ITER.EQ.0) WRITE(lUNIT, 220) 220 FORMAT(IX, ITER,3X, TIME,4X, •T(4,4) ,3X, T(10,4) , 1 2X,T(7,10),1X,T(10,10),4X,•QBTM,6X,QTOP)

WRITE(lUNIT,2 30) ITER,TIME,T(4,4),T(10,4), 1 T(7,10),T(10,10),QBTM,QT0P

230 FORMAT(2X,12,IX,1P5E9.2,1P2E10.2) 210 CONTINUE DT=DT*1.2

IF(ITER.EQ.LAST) THEN

CALL PRINT

CALL PLOT ENDIF





0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 [ 47 ] 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99