From 7dfcc480ba1e19bd3232349fc733caef94034292 Mon Sep 17 00:00:00 2001 From: stainer_t Date: Mon, 8 Sep 2025 13:48:49 +0200 Subject: Initial commit from Polytechnique Montreal --- Dragon/data/tdraglib_proc/EvolRef.c2m | 120 ++++++++++++++++++++++++++++++++++ 1 file changed, 120 insertions(+) create mode 100644 Dragon/data/tdraglib_proc/EvolRef.c2m (limited to 'Dragon/data/tdraglib_proc/EvolRef.c2m') diff --git a/Dragon/data/tdraglib_proc/EvolRef.c2m b/Dragon/data/tdraglib_proc/EvolRef.c2m new file mode 100644 index 0000000..acddbe2 --- /dev/null +++ b/Dragon/data/tdraglib_proc/EvolRef.c2m @@ -0,0 +1,120 @@ +*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 . -- cgit v1.2.3