summaryrefslogtreecommitdiff
path: root/Dragon/data/rep900_het_gff_jef2p2.x2m
blob: 5419f80502b5c926f8e7b70cc39265ee0a1790d3 (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
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
*----
*  Nom           : rep900_het_gff_jef2p2.x2m
*  Auteur        : Benjamin Toueg
*  modified      : R. Chambon
*                   Modified for GFF and Heterogenous multicompo
*  PWR branch calculation and production of a Multicompo
*  Le Tellier extended type
*----
*  Define STRUCTURES and MODULES used
*----
************************************************************************
* BEGIN DECLARATION                                                    *
*
INTEGER istep iautop ;
LINKED_LIST
  GEOSS GEON1 GEON2 TRACKSS TRACKN1 TRACKN2 FLUX1 LIBRARY LIBRARY2
  LIBEQ DONNEES MICLIB BURN164 FLUX2 LIBHOM EDIOBJ COMPO ALLGEO 
  EDIOB2 ;
SEQ_BINARY TRKFILN2 ;
SEQ_ASCII  ACOMPO     ABURN164    ADONNEES      AALLGEO :: 
   FILE './ACOMPO' './ABURN164' './ADONNEES' './AALLGEO' ;
MODULE
  GEO: SYBILT: EXCELT: MCCGT: DELETE: GREP: NXT: BIVACT: END:
  EVO: UTL: COMPO: ABORT: ;
PROCEDURE
  Geo_N1_32 Geo_N2_32H Geo_SS_32 GetDim ConcLIBEQ Mix_UOX_32
  ConcLIBRARY2 Homogenize CalcFluxH GeoHom IniCompo AddCompo
  ;
PROCEDURE assertS ;

*----
*  Choix des options de calcul
*----
STRING TypeCal := "Public" ; ! EDF with APOLIB ou Public with DRAGLIB
STRING Fuel := "UOX"    ; ! UOX/MOX
STRING TypeCompo := "All" ; ! One of the following choice:
 ! PinByPin, Assembly, Heter1, Heter2, All 
INTEGER NbRegions := 32 ; ! 32 pour le MOX, 20 ou 32 pour l'UOX
STRING Library := "DLIB_J2" ;
STRING SelOpt := "NONE" ; ! Selengut option for SPH: module
 ! NONE / STD / SELE_FD / SELE_GAP / EDF  (see IGE335 for details)
STRING Gff := "Yes" ; ! Store GFF
 ! Yes / No
*----
*  Calculation data
*----
REAL Kinf1 Kinf2 Keff2 B2 ;
INTEGER iBoreMax := 1 ;   !5
INTEGER iAutopMax := 8 ;  !8
REAL Rcomb1 Rcomb2 Rcomb3 Rcomb4 
     R_int_TG R_ext_TG R_int_TI R_ext_TI R_int_G R_ext_G 
     Cote Lame CoteL 
     RmodeN1 RmodeN2 
     R_ext_G2 R_ext_TGm R_ext_TIm
     N_U5_UOX N_U5_MOX
     N_Pu8 N_Pu9 N_Pu0 N_Pu1 N_Pu2 N_Am1
     densU_UOX densU_MOX densPu_MOX
     teneur1_Pu teneur2_Pu teneur3_Pu
     temp_comb temp_mode dens_mod
     temp_comb_0 temp_mode_0 dens_mod_0 pbore ;
REAL Tbeg Tend BUbeg BUend BUnextSS ;
REAL Fuelpwr := 38.425 ; ! W/g ou kW/kg ou MW/t
STRING NameDirAss NameDirPin NameDirHt1 NameDirHt2 :=
       "EDI2A"    "EDI2B"    "EDI2C"    "EDI2D"    ;

************************************************************************
*  BEGIN VALUES EVALUATION                                             *
*
REAL pbore_0 := 600. ; ! natural boron concentration in ppm
IF TypeCal "Public" = THEN
  GetDim ::
    >>Rcomb1<< >>Rcomb2<< >>Rcomb3<< >>Rcomb4<<
    >>R_int_TG<< >>R_ext_TG<< >>R_int_TI<< >>R_ext_TI<<
    >>R_int_G<< >>R_ext_G<< >>Cote<< >>Lame<< >>CoteL<<
    >>RmodeN1<< >>RmodeN2<< >>R_ext_G2<< >>R_ext_TGm<< >>R_ext_TIm<<
    >>N_U5_UOX<< >>N_U5_MOX<< >>N_Pu8<< >>N_Pu9<< >>N_Pu0<<
    >>N_Pu1<< >>N_Pu2<< >>N_Am1<< >>densU_UOX<< >>densU_MOX<<
    >>densPu_MOX<< >>teneur1_Pu<< >>teneur2_Pu<< >>teneur3_Pu<<
    >>temp_comb_0<< >>temp_mode_0<< >>dens_mod_0<< ;
ELSE
  ECHO "TypeCal incorrect" ;
  ABORT: ;
ENDIF ;
*
*  END VALUES EVALUATION                                               *
************************************************************************

INTEGER maxstep ;
IF Fuel "UOX" = THEN
  EVALUATE maxstep := 1 ;
!  EVALUATE maxstep := 73 ;
  DONNEES := UTL: ::
    CREA
      burn <<maxstep>> =
 0.0
!        0.0    9.37498    18.7500    37.4999    74.9999    150.000
!    237.500    325.000    412.500    500.000    625.000    750.000
!    1000.00    1250.00    1500.00    1750.00    2000.00    2500.00
!    3000.00    3500.00    4000.00    4500.00    5000.00    5500.00
!    6000.00    6500.00    7000.00    7500.00    8000.00    8500.00
!    9000.00    9500.00    10000.0    10500.0    11000.0    11500.0
!    12000.0    12500.0    13000.0    13500.0    14000.0    14500.0
!    15000.0    15500.0    16000.0    16500.0    17000.0    17500.0
!    18000.0    18500.0    19000.0    19500.0    20000.0    22000.0
!    24000.0    26000.0    28000.0    30000.0    32000.0    34000.0
!    36000.0    38000.0    40000.0    42000.0    44000.0    46000.0
!    48000.0    50000.0    52000.0    54000.0    56000.0    58000.0
!    60000.0
    ;
ELSE
  ECHO "Fuel incorrect" ;
  ABORT: ;
ENDIF ;
DONNEES := UTL: DONNEES ::
  CREA
    autop <<iAutopMax>> =
          0.0    4000.0    8000.0   12000.0   24000.0   36000.0
      48000.0   60000.0
  ;

*
*  END DECLARATION                                                     *
************************************************************************

************************************************************************
*  BEGIN GEOMETRY                                                      *
*
GEOSS := Geo_SS_32 :: <<Rcomb1>> <<Rcomb2>> <<Rcomb3>> <<Rcomb4>>
                      <<R_int_TG>> <<R_ext_TG>> <<R_int_TI>> 
                      <<R_ext_TI>> <<R_int_G>> <<R_ext_G>> <<Cote>>
                      <<CoteL>> ;

GEON1 := Geo_N1_32 :: <<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>> ;

GEON2 := Geo_N2_32H :: <<Rcomb1>> <<Rcomb2>> <<Rcomb3>> <<Rcomb4>>
                      <<R_int_TG>> <<R_ext_TG>> <<R_int_TI>> 
                      <<R_ext_TI>> <<R_int_G>> <<R_ext_G>> <<Cote>>
                      <<Lame>> <<RmodeN2>>
                      <<R_ext_G2>> <<R_ext_TGm>> <<R_ext_TIm>> ;

ALLGEO := GeoHom :: <<Cote>> <<CoteL>> ;

*
*  END GEOMETRY                                                        *
************************************************************************

************************************************************************
*  BEGIN TRACKING                                                      *
*
! Self-shielding
TRACKSS := SYBILT: GEOSS ::
  EDIT 0
  MAXR 500
  MAXZ  1000000
  TITLE 'TRACKING FOR ASSEMBLY SS'
  QUA2 20 3
  DP01 ;
! Level One
TRACKN1 := SYBILT: GEON1 ::
  EDIT 0
  MAXR 500
  MAXZ  1000000
  TITLE 'TRACKING FOR ASSEMBLY N1'
  QUA2 20 3
  DP01 ;
! Level two
TRACKN2 TRKFILN2 := NXT: GEON2 ::
  EDIT 2
  ALLG
  TSPC 20 20.0 ;
TRACKN2 := MCCGT: TRACKN2 TRKFILN2 GEON2 ::
  EDIT 0 LCMD 2
  AAC 150 TMT SCR 0 EPSI 1E-4 STIS -1
  MAXI 1 KRYL 0 HDD 0.0 ;

*
*  END TRACKING                                                        *
************************************************************************

************************************************************************
*  BEGIN COMPO INITIALIZATION                                          *
*
STRING NameDir ;

COMPO := IniCompo :: <<TypeCompo>> <<Gff>> ;
*
*  END COMPO INITIALIZATION                                            *
************************************************************************

************************************************************************
*  REFERENCE BURNUP LOOP WITH DEPLETION                                *
*
*
*  BEGIN LIBRARY READING                                               *
*
IF TypeCal "Public" = THEN
  IF Fuel "UOX" = THEN
      LIBRARY := Mix_UOX_32 ::
      <<Library>> <<dens_mod_0>> <<pbore_0>> <<N_U5_UOX>> <<densU_UOX>>
      <<temp_comb_0>> <<temp_mode_0>> ;
  ELSE
      ECHO "Probleme dans la lecture des librairies" ;
      ABORT: ;
  ENDIF ;
ENDIF ;
!************************************************************************
!*  INITIAL TWO-LEVEL FLUX CALCULATION                                  *
!************************************************************************
EVALUATE istep iautop := 1 1 ;
EVALUATE Tend BUend := 0.0 0.0 ;
GREP: DONNEES :: GETVAL 'autop' <<iautop>> >>BUnextSS<< ;
ECHO "BUnextSS=" BUnextSS ;
ECHO "call CalcFluxH(1)" ;
LIBRARY2 FLUX1 FLUX2 BURN164 LIBEQ := CalcFluxH
    LIBRARY TRACKSS TRACKN1 TRACKN2 TRKFILN2 :: <<istep>> <<Fuel>>
    <<NbRegions>> <<BUend>> <<BUnextSS>> <<Fuelpwr>> ;
EVALUATE iautop := iautop 1 + ;
GREP: DONNEES :: GETVAL 'autop' <<iautop>> >>BUnextSS<< ;

!************************************************************************
!*  2-GROUPS ENERGY CONDENSATION AND HOMOGENISATION                     *
!************************************************************************
! 
!************************************************************************
!************************************************************************
!************************************************************************
!
!
!************************************************************************
!*  INITIAL MULTICOMPO FEEDING                                          *
!************************************************************************
ECHO "DEBUG avant AddCompo" ;

COMPO := AddCompo 
  COMPO FLUX2 LIBEQ TRACKN2 GEON2 ALLGEO BURN164 LIBRARY ::
  <<Library>> <<SelOpt>> <<TypeCompo>> <<Gff>> 
  <<pbore_0>> <<dens_mod_0>> <<Tend>> ;
************************************************************************
************************************************************************
************************************************************************

************************************************************************
*  DEPLETION - HOMOGENISATION                                          *
************************************************************************
WHILE istep maxstep < DO
  EVALUATE istep := istep 1 + ;
  ECHO "istep vaut" istep "sur" maxstep ;

  EVALUATE BUbeg Tbeg := BUend Tend ;
  GREP: DONNEES :: GETVAL 'burn' <<istep>> >>BUend<< ;
  EVALUATE Tend := BUend Fuelpwr / ;

  BURN164 LIBEQ := EVO: BURN164 LIBEQ FLUX2 TRACKN2 ::
    EDIT 0 DEPL <<Tbeg>> <<Tend>> DAY POWR <<Fuelpwr>>
  ;

  LIBHOM := Homogenize FLUX2 LIBEQ TRACKN2 :: <<NbRegions>> ;
  LIBRARY2 := ConcLIBRARY2 LIBRARY2 LIBHOM :: <<NbRegions>> ;
  LIBHOM LIBEQ := DELETE: LIBHOM LIBEQ ;
  ECHO "BURNUP_sortie = " BUend "Next SS = " BUnextSS ;

************************************************************************
*  TWO-LEVEL FLUX CALCULATION                                          *
************************************************************************
  ECHO "call CalcFluxH(2)" ;
  LIBRARY2 FLUX1 FLUX2 BURN164 LIBEQ := CalcFluxH LIBRARY2 FLUX1 FLUX2
    BURN164 LIBRARY TRACKSS TRACKN1 TRACKN2 TRKFILN2
    :: <<istep>> <<Fuel>> <<NbRegions>> <<BUend>> <<BUnextSS>>
       <<Fuelpwr>> ;
  IF BUend BUnextSS - ABS 1E-5 < THEN
   EVALUATE iautop := iautop 1 + ;
   IF iautop iAutopMax <= THEN
      GREP: DONNEES :: GETVAL 'autop' <<iautop>> >>BUnextSS<< ;
   ENDIF ;
  ENDIF ;

************************************************************************
*  2-GROUPS ENERGY CONDENSATION AND HOMOGENISATION                     *
************************************************************************
************************************************************************
*  MULTICOMPO FEEDING                                                  *
************************************************************************
  COMPO := AddCompo 
    COMPO FLUX2 LIBEQ TRACKN2 GEON2 ALLGEO BURN164 LIBRARY  ::
    <<Library>> <<SelOpt>> <<TypeCompo>> <<Gff>> 
    <<pbore_0>> <<dens_mod_0>> <<Tend>>
  ;

ENDWHILE ; ! reference burnup loop

assertS FLUX2 :: 'K-INFINITY' 1 1.297254 ;
LIBRARY LIBRARY2 LIBEQ := DELETE: LIBRARY LIBRARY2 LIBEQ ;
FLUX1 FLUX2 := DELETE: FLUX1 FLUX2 ;
*
*  END OF REFERENCE BURNUP LOOP WITH DEPLETION                         *
************************************************************************
************************************************************************
************************************************************************
ABURN164 := BURN164 ;
BURN164 := DELETE: BURN164 ;

************************************************************************
*  EXPORT MULTICOMPO IN ASCII FORMAT                                   *
************************************************************************
ACOMPO := COMPO ;
ADONNEES := DONNEES ;
AALLGEO := ALLGEO ;
*----
*  End of calculation - Memory release
*----

GEOSS GEON1 GEON2 := DELETE: GEOSS GEON1 GEON2 ;

TRACKSS TRACKN1 TRACKN2 TRKFILN2 := DELETE:
TRACKSS TRACKN1 TRACKN2 TRKFILN2 ;

ECHO "test rep900_het_gff_jef2p2 completed" ;
END: ;
QUIT .