Вы находитесь на странице: 1из 15

Институт проблем механики

Российской Академии Наук

С. Д. Алгазин

ЧИСЛЕННЫЕ АЛГОРИТМЫ КЛАССИЧЕСКОЙ


МАТФИЗИКИ.

VIII. Трёхмерная кинетика ядерного реактора с учётом


обратных связей по температуре топлива.

Препринт № 725

Москва 2003 г.
Аннотация.
Рассматривается трёхмерная кинетика ядерного реактора с
учётом обратных связей по температуре топлива. Алгоритм устроен
таким образом, что громоздкие вычисления табулированы в
таблицах небольшого объёма, что позволяет опубликовать
компактные программы на Фортране.

The summary.

The three-dimensional kinetics of the nuclear reactor is considered in


view of feed-backs on temperature of fuel. The algorithm is arranged in
such a manner that the bulky evaluations are tabulated in tables of small
volume, that allows to publish the compact programs on a Fortran.

055(02)2  Институт проблем механики РАН 2003

2
Введение.

Это восьмой препринт серии объявленной в [1]. Предыдущие


препринты этой серии [1-7]. Препринт посвящён описанию
программного комплекса решения задачи кинетики ядерного
реактора. Подробное описание алгоритма приведено в [8].

I. О прогнозировании динамики ядерного реактора.


Описывается методика для численного решения уравнений
трехмерной кинетики ядерного реактора с обратной связью по
температуре топлива. Математически задача сводится к системе
трех дифференциальных уравнений: для плотности быстрых
нейтронов, плотности ядер предшественников запаздывающих
нейтронов и температуре топлива. Причем коэффициент в урав-
нении для плотности быстрых нейтронов зависит от температуры
топлива и, таким образом, рассматриваемая система
дифференциальных уравнений нелинейная.
Уравнение для плотности быстрых нейтронов есть следствие
закона сохранения количества нейтронов в произвольном объеме с
учетом процессов рождения и захвата нейтронов. Уравнение для
запаздывающих нейтронов есть следствие аналогичного закона
сохранения, но без учета диффузии медленных нейтронов. Наконец
в уравнении теплопроводности также не учитывается диффузия
тепла, а мощность источников тепла принимается
пропорциональной относительной плотности быстрых нейтронов.
Начальными условиями служат стационарные решения этих
уравнений, а граничное условие третьего рода описывает утечку
нейтронов из активной зоны ядерного реактора. Меняя параметр
3
управления u, входящий в коэффициент уравнения для быстрых
нейтронов, можно моделировать переход реактора в
нестационарный режим.
Предлагаемый численный алгоритм основан на оригинальной
дискретизации Лапласиана в цилиндрической области. Суть этого
подхода состоит в использовании структуры матрицы
конечномерной задачи, то есть строится матрица, которая обладает
свойствами аналогичными свойствам трехмерного оператора
Лапласа. При этом задача сводится к построению дискретизации
двумерного и одномерного операторов Лапласа. Если плоская
область, лежащая в основании цилиндра, гладкая, то для таких задач
имеются эффективные алгоритмы [8] . Счет по времени
осуществлялся по методике, описанной в [9].
Конкретные расчеты проводились для кругового цилиндра на
сетке из 60 узлов (4 сечения по высоте цилиндра и по 15 точек в
каждом плоском сечении) и доказали эффективность построенной
дискретизации.
Математическая постановка задачи. Пусть N = N (r, t) -
плотность нейтронов; С = С (r, t) - плотность ядер
предшественников запаздывающих нейтронов. Для их определения
имеем систему двух дифференциальных уравнений с начальными и
граничными условиями [10]:

∂N
(I.1) l ∞ = M 2 ∆N + (1 − β )r∞ N + λl ∞ C − N , r ∈ Ω,
∂t

∂C
(I.2) l ∞ = βr∞ N − λl ∞ C ,
∂t

(I.3) C t =0 = C 0 (r ), N t =0 = N0 (r ),

4
∂N
(I.4) + DN = 0, D > 0
∂n ∂Ω

в некоторой цилиндрической области Ω. Здесь коэффициент


реактивности r∞ = r∞ (r , T , u ) то есть зависит от пространственной
координаты r , температуры топлива Т и параметра управления u.
Для температуры топлива имеем уравнение
dT (r , t ) N (r , t )
(I.5) τ = −T (r , t ) + Tв (r ) + (T0 (r ) − Tв (r ))
dt N0 (r )

Здесь τ - характерное время остывания среды


(I.6) T |t =0 = T0 (r ).
Причем величины Т0(r) и Тв(r) связаны некоторой физической за-
висимостью. Смысл остальных параметров в уравнениях (I.1) - (I.4)
следующий: l ∞ - среднее время жизни быстрого нейтрона до его
поглощения; М -длина диффузии нейтрона ( М2 - площадь
миграции); β - доля запаздывающие нейтронов; λ- постоянная
распада (среднее количество запаздывающие нейтронов,
выпускаемых на 1 секунду осколками деления); 1/D - длина
экстраполяции;
В уравнениях (I.1), (I.2) принимается, что плотность нейтронов
N=N(r,t) и плотность ядер предшественников запаздывающих
нейтронов С=С(r,t) зависит от координаты r (точки внутри
цилиндра Ω) и времени t. Пусть Тx - характерное время, L -
характерный линейный размер. Обозначим
M 2Tx T T λ
a= 2 , b= x, c=β x, d = .
L l∞ l∞ l∞ Tx

За безразмерными зависимыми и независимыми переменными и


постоянной τ оставим прежние обозначения. Тогда вместо
уравнений (I.1) и (I.2) получим
5
∂N
(I.7) = a ∆N + (b(r∞ − 1) − cr∞ ) N + dC , r ∈ Ω,
∂t

∂C
(I.8) = cr∞ N − dC.
∂t

Внешний вид остальных уравнений не меняется.


Дискретизация лапласиана. Опишем структуру дискретного
оператора Лапласа в цилиндрической области Ω={S x [0,l]}, где S -
плоская область (основание цилиндра), l - высота цилиндра.
В цилиндрических координатах (ρ,φ,z) трехмерный оператор
Лапласа представляется в виде

d2
(I.9) ∆ = ∆ ρ ,ϕ + ,
dz 2

где Δρ,φ - плоский оператор Лапласа. Собственные значения


оператора Δ описываются формулой

λpq= μp +νq, p,q=1,2,…,


μp и νq собственные значения оператора Δρ,φ и оператора d2/dz2
соответственно, а собственная форма является произведением
соответствующие собственных форм.
Пусть h - матрица размера R x R, и В - матрица размера L x L
являются дискретными аналогами плоского оператора Лапласа Δρ,φ и
одномерного оператора d2/dz2 соответственно.
Эти матрицы получены в результате некоторой дискретизации
из соотношений следующего вида:
(I.10) hv=μv+Rh(v),
(I.11) Bw=νw+Rb(w),
где v и w векторы размерности R и L соответственно, a Rh и Rb -
погрешности дискретизации. Отметим, что в соотношениях (I.10) и

6
(I.11) μ и ν - точные собственные значения соответствующих
операторов, а v и w-точные значения в узлах сетки соответствующих
собственных форм. Рассмотрим матрицу
(I.12) H = IL ⊗ h + B⊗ IR,

где IL и IR - единичные матрицы, а символ ⊗ обозначает


кронекерово произведение матриц. Проверим, что собственный
вектор матрицы Н представляется в виде y=w ⊗ v Действительно,
(I.13) Hy=( I L ⊗ h + B ⊗ I R )( w ⊗ v)=(μ+ν)y+RH, RH=w ⊗ Rh+Rb ⊗ v.

Заметим, что соотношению (I.13) удовлетворяют точные значения


собственной функции оператора Δ в узлах сетки, а (μ+ν) -
соответствующее точное собственное значение. Таким образом,
матрица Н является дискретным аналогом пространственного
оператора Δ (дискретным оператором Лапласа).
Дискретизация по пространственным переменным и оценка
погрешности. Параметры N , С и Т обозначают векторы,
компоненты которых суть значения соответствующих функций в
узлах сетки.
В результате дискретизации Лапласиана краевая задача (I.1) -
(I.6) сводится к системе обыкновенных дифференциальных
уравнений

 
 
 N   a 11 a 12 0  N   R( N ) 
d     
(I.14)  C  =  a 21 − a 12 0  C  +  0 ,
dt       
 T   a 31 0 a 33  T   Tb l 
 
τ 

где l= (11...1)' - вектор размерности Q ( Q - число узлов сетки в


цилиндре); a11, a12, a21, a31 и a33 - матрицы размерности Q x Q .
Конкретный вид этих матриц пока не важен. Заметим, что a11 =

7
a11(Т), a21 = a21(Т) то есть матрицы зависят от решения. Остальные
матрицы от решения не зависят. Причем a11 - разреженная матрица,
а остальные матрицы - диагональные. Погрешность дискретизации
R=R(N) зависит от решения N. Получить для погрешности
дискретизации R конкретное выражение, можно разложив решение в
ряд по собственным функциям оператора Лапласа и оценив, исходя
из соотношения (I.13), погрешность определения собственных
функций. Практически решение N "почти" первая собственная
форма оператора Лапласа и поэтому приближается хорошо на
достаточно редкой сетке.
Отбросив погрешность дискретизации R(N) получим
приближенную конечную задачу.
Результаты расчетов. Конкретные расчеты производились для
кругового цилиндра с реальными ядерно-физическими константами
на сетке из 60 узлов. Причем по высоте выбиралось четыре сечения,
а в каждом сечении выбиралось 15 точек (3 окружности по 5 точек).
Дискретизация плоского оператора Лапласа производилась по
методике, описанной в [8]. Дискретизация по z также производилась
по методике, описанной в главе [8]. Счет по времени проводился
неявным методом. Проведенные расчеты показали высокую
эффективность описанной дискретизации.
Программа для описанной задачи реализована так, что использует
в качестве начальных данных небольшие массивы (матрицы
плоского и одномерного дискретных операторов Лапласа).
Следовательно, если расчеты проводятся на постоянной сетке, то
громоздкие вычисления по построению дискретного оператора
Лапласа можно затабулировать.
Например, для сетки из 4 х 3 х 5 = 60 узлов требуется два массива

8
по 9 чисел и один массив из 16 чисел, то есть всего требуется
хранить 34 числа. Написанную для этой задачи программу можно
рассматривать как расшифровывающий алгоритм. Если имеется
достаточно эффективная программа для счета по времени [9,11], то
расчеты можно производить на PC. Время счета сравнимо с
временем реального процесса. Таким образом, можно утверждать,
что решена задача табулирования решения трехмерных уравнений
кинетики ядерного реактора.

II. Описание программного комплекса.

Счёт по времени осуществляет программа FREZI2.

PROGRAM FREZI2
C
CL TPEXMEPHAЯ KИHETИKA ЯEPHOГO PEAKTOPA C УЧЕТОМ ОБРАТНЫХ СВЯЗЕИ
ПО
CL ТОПЛИВУ ( ВЕРСИЯ ОТ 30.06.89 )
C
IMPLICIT REAL*8 (A-H,O-Z)
CHARACTER FORM*14
DIMENSION Y(189)
COMMON /COMPHY/ A,B,C,DD,DM,E,ALFAT
COMMON /COMDAT/ HM,BA,U0,NT,NS
DIMENSION HM(2445),BA(90),DV(45),SV(30),U0(63)
COMMON /DAT0/ WB,RK0,W0(63)
COMMON/RRN/ RRN(63)
C
CL ЗAДАНИЕ CTAHДAPTHOГO BAPИAHTA ( ФИЗИKA )
C
CL ДИAMETP PEAKTOPA ( CM )
D = 400.D0
D = 355.D0
CL BЫCOTA PEAKTOPA ( CM )
H = 355.D0
CL CPEДHEE BPEMЯ ЖИЗHИ HEИTPOHA ( CEK )
RL = 1.D-3
CL ПЛОЩAДБ MИГPAЦИИ ( CM ** 2 )
RM2 = 62.D0
CL ДOЛЯ ЗAПAЗДЫBAЮЩИX HEИTPOHOB
BE = 0.005D0
CL BPEMЯ ЖИЗHИ ЗAПAЗДЫBAЮЩИX HEИTPOHOB ( CEK**(-1))
RLB = 1.D0/13.D0
CL НАЧАЛЬНАЯ ТЕМПЕРАТУРА ТОПЛИВА
TT0=1200.D0 CL
CL ТЕМПЕРАТУРА ВОДЫ

9
TB=300.D0
CL KOHCTAHTА В УРАВНЕНИИ ТЕПЛОПРОВОДНОСТИ ( СЕК )
TAU = 6.D0
C
CL XAPAKTEPHЫE BEЛИЧИHЫ
C
T = RL
DL = H
TEMP = TT0
C
CL ПEPEXOД K БEЗPAЗMEPHЫM BEЛИЧИHAM
C
D = D/DL
H = H/DL
WB = TB/TEMP C
CL БEЗPAЗMEPHЫE KOHCTAHTЫ C
B = T/RL A=(RM2/DL/DL)*B
C = BE*B
DD = RLB*T
ALFAT = TEMP*2.2D-5
E=T/TAU
RM2=RM2/DL/DL
C
CL PACЧET KOHCTAHTЫ B ГPAHИЧHOM УCЛOBИИ C
DM = 20.D0/D
DM = 17.75D0
WRITE(*,*) 'DM = ?', DM
C
NOUT = 4
OPEN (UNIT=4,FILE='NOUT')
WRITE(NOUT,*) 'DM = ', DM
C
CL CПEЦИФИKAЦИЯ ФOPMATA ДЛЯ BЫBOДA ДAHHЫX HA ПEЧATЬ
FORM='(1X,7G11.4)'
C
NSTURM = 1
OPEN (UNIT=1,FILE='NSTURM')
READ(NSTURM,*) DM1
IF (DM.NE.DM1) THEN
WRITE(*,*) 'UNIT NSTURM ? '
STOP
ENDIF
READ(1,*) NS
WRITE(*,*) 'NS = ',NS
N2=NS*NS
READ(1,*) (BA(I),I=1,N2)
NLAP3 = 2
OPEN(UNIT=2,FILE='NLAP3')
READ(NLAP3,*) DM1
IF (DM.NE.DM1) THEN
WRITE(*,*) 'UNIT NLAP3 ? '
STOP
ENDIF
READ(2,*) M,N
WRITE(*,*) 'M = ',M,'N = ',N
NT = M*N
NT2 = NT*NT
READ(2,*) (HM(I),I=1,NT2)
CL НАЧАЛЬНЫЕ ДАННЫЕ

10
READ(2,*) DLAMDA
READ(2,*) (DV(I),I=1,NT)
READ(1,*) SLAMDA
READ(1,*) (SV(I),I=1,NS)
RMU=-DLAMDA-SLAMDA
RK0=1.D0+RMU*RM2
WRITE (*,*) 'RK0 = ',RK0
WRITE (*,*) 'RL = ',RL
WRITE (*,*) 'RLB = ',RLB
NQ = NT * NS
NEQ = 3 * NQ
P=0.D0
IKL=1
DO 1 K=1,NS
DO 1 L=1,NT
Y(IKL)=DV(L)*SV(K)
U0(IKL)=Y(IKL)
P=P+U0(IKL)
Y(NQ+IKL)=U0(IKL)*BE*RK0/(RL*RLB)
1 IKL=IKL+1
P=P/NQ
DO 2 K=1,NQ
Y(2*NQ+K)=WB+(1200.D0/TEMP-WB)*P 2
W0(K)=Y(2*NQ+K)
WRITE(*,*) 'Начальные данные '
WRITE(*,FORM) Y(1),Y(10),Y(19),Y(28),Y(37),Y(46),Y(55),
* Y(64),Y(73),Y(82),Y(91),Y(100),Y(109),Y(118),
* Y(127),Y(136),Y(145),Y(154),Y(163),Y(172),Y(181)
C WRITE(*,*) 'RRN = ? '
C READ(*,*) (RRN(K),K=1,NQ)
WRITE (*,*) 'W = ?'
READ (*,*) W
DO K=1,NQ
RRN(K)=W
ENDDO
CALL STEP2 ( NEQ,Y )
WRITE (*,*) 'STEP2'
STOP
END

SUBROUTINE DIVKRC (H,B,NT,N,V,W)


IMPLICIT REAL*8 (A-H,O-Z)
DIMENSION H(NT,NT),B(N,N),V(1),W(1)
DO 1 I=1,N
IW=(I-1)*NT
DO 1 J=1,NT
P=0.D0
DO 2 L=1,NT
2 P=P+H(J,L)*V(IW+L)
1 W(IW+J)=P
DO 3 I=1,N
IW=(I-1)*NT
DO 3 J=1,NT
P=W(IW+J)
DO 4 L=1,N
4 P=P+B(I,L)*V(NT*(L-1)+J)
3 W(IW+J)=P
RETURN
END

11
SUBROUTINE FEX (NEQ,T,Y,YDOT)
IMPLICIT REAL*8 (A-H,O-Z)
DIMENSION Y(1),YDOT(1)
COMMON /COMDAT/ H,BA,U0,NT,N
DIMENSION H(2445),BA(90),U0(63),W0(63)
COMMON/COMPHY/ A,B,C,DD,DM,E,ALFAT
COMMON/DAT0/ WB,RK0,W0
EXTERNAL RN
CALL DIVKRC (H,BA,NT,N,Y,YDOT)
NQ=NT*N
DO 1 K=1,NQ
P=RK(Y(2*NQ+K),RN,T,K)
YDOT(K)=A*YDOT(K)+(B*(P-1.D0)-C*P)*Y(K)+DD*Y(NQ+K)
YDOT(NQ+K)=C*P*Y(K)-DD*Y(NQ+K)
1 YDOT(2*NQ+K)=E*((W0(K)-WB)/U0(K))*Y(K)-Y(2*NQ+K)*E+E*WB
RETURN
END

SUBROUTINE JEX(NEQ,T,Y,J,IAN,JAN,PDJ)
IMPLICIT REAL*8 (A-H,O-Z)
DIMENSION Y(1),IAN(1),JAN(1),PDJ(1)
COMMON/COMPHY/ A,B,C,DD,DM,E,ALFAT
COMMON/DAT0/ WB,RK0,W0
COMMON /COMDAT/ H,BA,U0,NT,N
DIMENSION H(2445),BA(90),U0(63),W0(63)
EXTERNAL RN
DO 100 I=1,NEQ 100 PDJ(I)=0.D0
NQ=NT*N
IF (J.GT.NQ) GO TO 20
JL=J/NT
IF(JL*NT.NE.J) JL=JL+1
JN=J-(JL-1)*NT
IL=0
C
P=RK(Y(2*NQ+J),RN,T,J)
DO 1 L=1,N
LL = (L-1)*NT
IF(L.EQ.JL) GO TO 10
PDJ(LL+JN)=A*BA((JL-1)*N+L)
GO TO 1 10 CONTINUE
DO 11 I=1,NT
PDJ(LL+I)=A*H((JN-1)*NT+I)
IF(I.NE.JN) GO TO 11
PDJ(LL+I)=PDJ(LL+I)+A*BA((JL-1)*N+JL)+(B-C)*P-B
C
11 CONTINUE
1 CONTINUE
PDJ(NQ+J)=C*P
PDJ(2*NQ+J)=E*(W0(J)-WB)/U0(J)
RETURN 20 CONTINUE
NQ2=NQ+NQ
IF(J.GT.NQ2) GO TO 30
PDJ(J)=DD
PDJ(NQ+J)=-DD
RETURN 30 CONTINUE
PDJ(J)=(B-C)*ALFAT*Y(J)
PDJ(NQ+J)=C*ALFAT*Y(J)
PDJ(2*NQ+J)=-E

12
RETURN
END

REAL FUNCTION RK*8 (W,RN,T,K)


IMPLICIT REAL*8 (A-H,O-Z)
COMMON /DAT0/ WB,RK0,W0
COMMON/COMPHY/ A,B,C,DD,DM,TAU,ALFAT
DIMENSION W0(63)
RK=RK0+ALFAT*(W-W0(K))+RN(T,K)
RETURN
END

REAL FUNCTION RN*8 (T,K)


IMPLICIT REAL*8 (A-H,O-Z)
COMMON/RRN/ RRN(63)
RN = RRN(K)
RETURN
END
C
SUBROUTINE STEP2 (NEQ,Y)
EXTERNAL FEX, JEX
DOUBLE PRECISION ATOL, RTOL, RWORK, T, TOUT, Y
DIMENSION Y(189), RWORK(10000), IWORK(3000)
DATA LRW/10000/, LIW/3000/
T = 0.0D0
TOUT = 0.1D0
ITOL = 1
RTOL = 1.0D-4
ATOL = 1.0D-6
ITASK = 1
ISTATE = 1
IOPT = 0
MF = 121
C
DO 40 IOUT = 1,5
CALL LSODES (FEX, NEQ, Y, T, TOUT, ITOL, RTOL, ATOL,
1 ITASK, ISTATE, IOPT, RWORK, LRW, IWORK, LIW, JEX, MF)
WRITE(6,30)T,IWORK(11),RWORK(11),
* Y(1),Y(10),Y(19),Y(28),Y(37),Y(46),Y(55),
* Y(64),Y(73),Y(82),Y(91),Y(100),Y(109),Y(118),
* Y(127),Y(136),Y(145),Y(154),Y(163),Y(172),Y(181)
30 FORMAT(//7H AT T =,E11.3,4X,
1 12H NO. STEPS =,I5,4X,12H LAST STEP =,E11.3/
2 ,7E10.3/ ,7E10.3/ ,7E10.3/ ,7E10.3/ )
IF (ISTATE .LT. 0) GO TO 80
TOUT = TOUT + 1.D2 40 CONTINUE
LENRW = IWORK(17)
LENIW = IWORK(18)
NST = IWORK(11)
NFE = IWORK(12)
NJE = IWORK(13)
NLU = IWORK(21)
NNZ = IWORK(19)
WRITE (6,70) LENRW,LENIW,NST,NFE,NJE,NLU,NNZ
70 FORMAT(//22H REQUIRED RWORK SIZE =,I4,15H IWORK SIZE =,I4/
1 12H NO. STEPS =,I4,12H NO. F-S =,I4,12H NO. J-S =,I4,
2 13H NO. LU-S =,I4/24H NO. OF NONZEROES IN J =,I5)
STOP
80 WRITE(6,90)ISTATE

13
90 FORMAT(///22H ERROR HALT.. ISTATE =,I3)
RETURN
END

Требуемые подпрограммы: DIVKRC, FEX, JEX, LSODES, RK, RN,


STEP2.
SUBROUTINE DIVKRC (H,B,NT,N,V,W)

Осуществляет умножение дискретного лапласиана


(I.12) на вектор V, результат в W.
Счёт по времени осуществляет подпрограмма STEP2. Для этого
используется программный комплекс LSODES (FEX, JEX –
программы пользователя (правая часть системы дифференциальных
уравнений и матрица разреженного якобиана)). Описание
составления этих подпрограмм см. описание LSODES (программный
комплекс LSODES доступен в сетевой библиотеке
htpp:/www.netlib.org.). TOUT – заданное время счёта. Программа
считывает начальные данные из файлов NSTURM и NLAP3. Эти
начальные данные можно запросить у автора (см. конец препринта).
Самая главная информация задаётся в подпрограмме RK. Это
изменение материального параметра в зависимости от температуры
топлива: k ∞ = k ∞0 + δk ∞ (r , t ) + w(r , t ) , k ∞ = 1 + µM 2 - стационарное значение
параметра, где μ – первое собственное значение оператора –Δ в
цилиндре, M2- площадь миграции, δk∞=αTδTT – изменение
материального параметра в зависимости от температуры топлива
(выражение дляα T –см. программу), w- управление (программа
запросит ввести его перед началом счёта).
III. Заключение. По поводу получения полных версий описанных
программ обращайтесь по электронному адресу: algazinsd@mail.ru
или на адрес Института проблем механики РАН, 119526, Москва,
проспект Вернадского д.101, к.1.
14
Алгазин Сергей Дмитриевич
Численные алгоритмы классической матфизики.
VIII. Трёхмерная кинетика ядерного реактора с учётом
обратных связей по температуре топлива.

Подписано к печати 11 .02.2003. Заказ № 10-2003. Тираж 50 экз.


________________________________________________________

Отпечатано на ризографе Института проблем механики РАН


119526, Москва, пр-т Вернадского, 101

15