**************************************************************** * * * Procedure : PowComponent.c2m * * Purpose : Reactor Physics component * * Author : A. Hebert * * * * CALL : * * Fmap Matex Flux := PowComponent Fmap Matex Flux Cpo Track * * :: <> <> <> ; * * * **************************************************************** 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 <> 'burnup' MIX 1 INST-BURN SET LINEAR 'burnup' MAP SET LINEAR 'ppmBore' <> SET CUBIC 'TF' <> SET CUBIC 'TCA' <> SET CUBIC 'DCA' <> ADD 'ppmBore' <> MAP REF 'burnup' SAMEASREF 'TF' <> 'TCA' <> 'DCA' <> ENDREF ADD 'TCA' <> MAP REF 'burnup' SAMEASREF 'ppmBore' <> 'TF' <> 'DCA' <> ENDREF ADD 'TF' <> MAP REF 'burnup' SAMEASREF 'ppmBore' <> 'TCA' <> 'DCA' <> ENDREF ADD 'DCA' <> MAP REF 'burnup' SAMEASREF 'ppmBore' <> 'TCA' <> 'TF' <> ENDREF ENDMIX ; Macro1 := NCR: Cpo :: * dummy reflector -- please use more realistic data EDIT 0 MACRO LINEAR NMIX 2 COMPO Cpo <> MIX 2 SET LINEAR 'burnup' 15000.0 SET LINEAR 'ppmBore' <> SET CUBIC 'TF' <> SET CUBIC 'TCA' <> SET CUBIC 'DCA' <> 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 <> ; Power := DELETE: Power ; GREP: Flux :: GETVAL 'K-EFFECTIVE ' 1 >>keffn<< ; ECHO "K-effective = " keffn " densB=" densB ; END: ;