* DRAGON MAIN INPUT DECK *********************************************************************** * Purpose: * compute cross-sections for 2-D cell of CANDU reactor with the * feedback model using CFC. * ~40 minutes execution time * * author: * MAJID FASSI FEHRI 09/08/28 * CNSC * * Modified: * Richard CHAMBON 11/03/23 * Ecole Polytechnique * * Notes: * The properties values, which are perturbed for the FBM, are provided * in the "PERTRB.c2m" and "POWER.c2m" files and the other ones in the * "LIBRY.c2m" file. All the dimensions for the 2D cell geometry are * given in the "GEOMTY.c2m" file, except for the PT creep values, * which are in the "CREEP.c2m" file. * * Nburn := 45 ; Number of burnup steps * MaxBurn := 30000.0 ; Maximum burnup (MWd/t) * *********************************************************************** MODULE END: CFC: DELETE: ; PROCEDURE GEOMTY LIBRY FLUX FLUXP PERTRB POWER ; PROCEDURE assertS ; SEQ_BINARY TLINES TLINEF ; LINKED_LIST TRKS TRKF COMPO COMPOR LIBR EDITN BURNUP EDIREF BRNREF CFLUX ; SEQ_ASCII CALC1 CALC2 CALC3 CALC4 CALC5 CALC6 CALC7 CALC8 CALC9 CALC10 CALC11 CALC12 CALC13 CALC14 CALC15 CALC16 CALC17 CALC18 CALC19 CALC20 CALC21 CALC22 CALC23 CALC24 CALC25 CALC26 CALC27 CALC28 ; SEQ_ASCII FCALC1 FCALC2 FCALC3 FCALC4 FCALC5 FCALC6 FCALC7 FCALC8 FCALC9 FCALC10 FCALC11 FCALC12 FCALC13 FCALC14 FCALC15 FCALC16 FCALC17 FCALC18 FCALC19 FCALC20 FCALC21 FCALC22 FCALC23 FCALC24 FCALC25 FCALC26 FCALC27 FCALC28 ; SEQ_ASCII FBMDT1 FBMDT2 FBMDT3 FBMDT4 FBMDT5 FBMDT6 FBMDT7 FBMDT8 FBMDT9 FBMDT10 FBMDT11 FBMDT12 FBMDT13 FBMDT14 FBMDT15 FBMDT16 FBMDT17 FBMDT18 FBMDT19 FBMDT20 FBMDT21 FBMDT22 FBMDT23 FBMDT24 FBMDT25 FBMDT26 FBMDT27 FBMDT28 FBMDT29 FBMDT30 FBMDT31 FBMDT32 FBMDT33 FBMDT34 FBMDT35 ; LINKED_LIST ECALC1 ECALC2 ECALC3 ECALC4 ECALC5 ECALC6 ECALC7 ECALC8 ECALC9 ECALC10 ECALC11 ECALC12 ECALC13 ECALC14 ECALC15 ECALC16 ECALC17 ECALC18 ECALC19 ECALC20 ECALC21 ECALC22 ECALC23 ECALC24 ECALC25 ECALC26 ECALC27 ECALC28 CSDATA ; SEQ_ASCII FBMDT0 :: FILE './FBMDT0.txt' ; SEQ_ASCII AEDIT ABURN ; INTEGER CALCU ICREEP Nburn ; REAL MaxBurn ; REAL TFuel TCool TMode DCool DMode PCool PMode Bor Xe Sm Np Gad ; REAL TFuelU TFuelD TCoolU TCoolD TModeU TModeD DCoolU DCoolD DModeU DModeD PModeD BorU XeU SmU NpU ; REAL PModecfc PModeDcfc ; REAL POW PowRef ; REAL PowBundRef PowBundU PowBundI PowBundD ; STRING FBMNAM ; PERTRB :: 0 >>TFuel<< >>TCool<< >>TMode<< >>DCool<< >>DMode<< >>PCool<< >>PMode<< >>Bor<< >>Xe<< >>Sm<< >>Np<< >>Gad<< >>TFuelU<< >>TFuelD<< >>TCoolU<< >>TCoolD<< >>TModeU<< >>TModeD<< >>DCoolU<< >>DCoolD<< >>DModeU<< >>DModeD<< >>PModeD<< >>BorU<< >>XeU<< >>SmU<< >>NpU<< ; * Purity in fraction (instead of%) in CFC: EVALUATE PModecfc := PMode 100.0 / ; EVALUATE PModeDcfc := PModeD 100.0 / ; POWER :: 0 >>POW<< >>PowRef<< >>PowBundRef<< >>PowBundU<< >>PowBundI<< >>PowBundD<< ; ECHO TFuel TCool TMode DCool DMode PCool PMode Bor Xe Sm Np Gad ; ECHO TFuelU TFuelD TCoolU TCoolD TModeU TModeD DCoolU DCoolD DModeU DModeD PModeD BorU XeU SmU NpU ; ECHO POW PowRef ; ECHO PowBundRef PowBundU PowBundI PowBundD ; * Number of burnup steps EVALUATE Nburn := 3 ; (*replace by 45*) * Maximum burnup (MWd/t) EVALUATE MaxBurn := 10000.0 ; (*replace by 30000.0*) EVALUATE ICREEP := 0 ; * Calculation between 1 & 21: nominal & pertubated, fuel & reflector EVALUATE CALCU := 1 ; TRKS TRKF TLINES TLINEF := GEOMTY :: <> ; WHILE CALCU 22 < DO ECHO "CALCULATION " CALCU " STARTED, Creep = " ICREEP ; LIBR := LIBRY :: <> ; * Reference case & modified power cases IF CALCU 1 = CALCU 18 > + THEN EDITN COMPO COMPOR LIBR BURNUP := FLUX LIBR TRKS TRKF TLINES TLINEF :: <> <> <> ; * Perturbated cases ELSE EDITN COMPO COMPOR LIBR := FLUXP LIBR EDIREF BRNREF TRKS TRKF TLINES TLINEF :: <> <> ; ENDIF ; * Save reference case IF CALCU 1 = THEN BRNREF := BURNUP ; EDIREF := EDITN ; ENDIF ; * Save COMPO for CFC: module later on IF CALCU 1 = THEN ECALC1 := COMPO ; ECALC22 := COMPOR ; CFLUX := EDITN :: STEP UP "REF-CASE0001" STEP UP MFLUXG STEP UP CFLUX ; assertS CFLUX :: 'K-INFINITY' 1 1.120110 ; CFLUX := DELETE: CFLUX ; CFLUX := EDITN :: STEP UP "REF-CASE0003" STEP UP MFLUXG STEP UP CFLUX ; assertS CFLUX :: 'K-INFINITY' 1 0.9561486 ; CFLUX := DELETE: CFLUX ; ELSEIF CALCU 2 = THEN ECALC2 := COMPO ; ELSEIF CALCU 3 = THEN ECALC3 := COMPO ; ELSEIF CALCU 4 = THEN ECALC4 := COMPO ; ELSEIF CALCU 5 = THEN ECALC5 := COMPO ; ELSEIF CALCU 6 = THEN ECALC6 := COMPO ; ECALC23 := COMPOR ; ELSEIF CALCU 7 = THEN ECALC7 := COMPO ; ECALC24 := COMPOR ; ELSEIF CALCU 8 = THEN ECALC8 := COMPO ; ELSEIF CALCU 9 = THEN ECALC9 := COMPO ; ELSEIF CALCU 10 = THEN ECALC10 := COMPO ; ECALC25 := COMPOR ; ELSEIF CALCU 11 = THEN ECALC11 := COMPO ; ECALC26 := COMPOR ; ELSEIF CALCU 12 = THEN ECALC12 := COMPO ; ECALC27 := COMPOR ; ELSEIF CALCU 13 = THEN ECALC13 := COMPO ; ECALC28 := COMPOR ; ELSEIF CALCU 14 = THEN ECALC14 := COMPO ; ELSEIF CALCU 15 = THEN ECALC15 := COMPO ; ELSEIF CALCU 16 = THEN ECALC16 := COMPO ; ELSEIF CALCU 17 = THEN ECALC17 := COMPO ; ELSEIF CALCU 18 = THEN ECALC18 := COMPO ; ELSEIF CALCU 19 = THEN ECALC19 := COMPO ; ELSEIF CALCU 20 = THEN ECALC20 := COMPO ; ELSEIF CALCU 21 = THEN ECALC21 := COMPO ; ENDIF ; * Cleaning for next CALCU EDITN COMPO COMPOR LIBR := DELETE: EDITN COMPO COMPOR LIBR ; IF CALCU 1 = CALCU 18 > + THEN BURNUP := DELETE: BURNUP ; ENDIF ; ECHO "CALCULATION " CALCU " FINISHED, Creep = " ICREEP ; EVALUATE CALCU := CALCU 1 + ; * end for CALCU ENDWHILE ; * Save COMPO in ASCII for CREEP = 0 for FBM: validation. IF ICREEP 0 = THEN CALC1 := ECALC1 ; CALC2 := ECALC2 ; CALC3 := ECALC3 ; CALC4 := ECALC4 ; CALC5 := ECALC5 ; CALC6 := ECALC6 ; CALC7 := ECALC7 ; CALC8 := ECALC8 ; CALC9 := ECALC9 ; CALC10 := ECALC10 ; CALC11 := ECALC11 ; CALC12 := ECALC12 ; CALC13 := ECALC13 ; CALC14 := ECALC14 ; CALC15 := ECALC15 ; CALC16 := ECALC16 ; CALC17 := ECALC17 ; CALC18 := ECALC18 ; CALC19 := ECALC19 ; CALC20 := ECALC20 ; CALC21 := ECALC21 ; CALC22 := ECALC22 ; CALC23 := ECALC23 ; CALC24 := ECALC24 ; CALC25 := ECALC25 ; CALC26 := ECALC26 ; CALC27 := ECALC27 ; CALC28 := ECALC28 ; ABURN := BRNREF ; AEDIT := EDIREF ; ENDIF ; * Building FBM database EVALUATE FBMNAM := "C6_FBM_CRP" ICREEP I_TO_S + ; CSDATA := CFC: ECALC1 ECALC2 ECALC3 ECALC4 ECALC5 ECALC6 ECALC7 ECALC8 ECALC9 ECALC10 ECALC11 ECALC12 ECALC13 ECALC14 ECALC15 ECALC16 ECALC17 ECALC18 ECALC19 ECALC20 ECALC21 ECALC22 ECALC23 ECALC24 ECALC25 ECALC26 ECALC27 ECALC28 :: EDIT 0 INFOR <> DNAME FBMDATA PWR <> <> <> <> TCOOL <> <> <> TMODE <> <> <> TFUEL <> <> <> RHOM <> RHOC <> XIR <> <> ; * Saving FBM database FBMDT0 := CSDATA ; * Cleaning CSDATA TRKS TRKF TLINES TLINEF EDIREF BRNREF ECALC1 ECALC2 ECALC3 ECALC4 ECALC5 ECALC6 ECALC7 ECALC8 ECALC9 ECALC10 ECALC11 ECALC12 ECALC13 ECALC14 ECALC15 ECALC16 ECALC17 ECALC18 ECALC19 ECALC20 ECALC21 ECALC22 ECALC23 ECALC24 ECALC25 ECALC26 ECALC27 ECALC28 := DELETE: CSDATA TRKS TRKF TLINES TLINEF EDIREF BRNREF ECALC1 ECALC2 ECALC3 ECALC4 ECALC5 ECALC6 ECALC7 ECALC8 ECALC9 ECALC10 ECALC11 ECALC12 ECALC13 ECALC14 ECALC15 ECALC16 ECALC17 ECALC18 ECALC19 ECALC20 ECALC21 ECALC22 ECALC23 ECALC24 ECALC25 ECALC26 ECALC27 ECALC28 ; END: ; QUIT .