summaryrefslogtreecommitdiff
path: root/Donjon/data/rep900_mphy_proc/ThermoParam.c2m
blob: 3949390c69edf2cd958d7016dd150f93f638d1c8 (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
****************************************************************
*                                                              *
* Procedure :  ThermoParam.c2m                                 *
* Purpose   :  Thermo-hydraulics coupling                      *
* Author    :  A. Hebert                                       *
*                                                              *
* CALL      :                                                  *
*  Fmap Matex Flux := ThermoParam Fmap Matex Cpo Track         *
*                     :: (data) ;                              *
*                                                              *
****************************************************************
PARAMETER  Fmap Matex Flux Cpo Track ::
  ::: LINKED_LIST Fmap Matex Flux Cpo Track ; ;
MODULE NCR: MACINI: TRIVAA: FLUD: THM: FLPOW: GREP: DELETE: END: ;
LINKED_LIST Thm MacroF System Macro1 Macro2 Power ;
REAL powi densB pbore_0 temp_comb_0 temp_mode_0 dens_mode_0 ;
:: >>powi<< >>densB<< >>pbore_0<< >>temp_comb_0<< >>temp_mode_0<<
   >>dens_mode_0<< ;

STRING  Dir := "EDI2B" ;
INTEGER iter := 0 ;
REAL keffn erra1 ;
LOGICAL CONV ;

REPEAT
  EVALUATE iter := iter 1 + ;
  ECHO "-------------------------------" ;
  ECHO "Thermo-hydraulics coupling loop" ;
  ECHO "iter=" iter "densB=" densB "powi=" powi ;
  ECHO "-------------------------------" ;
*--
* Cross-section database interpolation
*--
  MacroF := NCR: Cpo Fmap ::
             EDIT 2
             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 2 ADI 4 ACCE 5 3 ;
  ELSE
    Flux := FLUD: Flux System Track ::
      EDIT 2 RELAX 0.8 ;
  ENDIF ;
  System MacroF Macro1 Macro2 := DELETE: System MacroF Macro1 Macro2 ;
*--
* Thermo-hydraulics calculation
*--
  Power Fmap := FLPOW: Fmap Flux Track Matex
                :: EDIT 10 PTOT <<powi>> ;

  Power := DELETE: Power ;
  GREP: Flux   ::
    GETVAL 'K-EFFECTIVE ' 1  >>keffn<<   ;
  ECHO "K-effective = " keffn " densB=" densB ;
  IF iter 1 = THEN
    Thm Fmap := THM: Fmap ::
      EDIT 3
      CRITFL 1.80E+6 (* W/m^2 *)
      ASSMB 264 25
      CWSECT 3.86 (* m^2 *) 67398.0 (* m^3/hr *)
      INLET 15500000.0 (* Pa *) 560.95 (* K *)
      RADIUS 0.4095E-2 0.418E-2 0.475E-2 0.6025E-2 (* m *)
      SET-PARAM 'C-BORE' <<densB>>
      RELAX 0.5
    ;
  ELSE
    Thm Fmap := THM: Thm Fmap ;
  ENDIF ;
*--
* Convergence test
*--
  GREP: Thm :: GETVAL 'ERROR-T-FUEL' 1  >>erra1<< ;
  ECHO "error on fuel temperature at iteration" iter "=" erra1 ;
  EVALUATE CONV := erra1 1.0 < iter 50 > + ;
  ECHO "CONV =" CONV ;
  ECHO "-------------------------------" ;
UNTIL CONV ;
END: ;