summaryrefslogtreecommitdiff
path: root/PyGan/data/simplePOW_proc/PowComponent.c2m
blob: 703a019b1ad326e905b4b3df38fabb1b065b4713 (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
****************************************************************
*                                                              *
* Procedure :  PowComponent.c2m                                *
* Purpose   :  Reactor Physics component                       *
* Author    :  A. Hebert                                       *
*                                                              *
* CALL      :                                                  *
*  Fmap Matex Flux := PowComponent Fmap Matex Flux Cpo Track   *
*    :: <<iter>> <<powi>> <<densB>> ;                          *
*                                                              *
****************************************************************
PARAMETER  Fmap Matex Flux Cpo Track ::
  ::: LINKED_LIST Fmap Matex Flux Cpo Track ; ;
MODULE NCR: MACINI: TRIVAA: FLUD: FLPOW: GREP: DELETE: END: ;
LINKED_LIST MacroF System Macro1 Macro2 Power ;
INTEGER iter ;
 :: >>iter<< ;
DOUBLE Dpowi DdensB ;
 :: >>Dpowi<< >>DdensB<< ;

REAL powi := Dpowi D_TO_R ;
REAL densB := DdensB D_TO_R ;

STRING  Dir := "EDI2B" ;
REAL keffn ;

*--
* Reference parameter values
*--
REAL pbore_0 temp_comb_0 temp_mode_0 dens_mode_0 :=
    500.0 800.0 600.0 0.659 ;
*--
* Cross-section database interpolation
*--
ECHO "uniform Boron concentration=" densB ;
MacroF := NCR: Cpo Fmap ::
             EDIT 0
             MACRO LINEAR
             TABLE Cpo <<Dir>> 'burnup'
               MIX 1 INST-BURN
                     SET LINEAR 'burnup' MAP
                     SET LINEAR 'ppmBore' <<pbore_0>>
                     SET CUBIC 'TF' <<temp_comb_0>>
                     SET CUBIC 'TCA' <<temp_mode_0>>
                     SET CUBIC 'DCA' <<dens_mode_0>>
                     ADD 'ppmBore' <<pbore_0>> MAP
                        REF 'burnup' SAMEASREF
                            'TF' <<temp_comb_0>>
                            'TCA' <<temp_mode_0>>
                            'DCA' <<dens_mode_0>>
                        ENDREF
                     ADD 'TCA' <<temp_mode_0>> MAP
                        REF 'burnup' SAMEASREF
                            'ppmBore' <<pbore_0>>
                            'TF' <<temp_comb_0>>
                            'DCA' <<dens_mode_0>>
                        ENDREF
                     ADD 'TF' <<temp_comb_0>> MAP
                        REF 'burnup' SAMEASREF
                            'ppmBore' <<pbore_0>>
                            'TCA' <<temp_mode_0>>
                            'DCA' <<dens_mode_0>>
                        ENDREF
                     ADD 'DCA' <<dens_mode_0>> MAP
                        REF 'burnup' SAMEASREF
                            'ppmBore' <<pbore_0>>
                            'TCA' <<temp_mode_0>>
                            'TF' <<temp_comb_0>>
                        ENDREF
               ENDMIX
;
  
Macro1 := NCR: Cpo ::
*            dummy reflector -- please use more realistic data
             EDIT 0
             MACRO LINEAR NMIX 2
             COMPO Cpo <<Dir>>
               MIX 2 SET LINEAR 'burnup' 15000.0
                       SET LINEAR 'ppmBore' <<densB>>
                       SET CUBIC 'TF' <<temp_comb_0>>
                       SET CUBIC 'TCA' <<temp_mode_0>>
                       SET CUBIC 'DCA' <<dens_mode_0>>
               ENDMIX 
;
  
Macro2 Matex := MACINI: Matex Macro1 MacroF ;
*--
* Steady-state diffusion calculation
*--
System := TRIVAA: Macro2 Track ;

IF iter 1 = THEN
  Flux := FLUD: System Track ::
    EDIT 1 ADI 4 ACCE 5 3 ;
ELSE
  Flux := FLUD: Flux System Track ::
    EDIT 1 ;
ENDIF ;

System MacroF Macro1 Macro2 := DELETE: System MacroF Macro1 Macro2 ;
*--
* Power distribution calculation
*--
ECHO "total reactor power=" powi "MW" ;
Power Fmap := FLPOW: Fmap Flux Track Matex
                :: EDIT 0 PTOT <<powi>> ;

Power := DELETE: Power ;
GREP: Flux   ::
  GETVAL 'K-EFFECTIVE ' 1  >>keffn<<   ;
ECHO "K-effective = " keffn " densB=" densB ;

END: ;