diff options
Diffstat (limited to 'Dragon/data/rep900_het_gff_proc/CalcFluxH.c2m')
| -rw-r--r-- | Dragon/data/rep900_het_gff_proc/CalcFluxH.c2m | 179 |
1 files changed, 179 insertions, 0 deletions
diff --git a/Dragon/data/rep900_het_gff_proc/CalcFluxH.c2m b/Dragon/data/rep900_het_gff_proc/CalcFluxH.c2m new file mode 100644 index 0000000..d520170 --- /dev/null +++ b/Dragon/data/rep900_het_gff_proc/CalcFluxH.c2m @@ -0,0 +1,179 @@ +*DECK CalcFlux +*---- +* Name : CalcFlux.c2m +* Type : DRAGON procedure +* Use : Two-level flux calculation using the extended +* Le Tellier scheme. +* Author : A. Hebert, based on a procedure from R. Vallerent +* +* Procedure called as: +* +* LIBRARY2 FLUX1 FLUX2 BURN164 LIBEQ := CalcFlux LIBRARY2 FLUX1 +* FLUX2 BURN164 LIBEQ LIBRARY TRACKSS TRACKN1 TRACKN2 TRKFILN2 +* :: (data) ; +* +* Input data : +* LIBRARY : Microlib with subgroups +* LIBRARY2 : Self-shielded microlib +* TRACKSS : Tracking of the self-shielding geometry +* TRACKN1 : Tracking of the level 1 geometry +* TRACKN2 : Tracking of the level 2 geometry +* TRKFILN2 : Sequential tracking file of the level 2 geometry +* FLUX1 : Multigroup flux of the first level +* FLUX2 : Multigroup flux of the second level +* BURN164 : Burnup object of level 2 +* Output data : +* LIBRARY2 : Self-shielded microlib +* FLUX1 : Multigroup flux of the first level +* FLUX2 : Multigroup flux of the second level +* BURN164 : Burnup object of level 2 +* LIBEQ : 26-group microlib +* Parameters : +* istep : Burnup step index corresponding to the calculation +* Fuel : Type of fuel ("MOX" or "UOX") +* NbRegions : Number of regions (32 for MOX, 20 or 32 for UOX) +* BUend : Burnup corresponding to the calculation +* BUnextSS : Burnup corresponding to the next self-shielding +* calculation +* Fuelpwr : Fuel power in MW/tonne + +PARAMETER LIBRARY2 FLUX1 FLUX2 BURN164 LIBEQ LIBRARY TRACKSS TRACKN1 + TRACKN2 TRKFILN2 :: + EDIT 1 + ::: LINKED_LIST LIBRARY2 FLUX1 FLUX2 BURN164 LIBEQ LIBRARY + TRACKSS TRACKN1 TRACKN2 ; + ::: SEQ_BINARY TRKFILN2 ; + ; +* ; +*---- +* Modules used in this procedure +*---- +MODULE LIB: ASM: FLU: EDI: EVO: GREP: ABORT: DELETE: END: ; +PROCEDURE Autop1 Autop2 ConcLIBEQ MultLIBEQ_20 MultLIBEQ32H ; +LINKED_LIST EDITION SYS ; +REAL B2 Kinf1 Kinf2 Keff2 Tend ; + +STRING Fuel ; +INTEGER istep NbRegions ; +REAL BUend BUnextSS Fuelpwr ; + :: >>istep<< >>Fuel<< >>NbRegions<< >>BUend<< >>BUnextSS<< + >>Fuelpwr<< ; + + EVALUATE Tend := BUend Fuelpwr / ; + ECHO "-----------------------------------------------------------" ; + ECHO "Two-level flux calculation at step=" istep ; + ECHO "BURNUP_sortie = " BUend "Next SS = " BUnextSS ; + IF BUend BUnextSS - ABS 1E-5 < THEN + ECHO "Perform a self-shielding calculation" ; + ECHO "-----------------------------------------------------------" ; + IF istep 1 = THEN + LIBRARY2 := Autop1 LIBRARY TRACKSS :: <<Fuel>> <<NbRegions>> ; + ELSE + LIBRARY2 := Autop2 LIBRARY2 LIBRARY TRACKSS + :: <<Fuel>> <<NbRegions>> ; + ENDIF ; + ELSE + ECHO "No self-shielding calculation" ; + ECHO "-----------------------------------------------------------" ; + ENDIF ; +************************************************************************ +* BEGIN FLUX CALCULATION * +************************************************************************ + SYS := ASM: LIBRARY2 TRACKN1 :: + EDIT 0 ARM ; + + IF istep 1 = THEN + FLUX1 := FLU: SYS LIBRARY2 TRACKN1 + :: EDIT 0 TYPE B B1 SIGS ; + ELSE + FLUX1 := FLU: FLUX1 SYS LIBRARY2 TRACKN1 + :: EDIT 0 TYPE B B1 SIGS ; + ENDIF ; + + GREP: FLUX1 :: GETVAL 'B2 B1HOM ' 1 1 1 >>B2<< ; + ECHO "B2-1 = " B2 " at BU = " BUend ; + + GREP: FLUX1 :: GETVAL 'K-INFINITY ' 1 1 1 >>Kinf1<< ; + ECHO "K-inf1_sortie is " Kinf1 " at BU = " BUend ; + +*---- +* 26 groups energy condensation +*---- + + EDITION := EDI: FLUX1 LIBRARY2 TRACKN1 :: + EDIT 0 + MICR ALL + MERG MIX + COND 10 14 18 26 33 40 49 56 65 74 86 196 227 + 230 233 238 241 244 247 254 259 263 267 272 277 + SAVE ON COND26 + ; + + LIBEQ := EDITION :: + STEP UP COND26 + ; + + SYS := DELETE: SYS ; + +*---- +* Second level flux calculation (MOC) +*---- + +* added by remi( + + IF NbRegions 20 = THEN + LIBEQ := MultLIBEQ_20 LIBEQ ; + ELSEIF NbRegions 32 = THEN + LIBEQ := MultLIBEQ32H LIBEQ ; + ENDIF ; + + IF istep 1 > THEN + LIBEQ := ConcLIBEQ LIBEQ BURN164 :: <<istep>> ; + ENDIF ; + + LIBEQ := LIB: LIBEQ :: EDIT 0 MACR MIXS ; +* )added by remi + + SYS := ASM: LIBEQ TRACKN2 TRKFILN2 :: + EDIT 0 ARM ; + + IF istep 1 = THEN + FLUX2 := FLU: SYS LIBEQ TRACKN2 TRKFILN2 :: + EDIT 0 + TYPE K B1 PNL BUCK <<B2>> + THER 5 5E-5 EXTE 30 1E-5 UNKT 1E-4 ; + ELSE + FLUX2 := FLU: FLUX2 SYS LIBEQ TRACKN2 TRKFILN2 :: + EDIT 0 + TYPE K B1 PNL BUCK <<B2>> + THER 5 5E-5 EXTE 30 1E-5 UNKT 1E-4 ; + ENDIF ; + + GREP: FLUX2 :: GETVAL 'K-INFINITY ' 1 1 1 >>Kinf2<< ; + ECHO "K-inf2_sortie is " Kinf2 " at BU = " BUend ; + + GREP: FLUX2 :: GETVAL 'K-EFFECTIVE ' 1 1 1 >>Keff2<< ; + ECHO "K-eff2_sortie is " Keff2 " at BU = " BUend ; + + GREP: FLUX2 :: GETVAL 'B2 B1HOM ' 1 1 1 >>B2<< ; + ECHO "B2-2 = " B2 " at BU = " BUend ; + + SYS EDITION := DELETE: SYS EDITION ; +************************************************************************ +* END FLUX CALCULATION * +************************************************************************ + +IF istep 1 = THEN + BURN164 LIBEQ := EVO: LIBEQ FLUX2 TRACKN2 :: + EDIT 0 + SAVE <<Tend>> DAY POWR <<Fuelpwr>> + ; +ELSE + BURN164 LIBEQ := EVO: BURN164 LIBEQ FLUX2 TRACKN2 :: + EDIT 0 + SAVE <<Tend>> DAY POWR <<Fuelpwr>> + ; +ENDIF ; + +END: ; +QUIT . |
