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

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

малости относительного изменения HTFLX (следует обратить внимание на использование здесь модуля функции. Требуется, чтобы изменения были малы. Если же модуль не использовать, то критерий будет удовлетворяться даже в том случае, когда относительные изменения HTFLX будут большие, но отрицательные).

Этот частный пример был выбран для иллюстрации построения и применения критерия сходимости. Подобный критерий должен быть использован во всех нелинейных задачах. Однако в целях упрощения мы не будем использовать критерий сходимости в остальных примерах этой книги. Будем просто задавать переменную LAST, равной желаемому числу итераций (это число может быть найдено из некоторых предварительных расчетов). Только в этом примере проиллюстрирована проверка общего теплового баланса. Представление подобных балансов очень полезно. Рекомендуется включать их в те приложения, которые вы разрабатываете. Для полностью сошедшегося решения общий тепловой баланс должен в точности выполняться (с учетом погрешностей округления компьютера).

Общий тепловой баланс рассчитывается после удовлетворения критерия сходимости. Для его расчета сначала определяются суммарные тепловые потоки через четыре границы области. Затем заданный источниковый член интегрируется по всей незаштрихован-ной области (см. рис. 8.2). И наконец, определяется разность между выходящим тепловым потоком и суммарной генерацией тепла в области. Следует ожидать, что разница будет равна нулю (или будет очень малой).

После окончания расчетов на печать выводятся локальные тепловые потоки через четыре границы области, величины для определения теплового баланса и поле Т (I, J), которое печатается по вызову PRINT. Для прерывания вычислений полагается KSTOP = 1.

PHI. Заштрихованная область распознается с помощью оператора IF. Значения теплопроводности определяются по (8.2а). Источниковый член в незаштрихованной зоне линеаризован в соответствии с процедурой, описанной в п. 2.5.4. Определить и Sp можно следующим образом:

SQ = a + 2b{fpy, (8.3)

Sp-3bifpy. (8.3а)

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



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

АК1 - теплопроводность А:, [см. (8.2а)];

DIFF - относительная разность для критерия сходимости;

GEN - суммарное выделение тепла;

НЕ - коэффициент теплоотдачи на правой границе

[см. (8.2а)];

HTBAL - характеристика теплового баланса;

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

HTFLXO - значение HTFLX с предыдущей итерации;

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

НТОит - то же через границу расчетной области;

НТК - то же через правую границу;

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

ITRMIN - минимальное число выполняемых итераций;

QW - постоянная плотность теплового потока через

нижнюю границу; Т (I, J) - температура 7;

TINF - температура окружающей среды [см. (8.2)]; TW1, TW2 - температуры границ 7;,, и Г,,, [см. (8.2)].

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

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

SUBROUTINE ADAPT

с--.-------

с- EXAMPLE 2 - STEADY CONDUCTION WITH MIXED BOUNDARY CONDITIONS

С---

$ INCLUDE: COMMON

Q !ic**!!kk!**!****!*ii:**(kke*eii:ecc DIMENSION T(NI,NJ) EQUIVALENCE (F(1,1,1),T(1,1))

ENTRY GRID

HEADER=STEADY CONDUCTION WITH MIXED BOUNDARY 1 CONDITIONS

PRINTF=PRINT2

PLOTF=PL0T2

CALL DATA2(XL,1.,YL,0.5)

CALL INTA2(NCVLX,10,NCVLY,6)

CALL EZGRID

RETURN



ENTRY BEGIN

TITLE(1)= TEMPERATURE

CALL INTA5(KSOLVE(1),1,KPRINT(1),1, KPLOT(1),1, 1 ITRMIN,3,LAST,15)

CALL DATA6(AKl,5.,TWl,100.,TW2,20.,TINF,5., 1 HE,20.,QW,800.)

DO 100 J=1,M1

DO 100 1=1,Ll

T(I,J)=TW1 100 CONTINUE

DO 110 1=2,L2

IF(X(I).GT.0.7) T(I,M1)=TW2 lie CONTINUE HTFLXO=0. RETURN

ENTRY OUTPUT

HTFLX=0.

DO 200 J=2,M2

HTFLX=HTFLX+ARX(J)*FLUXI1(J, 1) 200 CONTINUE

DO 210 IUNIT=IU1,IU2

IF(ITER.EQ.O) WRITE(lUNIT,220) 220 FORMAT (2X, •ITER,3X, "ТО.З) , 4X, T(5,4) , 4X, T(10,7) 1 ,4X,HEAT FLOW (LEFT FACE))

WRITE(lUNIT,230) ITER,T(3,3),T(5,4),T(10,7),HTFLX

230 FORMAT(2X,12,2X,1P3E10.2,8X,1PE11.3) 210 CONTINUE

CREATE A CONVERGENCE CRITERION IF(ITER.LT.ITRMIN) RETURN DIFF=ABS((HTFLX-HTFLXO)/(HTFLX+SMALL)) HTFLXO=HTFLX

IF(DIFF.LE.1.E-5.0R.ITER.EQ.LAST) THEN CALCULATE QUANTITIES FOR OVERALL HEAT BALANCE HTR=0.

DO 231 J=2,M2

HTR=HTR+ARX(J)*FLUXL1(J,1)

231 CONTINUE HTL=HTFLX HTB=QW*XL HTT=0.

DO 232 1=2,L2

IF(X(I) .GT.0.7) HTT=HTT+XCV(I) -FLUXMl (1,1)

232 CONTINUE

HTOUT=-(HTL+HTR+HTB+HTT)





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