summaryrefslogtreecommitdiff
path: root/Donjon/data/Equivalence_SPH_RT_APEX.x2m
blob: bb51e9e76cee7da41efba92e28ea177a2a8e05a1 (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
*----
*  TEST CASE Equivalence_SPH_RT_APEX
*  5 x 5 UMZONE ASSEMBLY WITH TRIVAC
*  Input cross section data from APEX
*----
*  Define STRUCTURES and MODULES used
*----
LINKED_LIST ASSMB TRACK SYSTEM MACRO2 MACRO OPTIM FLUX ;
STRING Apex_name := './UOX_5x5_TG6_sym8_multiDom.h5' ;
HDF5_FILE UOX_5x5 :: FILE <<Apex_name>> ;
MODULE GEO: SPH: TRIVAT: TRIVAA: FLUD: UTL: HUTL: GREP: DELETE: END: ;
INTEGER IterEmax := 1000 ;
INTEGER ncals ;
REAL K_EFF_REF ;
PROCEDURE SPHPicardRT ;
PROCEDURE assertS ;

REAL side1 := 1.26 ;
REAL side2 := side1 1.26 + ;
REAL side3 := side2 1.26 + ;
REAL side4 := side3 1.26 + ;
REAL side5 := side4 1.26 + ;
ASSMB := GEO: :: CAR2D 5 5 (*ASSEMBLY 5 X 5*)
          X- DIAG X+ REFL
          Y- REFL Y+ DIAG
          MESHX 0.0 <<side1>> <<side2>> <<side3>> <<side4>> <<side5>>
          MIX 6 5 4 5 6
                3 2 3 5
                  1 2 4
                    3 5
                      6
;

TRACK := TRIVAT: ASSMB ::
     TITLE 'SIMPLE 5x5 FUEL ASSEMBLY'
     EDIT 0 MAXR 3000 DUAL 3 1 ;

*----
* Perform fixed point SPH equivalence for each branch calculation
*----
HUTL: UOX_5x5 :: GREP 'NCALS' 1 >>ncals<< ;
INTEGER ical := 0 ;
REPEAT

  EVALUATE ical := ical 1 + ;
  ECHO "process branch=" ical "/" ncals ;
  MACRO2 := SPH: UOX_5x5 :: EDIT 1 STEP AT <<ical>> MACRO OFF LEAK ;
  GREP: MACRO2 :: GETVAL 'K-EFFECTIVE' 1 >>K_EFF_REF<< ;
  ECHO "ical=" ical "reference k-effective=" K_EFF_REF ;

  MACRO OPTIM := SPHPicardRT MACRO2 ASSMB TRACK
   :: 0.0 10.0 1.0E-6 <<IterEmax>> ;
  ECHO "control variables at convergence for ical=" ical ;
  UTL: OPTIM :: IMPR 'VAR-VALUE' * ;
  MACRO2 := DELETE: MACRO2 ;

*----
* Write SPH factors on APEX file
*----
  UOX_5x5 := SPH: UOX_5x5 OPTIM :: EDIT 1 STEP AT <<ical>>
     IDEM SPOP EQUI 'EQV_DIFF_RT2' ;
  OPTIM := DELETE: OPTIM ;

*----
* Verification calculation
*----
  SYSTEM := TRIVAA: MACRO TRACK :: EDIT 0 ;
  FLUX := FLUD: SYSTEM TRACK :: EDIT 2 ADI 3 EXTE 1.E-07 200 ;
  assertS FLUX :: 'K-EFFECTIVE' 1 <<K_EFF_REF>> ;
  
  MACRO SYSTEM FLUX := DELETE: MACRO SYSTEM FLUX ;
UNTIL ical ncals = ;

ECHO "Equivalence_SPH_RT_APEX completed" ;
END: ;