blob: 64fc4ba046be0cc0ab96e33c8a719d318e7aaf76 (
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
|
****************************************************************
* *
* Procedure : Pfluxtest.c2m *
* Purpose : Time-average calculation for ACR-1000 core *
* using the NCR module instead of CRE *
* Author : R. Chambon (2008/03) *
* based on : D. Sekki (2007/10) *
* *
* CALL : FMAP MATEX := Pfluxtest FMAP MATEX MACRO1 *
* DEVICE TRACK LMCPO :: *
* <<NamFueld>> <<NamPARKEYF>> *
* <<mFue20>> <<mFue18>> <<NamFue20>> <<NamFue18>> *
* <<Pow>> <<epsil>> <<Prec>> <<maxItr>> <<iEdit>> *
* >>nbItr<< >>Keff<< >>Bexit<< ; *
****************************************************************
PARAMETER FMAP MATEX MACRO1 DEVICE TRACK
LMCPO18 LMCPO20 :: :::
LINKED_LIST FMAP MATEX MACRO1 DEVICE TRACK
LMCPO18 LMCPO20 ; ;
MODULE DELETE: GREP: END: CRE: MACINI: NEWMAC:
TAVG: FLUD: FLPOW: TRIVAT: TRIVAA: NCR: ;
LINKED_LIST FLUX POWER SYSTEM MACFL MACRO2 MACRO ;
INTEGER mFue20 mFue18 maxItr iEdit ;
REAL Pow epsil Prec Eps epsM Keff Bexit ;
STRING NamFueld NamPARKEYF NamFue20 NamFue18 ;
INTEGER iter iPwPrt := 0 0 ;
:: >>NamFueld<< >>NamPARKEYF<<
>>mFue20<< >>mFue18<< >>NamFue20<< >>NamFue18<<
>>Pow<< >>epsil<< >>Prec<< >>maxItr<< >>iEdit<< ;
*---------------------------------------------------------------
* TIME-AVERAGE CALCULATION
*---------------------------------------------------------------
EVALUATE Eps := epsil 1. + ;
EVALUATE epsM := Eps ;
WHILE Eps epsil > iter maxItr < * DO
EVALUATE iter := iter 1 + ;
*--
* fuel-map macrolib:
*--
MACFL := NCR: LMCPO18 LMCPO20 FMAP ::
EDIT 0 MACRO
TABLE LMCPO20 <<NamFueld>> BURN
MIX <<mFue20>>
SET <<NamPARKEYF>> <<NamFue20>>
SET X-COOL 1.0
SET T-COOL 5.731600E+02
SET T-FUEL 9.601600E+02
ADD X-COOL 1.0 MAP
REF
BURN SAMEASREF
T-COOL 5.731600E+02
T-FUEL 9.601600E+02
ENDREF
ADD T-COOL 5.731600E+02 MAP
REF
BURN SAMEASREF
X-COOL 1.0
T-FUEL 9.601600E+02
ENDREF
ADD T-FUEL 9.601600E+02 MAP
REF
BURN SAMEASREF
X-COOL 1.0
T-COOL 5.731600E+02
ENDREF
ENDMIX
TABLE LMCPO18 <<NamFueld>> BURN
MIX <<mFue18>>
SET <<NamPARKEYF>> <<NamFue18>>
SET X-COOL 1.0
SET T-COOL 5.731600E+02
SET T-FUEL 9.601600E+02
SET RDTPOS 0.0
SET RDDPOS 0.0
ADD X-COOL 1.0 MAP
REF
BURN SAMEASREF
T-COOL 5.731600E+02
T-FUEL 9.601600E+02
RDTPOS 0.0
RDDPOS 0.0
ENDREF
ADD T-COOL 5.731600E+02 MAP
REF
BURN SAMEASREF
X-COOL 1.0
T-FUEL 9.601600E+02
RDTPOS 0.0
RDDPOS 0.0
ENDREF
ADD T-FUEL 9.601600E+02 MAP
REF
BURN SAMEASREF
X-COOL 1.0
T-COOL 5.731600E+02
RDTPOS 0.0
RDDPOS 0.0
ENDREF
ENDMIX
;
*--
* extended macrolib:
*--
MACRO2 MATEX := MACINI: MATEX MACRO1 MACFL :: EDIT 0 ;
MACFL := DELETE: MACFL ;
*--
* complete macrolib:
*--
MACRO MATEX := NEWMAC: MATEX MACRO2 DEVICE :: EDIT 0 ;
MACRO2 := DELETE: MACRO2 ;
*--
* numerical solution:
*--
SYSTEM := TRIVAA: MACRO TRACK :: EDIT 0 ;
MACRO := DELETE: MACRO ;
IF iter 1 = THEN
FLUX := FLUD: SYSTEM TRACK :: EDIT 10
ACCE 3 3 ADI 2 EXTE 1000 <<Prec>>
THER 1000 ;
ELSE
FLUX := FLUD: FLUX SYSTEM TRACK :: EDIT 10
ACCE 3 3 ADI 2 EXTE 1000 <<Prec>>
THER 1000 ;
ENDIF ;
SYSTEM := DELETE: SYSTEM ;
*--
* flux and power:
*--
EVALUATE iPwPrt := 0 ;
POWER := FLPOW: FMAP FLUX TRACK MATEX ::
EDIT <<iPwPrt>> PTOT <<Pow>> ;
*--
* burnups integration limits:
*--
FMAP := TAVG: FMAP POWER :: EDIT 0 AX-SHAPE RELAX 0.55 B-EXIT ;
GREP: POWER :: GETVAL 'K-EFFECTIVE' 1 >>Keff<< ;
POWER := DELETE: POWER ;
*--
* current parameters:
*--
GREP: FMAP :: GETVAL EPS-AX 1 >>Eps<< ;
ECHO "Iteration No. " iter ;
ECHO "AXIAL-SHAPE ERROR : " Eps ;
ECHO "RESULTING K-EFF : " Keff ;
IF epsM Eps > THEN
EVALUATE epsM := Eps ;
ELSE
EVALUATE epsil := Eps ;
EVALUATE maxItr := iter ;
ENDIF ;
ENDWHILE ;
FLUX := DELETE: FLUX ;
GREP: FMAP :: GETVAL B-EXIT 1 >>Bexit<< ;
:: <<iter>> <<Keff>> <<Bexit>> ;
END: ;
QUIT .
|