summaryrefslogtreecommitdiff
path: root/Dragon/data/tdraglib_proc/EvolRef.c2m
diff options
context:
space:
mode:
Diffstat (limited to 'Dragon/data/tdraglib_proc/EvolRef.c2m')
-rw-r--r--Dragon/data/tdraglib_proc/EvolRef.c2m120
1 files changed, 120 insertions, 0 deletions
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 ::
+* <<BExit>> <<Power>> <<NbSteps>> ;
+* 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 <<Delt>> DAY POWR <<Power>> ;
+ ELSE
+ ConcIso MicLib := EVO: ConcIso MicLib Flux TrackingF ::
+ DEPL <<Delt>> DAY POWR <<Power>> ;
+ ENDIF ;
+ CompoDS := COMPO: CompoDS EditDS ConcIso MicLib ::
+ EDIT 3
+ STEP UP *
+ SET <<Timef>> 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 .