***************************************************************** * * * Procedure : Steady.c2m * * Purpose : reactor steady state computation including * * neutron physics, thermalhydraulics, local xenon * * effects and critical boron search feature * * Author : V. Salino * * * * CALL : * * Power Fmap Matex Thermo XeMicroF XeBurn := Steady * * Fmap Matex Thermo XeMicroF XeBurn ReflXS Track :: * * <> <> <> < * * >>CB<< >>keff<< ; * * * * Parameters: input * * CritCB set to True to search critical boron concentration * * computation, False otherwise (logical variable). * * CBinit initialization for boron concentration (ppm) when * * CritCB.EQ.True, otherwise boron concentration to * * be used. * * Prel relative power=requested power/nominal power. * * InletTmod inlet coolant temperature (Celsius). * * * * Parameters: output * * CB critical boron concentration if CritCB.EQ.True, * * can be negative in which case CB is extrapolated * * and should not considered physical but fictive. * * keff k-effective, differs from 1 only if CB is * * negative or if CritCB.EQ.False. * * * ***************************************************************** PARAMETER Power Flux Fmap Matex Thermo XeMicroF Track SapUOX :: ::: LINKED_LIST Power Flux Fmap Matex Thermo XeMicroF Track SapUOX ; ; MODULE SCR: NCR: MACINI: RESINI: TRIVAA: FLUD: FLPOW: EVO: SIM: GREP: UTL: DELETE: ABORT: END: MAC: ; *-- * Local objects and procedure *-- LINKED_LIST MacroTot MacroRefl MacroF System PowerIter ; *-- * Procedure arguments *-- LOGICAL CritCB ; REAL CBmax := 2000.0 ; REAL CBmin := 0.0 ; INTEGER BUindex ; REAL CB Prel InletTmod ; :: >>CritCB<< >>CB<< >>Prel<< >>InletTmod<< ; REAL InletTmodK := InletTmod 273.15 + ; *-- * Local variables *-- REAL ErrorRho ErrorCB ErrorTFuel ErrorDCool ErrorTCool ErrorPdis ; REAL EpsRho EpsCB EpsTFuel EpsDCool EpsPdis := 0.5 0.05 0.5 5.0E-5 5.0E-4 ; INTEGER Iter := 1 ; REAL CBinterp CBp1 CBm1 keff DeltaRho Rho Rhom1 ; LOGICAL CONV := $False_L ; REAL DiffBorWorth ; REAL TOTAL1_inf TOTAL2_inf DIFF1_inf DIFF2_inf ; REAL TOTAL1_sup TOTAL2_sup DIFF1_sup DIFF2_sup ; REAL TOTAL1_rad TOTAL2_rad DIFF1_rad DIFF2_rad ; EVALUATE TOTAL1_sup TOTAL2_sup := .158287E+01 .276758E-01 + .503068E+00 .282751E-01 + ; EVALUATE DIFF1_sup DIFF2_sup := 1. 3. TOTAL1_sup * / 1. 3. TOTAL2_sup * / ; EVALUATE TOTAL1_inf TOTAL2_inf := .141535E+01 .261305E-01 + .511240E+00 .198432E-01 + ; EVALUATE DIFF1_inf DIFF2_inf := 1. 3. TOTAL1_inf * / 1. 3. TOTAL2_inf * / ; EVALUATE TOTAL1_rad TOTAL2_rad := .82752 .270997E-01 + .35577 .110125E+00 + ; EVALUATE DIFF1_rad DIFF2_rad := 1. 3. TOTAL1_rad * / 1. 3. TOTAL2_rad * / ; *-- * Thermalhydraulics parameters *-- REAL Tinlet := 286.5 273.15 + ; REAL Ptot := 1.0E-6 ; ! 1W *-- * Determine CB to use for interpolation *-- IF CB CBmin < THEN EVALUATE CBinterp := CBmin ; ELSEIF CB CBmax > THEN EVALUATE CBinterp := CBmax ; ELSE EVALUATE CBinterp := CB ; ENDIF ; *-- * Thermalhydraulics computation, xenon saturation *-- Fmap := SIM: Fmap :: SET-PARAM 'C-BORE' <> ; *-- * Saphyb Interpolation * Historic effects are neglected for simplicity's sake *-- XeMicroF := SCR: XeMicroF SapUOX Fmap :: EDIT 1 RES MICRO LINEAR EQUI EQVS TABLE SapUOX 'BURN' MIX 4 INST-BURN SET 'DMOD' MAP SET 'TCOM' MAP SET 'BARR' 1. MICRO ALL * Recherche poids Xenon : commenter/decommenter ! 'XE135PF' * ! 'I135PF' 0. 'B10' * 'B11' * * Temporairement, Sm/Pm sont remis a leurs valeurs de Saphyb * (equivalent a ne pas les particulariser). Apres premier * appel a Steady, on pourrait enlever cela pour les laisser * evoluer librement. ! 'ND147PF' 0. ! 'PM147PF' 0. ! 'PM148PF' 0. ! 'PM148MPF' 0. ! 'PM149PF' 0. ! 'SM149PF' 0. '*MAC*RES' 1. ENDMIX CHAIN B10 STABLE B11 STABLE I135PF NG 0. XE135PF NG 0. FROM DECAY 1.0E+00 I135PF ND147PF STABLE PM147PF STABLE PM148PF STABLE PM148MPF STABLE PM149PF STABLE SM149PF STABLE MACR NFTOT 0. ENDCHAIN ; MacroF := XeMicroF :: STEP UP "MACROLIB" ; *--- * Reflector definition *--- MacroRefl := MAC: :: EDIT 3 NGRO 2 NMIX 3 NIFI 0 ANIS 1 CTRA NONE ENER 2.E7 0.625 1.E-3 VOLUME 1. 1. 1. READ INPUT *--- * Upscattering is set to zero, as done in HEMERA, despite having an upscattering cross section available. *--- MIX 1 ! Radial Reflector FLUX-INTG 1. 1. TOTAL <> <> DIFF <> <> SCAT 2 2 (*2->1*) 0. (*1->1*) .82752 2 2 (*2->2*) .35577 (*1->2*) .113898E-01 MIX 2 ! Lower Reflector FLUX-INTG 1. 1. TOTAL <> <> DIFF <> <> SCAT 2 2 (*2->1*) 0. (*1->1*) .141535E+01 2 2 (*2->2*) .511240E+00 (*1->2*) .187184E-01 MIX 3 ! Higher Reflector FLUX-INTG 1. 1. TOTAL <> <> DIFF <> <> SCAT 2 2 (*2->1*) 0. (*1->1*) .158287E+01 2 2 (*2->2*) .503068E+00 (*1->2*) .200239E-01 NORM ; *-- * Flux and power computation *-- MacroTot Matex := MACINI: Matex MacroRefl MacroF ; MacroF MacroRefl := DELETE: MacroF MacroRefl ; System := TRIVAA: MacroTot Track :: EDIT 0 ; MacroTot := DELETE: MacroTot ; Flux := FLUD: Flux System Track :: EDIT 0 ADI 4 EXTE 1.0E-5 ACCE 5 3 ; GREP: Flux :: GETVAL 'K-EFFECTIVE ' 1 >>keff<< ; EVALUATE Rho := 1. 1. keff / - 1.0E5 * ; PowerIter Fmap := FLPOW: Fmap Flux Track Matex :: EDIT 0 PTOT <> PRINT DISTR POWER ; Power := PowerIter ; PowerIter := DELETE: PowerIter ; System := DELETE: System ; :: <> ; :: <> ; END: ;