blob: bdf5c4055f5f293b4a8840d0770456b0613c68e5 (
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
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
|
*----
* Name : rep900_sim.x2m
* Type : DONJON procedure
* Author : V. Salino (IRSN), basis by A. Hebert
* Date : 01/11/2014
*
* Compute a simple cycle depletion with critical boron.
* Compute equilibrium cycle for a fictive UOX/MOX loading pattern.
* Simulate various additionnal cycle sequences.
*----
* References
*
* Loading pattern freely inspired from public data:
* Exploitation des coeurs REP (p.36),
* N. Kerkar, P. Paulin,
* EDP Sciences, 2008.
*----
* STRUCTURES, MODULES and PROCEDURES definitions
*----
LINKED_LIST GeoRes Track MacroRefl Matex Fmap Power PrevPower
Refl.XS SapUOX SapMOX ;
SEQ_ASCII Saphyb_UOX :: FILE './Saphyb_UOX' ;
SEQ_ASCII Saphyb_MOX :: FILE './Saphyb_MOX' ;
SEQ_ASCII Refl.XS_as :: FILE './Refl.XS_as' ;
MODULE TRIVAT: RESINI: SIM: DELETE: GREP: ABORT: END: ;
PROCEDURE GeoCo SetFuelMap BoronCrit assertS ;
*----
* Local parameters
*----
REAL BUcycle PrevBUcycle ;
REAL keff CB PrevCB PredicCB BURNSTEP NextBURNSTEP Yintrcpt Slope ;
REAL CBinit := 2000.0 ;
REAL DELTA REFVALUE CALCULATED ;
INTEGER BUindex ;
LOGICAL EoC ; ! End-of-Cycle reached (TRUE) or not (FALSE)
*----
* Calculation options
*----
INTEGER Splitx Splitz := 1 1 ;
STRING Dir := "EDI2B" ;
*----
* Recover the reflector Macrolib and Saphybs
*----
Refl.XS := Refl.XS_as :: EDIT 0 ;
SapUOX := Saphyb_UOX :: EDIT 0 ;
SapMOX := Saphyb_MOX :: EDIT 0 ;
*----
* Set reflector cross sections (Lefebvre-Lebigot)
*----
MacroRefl := Refl.XS ;
*----
* Define geometric properties
*----
REAL rPavX := 17.0 ; ! assemblage 17 x 17
INTEGER iPavX := 17 ; ! assemblage 17 x 17
REAL LPitch := 1.26 ;
REAL Lame := 0.04 ;
REAL dx := rPavX LPitch * 2.0 Lame * + ;
INTEGER MaxR := iPavX iPavX * 33 * Splitx * Splitx * Splitz * ;
GeoRes Matex := GeoCo ::
<<Splitx>> <<Splitz>> <<MaxR>> <<dx>> ;
Track := TRIVAT: GeoRes ::
MAXR <<MaxR>> DUAL 2 3 ;
*--
* Define the fuel map
*--
Fmap Matex := SetFuelMap Matex :: <<dx>> ;
*----
* A simple cycle depletion
*----
STRING Cycle := "T1" ;
INTEGER CycleIndex := 1 ;
Fmap := SIM: Fmap ::
EDIT 10
CYCLE <<Cycle>>
QMAP
H G F E D C B A
8 SPC SPC SPC SPC SPC SPC NEW SPC
9 SPC SPC NEW SPC SPC SPC NEW SPC
10 SPC NEW SPC SPC SPC SPC NEW |
11 SPC SPC SPC SPC SPC NEW NEW |
12 SPC SPC SPC SPC SPC NEW | |
13 SPC SPC SPC NEW NEW | | |
14 NEW NEW NEW NEW | | | |
15 SPC SPC | | | | | |
SPEC
E09 J11 L07 G05 G11 L09 J05 E07
D10 K12 M06 F04 F12 M10 K04 D06 SET AVGB 12500. ! UOX
E10 K11 L06 F05 F11 L10 K05 E06
D09 J12 M07 G04 G12 M09 J04 D07 SET AVGB 12500. ! MOX
C09 J13 N07 G03 G13 N09 J03 C07
C10 K13 N06 F03 F13 N10 K03 C06 SET AVGB 25000.
A09 J15 R07 G01 G15 R09 J01 A07
D11 L12 M05 E04 E12 M11 L04 D05 SET AVGB 37500.
G08 H09 J08 H07
F08 H10 K08 H06
D08 H12 M08 H04
E11 L11 L05 E05 SET AVGB 12500.
F10 K10 K06 F06
D12 M12 M04 D04
E08 H11 L08 H05 SET AVGB 25000.
C08 H13 N08 H03
A08 H15 R08 H01
G09 J09 J07 G07 SET AVGB 37500.
H08 SET AVGB 12500.
ENDCYCLE ;
assertS Fmap :: 'BURN-INST' 1 37500.00 ;
assertS Fmap :: 'BURN-INST' 13 25000.00 ;
EVALUATE BUcycle BUindex := 0.0 1 ;
Power Fmap Matex := BoronCrit Fmap Matex SapUOX SapMOX MacroRefl
Track :: <<CBinit>> >>CB<< >>keff<< ;
ECHO "BUcycle(" BUindex ")=" BUcycle "CB=" CB "keff=" keff ;
EVALUATE REFVALUE := 1771.018 ;
EVALUATE DELTA := CB REFVALUE - ABS ;
IF DELTA 0.1 < THEN
PRINT "TEST SUCCESSFUL; DELTA=" DELTA ;
ELSE
PRINT "------------" ;
PRINT "TEST FAILURE" ;
PRINT "------------" ;
PRINT "REFERENCE=" REFVALUE " CALCULATED=" CB ;
ABORT: ;
ENDIF ;
EVALUATE BURNSTEP := 1000.0 ;
REPEAT
ECHO "BURNSTEP(" BUindex ") =" BURNSTEP ;
EVALUATE BUcycle := BUcycle BURNSTEP + ;
Fmap := SIM: Fmap Power ::
EDIT 11
CYCLE <<Cycle>>
BURN-STEP <<BURNSTEP>>
ENDCYCLE ;
Power := DELETE: Power ;
Power Fmap Matex := BoronCrit Fmap Matex SapUOX SapMOX MacroRefl
Track :: <<CB>> >>CB<< >>keff<< ;
ECHO "BUcycle(" BUindex ")=" BUcycle "CB=" CB "keff=" keff ;
! Simple EoC criteria for the first cycle (below 10 plus or minus 1)
EVALUATE EoC := CB 10. 1. + <= ;
IF EoC NOT THEN
IF BUindex 1 = NOT THEN
EVALUATE Slope := PrevCB CB - PrevBUcycle BUcycle - / ;
EVALUATE Yintrcpt := CB Slope BUcycle * - ;
EVALUATE PredicCB := BUcycle 1000.0 + Slope * Yintrcpt + ;
IF PredicCB 10.0 < THEN
EVALUATE BURNSTEP := 10.0 Yintrcpt - Slope / BUcycle - ;
ELSE
EVALUATE BURNSTEP := 1000.0 ;
ENDIF ;
ENDIF ;
EVALUATE PrevCB PrevBUcycle := CB BUcycle ;
EVALUATE BUindex := BUindex 1 + ;
ENDIF ;
UNTIL EoC ;
Power := DELETE: Power ;
*----
* Returning to a previous step (FROM directive)
*----
Fmap := SIM: Fmap ::
EDIT 10
CYCLE ANTE FROM <<Cycle>> BURN <<BUindex>> ! Before last performed step
QMAP
H G F E D C B A
8 H08 G08 F08 E08 D08 C08 B08 A08
9 H09 G09 F09 E09 D09 C09 B09 A09
10 H10 G10 F10 E10 D10 C10 B10 |
11 H11 G11 F11 E11 D11 C11 B11 |
12 H12 G12 F12 E12 D12 C12 | |
13 H13 G13 F13 E13 D13 | | |
14 H14 G14 F14 E14 | | | |
15 H15 G15 | | | | | |
ENDCYCLE ;
Power Fmap Matex := BoronCrit Fmap Matex SapUOX SapMOX MacroRefl
Track :: <<CBinit>> >>CB<< >>keff<< ;
ECHO "BUcycle(" BUindex ")=" BUcycle "CB=" CB "keff=" keff ;
ECHO "BURNSTEP(" BUindex ") =" BURNSTEP ;
Fmap := SIM: Fmap Power ::
EDIT 1
CYCLE ANTE
BURN-STEP <<BURNSTEP>> ! Reperform last step
ENDCYCLE ;
Power := DELETE: Power ;
Power Fmap Matex := BoronCrit Fmap Matex SapUOX SapMOX MacroRefl
Track :: <<CBinit>> >>CB<< >>keff<< ;
ECHO "BUcycle(" BUindex ")=" BUcycle "CB=" CB "keff=" keff ;
Power := DELETE: Power ;
* Compute the maximum discrepancy on burnup and power distribution
REAL MaxDiffBU MaxDiffPow ;
Fmap := SIM: Fmap ::
EDIT 1
COMPARE <<Cycle>> ANTE DIST-BURN >>MaxDiffBU<<
COMPARE <<Cycle>> ANTE DIST-POWR >>MaxDiffPow<< ;
ECHO "Delta BUlocal =" MaxDiffBU ;
ECHO "Delta Powlocal =" MaxDiffPow ;
IF MaxDiffPow 1.0E-3 > MaxDiffBU 1.0E-2 > + THEN
PRINT "------------" ;
PRINT "TEST FAILURE" ;
PRINT "------------" ;
ABORT: ;
ELSE
PRINT "TEST SUCCESSFUL" ;
ENDIF ;
*----
* Equilibrium cycle convergence
*----
LOGICAL EquilibrCycl := $False_L ;
REAL BUprevCycle ; ! Mean burnup added during the previous cycle
REAL DiffBUCycle ;
EVALUATE BUprevCycle := BUcycle ;
STRING PrevCycle := Cycle ;
STRING MainCycle ;
EVALUATE CycleIndex := 2 ;
INTEGER Return PrevBUindex RtnBUindex ;
STRING ReturnCycle PrevRtnCycle ;
REAL epsBUcycle epsBUlocal epsPowlocal :=
5.0 (* MWd/t *) 10. (* MWd/t *) 0.5E-2 (* Relative error *) ;
REPEAT
EVALUATE MainCycle := "T" CycleIndex I_TO_S + ;
EVALUATE Return := 0 ;
EVALUATE Cycle := MainCycle ;
* Equilibrium cycle loading pattern
Fmap := SIM: Fmap ::
EDIT 11
CYCLE <<Cycle>> FROM <<PrevCycle>>
QMAP
H G F E D C B A
8 B08 C12 D13 E11 G10 E08 NEW F10
9 M13 D12 NEW B10 B09 E09 NEW C10
10 N12 NEW F08 C11 B11 D10 NEW |
11 L11 F14 E13 F09 C09 NEW NEW |
12 K09 G14 E14 G13 G08 NEW | |
13 H11 G11 F12 NEW NEW | | |
14 NEW NEW NEW NEW | | | |
15 K10 F13 | | | | | |
ENDCYCLE ;
EVALUATE BURNSTEP := 1000.0 ;
EVALUATE BUcycle BUindex := 0.0 1 ;
Power Fmap Matex := BoronCrit Fmap Matex SapUOX SapMOX MacroRefl
Track :: <<CBinit>> >>CB<< >>keff<< ;
ECHO "BUcycle(" BUindex ")=" BUcycle "CB=" CB "keff=" keff ;
REPEAT
ECHO "BURNSTEP(" BUindex ") =" BURNSTEP ;
EVALUATE BUcycle := BUcycle BURNSTEP + ;
Fmap := SIM: Fmap Power ::
EDIT 11
CYCLE <<Cycle>>
BURN-STEP <<BURNSTEP>>
ENDCYCLE ;
PrevPower := Power ;
Power := DELETE: Power ;
Power Fmap Matex := BoronCrit Fmap Matex SapUOX SapMOX MacroRefl
Track :: <<CB>> >>CB<< >>keff<< ;
ECHO "BUcycle(" BUindex ")=" BUcycle "CB=" CB "keff=" keff ;
IF CB 10.0 - ABS 1.0 < THEN ! Narrower criteria for equilibrium
EVALUATE EoC := $True_L ;
ELSE
EVALUATE EoC := $False_L ;
* Find end-of-cycle using a Newton's method
IF BUindex 1 = NOT Return 0 = NOT + THEN
EVALUATE Slope := PrevCB CB - PrevBUcycle BUcycle - / ;
EVALUATE Yintrcpt := CB Slope BUcycle * - ;
EVALUATE PredicCB := BUcycle 1000.0 + Slope * Yintrcpt + ;
IF PredicCB 10.0 < THEN
EVALUATE NextBURNSTEP := 10.0 Yintrcpt - Slope / BUcycle - ;
ELSE
EVALUATE NextBURNSTEP := 1000.0 ;
ENDIF ;
ELSE
EVALUATE NextBURNSTEP := 1000.0 ;
ENDIF ;
* Use the previous step for future BURNSTEP evaluation
EVALUATE PrevCB PrevBUcycle := CB BUcycle ;
IF NextBURNSTEP 0.0 < THEN
* Return back in time
EVALUATE BUcycle := BUcycle BURNSTEP - ;
IF BUindex 1 = NOT THEN
EVALUATE ReturnCycle RtnBUindex := Cycle BUindex ;
ELSE
EVALUATE ReturnCycle RtnBUindex := PrevRtnCycle PrevBUindex ;
ENDIF ;
EVALUATE Return := Return 1 + ;
EVALUATE Cycle := MainCycle "rtn" Return I_TO_S + + ;
Fmap := SIM: Fmap ::
EDIT 10
CYCLE <<Cycle>> FROM <<ReturnCycle>> BURN <<RtnBUindex>>
QMAP
H G F E D C B A
8 H08 G08 F08 E08 D08 C08 B08 A08
9 H09 G09 F09 E09 D09 C09 B09 A09
10 H10 G10 F10 E10 D10 C10 B10 |
11 H11 G11 F11 E11 D11 C11 B11 |
12 H12 G12 F12 E12 D12 C12 | |
13 H13 G13 F13 E13 D13 | | |
14 H14 G14 F14 E14 | | | |
15 H15 G15 | | | | | |
ENDCYCLE ;
* Reuse previous power distribution
Power := DELETE: Power ;
Power := PrevPower ;
IF BUindex 1 = NOT THEN
* For the next step, use previous step if CB still not above 10
EVALUATE PrevRtnCycle := ReturnCycle ;
EVALUATE PrevBUindex := BUindex ;
ENDIF ;
* Reestablishing cycle implies BUindex reboot
EVALUATE BUindex := 1 ;
* Recompute a smaller step
EVALUATE BURNSTEP := BURNSTEP NextBURNSTEP + ;
ELSE
EVALUATE BURNSTEP := NextBURNSTEP ;
EVALUATE BUindex := BUindex 1 + ;
ENDIF ;
ENDIF ;
PrevPower := DELETE: PrevPower ;
UNTIL EoC ;
ECHO "Duration of cycle =" BUcycle "MWj/t, for cycle" Cycle ;
Power := DELETE: Power ;
Fmap := SIM: Fmap ::
EDIT 1
COMPARE <<Cycle>> <<PrevCycle>> DIST-BURN >>MaxDiffBU<<
COMPARE <<Cycle>> <<PrevCycle>> DIST-POWR >>MaxDiffPow<< ;
EVALUATE DiffBUCycle := BUprevCycle BUcycle - ABS ;
ECHO "Delta BUcycle =" DiffBUCycle ;
ECHO "Delta BUlocal =" MaxDiffBU ;
ECHO "Delta Powlocal =" MaxDiffPow ;
EVALUATE EquilibrCycl := ! 3 convergence criterion
BUprevCycle BUcycle - ABS epsBUcycle <
MaxDiffBU epsBUlocal < *
MaxDiffPow epsPowlocal < * ;
EVALUATE BUprevCycle := BUcycle ;
EVALUATE PrevCycle := Cycle ;
EVALUATE CycleIndex := CycleIndex 1 + ;
IF CycleIndex 20 > THEN
ECHO "Non-convergence " ;
ECHO "Equibrium cycle was not found after 20 iterations." ;
ABORT: ;
ENDIF ;
UNTIL EquilibrCycl ;
EVALUATE REFVALUE := 12155.97 ;
EVALUATE DELTA := BUcycle REFVALUE - ABS ;
IF DELTA epsBUcycle < THEN
PRINT "TEST SUCCESSFUL; DELTA=" DELTA ;
ELSE
PRINT "------------" ;
PRINT "TEST FAILURE" ;
PRINT "------------" ;
PRINT "REFERENCE=" REFVALUE " CALCULATED=" BUcycle ;
ABORT: ;
ENDIF ;
*----
* Different average burnup, but using the same burnup distribution
*----
Fmap := SIM: Fmap ::
EDIT 13
CYCLE EQUI-FIT FROM <<PrevCycle>>
QMAP
H G F E D C B A
8 SPC SPC SPC SPC SPC SPC SPC SPC
9 SPC SPC SPC SPC SPC SPC SPC SPC
10 SPC SPC SPC SPC SPC SPC SPC |
11 SPC SPC SPC SPC SPC SPC SPC |
12 SPC SPC SPC SPC SPC SPC | |
13 SPC SPC SPC SPC SPC | | |
14 SPC SPC SPC SPC | | | |
15 SPC SPC | | | | | |
SPEC
E09 J11 L07 G05 G11 L09 J05 E07 SET AVGB 29500. ! UOX
D10 K12 M06 F04 F12 M10 K04 D06 SET AVGB 24000. ! UOX
E10 K11 L06 F05 F11 L10 K05 E06 SET AVGB 30200. ! MOX
D09 J12 M07 G04 G12 M09 J04 D07 SET AVGB 27300. ! MOX
C09 J13 N07 G03 G13 N09 J03 C07 SET AVGB 40200.
C10 K13 N06 F03 F13 N10 K03 C06 SET AVGB 36000.
A09 J15 R07 G01 G15 R09 J01 A07 SET AVGB 39500.
D11 L12 M05 E04 E12 M11 L04 D05 SET AVGB 49900.
G08 H09 J08 H07 SET AVGB 29200.
F08 H10 K08 H06 SET AVGB 29500.
D08 H12 M08 H04 SET AVGB 35500.
E11 L11 L05 E05 SET AVGB 35200.
F10 K10 K06 F06 SET AVGB 45700.
D12 M12 M04 D04 SET AVGB 37500.
E08 H11 L08 H05 SET AVGB 50000.
C08 H13 N08 H03 SET AVGB 58700.
A08 H15 R08 H01 SET AVGB 49500.
G09 J09 J07 G07 SET AVGB 54200.
H08 SET AVGB 32500.
F09 G10 J10 K09 K07 J06 G06 F07 SET AVGB 23500.
B09 G14 J14 P09 P07 J02 G02 B07 SET AVGB 12300.
B10 F14 K14 P10 P06 K02 F02 B06 SET AVGB 12100.
C11 E13 L13 N11 N05 L03 E03 C05 SET AVGB 13500.
B11 E14 L14 P11 P05 L02 E02 B05 SET AVGB 9400.
C12 D13 M13 N12 N04 M03 D03 C04 SET AVGB 9000.
B08 H14 P08 H02 SET AVGB 12300.
DIST-AX
E09 J11 L07 G05 G11 L09 J05 E07 FROM <<PrevCycle>> AT E09
D10 K12 M06 F04 F12 M10 K04 D06 FROM <<PrevCycle>> AT D10
E10 K11 L06 F05 F11 L10 K05 E06 FROM <<PrevCycle>> AT E10
D09 J12 M07 G04 G12 M09 J04 D07 FROM <<PrevCycle>> AT D09
C09 J13 N07 G03 G13 N09 J03 C07 FROM <<PrevCycle>> AT C09
C10 K13 N06 F03 F13 N10 K03 C06 FROM <<PrevCycle>> AT C10
A09 J15 R07 G01 G15 R09 J01 A07 FROM <<PrevCycle>> AT A09
D11 L12 M05 E04 E12 M11 L04 D05 FROM <<PrevCycle>> AT D11
G08 H09 J08 H07 FROM <<PrevCycle>> AT G08
F08 H10 K08 H06 FROM <<PrevCycle>> AT F08
D08 H12 M08 H04 FROM <<PrevCycle>> AT D08
E11 L11 L05 E05 FROM <<PrevCycle>> AT E11
F10 K10 K06 F06 FROM <<PrevCycle>> AT F10
D12 M12 M04 D04 FROM <<PrevCycle>> AT D12
E08 H11 L08 H05 FROM <<PrevCycle>> AT E08
C08 H13 N08 H03 FROM <<PrevCycle>> AT C08
A08 H15 R08 H01 FROM <<PrevCycle>> AT A08
G09 J09 J07 G07 FROM <<PrevCycle>> AT G09
H08 FROM <<PrevCycle>> AT H08
F09 G10 J10 K09 K07 J06 G06 F07 FROM <<PrevCycle>> AT F09
B09 G14 J14 P09 P07 J02 G02 B07 FROM <<PrevCycle>> AT B09
B10 F14 K14 P10 P06 K02 F02 B06 FROM <<PrevCycle>> AT B10
C11 E13 L13 N11 N05 L03 E03 C05 FROM <<PrevCycle>> AT C11
B11 E14 L14 P11 P05 L02 E02 B05 FROM <<PrevCycle>> AT B11
C12 D13 M13 N12 N04 M03 D03 C04 FROM <<PrevCycle>> AT C12
B08 H14 P08 H02 FROM <<PrevCycle>> AT B08
ENDCYCLE ;
GREP: Fmap :: GETVAL 'BURN-INST' 1 >>CALCULATED<< ;
EVALUATE REFVALUE := 20760.51 ;
EVALUATE DELTA := CALCULATED REFVALUE - ABS ;
IF DELTA epsBUlocal < THEN
PRINT "TEST SUCCESSFUL; DELTA=" DELTA ;
ELSE
PRINT "------------" ;
PRINT "TEST FAILURE" ;
PRINT "------------" ;
PRINT "REFERENCE=" REFVALUE " CALCULATED=" CALCULATED ;
ABORT: ;
ENDIF ;
REAL Ptot := 2775.0 ;
REAL BundPow := Ptot 157.0 / 29.0 / 1.0E+3 * (* MW to kW *) ;
Fmap := RESINI: Fmap ::
EDIT 0
BUNDLE-POW SAME <<BundPow>> ;
Fmap := SIM: Fmap ::
EDIT 1
CYCLE EQUI-FIT
BURN-STEP 0.001 ! renders EQUI-FIT available for subsequent SIM: calls
ENDCYCLE ;
*----
* Mixing several cycles into one
*----
Fmap := SIM: Fmap ::
EDIT 1
CYCLE MIXED FROM <<PrevCycle>>
QMAP
H G F E D C B A
8 B08 C12 D13 E11 G10 E08 NEW SPC
9 M13 D12 NEW B10 B09 E09 NEW C10
10 N12 NEW F08 C11 B11 D10 NEW |
11 L11 F14 E13 F09 C09 NEW NEW |
12 K09 G14 E14 G13 G08 NEW | |
13 H11 G11 F12 NEW NEW | | |
14 NEW NEW NEW NEW | | | |
15 SPC F13 | | | | | |
SPEC
A08 FROM EQUI-FIT AT F10
H15 FROM EQUI-FIT AT K10
R08 FROM EQUI-FIT AT K06
H01 FROM EQUI-FIT AT F06
ENDCYCLE ;
GREP: Fmap :: GETVAL 'BURN-INST' 1 >>CALCULATED<< ;
EVALUATE REFVALUE := 17661.87 ;
EVALUATE DELTA := CALCULATED REFVALUE - ABS ;
IF DELTA epsBUlocal < THEN
PRINT "TEST SUCCESSFUL; DELTA=" DELTA ;
ELSE
PRINT "------------" ;
PRINT "TEST FAILURE" ;
PRINT "------------" ;
PRINT "REFERENCE=" REFVALUE " CALCULATED=" CALCULATED ;
ABORT: ;
ENDIF ;
GREP: Fmap :: GETVAL 'BURN-INST' 2 >>CALCULATED<< ;
EVALUATE REFVALUE := 25944.61 ;
EVALUATE DELTA := CALCULATED REFVALUE - ABS ;
IF DELTA epsBUlocal < THEN
PRINT "TEST SUCCESSFUL; DELTA=" DELTA ;
ELSE
PRINT "------------" ;
PRINT "TEST FAILURE" ;
PRINT "------------" ;
PRINT "REFERENCE=" REFVALUE " CALCULATED=" CALCULATED ;
ABORT: ;
ENDIF ;
ECHO "test rep900_sim completed" ;
END: ;
QUIT "LIST" .
|