summaryrefslogtreecommitdiff
path: root/Donjon/data/NCRtest.x2m
blob: b375a92238d0cdf4b8d9355f155df79e9f831ca2 (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
****************************************************************
*                                                              *
* Input file :  NCRtest.x2m                                    *
* Purpose    :  Full-core calculation for ACR-1000 like        *
*               using the NCR module for all XS                *
* Author     :  R. Chambon (2008/03)                           *
* based on   :  D. Sekki (2007/10)                             *
*                                                              *
****************************************************************
PROCEDURE    Pgeotest Pfmaptest Pburntest Pfluxtest Pdevtest ;
PROCEDURE    assertS ;
*  
MODULE       DELETE: GREP: USPLIT: TRIVAT: DSET: NCR: UTL: END: ABORT: ;
LINKED_LIST  GEOM TRACK MATEX FMAP FLUX POWER SYSTEM
             DEVICE MACRO1 MACFL MACRO2 MACRO KEFF ;
LINKED_LIST  LMCPO18 LMCPO20 ;
*--
* compo files:
*--
SEQ_ASCII  SMCPO18 :: FILE 'Compo18_all.res' ;
SEQ_ASCII  SMCPO20 :: FILE 'Compo20_all.res' ;
*--
* compo directories:
*--
STRING   NamFueld := "FUEL" ;
STRING   NamPARKEYF := "FTYPE" ;
STRING   NamFue20 := "CELL20" ;
STRING   NamFue18 := "CELL18" ;
STRING   NamModed := "MODE" ;
STRING   NamPARKEYM := "MTYPE" ;
STRING   NamRef20 := "CELL20" ;
STRING   NamRef18 := "CELL18" ;
STRING   NamZCR := "ZCU" ;
STRING   NamSOR := "SOR" ;
*--
* variables declaration:
*--
INTEGER   MaxReg := 1000000 ;
STRING    Method := "MCFD" ;
INTEGER   splitZ := 1 ;
INTEGER   degree quadr  := 1 1 ;
*
INTEGER   nbMix := 8 ;
INTEGER   nbRefl nbFuel := 2 2 ;
INTEGER   mFue20 mFue18 := 1 2 ;
INTEGER   mRef20 mRef18 := 3 4 ;
INTEGER   mZCRin mZCRot := 5 6 ;
INTEGER   mSORin mSORot := 7 8 ;
*
REAL      Pow := 3200. ;
REAL      Prec epsil := 1.E-5 1.E-5 ;
INTEGER   iEdit maxItr := 5 2 ;
STRING    Btyp := "TIMAV-BURN" ;
REAL      Eps Keff Bexit ;
INTEGER   nbItr ;
*---------------------------------------------------------------
*
*                 EQUILIBRIUM-CORE CALCULATION
*                 ============================
*--
* Save Multicompo as a linked_list
*--
LMCPO18 := SMCPO18 ;
LMCPO20 := SMCPO20 ; 
*--
* geometry construction:
*--
GEOM := Pgeotest :: <<splitZ>> ;
*--
* link material index and geometry:
*--
GEOM MATEX := USPLIT: GEOM :: EDIT 0  NGRP 2
              MAXR <<MaxReg>>
              NREFL <<nbRefl>> RMIX <<mRef20>> <<mRef18>>
              NFUEL <<nbFuel>> FMIX <<mFue20>> <<mFue18>> ;
*--
* numerical discretization:
*--
IF Method "MCFD" = THEN
   TRACK := TRIVAT: GEOM :: EDIT 1
            MAXR <<MaxReg>> MCFD <<degree>> ;
ELSEIF Method "PRIM" = THEN
   TRACK := TRIVAT: GEOM :: EDIT 1
            MAXR <<MaxReg>> PRIM <<degree>> ;
ELSEIF Method "DUAL" = THEN
   TRACK := TRIVAT: GEOM :: EDIT 1
            MAXR <<MaxReg>> DUAL <<degree>> <<quadr>> ;
ENDIF ;
GEOM := DELETE: GEOM ;
*--
* macrolib for reflector:
*--
MACRO1 := NCR: LMCPO18 LMCPO20 :: 
  EDIT 0 MACRO NMIX <<nbMix>> 
   COMPO LMCPO20 <<NamModed>>
      MIX <<mRef20>> 
        SET <<NamPARKEYM>> <<NamRef20>> ENDMIX
   COMPO LMCPO18 <<NamModed>>
      MIX <<mRef18>> 
        SET <<NamPARKEYM>> <<NamRef18>> ENDMIX
   COMPO LMCPO18 <<NamFueld>>  
      MIX <<mZCRin>>
        SET <<NamPARKEYF>> <<NamZCR>> 
        SET BURN 6633.69434
        SET X-COOL 1.0
        SET T-COOL 5.731600E+02
        SET T-FUEL 9.601600E+02
        SET RDTPOS 1.0
        SET RDDPOS 1.0
      ENDMIX
      MIX <<mZCRot>>
        SET <<NamPARKEYF>> <<NamZCR>> 
        SET BURN 6633.69434
        SET X-COOL 1.0
        SET T-COOL 5.731600E+02
        SET T-FUEL 9.601600E+02
        SET RDTPOS 1.0
        SET RDDPOS 0.0
      ENDMIX
      MIX <<mSORin>>
        SET <<NamPARKEYF>> <<NamSOR>> 
        SET BURN 6633.69434
        SET X-COOL 1.0
        SET T-COOL 5.731600E+02
        SET T-FUEL 9.601600E+02
        SET RDTPOS 1.0
        SET RDDPOS 1.0
      ENDMIX
      MIX <<mSORot>>
        SET <<NamPARKEYF>> <<NamSOR>> 
        SET BURN 6633.69434
        SET X-COOL 1.0
        SET T-COOL 5.731600E+02
        SET T-FUEL 9.601600E+02
        SET RDTPOS 1.0
        SET RDDPOS 0.0
      ENDMIX 
;
*--
* device specification:
*--
DEVICE MATEX := Pdevtest MATEX ::
     <<mZCRin>> <<mZCRot>> <<mSORin>> <<mSORot>> ;
*--
* fuel-map definition:
*--
FMAP MATEX := Pfmaptest MATEX ;
*--
* average exit burnups:
*--
FMAP := Pburntest FMAP :: <<Btyp>> ;
*--
* set ZCUs to nominal position:
*--
DEVICE := DSET: DEVICE :: EDIT 1
          ROD-GROUP 1 LEVEL 0.0 END
          ROD-GROUP 2 LEVEL 0.5 END
          ROD-GROUP 3 LEVEL 1.0 END ;
*---------------------------------------------------------------
*                  TIME-AVERAGE CALCULATION
*---------------------------------------------------------------
*--
* axial-power convergence loop:
*--
FMAP MATEX := Pfluxtest FMAP MATEX MACRO1 DEVICE
                  TRACK LMCPO18 LMCPO20 ::               
         <<NamFueld>> <<NamPARKEYF>>
         <<mFue20>> <<mFue18>> <<NamFue20>> <<NamFue18>>
         <<Pow>> <<epsil>> <<Prec>> <<maxItr>> <<iEdit>>
         >>nbItr<< >>Keff<< >>Bexit<< ;        
*--
* last parameters:
*--
ECHO "---- last parameters ---- " ;
ECHO "Number of Iterations " nbItr ;
ECHO "CORE-AVERAGED EXIT BURNUP : " Bexit ;
ECHO "RESULTING K-EFF           : " Keff  ;
KEFF := UTL: :: CREA 'K-EFFECTIVE' 1 = <<Keff>> ;
assertS KEFF :: 'K-EFFECTIVE' 1 1.004893 ;
END: ;
QUIT .