summaryrefslogtreecommitdiff
path: root/Dragon/data/CFC-CELL.x2m
blob: 6dc624b5df9da540f7205bdfef8f8ac328f31a0e (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
* DRAGON MAIN INPUT DECK
***********************************************************************
* Purpose:
* compute cross-sections for 2-D cell of CANDU reactor with the 
* feedback model using CFC.
* ~40 minutes execution time
*
* author:
* MAJID FASSI FEHRI 09/08/28
* CNSC
*
* Modified:
* Richard CHAMBON 11/03/23
* Ecole Polytechnique
*
* Notes:
* The properties values, which are perturbed for the FBM, are provided 
*  in the "PERTRB.c2m" and "POWER.c2m" files and the other ones in the 
*  "LIBRY.c2m" file. All the dimensions for the 2D cell geometry are 
*  given in the "GEOMTY.c2m" file, except for the PT creep values, 
*  which are in the "CREEP.c2m" file.  
*
*  Nburn   := 45 ;       Number of burnup steps
*  MaxBurn := 30000.0 ;  Maximum burnup (MWd/t)
*
***********************************************************************
MODULE END: CFC: DELETE: ;
PROCEDURE GEOMTY LIBRY FLUX FLUXP PERTRB POWER ;
PROCEDURE assertS ;
SEQ_BINARY TLINES TLINEF ;
LINKED_LIST TRKS TRKF COMPO COMPOR LIBR EDITN BURNUP EDIREF BRNREF
            CFLUX ;
SEQ_ASCII   CALC1  CALC2  CALC3  CALC4  CALC5  CALC6  CALC7
            CALC8  CALC9  CALC10 CALC11 CALC12 CALC13 CALC14
            CALC15 CALC16 CALC17 CALC18 CALC19 CALC20 CALC21
            CALC22 CALC23 CALC24 CALC25 CALC26 CALC27 CALC28  ;
SEQ_ASCII   FCALC1  FCALC2  FCALC3  FCALC4  FCALC5  FCALC6  FCALC7
            FCALC8  FCALC9  FCALC10 FCALC11 FCALC12 FCALC13 FCALC14
            FCALC15 FCALC16 FCALC17 FCALC18 FCALC19 FCALC20 FCALC21
            FCALC22 FCALC23 FCALC24 FCALC25 FCALC26 FCALC27 FCALC28    
            ;
SEQ_ASCII   FBMDT1  FBMDT2  FBMDT3  FBMDT4  FBMDT5  FBMDT6  FBMDT7 
            FBMDT8  FBMDT9  FBMDT10 FBMDT11 FBMDT12 FBMDT13 FBMDT14 
            FBMDT15 FBMDT16 FBMDT17 FBMDT18 FBMDT19 FBMDT20 FBMDT21 
            FBMDT22 FBMDT23 FBMDT24 FBMDT25 FBMDT26 FBMDT27 FBMDT28 
            FBMDT29 FBMDT30 FBMDT31 FBMDT32 FBMDT33 FBMDT34 FBMDT35
            ; 
LINKED_LIST ECALC1  ECALC2  ECALC3  ECALC4  ECALC5  ECALC6  ECALC7
            ECALC8  ECALC9  ECALC10 ECALC11 ECALC12 ECALC13 ECALC14
            ECALC15 ECALC16 ECALC17 ECALC18 ECALC19 ECALC20 ECALC21
            ECALC22 ECALC23 ECALC24 ECALC25 ECALC26 ECALC27 ECALC28
            CSDATA ;
SEQ_ASCII   FBMDT0 :: FILE './FBMDT0.txt' ;
SEQ_ASCII   AEDIT ABURN ;
INTEGER CALCU ICREEP Nburn ;
REAL    MaxBurn ;
REAL TFuel  TCool  TMode  DCool  DMode
     PCool PMode Bor  Xe   Sm  Np  Gad ;
REAL TFuelU TFuelD TCoolU TCoolD TModeU TModeD DCoolU DCoolD 
     DModeU DModeD PModeD BorU   XeU    SmU    NpU ;
REAL PModecfc PModeDcfc ;
REAL POW PowRef ;
REAL PowBundRef PowBundU PowBundI PowBundD ;

STRING FBMNAM ;
PERTRB ::  0
   >>TFuel<< >>TCool<< >>TMode<< >>DCool<< >>DMode<<
   >>PCool<< >>PMode<< >>Bor<< >>Xe<< >>Sm<< >>Np<<  
   >>Gad<< 
   >>TFuelU<< >>TFuelD<< >>TCoolU<< >>TCoolD<< >>TModeU<< >>TModeD<<
   >>DCoolU<< >>DCoolD<< >>DModeU<< >>DModeD<< >>PModeD<<  
   >>BorU<< >>XeU<< >>SmU<< >>NpU<<  ;

* Purity in fraction (instead of%) in CFC:
EVALUATE PModecfc := PMode 100.0 / ;
EVALUATE PModeDcfc := PModeD 100.0 / ;

POWER :: 0 
   >>POW<< >>PowRef<< 
   >>PowBundRef<< >>PowBundU<< >>PowBundI<< >>PowBundD<< ;

ECHO TFuel  TCool  TMode  DCool  DMode
     PCool PMode Bor  Xe   Sm  Np  Gad ;
ECHO TFuelU TFuelD TCoolU TCoolD TModeU TModeD DCoolU DCoolD 
     DModeU DModeD PModeD BorU   XeU    SmU    NpU ;
ECHO POW PowRef ;
ECHO PowBundRef PowBundU PowBundI PowBundD ;

* Number of burnup steps
EVALUATE Nburn := 3 ; (*replace by 45*)
* Maximum burnup (MWd/t)
EVALUATE MaxBurn := 10000.0 ; (*replace by 30000.0*)

EVALUATE  ICREEP := 0 ; 

* Calculation between 1 & 21: nominal & pertubated, fuel & reflector 
EVALUATE  CALCU := 1 ; 

TRKS TRKF TLINES TLINEF := GEOMTY :: <<ICREEP>> ;

WHILE CALCU 22 < DO

 ECHO "CALCULATION " CALCU " STARTED, Creep = " ICREEP ;

 LIBR := LIBRY :: <<CALCU>> ;

* Reference case & modified power cases
 IF CALCU 1 = CALCU 18 > + THEN
  EDITN COMPO  COMPOR LIBR BURNUP := FLUX  
                     LIBR TRKS TRKF TLINES TLINEF ::
                  <<CALCU>> <<Nburn>> <<MaxBurn>> ;
* Perturbated cases
 ELSE
  EDITN COMPO  COMPOR LIBR        := FLUXP  
        LIBR EDIREF BRNREF TRKS TRKF TLINES TLINEF ::
                  <<CALCU>> <<Nburn>>             ;
 ENDIF ;
* Save reference case
 IF CALCU 1 = THEN 
   BRNREF := BURNUP ;
   EDIREF := EDITN ;
 ENDIF ; 
* Save COMPO for CFC: module later on
 IF CALCU 1 = THEN 
  ECALC1 := COMPO ;
  ECALC22 := COMPOR ;
  CFLUX := EDITN :: STEP UP "REF-CASE0001" STEP UP MFLUXG
                    STEP UP CFLUX ;
  assertS CFLUX :: 'K-INFINITY' 1 1.120110 ;
  CFLUX := DELETE: CFLUX ;
  CFLUX := EDITN :: STEP UP "REF-CASE0003" STEP UP MFLUXG
                    STEP UP CFLUX ;
  assertS CFLUX :: 'K-INFINITY' 1 0.9561486 ;
  CFLUX := DELETE: CFLUX ;
 ELSEIF CALCU 2 = THEN
  ECALC2 := COMPO ;
 ELSEIF CALCU 3 = THEN
  ECALC3 := COMPO ;
 ELSEIF CALCU 4 = THEN
  ECALC4 := COMPO ;
 ELSEIF CALCU 5 = THEN
  ECALC5 := COMPO ;
 ELSEIF CALCU 6 = THEN
  ECALC6 := COMPO ;
  ECALC23 := COMPOR ;
 ELSEIF CALCU 7 = THEN
  ECALC7 := COMPO ;
  ECALC24 := COMPOR ;
 ELSEIF CALCU 8 = THEN
  ECALC8 := COMPO ;
 ELSEIF CALCU 9 = THEN
  ECALC9 := COMPO ;
 ELSEIF CALCU 10 = THEN
  ECALC10 := COMPO ;
  ECALC25 := COMPOR ;
 ELSEIF CALCU 11 = THEN
  ECALC11 := COMPO ;
  ECALC26 := COMPOR ;
 ELSEIF CALCU 12 = THEN
  ECALC12 := COMPO ;
  ECALC27 := COMPOR ;
 ELSEIF CALCU 13 = THEN
  ECALC13 := COMPO ;
  ECALC28 := COMPOR ;
 ELSEIF CALCU 14 = THEN
  ECALC14 := COMPO ;
 ELSEIF CALCU 15 = THEN
  ECALC15 := COMPO ;
 ELSEIF CALCU 16 = THEN
  ECALC16 := COMPO ;
 ELSEIF CALCU 17 = THEN
  ECALC17 := COMPO ;
 ELSEIF CALCU 18 = THEN
  ECALC18 := COMPO ;
 ELSEIF CALCU 19 = THEN
  ECALC19 := COMPO ;
 ELSEIF CALCU 20 = THEN
  ECALC20 := COMPO ;
 ELSEIF CALCU 21 = THEN
  ECALC21 := COMPO ;
 ENDIF ;

* Cleaning for next CALCU
 EDITN COMPO COMPOR LIBR := DELETE: EDITN COMPO COMPOR LIBR ;
 IF CALCU 1 = CALCU 18 > + THEN 
   BURNUP := DELETE: BURNUP ;
 ENDIF ; 

 ECHO "CALCULATION " CALCU " FINISHED, Creep = " ICREEP ;

 EVALUATE CALCU := CALCU 1 + ;

* end for CALCU
ENDWHILE ;

* Save COMPO in ASCII for CREEP = 0 for FBM: validation.
IF ICREEP 0 = THEN
CALC1  := ECALC1  ;
CALC2  := ECALC2  ;
CALC3  := ECALC3  ;
CALC4  := ECALC4  ;
CALC5  := ECALC5  ;
CALC6  := ECALC6  ;
CALC7  := ECALC7  ;
CALC8  := ECALC8  ;
CALC9  := ECALC9  ;
CALC10 := ECALC10 ;
CALC11 := ECALC11 ;
CALC12 := ECALC12 ;
CALC13 := ECALC13 ;
CALC14 := ECALC14 ;
CALC15 := ECALC15 ;
CALC16 := ECALC16 ;
CALC17 := ECALC17 ;
CALC18 := ECALC18 ;
CALC19 := ECALC19 ;
CALC20 := ECALC20 ;
CALC21 := ECALC21 ;
CALC22 := ECALC22 ;
CALC23 := ECALC23 ;
CALC24 := ECALC24 ; 
CALC25 := ECALC25 ;
CALC26 := ECALC26 ;
CALC27 := ECALC27 ;
CALC28 := ECALC28 ;
ABURN := BRNREF ;
AEDIT := EDIREF ;
ENDIF ;

* Building FBM database
EVALUATE FBMNAM := "C6_FBM_CRP" ICREEP I_TO_S + ;

CSDATA := CFC: 
        ECALC1  ECALC2  ECALC3  ECALC4  ECALC5  ECALC6  ECALC7
        ECALC8  ECALC9  ECALC10 ECALC11 ECALC12 ECALC13 ECALC14
        ECALC15 ECALC16 ECALC17 ECALC18 ECALC19 ECALC20 ECALC21
        ECALC22 ECALC23 ECALC24 ECALC25 ECALC26 ECALC27 ECALC28 ::
        EDIT 0
        INFOR <<FBMNAM>> DNAME FBMDATA 
        PWR   <<PowBundRef>> <<PowBundU>> <<PowBundI>> <<PowBundD>>
        TCOOL <<TCool>> <<TCoolU>> <<TCoolD>> 
        TMODE <<TMode>> <<TModeU>> <<TModeD>>
        TFUEL <<TFuel>> <<TFuelU>> <<TFuelD>>
        RHOM  <<DMode>>
        RHOC  <<DCool>>
        XIR   <<PModecfc>> <<PModeDcfc>> ; 

* Saving FBM database
 FBMDT0  := CSDATA ;

* Cleaning 
CSDATA
TRKS TRKF TLINES TLINEF EDIREF BRNREF 
ECALC1  ECALC2  ECALC3  ECALC4  ECALC5  ECALC6  ECALC7
ECALC8  ECALC9  ECALC10 ECALC11 ECALC12 ECALC13 ECALC14
ECALC15 ECALC16 ECALC17 ECALC18 ECALC19 ECALC20 ECALC21
ECALC22 ECALC23 ECALC24 ECALC25 ECALC26 ECALC27 ECALC28 
:= DELETE: 
CSDATA
TRKS TRKF TLINES TLINEF EDIREF BRNREF 
ECALC1  ECALC2  ECALC3  ECALC4  ECALC5  ECALC6  ECALC7
ECALC8  ECALC9  ECALC10 ECALC11 ECALC12 ECALC13 ECALC14
ECALC15 ECALC16 ECALC17 ECALC18 ECALC19 ECALC20 ECALC21
ECALC22 ECALC23 ECALC24 ECALC25 ECALC26 ECALC27 ECALC28 ;

END: ;

QUIT .