blob: 9fd967698392a85c82542152200d249ed354b234 (
plain)
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
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
|
*************************************************************************
* case ASSBLY_CASEA *
* 295-group 1/8-th assembly in DRAGON -- 1-level scheme *
* production of a Multicompo file for TC_EVO and TC_XENON Donjon cases *
* Author: A. Canbakan *
*************************************************************************
! BEGIN STRUCTURES and MODULES
SEQ_ASCII _MyCompo :: FILE './MyCompo.txt' ;
LINKED_LIST MyCompo GEOSS GEON2 TRACKSS TRACKN2 LIBRARY LIBRARY2
SYS FLUX2 EDIOBJ DONNEES BURNUP ;
MODULE SYBILT: G2S: SALT: MCCGT: USS: ASM: FLU: EDI: UTL: DELETE:
END: EVO: GREP: LIB: COMPO: SPH: ABORT: ;
REAL Rcomb1 Rcomb2 Rcomb3 Rcomb4 R_int_TG R_ext_TG R_int_TI R_ext_TI
R_int_G R_ext_G Cote CoteL RmodeN1 Lame ;
SEQ_ASCII ASSBLY_CASEA :: FILE './ASSBLY_CASEA_g2s.txt' ;
SEQ_ASCII FIGASB_CASEA :: FILE './FIGASB_CASEA.ps' ;
SEQ_BINARY TF_EXC ;
INTEGER an2d := 8 ;
REAL densur := 20.0 ;
INTEGER ical ;
INTEGER istep maxstep istepNext maxautop iAutop iEdit := 0 20 0 16 1 1 ;
REAL delr BUbeg BUend Tbeg Tend := 0.01 0.0 0.0 0.0 0.0 ;
REAL Fuelpwr Kinf := 39.0 0.0 ;
REAL BU BUautop := 0.0 0.0 ;
STRING Library := "DLIB_J3" ;
PROCEDURE Geo_SS Geo_N2 Mix_UOX ;
PROCEDURE assertS ;
! END STRUCTURES AND MODULES
! BEGIN GEOMETRY
EVALUATE Rcomb4 := 0.4096 ;
EVALUATE Rcomb1 := 0.5 SQRT Rcomb4 * ;
EVALUATE Rcomb2 := 0.8 SQRT Rcomb4 * ;
EVALUATE Rcomb3 := 0.95 SQRT Rcomb4 * ;
EVALUATE R_int_TG := 0.5605 ;
EVALUATE R_ext_TG := 0.6225 ;
EVALUATE R_int_TI := 0.5725 ;
EVALUATE R_ext_TI := 0.6225 ;
EVALUATE R_int_G := 0.4180 ;
EVALUATE R_ext_G := 0.4750 ;
EVALUATE Cote := 1.26 ;
EVALUATE CoteL := 1.302 ;
EVALUATE Lame := CoteL Cote - ;
EVALUATE RmodeN1 := 0.670 ;
GEOSS := Geo_SS :: <<Rcomb1>> <<Rcomb2>> <<Rcomb3>> <<Rcomb4>>
<<R_int_TG>> <<R_ext_TG>> <<R_int_TI>>
<<R_ext_TI>> <<R_int_G>> <<R_ext_G>> <<Cote>>
<<CoteL>> ;
GEON2 := Geo_N2 :: <<Rcomb1>> <<Rcomb2>> <<Rcomb3>> <<Rcomb4>>
<<R_int_TG>> <<R_ext_TG>> <<R_int_TI>>
<<R_ext_TI>> <<R_int_G>> <<R_ext_G>> <<Cote>>
<<Lame>> ;
ASSBLY_CASEA FIGASB_CASEA := G2S: GEON2 ;
! END GEOMETRY
! BEGIN DECLARATION
DONNEES := UTL: ::
CREA
BURN <<maxstep>> =
0.0 10.0 30.0 50.0 75.0 150.0
250.0 375.0 500.0 625.0 750.0 1000.0
1250.0 1500.0 1750.0 2000.0 2500.0 3000.0
3500.0 4000.0
;
DONNEES := UTL: DONNEES ::
CREA
AUTOP <<maxautop>> =
10.0 150.0 250.0 375.0 500.0 625.0
750.0 1000.0 1250.0 1500.0 1750.0 2000.0
2500.0 3000.0 3500.0 4000.0
;
! END DECLARATION
! BEGIN TRACKING
! Level One
TRACKSS := SYBILT: GEOSS ::
EDIT 0
MAXR 500
MAXZ 1000000
TITLE 'TRACKING FOR ASSEMBLY SS'
QUA2 20 3
DP01
;
! MOC tracking for flux calculation
TRACKN2 TF_EXC := SALT: ASSBLY_CASEA ::
EDIT 3
ALLG BATCH 300
TSPC EQW2 <<an2d>> <<densur>> REND
;
TRACKN2 := MCCGT: TRACKN2 TF_EXC ::
CACB 4 AAC 80 TMT EPSI 1E-5 MCU 10000
;
! END TRACKING
************************************************************************
* BEGIN MyCompo INITIALIZATION *
************************************************************************
MyCompo := COMPO: ::
EDIT 10
STEP UP 'fuel'
MAXCAL 5
COMM 'Burnup-dependent assembly' ENDC
PARA 'BURN' IRRA
ISOT 20 U235 U238 Np239 Pu239 Pu240 Pu241 Pm147 Pm148 Pm148m Pm149
Sm147 Sm148 Sm149 Sm150 Nd146 Nd147 Nd148 Nd150 Xe135 I135
INIT
;
************************************************************************
* END MyCompo INITIALIZATION *
************************************************************************
! BEGIN LIBRARY READING
LIBRARY := Mix_UOX :: <<Library>> ;
! END LIBRARY READING
! BEGIN DEPLETION
WHILE istep maxstep < DO
! BEGIN FIRST LEVEL FLUX CALCULATION
EVALUATE istep := istep 1 + ;
ECHO "istep: " istep "/" maxstep ;
EVALUATE BUbeg Tbeg := BUend Tend ;
GREP: DONNEES :: GETVAL 'BURN' <<istep>> >>BUend<< ;
EVALUATE Tend := BUend Fuelpwr / ;
ECHO Tbeg ;
ECHO Tend ;
! BEGIN SELF-SHIELDING CALCULATION
IF istep 1 = THEN
LIBRARY2 := USS: LIBRARY TRACKSS :: EDIT 1 PASS 2 GRMIN 52 ARM
CALC REGI W1 U235 ALL
REGI W1 U236 ALL
REGI W1 Pu239 ALL
REGI W1 Pu240 ALL
REGI W1 Pu241 ALL
REGI W1 Pu242 ALL
ENDC ;
ELSE
GREP: DONNEES :: GETVAL "AUTOP" <<iAutop>> >>BUautop<< ;
GREP: DONNEES :: GETVAL "BURN" <<istep>> >>BU<< ;
IF BUautop BU = THEN
LIBRARY2 := USS: LIBRARY LIBRARY2 TRACKSS :: EDIT 1 PASS 2 ARM
GRMIN 52
CALC REGI W1 U235 ALL
REGI W1 U236 ALL
REGI W1 Pu239 ALL
REGI W1 Pu240 ALL
REGI W1 Pu241 ALL
REGI W1 Pu242 ALL
ENDC ;
EVALUATE iAutop := iAutop 1 + ;
ENDIF ;
ENDIF ;
! END SELF-SHIELDING CALCULATION
! BEGIN MOC FLUX CALCULATION
SYS := ASM: LIBRARY2 TRACKN2 TF_EXC :: ARM EDIT 1 ;
IF istep 1 = THEN
FLUX2 := FLU: LIBRARY2 SYS TRACKN2 TF_EXC ::
EDIT 1 TYPE B B1 SIGS ;
ELSE
FLUX2 := FLU: FLUX2 LIBRARY2 SYS TRACKN2 TF_EXC ::
EDIT 1 TYPE B B1 SIGS ;
ENDIF ;
SYS := DELETE: SYS ;
GREP: FLUX2 :: GETVAL 'K-INFINITY ' 1 1 1 >>Kinf<< ;
ECHO "+++ Burnup=" BUend " Kinf=" Kinf ;
************************************************************************
* SAVE BURNUP INFORMATION AT Tbeg *
************************************************************************
IF istep 1 = THEN
BURNUP LIBRARY2 := EVO: LIBRARY2 FLUX2 TRACKN2 ::
EDIT 0 SAVE <<Tbeg>> DAY POWR <<Fuelpwr>> ;
ELSE
BURNUP LIBRARY2 := EVO: BURNUP LIBRARY2 FLUX2 TRACKN2 ::
EDIT 0 SAVE <<Tbeg>> DAY POWR <<Fuelpwr>> ;
ENDIF ;
************************************************************************
* EDITION AND MyCompo FEEDING *
************************************************************************
GREP: DONNEES :: GETVAL "AUTOP" <<iEdit>> >>BUautop<< ;
GREP: DONNEES :: GETVAL "BURN" <<istep>> >>BU<< ;
IF istep 1 = BUautop BU = + THEN
EDIOBJ := EDI: FLUX2 LIBRARY2 TRACKN2 :: EDIT 1
MICR 34 U234 U235 U236 U237 U238 Np237 Np238 Np239 Pu238
Am243 Pu239 Pu240 Pu241 Pu242 Cm242 Cm243 Cm244 Cm245 Am241
Am242m Pm147 Pm148 Pm148m Pm149 Sm147 Sm148 Sm149 Sm150 Nd146
Nd147 Nd148 Nd150 Xe135 I135
MERG COMP
ADF 'FD_B' MIX 162 ENDM
COND 0.625
SAVE ON fuel
;
! Perform Selengut normalization of Multicompo contents
MyCompo := COMPO: MyCompo EDIOBJ BURNUP :: EDIT 5
STEP UP 'fuel'
SET <<Tbeg>> DAY
ICAL >>ical<<
;
MyCompo := SPH: MyCompo :: EDIT 1
STEP UP 'fuel' STEP AT <<ical>>
SELE_FD
;
EDIOBJ := DELETE: EDIOBJ ;
EVALUATE iEdit := iEdit 1 + ;
ENDIF ;
************************************************************************
* SOLUTION OF BATEMAN EQUATIONS *
************************************************************************
IF istep maxstep < THEN
EVALUATE istepNext := istep 1 + ;
GREP: DONNEES :: GETVAL 'BURN' <<istepNext>> >>BUend<< ;
EVALUATE Tend := BUend Fuelpwr / ;
IF istep 5 < THEN
BURNUP LIBRARY2 := EVO: BURNUP LIBRARY2 FLUX2 TRACKN2 ::
EDIT 0 DEPL <<Tbeg>> <<Tend>> DAY POWR <<Fuelpwr>> NOEX ;
ELSE
BURNUP LIBRARY2 := EVO: BURNUP LIBRARY2 FLUX2 TRACKN2 ::
EDIT 0 DEPL <<Tbeg>> <<Tend>> DAY POWR <<Fuelpwr>> ;
ENDIF ;
ENDIF ;
ENDWHILE ;
! END DEPLETION CALCULATION
************************************************************************
* EXPORT MULTICOMPO IN ASCII FORMAT *
************************************************************************
_MyCompo := MyCompo ;
assertS FLUX2 :: K-INFINITY 1 1.014208 ;
ECHO "test ASSBLY_CASEA_1level_multicompo completed" ;
END: ;
|