blob: ee8c061e9ff08884fa53608adb2d56512190046d (
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
|
*----
* TEST CASE ene6103
*
* REF: A. Hebert, "Applied Reactor Physics", Presses Internationales
* Polytechnique, Problem 5.12 (2009).
*
*----
* Define STRUCTURES and MODULES used
*----
LINKED_LIST GEOM MACRO MACROP TRACK SYSTEM SYSTEMP FLUX EDIT KINET ;
MODULE GEO: MAC: TRIVAT: TRIVAA: FLUD: OUT: INIKIN: KINSOL: DELETE:
GREP: END: ;
REAL FNORM ;
REAL TIME := 0.0 ;
PROCEDURE assertS assertS2 ;
*
GEOM := GEO: :: CAR1D 4
X- ZERO X+ ZERO
MIX 2 1 3 2
MESHX 0.0 40.0 350.0 660.0 700.0
SPLITX 1 4 4 1
;
*----
* Macroscopic cross sections
*----
MACRO := MAC: ::
EDIT 2 NGRO 2 NMIX 3 NIFI 1
READ INPUT
MIX 1
DIFF 1.264E+00 0.9328E+00
TOTAL 8.154E-03 4.1000E-03
NUSIGF 0.000E+00 4.5620E-03
CHI 1.000E+00 0.000E+00
H-FACTOR 0.000E+00 4.5620E-03
SCAT 1 1 0.0 2 2 0.0 7.368E-03
OVERV 1.000E-07 5.000E-06
MIX 2
DIFF 1.310E+00 0.8695E+00
TOTAL 1.018E-02 2.1170E-04
SCAT 1 1 0.0 2 2 0.0 1.0180E-02
OVERV 1.000E-07 5.000E-06
MIX 3
DIFF 1.264E+00 0.9328E+00
TOTAL 8.154E-03 4.1000E-03
NUSIGF 0.000E+00 4.5620E-03
CHI 1.000E+00 0.000E+00
H-FACTOR 0.000E+00 4.5620E-03
SCAT 1 1 0.0 2 2 0.0 7.368E-03
OVERV 1.000E-07 5.000E-06
;
*----
* Steady-state calculation
*----
MACROP := MAC: MACRO ::
EDIT 2
READ INPUT
MIX 1
TOTAL 8.154E-03 4.0800E-03
;
TRACK := TRIVAT: GEOM ::
TITLE 'BENCHMARK ENE6103'
EDIT 99 MAXR 18 DUAL 1 2 ;
SYSTEM := TRIVAA: MACRO TRACK :: EDIT 5 UNIT ;
FLUX := FLUD: SYSTEM TRACK :: EDIT 2 EXTE 5.0E-7 ;
GREP: FLUX :: STEP UP FLUX GETVAL 2 5 >>FNORM<< ;
assertS FLUX :: 'K-EFFECTIVE' 1 0.9977700 ;
EVALUATE FNORM := 1.0 FNORM / ;
ECHO "Flux normalization factor=" FNORM ;
EDIT := OUT: FLUX TRACK MACRO GEOM :: EDIT 2 INTG IN ;
SYSTEMP := TRIVAA: MACROP TRACK :: EDIT 5 UNIT ;
*----
* Implicit space-time kinetics
*----
KINET := INIKIN: MACRO TRACK SYSTEM FLUX :: EDIT 6
NDEL 6
BETA 0.000266 0.001491 0.001316
0.002849 0.000896 0.000182
LAMBDA 0.0127 0.0317 0.1150
0.3110 1.4000 3.8700
CHID 1.0 1.0 1.0 1.0 1.0 1.0
0.0 0.0 0.0 0.0 0.0 0.0
NORM <<FNORM>> ;
WHILE TIME 10.0 <= DO
KINET := KINSOL: KINET MACROP TRACK SYSTEMP ::
EDIT 5 DELTA 0.1
SCHEME FLUX IMPLIC PREC IMPLIC EXTE 1.0E-6 ;
GREP: KINET :: GETVAL 'TOTAL-TIME' 1 >>TIME<< ;
ECHO "TIME=" TIME "S" ;
IF TIME 0.1 - ABS 1.0E-3 < THEN
assertS2 KINET :: 'CTRL-FLUX' 1 1.188061 ;
assertS2 KINET :: 'CTRL-PREC' 1 9.578695E-05 ;
ELSEIF TIME 0.5 - ABS 1.0E-3 < THEN
assertS2 KINET :: 'CTRL-FLUX' 1 1.566028 ;
assertS2 KINET :: 'CTRL-PREC' 1 9.600593E-05 ;
ELSEIF TIME 1.0 - ABS 1.0E-3 < THEN
assertS2 KINET :: 'CTRL-FLUX' 1 1.785574 ;
assertS2 KINET :: 'CTRL-PREC' 1 9.643309E-05 ;
ELSEIF TIME 5.0 - ABS 1.0E-3 < THEN
assertS2 KINET :: 'CTRL-FLUX' 1 2.910440 ;
assertS2 KINET :: 'CTRL-PREC' 1 1.028784E-04 ;
ELSEIF TIME 10.0 - ABS 1.0E-3 < THEN
assertS2 KINET :: 'CTRL-FLUX' 1 4.719877 ;
assertS2 KINET :: 'CTRL-PREC' 1 1.188491E-04 ;
ENDIF ;
ENDWHILE ;
KINET := DELETE: KINET ;
*----
* Crank-Nicholson space-time kinetics
*----
EVALUATE TIME := 0.0 ;
KINET := INIKIN: MACRO TRACK SYSTEM FLUX :: EDIT 6
NDEL 6
BETA 0.000266 0.001491 0.001316
0.002849 0.000896 0.000182
LAMBDA 0.0127 0.0317 0.1150
0.3110 1.4000 3.8700
CHID 1.0 1.0 1.0 1.0 1.0 1.0
0.0 0.0 0.0 0.0 0.0 0.0
NORM <<FNORM>> ;
WHILE TIME 10.0 <= DO
KINET := KINSOL: KINET MACROP TRACK SYSTEMP ::
EDIT 5 DELTA 0.1
SCHEME FLUX CRANK PREC CRANK EXTE 1.0E-6 ;
GREP: KINET :: GETVAL 'TOTAL-TIME' 1 >>TIME<< ;
ECHO "TIME=" TIME "S" ;
IF TIME 0.1 - ABS 1.0E-3 < THEN
assertS2 KINET :: 'CTRL-FLUX' 1 1.225754 ;
assertS2 KINET :: 'CTRL-PREC' 1 9.577782E-05 ;
ELSEIF TIME 0.5 - ABS 1.0E-3 < THEN
assertS2 KINET :: 'CTRL-FLUX' 1 1.5943015 ;
assertS2 KINET :: 'CTRL-PREC' 1 9.598914E-05 ;
ELSEIF TIME 1.0 - ABS 1.0E-3 < THEN
assertS2 KINET :: 'CTRL-FLUX' 1 1.795137 ;
assertS2 KINET :: 'CTRL-PREC' 1 9.641384E-05 ;
ELSEIF TIME 5.0 - ABS 1.0E-3 < THEN
assertS2 KINET :: 'CTRL-FLUX' 1 2.905773 ;
assertS2 KINET :: 'CTRL-PREC' 1 1.027955E-04 ;
ELSEIF TIME 10.0 - ABS 1.0E-3 < THEN
assertS2 KINET :: 'CTRL-FLUX' 1 4.703376 ;
assertS2 KINET :: 'CTRL-PREC' 1 1.186155E-04 ;
ENDIF ;
ENDWHILE ;
KINET := DELETE: KINET ;
*----
* Crank-Nicholson space-time kinetics with exponential transformation
*----
EVALUATE TIME := 0.0 ;
KINET := INIKIN: MACRO TRACK SYSTEM FLUX :: EDIT 6
NDEL 6
BETA 0.000266 0.001491 0.001316
0.002849 0.000896 0.000182
LAMBDA 0.0127 0.0317 0.1150
0.3110 1.4000 3.8700
CHID 1.0 1.0 1.0 1.0 1.0 1.0
0.0 0.0 0.0 0.0 0.0 0.0
NORM <<FNORM>> ;
WHILE TIME 10.0 <= DO
KINET := KINSOL: KINET MACROP TRACK SYSTEMP ::
EDIT 5 DELTA 0.1
SCHEME FLUX TEXP CRANK PREC CRANK EXTE 1.0E-6 ;
GREP: KINET :: GETVAL 'TOTAL-TIME' 1 >>TIME<< ;
ECHO "TIME=" TIME "S" ;
IF TIME 0.1 - ABS 1.0E-3 < THEN
assertS2 KINET :: 'CTRL-FLUX' 1 1.225750 ;
assertS2 KINET :: 'CTRL-PREC' 1 9.577782E-05 ;
ELSEIF TIME 0.5 - ABS 1.0E-3 < THEN
assertS2 KINET :: 'CTRL-FLUX' 1 1.541330 ;
assertS2 KINET :: 'CTRL-PREC' 1 9.597840E-05 ;
ELSEIF TIME 1.0 - ABS 1.0E-3 < THEN
assertS2 KINET :: 'CTRL-FLUX' 1 1.761252 ;
assertS2 KINET :: 'CTRL-PREC' 1 9.637990E-05 ;
ELSEIF TIME 5.0 - ABS 1.0E-3 < THEN
assertS2 KINET :: 'CTRL-FLUX' 1 2.854255 ;
assertS2 KINET :: 'CTRL-PREC' 1 1.025769E-04 ;
ELSEIF TIME 10.0 - ABS 1.0E-3 < THEN
assertS2 KINET :: 'CTRL-FLUX' 1 4.593970 ;
assertS2 KINET :: 'CTRL-PREC' 1 1.179521E-04 ;
ENDIF ;
ENDWHILE ;
ECHO "test dual12_tri completed" ;
END: ;
|