*DECK EvolRef.c2m *---- * Name : EvolRef.c2m * Type : Procedure * Usage : Burnup calculation with DRAGON * Author : G. Marleau * Date : 2004/11/22 * Updated : a) E. Varin 2005/04/03 * b) E. Varin 2005/06/01 * c) A. Hebert 2007/01/31 * * Procedure called as: * * CompoDS ConcIso Flux := EvoRef MicLib TrackingS TrackingF * IntlineS IntlineF :: * <> <> <> ; * Output structures : * CompoDS : Multiparameter compo data structure. * ConcIso : Burnup data structure. * Flux : Last flux computed. * Input structures : * MicLib : Microscopic cross section library. * TrackingS : Tracking data structures for self shielding. * TrackingF : Tracking data structures for flux solution. * IntlineS : File with integration lines for self shielding. * IntlineF : File with integration lines for flux solution. * Input variables : * BExit : Average exit burnup (MWd/T). * Power : Burnup power (kw/kg) . * NbSteps : Number of burnup steps. * *---- * Definition of data structures for procedure * PARAMETER CompoDS ConcIso Flux MicLib TrackingS TrackingF IntlineS IntlineF :: ::: XSM_FILE CompoDS ConcIso ; ::: LINKED_LIST MicLib Flux TrackingS TrackingF ; ::: SEQ_BINARY IntlineS IntlineF ; ; *---- * Get input parameters *---- REAL Bexit Power ; INTEGER NbSteps ; :: >>Bexit<< >>Power<< >>NbSteps<< ; ECHO "Specific burnup power = " Power "kw/kg" ; *---- * Local modules, data structures *---- MODULE SHI: ASM: FLU: EDI: EVO: COMPO: DELETE: ; LINKED_LIST PIJ EditDS ; REAL keff ; INTEGER Istep ; REAL NbPt R TimeO ; REAL Delt Timef := 1.0 0.0 ; REAL Tfinal := Bexit Power / ; *---- * Burnup steps set in arithmetic progression *---- EVALUATE NbPt := NbSteps I_TO_R ; EVALUATE R := Tfinal LN NbPt 1. - / EXP ; ECHO "Burnup from " 0.0 " to " Tfinal " days using " NbSteps " steps" ; * *---- * First flux calculation * a) resonance self-shielding * b) compute Pij matrix * c) solve for the flux * d) define edit parameters and edit * e) clean up Pij *---- MicLib := SHI: MicLib TrackingS IntlineS :: EDIT 0 NOLJ ; PIJ := ASM: MicLib TrackingF IntlineF :: EDIT 0 ; Flux := FLU: PIJ MicLib TrackingF :: TYPE B B1 PNL ; EditDS := EDI: Flux MicLib TrackingF :: COND 0.625 MERG COMP MICR 1 Xe135 SAVE ON 'fuel' ; PIJ := DELETE: PIJ ; *---------- * Burnup loop *---------- EVALUATE Istep := 0 ; WHILE Istep NbSteps < DO ECHO " Burning for " Delt " until " Timef ; IF Timef 0.0 = THEN ConcIso MicLib := EVO: MicLib Flux TrackingF :: DEPL <> DAY POWR <> ; ELSE ConcIso MicLib := EVO: ConcIso MicLib Flux TrackingF :: DEPL <> DAY POWR <> ; ENDIF ; CompoDS := COMPO: CompoDS EditDS ConcIso MicLib :: EDIT 3 STEP UP * SET <> DAY ; *---- * Flux calculation after each burnup steps * a) resonance self-shielding * b) compute Pij matrix * c) solve for the flux * d) edit * e) clean up Pij *---- MicLib := SHI: MicLib TrackingS IntlineS :: EDIT 0 NOLJ ; PIJ := ASM: MicLib TrackingF IntlineF :: EDIT 0 ; Flux := FLU: Flux PIJ MicLib TrackingF :: TYPE B B1 PNL ; EditDS := EDI: EditDS Flux MicLib TrackingF :: SAVE ON 'fuel' ; PIJ := DELETE: PIJ ; *---- * Select next burnup interval *---- EVALUATE Timef := Timef Delt + ; EVALUATE Delt := Timef R 1. - * ; EVALUATE Istep := Istep 1 + ; ENDWHILE ; *---- * Clean up *---- EditDS := DELETE: EditDS ; QUIT .