summaryrefslogtreecommitdiff
path: root/Dragon/data/proc_LZC/GeoCell.c2m
blob: 97f14f9cda6e96b45cc4ea024d957af7481d19c5 (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
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
*DECK GeoLZC.c2m
*----------
*  Name          : GeoLZC.c2m
*  Mesh          : DRAGON procedure
*  Use           : LZC geometry 
*                  for G2 (cluster model)
*  Author        : G. Marleau
*  Date          : 2006/05/05
*
*  Procedure description: 
*    Geometry := GeoLZC :: 
*      <<PrtLev>> <<Type>> <<Mesh>> 
*      <<NbAngles>> <<Density>> ;
*
*  Procedure parameters:
*    Geometry      : XSM_FILE containing the LZC geometry 
*                    for G2
*    PrtLev        : Print Level
*                    0  -> Minimum print
*                    1  -> Standard print
*                    10 -> Debug
*    Type          : Geometry type
*                    'XY' -> 2-D projection of geometry in XY plane
*                    'XZ' -> 2-D projection of geometry in XZ plane
*                    '3D' -> 3-D geometry (default value if Type 
*                            is not known)
*    Mesh          : Geometry Mesh
*                    Coarse -> Corase mesh 3-D geometry
*                    Fine   -> Fine mesh 3-D geometry (default) 
*    NbAngles      : Suggested angular quadrature for tracking
*    Density       : Suggested line density for tracking
* 
*----------
* Define procedure parameters and options and read
* the procedure input data
*----
PARAMETER Geometry :: EDIT 0 ::: XSM_FILE Geometry ; ;
STRING    Type Mesh                ;
INTEGER   PrtLev NbAngles          ;
REAL      Density                  ;
::  >>PrtLev<< >>Type<< >>Mesh<<  ;
*----
*  Local procedures and modules used in this procedure
*----     
PROCEDURE    DimFuel DimCell DimLZC      ;
MODULE       GEO: END: ;
*----
*  Get overall cell dimensions using procedure DimCell
*----
REAL         rcool4 rpt rgap rct LPitch BLength ;
DimCell  ::  
  >>rcool4<< >>rpt<< >>rgap<< >>rct<< >>LPitch<< >>BLength<< ;
IF PrtLev  9 > THEN
  ECHO "Overall cell dimensions" ;
  ECHO rcool4 rpt rgap rct LPitch BLength ;
ENDIF ;
*----
*  Get ring by ring description of fuel using procedure DimFuel
*----
INTEGER      Ring   ;
INTEGER      npinp1   npinp2   npinp3   npinp4  ;
REAL         rradf1   rrads1   rpinp1   apinp1  ;    
REAL         rradf2   rrads2   rpinp2   apinp2  ;
REAL         rradf3   rrads3   rpinp3   apinp3  ;
REAL         rradf4   rrads4   rpinp4   apinp4  ;
EVALUATE    Ring := 1 ;
DimFuel  :: <<Ring>>
  >>npinp1<< >>rpinp1<< >>apinp1<< >>rradf1<< >>rrads1<< ;
EVALUATE    Ring := 2 ;
DimFuel  :: <<Ring>>
  >>npinp2<< >>rpinp2<< >>apinp2<< >>rradf2<< >>rrads2<< ;
EVALUATE    Ring := 3 ;
DimFuel  :: <<Ring>>
  >>npinp3<< >>rpinp3<< >>apinp3<< >>rradf3<< >>rrads3<< ;
EVALUATE    Ring := 4 ;
DimFuel  :: <<Ring>> 
  >>npinp4<< >>rpinp4<< >>apinp4<< >>rradf4<< >>rrads4<< ;
IF PrtLev  9 > THEN
  ECHO "Fuel rings 1 to 4" ;
  ECHO  npinp1   npinp2   npinp3   npinp4  ;
  ECHO  rradf1   rrads1   rpinp1   apinp1  ;    
  ECHO  rradf2   rrads2   rpinp2   apinp2  ;
  ECHO  rradf3   rrads3   rpinp3   apinp3  ;
  ECHO  rradf4   rrads4   rpinp4   apinp4  ;
ENDIF ;
*----
*  Get LZC using procedure DimLZC
*----
REAL    RinnGT       RoutGT 
        RinnBa       RoutBa  
        RinnFe       RoutFe  
        RinnBu       RoutBu  
        RinnSc       RoutSc 
         Rcent              ;
DimLZC ::    
  >>RinnGT<<   >>RoutGT<< 
  >>RinnBa<< >>RoutBa<<  
  >>RinnFe<< >>RoutFe<<  
  >>RinnBu<< >>RoutBu<< 
  >>RinnSc<< >>RoutSc<<  
  >>Rcent<< ;
IF PrtLev  9 > THEN
  ECHO "LZC dimensions" ;
  ECHO "Guide tube      " RinnGT RoutGT ;
  ECHO "Feeder tubes    " RinnBa RoutBa  RinnFe RoutFe ;
  ECHO "Scavenger tubes " RinnBu RoutBu  RinnSc RoutSc ;
  ECHO "LZC location    " Rcent ;
ENDIF ;
*----
*  Evaluate derived dimensions for supercell description
*----
REAL HLPitch   := LPitch 2.0 / ;
REAL HBLength  := BLength 2.0 / ;
REAL LimCoCell := HLPitch rct - RoutGT + 2.0 / ;
REAL IntFCell  := LPitch LimCoCell - ;
REAL IntYCell  := HLPitch LimCoCell - ;
REAL OffsetXL OffsetXR := LimCoCell 2.0 / LimCoCell -2.0 / ;
* Left and right fuel cell X position
REAL XLFmin        XLFint          XLFcent        XLFmax 
     XRFmin        XRFint          XRFcent        XRFmax :=
     LPitch -1.0 * IntFCell -1.0 * HLPitch -1.0 * LimCoCell -1.0 *
     LimCoCell     IntFCell        HLPitch        LPitch  ;
* Cell Y position
REAL YFmin   YFintb  YFcent YFintt  YFmax   :=
     XLFcent IntYCell -1.0 *  0.0    IntYCell XRFcent ;
* Z position
REAL ZFmin           ZFintf  ZFcent ZFintb  ZFmax   :=
     HBLength -1.0 * XLFmax  0.0    XRFmin  HBLength ;
IF PrtLev  9 > THEN
  ECHO "Derived dimensions for supercell" ;
  ECHO  HLPitch HBLength  LimCoCell IntFCell  OffsetXL OffsetXR ;
  ECHO  XLFmin XLFint XLFcent XLFmax ;
  ECHO  XRFmin XRFint XRFcent XRFmax ;    
  ECHO  YFmin  YFintb YFcent  YFintt  YFmax ;
  ECHO  ZFmin         ZFintf  ZFcent ZFintb  ZFmax   ;
ENDIF ;
*----
*  Derived dimensions for fuel 
*----
REAL         eps1  := 0.1   ;
REAL         rcool1   rcool2   rcool3          :=
             rrads1   eps1  + rpinp2 rrads2 - + 2.0 /
             rpinp2 rrads2  + rpinp3 rrads3 - + 2.0 /
             rpinp3 rrads3  + rpinp4 rrads4 - + 2.0 / ;
REAL         rmod  := HLPitch LimCoCell - eps1 - ;
IF PrtLev  9 > THEN
  ECHO "Derived dimensions for fuel" ;
  ECHO  eps1 rcool1 rcool2 rcool3 rmod ;
ENDIF ;
*----
*  Define mixtures
*----
INTEGER  mcL1 mpt mgap mct mmod :=   1  2  3  4  5 ;
INTEGER  mfL1 mfL2 mfL3 mfL4    :=   6  7  8  9  ;
INTEGER  mfR1 mfR2 mfR3 mfR4    :=  10 11 12 13 ;
INTEGER  ms                     :=  14          ;
INTEGER  mfill mgt              :=  15 16       ;
INTEGER  ms11      ms12      ms13      ms14    :=  
         17        18        19        20  ;
INTEGER  ms21      ms22      ms23      ms24    :=  
         ms11 4 +  ms12 4 +  ms13 4 +  ms14 4 + ;
INTEGER  ms31      ms32      ms33      ms34    :=  
         ms11 8 +  ms12 8 +  ms13 8 +  ms14 8 + ;
INTEGER  mf11      mf12      mf13      mf14    :=  
         ms11 12 + ms12 12 + ms13 12 + ms14 12 + ;
INTEGER  mf21      mf22      mf23      mf24    :=  
         ms11 16 + ms12 16 + ms13 16 + ms14 16 + ;
REAL     PIO2 PIO6 := $Pi_R 2.0 / $Pi_R 6.0 /    ;
REAL     ApinZs1        ApinZs2        ApinZs3 
         ApinZf1        ApinZf2                    :=
         0.0            PIO6 4.0 *     PIO6 8.0 *   
         PIO6 2.0 *     PIO6 6.0 *                 ;
REAL     ApinXs1        ApinXs2        ApinXs3 
         ApinXf1        ApinXf2                    :=
         PIO2 ApinZs1 - PIO2 ApinZs2 - PIO2 ApinZs3 -
         PIO2 ApinZf1 - PIO2 ApinZf2 -             ;
ECHO     ApinZs1 ApinZs2 ApinZs3 ApinZf1 ApinZf2 ;
IF PrtLev  9 > THEN
  ECHO "Mixtures for coolant, PT, gap, CT and moderator" ;
  ECHO  mcL1 mpt mgap mct mmod ;
  ECHO "Mixtures for left fuel in each ring and for sheathing" ;
  ECHO  mfL1 mfL2 mfL3 mfL4 ms ;
  ECHO "Mixtures for right fuel in each ring and for sheathing" ;
  ECHO  mfR1 mfR2 mfR3 mfR4 ms ;
  ECHO "Mixtures for scavenger tube 1" ;
  ECHO  ms11 ms12 ms13 ms14 ;
  ECHO "Mixtures for scavenger tube 2" ;
  ECHO  ms21 ms22 ms23 ms24 ;
  ECHO "Mixtures for scavenger tube 3" ;
  ECHO  ms31 ms32 ms33 ms34 ;
  ECHO "Mixtures for feeder tube 1" ;
  ECHO  mf11 mf12 mf13 mf14 ;
  ECHO "Mixtures for feeder tube 12" ;
  ECHO  mf11 mf22 mf23 mf24 ;
ENDIF ;
*----
*  Geometry
*----
  IF Mesh "Coarse" = THEN
*----
*  Coarse mesh geometry
*----
    Geometry := GEO: :: CAR2D 1 1 
      X- REFL X+ SYME Y- REFL Y+ SYME 
      CELL  FuelG
*----
*  Fuel on the left
*----
    ::: FuelG := GEO: CARCEL 7 1 1 
      MESHX   <<YFmin>>  <<YFmax>>
      MESHY   <<YFmin>>  <<YFmax>>
      RADIUS  0.00000    <<rcool1>> <<rcool2>>
              <<rcool3>> <<rcool4>> <<rpt>>    
              <<rgap>>   <<rct>>    
      MIX     <<mcL1>>  <<mcL1>> <<mcL1>> <<mcL1>>   
              <<mpt>>   <<mgap>> <<mct>>  <<mmod>> 
      CLUSTER ROD1 ROD2 ROD3 ROD4
      ::: ROD1 := GEO: TUBE 2 
        NPIN  <<npinp1>> RPIN <<rpinp1>> APIN <<apinp1>>
        RADIUS 0.00000 <<rradf1>> <<rrads1>>
        MIX  <<mfL1>> <<ms>> ;
      ::: ROD2 := GEO: TUBE 2 
        NPIN  <<npinp2>> RPIN <<rpinp2>> APIN <<apinp2>>
        RADIUS 0.00000 <<rradf2>> <<rrads2>> 
        MIX  <<mfL2>> <<ms>>  ;
      ::: ROD3 := GEO: TUBE 2 
        NPIN  <<npinp3>> RPIN <<rpinp3>> APIN <<apinp3>>
        RADIUS 0.00000 <<rradf3>> <<rrads3>>  
        MIX  <<mfL3>> <<ms>>  ;
      ::: ROD4 := GEO: TUBE 2 
        NPIN  <<npinp4>> RPIN <<rpinp4>> APIN <<apinp4>>
        RADIUS 0.00000 <<rradf4>> <<rrads4>> 
        MIX  <<mfL4>> <<ms>>  ;
    ;
    ;
    EVALUATE NbAngles Density := 15 30.0 ;
  ELSE
*----
*  Fine mesh geometry (default)
*----
    Geometry := GEO: :: CAR2D 1 1 
      X- REFL X+ REFL Y- REFL Y+ REFL 
      CELL  FuelG
*----
*  Fuel on the left 
*----
    ::: FuelG := GEO: CARCEL 8 4 4
      MESHX   <<YFmin>>  <<YFintb>> <<YFcent>>  <<YFintt>> <<YFmax>>
      MESHY   <<YFmin>>  <<YFintb>> <<YFcent>>  <<YFintt>> <<YFmax>>
      RADIUS  0.00000    <<rcool1>> <<rcool2>>
              <<rcool3>> <<rcool4>> <<rpt>>    
              <<rgap>>   <<rct>>    <<rmod>>
      MIX     <<mcL1>>  <<mcL1>> <<mcL1>> <<mcL1>>   
              <<mpt>>   <<mgap>> <<mct>>  <<mmod>> <<mmod>>
              <<mcL1>>  <<mcL1>> <<mcL1>> <<mcL1>>   
              <<mpt>>   <<mgap>> <<mct>>  <<mmod>> <<mmod>>
              <<mcL1>>  <<mcL1>> <<mcL1>> <<mcL1>>   
              <<mpt>>   <<mgap>> <<mct>>  <<mmod>> <<mmod>> 
              <<mcL1>>  <<mcL1>> <<mcL1>> <<mcL1>>   
              <<mpt>>   <<mgap>> <<mct>>  <<mmod>> <<mmod>> 
              <<mcL1>>  <<mcL1>> <<mcL1>> <<mcL1>>   
              <<mpt>>   <<mgap>> <<mct>>  <<mmod>> <<mmod>>
              <<mcL1>>  <<mcL1>> <<mcL1>> <<mcL1>>   
              <<mpt>>   <<mgap>> <<mct>>  <<mmod>> <<mmod>>
              <<mcL1>>  <<mcL1>> <<mcL1>> <<mcL1>>   
              <<mpt>>   <<mgap>> <<mct>>  <<mmod>> <<mmod>> 
              <<mcL1>>  <<mcL1>> <<mcL1>> <<mcL1>>   
              <<mpt>>   <<mgap>> <<mct>>  <<mmod>> <<mmod>> 
              <<mcL1>>  <<mcL1>> <<mcL1>> <<mcL1>>   
              <<mpt>>   <<mgap>> <<mct>>  <<mmod>> <<mmod>>
              <<mcL1>>  <<mcL1>> <<mcL1>> <<mcL1>>   
              <<mpt>>   <<mgap>> <<mct>>  <<mmod>> <<mmod>>
              <<mcL1>>  <<mcL1>> <<mcL1>> <<mcL1>>   
              <<mpt>>   <<mgap>> <<mct>>  <<mmod>> <<mmod>>
              <<mcL1>>  <<mcL1>> <<mcL1>> <<mcL1>>   
              <<mpt>>   <<mgap>> <<mct>>  <<mmod>> <<mmod>>
              <<mcL1>>  <<mcL1>> <<mcL1>> <<mcL1>>   
              <<mpt>>   <<mgap>> <<mct>>  <<mmod>> <<mmod>>
              <<mcL1>>  <<mcL1>> <<mcL1>> <<mcL1>>   
              <<mpt>>   <<mgap>> <<mct>>  <<mmod>> <<mmod>>
              <<mcL1>>  <<mcL1>> <<mcL1>> <<mcL1>>   
              <<mpt>>   <<mgap>> <<mct>>  <<mmod>> <<mmod>> 
      CLUSTER ROD1 ROD2 ROD3 ROD4
      ::: ROD1 := GEO: TUBE 2 
        NPIN  <<npinp1>> RPIN <<rpinp1>> APIN <<apinp1>>
        RADIUS 0.00000 <<rradf1>> <<rrads1>> SPLITR -3 1 
        MIX  <<mfL1>> <<ms>> ;
      ::: ROD2 := GEO: TUBE 2 
        NPIN  <<npinp2>> RPIN <<rpinp2>> APIN <<apinp2>>
        RADIUS 0.00000 <<rradf2>> <<rrads2>> SPLITR -3 1 
        MIX  <<mfL2>> <<ms>> ;
      ::: ROD3 := GEO: TUBE 2 
        NPIN  <<npinp3>> RPIN <<rpinp3>> APIN <<apinp3>>
        RADIUS 0.00000 <<rradf3>> <<rrads3>> SPLITR -3 1 
        MIX  <<mfL3>> <<ms>> ;
      ::: ROD4 := GEO: TUBE 2 
        NPIN  <<npinp4>> RPIN <<rpinp4>> APIN <<apinp4>>
        RADIUS 0.00000 <<rradf4>> <<rrads4>> SPLITR -3 1 
        MIX  <<mfL4>> <<ms>> ;
    ;
    ;
    EVALUATE NbAngles Density := 15 30.0 ;
  ENDIF ;
::  <<NbAngles>> <<Density>>          ;
END: ;
QUIT "LIST" .