******************************************************************************************************* * * * Procedure : vverBU.c2m * * Purpose : BU iteration calculus * * Author : L.Fede * * * * CALL : * * COMPO := vverBU LIBRARY TRACK TF_EXC TRACK_SS TF_EXC_SS StepList :: <> <> * * <> <> * * * ******************************************************************************************************* * --- * INPUT & OUTPUT PARAMETERS * --- PARAMETER COMPO LIBRARY TRACK TF_EXC TRACK_SS TF_EXC_SS StepList :: ::: LINKED_LIST COMPO ; ::: LINKED_LIST LIBRARY ; ::: LINKED_LIST TRACK ; ::: SEQ_BINARY TF_EXC ; ::: LINKED_LIST TRACK_SS ; ::: SEQ_BINARY TF_EXC_SS ; ::: LINKED_LIST StepList ; ; INTEGER Multicompo ; :: >>Multicompo<< ; STRING name_geom name_compo ss ; :: >>name_geom<< >>name_compo<< >>ss<< ; * --- * STRUCTURES AND MODULES * --- MODULE MAC: DELETE: UTL: AUTO: USS: ASM: FLU: EVO: GREP: EXCELT: PSP: COMPO: EDI: END: ABORT: ; LINKED_LIST SYS FLUX BURNUP FIG EDIBU LIBRARY2 ; SEQ_ASCII _COMPO :: FILE <> ; ************************************************************************ * REFERENCE LOCAL PARAMETERS * ************************************************************************ SEQ_ASCII TDT_VVER :: FILE './testVVER_1level_g2s.txt' ; SEQ_ASCII FIG_VVER :: FILE './FIG_VVER_1level.ps' ; STRING Library := "DLIB_J3p1p1" ; REAL Kinf ; ECHO "vverBU: Multicompo=" Multicompo ; ************************************************************************ * BEGIN DECLARATION * ************************************************************************ INTEGER nstep nauto maxcompo ; GREP: StepList :: LENGTH ListBU >>nstep<< ; GREP: StepList :: LENGTH ListAutop >>nauto<< ; GREP: StepList :: LENGTH ListCompo >>maxcompo<< ; ECHO "nstep=" nstep "nauto=" nauto "maxcompo=" maxcompo "ss=" ss ; ************************************************************************ * END DECLARATION * ************************************************************************ ************************************************************************ * BEGIN COMPO INITIALIZATION * ************************************************************************ COMPO := COMPO: :: EDIT 10 STEP UP 'EDIBU' MAXCAL 5 COMM 'Evolution burnup pincell' ENDC PARA 'Burnup' IRRA ISOT 11 U235 U236 U238 Pu239 Pu240 Pu241 Pu242 Gd155 Gd157 Xe135 Sm149 INIT ; ************************************************************************ * END COMPO INITIALIZATION * ************************************************************************ ************************************************************************ * NOMINAL REFERENCE CALCULATION * ************************************************************************ INTEGER istepNext ; REAL BUbeg Tbeg ; REAL BU BUautop BUcompo := 0.0 0.0 0.0 ; REAL Norm_f2 := 36.8577 ; ! SPECIFIC POWER MW/t REAL BUend Tend := 0. 0. ; INTEGER istep := 0 ; INTEGER iauto := 1 ; INTEGER iCompo := 1 ; ECHO "start burnup loop" ; WHILE istep nstep < DO EVALUATE istep := istep 1 + ; ECHO "burnup step: " istep "/" nstep ; EVALUATE BUbeg Tbeg := BUend Tend ; GREP: StepList :: GETVAL 'ListBU' <> >>BUend<< ; EVALUATE Tend := BUend Norm_f2 / ; ECHO "Nominal depletion between" Tbeg " and" Tend "days" ; *---- * AUTO *---- IF istep 1 = THEN ECHO ".perform self-shielding at" Tbeg "days" ; IF ss 'auto' = THEN LIBRARY2 := AUTO: LIBRARY TRACK_SS TF_EXC_SS :: EDIT 1 PASS 1 MAXT 60000 SEED 1111 CALC REGI W1 U235 ALL ENDC ; ELSEIF ss 'uss' = THEN LIBRARY2 := USS: LIBRARY TRACK_SS TF_EXC_SS :: EDIT 1 PASS 3 CALC REGI W1 U235 ALL ENDC ; ELSE ECHO "vverBU: self shielding" ss "not available" ; ABORT: ; ENDIF ; ELSE GREP: StepList :: GETVAL "ListAutop" <> >>BUautop<< ; GREP: StepList :: GETVAL "ListBU" <> >>BU<< ; IF BUautop BU = THEN ECHO "perform self-shielding at" Tbeg "days" ; IF ss 'auto' = THEN LIBRARY2 := AUTO: LIBRARY LIBRARY2 TRACK_SS TF_EXC_SS :: EDIT 1 CALC REGI W1 U235 ALL ENDC ; ELSEIF ss 'uss' = THEN LIBRARY2 := USS: LIBRARY LIBRARY2 TRACK_SS TF_EXC_SS :: EDIT 1 CALC REGI W1 U235 ALL ENDC ; ELSE ECHO "vverBU: self shielding" ss "not available" ; ABORT: ; ENDIF ; EVALUATE iauto := iauto 1 + ; ENDIF ; ENDIF ; ************************************************************************ * BEGIN MOC FLUX CALCULATION * ************************************************************************ SYS := ASM: LIBRARY2 TRACK TF_EXC :: ARM EDIT 1 ; IF istep 1 = THEN FLUX := FLU: LIBRARY2 SYS TRACK TF_EXC :: EDIT 1 TYPE K B1 SIGS ; ELSE FLUX := FLU: FLUX LIBRARY2 SYS TRACK TF_EXC :: EDIT 1 TYPE K B1 SIGS ; ENDIF ; SYS := DELETE: SYS ; IF istep 1 = THEN BURNUP LIBRARY2 := EVO: LIBRARY2 FLUX TRACK :: EDIT 0 SAVE <> DAY POWR <> ; ELSE BURNUP LIBRARY2 := EVO: BURNUP LIBRARY2 FLUX TRACK :: EDIT 0 SAVE <> DAY POWR <> ; ENDIF ; GREP: StepList :: GETVAL "ListCompo" <> >>BUcompo<< ; GREP: StepList :: GETVAL "ListBU" <> >>BU<< ; IF BUcompo BU = THEN EDIBU := EDI: FLUX LIBRARY2 TRACK :: EDIT 5 MICR 11 U235 U236 U238 Pu239 Pu240 Pu241 Pu242 Gd155 Gd157 Xe135 Sm149 MERG MIX 0 0 0 0 0 0 0 0 0 0 1 1 1 1 1 1 COND SAVE ON FUEL ; COMPO := COMPO: COMPO EDIBU BURNUP LIBRARY :: EDIT 2 STEP UP 'EDIBU' SET <> DAY ; EDIBU := DELETE: EDIBU ; EVALUATE iCompo := iCompo 1 + ; ENDIF ; GREP: FLUX :: GETVAL 'K-INFINITY ' 1 1 1 >>Kinf<< ; ECHO "+++ Burnup=" BUend " Kinf=" Kinf " at step" istep ; IF istep nstep < THEN EVALUATE istepNext := istep 1 + ; GREP: StepList :: GETVAL 'ListBU' <> >>BUend<< ; EVALUATE Tend := BUend Norm_f2 / ; BURNUP LIBRARY2 := EVO: BURNUP LIBRARY2 FLUX TRACK :: EDIT 3 DEPL <> <> DAY POWR <> EXPM 1.0E15 GLOB ; ENDIF ; ************************************************************************ * END FLUX CALCULATION * ************************************************************************ ENDWHILE ; ************************************************************************ * END OF REFERENCE BURNUP LOOP WITH DEPLETION * ************************************************************************ ************************************************************************ * EXPORT MULTICOMPO IN ASCII FORMAT * ************************************************************************ _COMPO := COMPO ; END: ; QUIT .