summaryrefslogtreecommitdiff
path: root/Donjon/data/NCRtest_proc/Pfluxtest.c2m
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 .