diff options
| author | stainer_t <thomas.stainer@oecd-nea.org> | 2025-09-08 13:48:49 +0200 |
|---|---|---|
| committer | stainer_t <thomas.stainer@oecd-nea.org> | 2025-09-08 13:48:49 +0200 |
| commit | 7dfcc480ba1e19bd3232349fc733caef94034292 (patch) | |
| tree | 03ee104eb8846d5cc1a981d267687a729185d3f3 /Dragon/data/CFC-CELL.x2m | |
Initial commit from Polytechnique Montreal
Diffstat (limited to 'Dragon/data/CFC-CELL.x2m')
| -rw-r--r-- | Dragon/data/CFC-CELL.x2m | 268 |
1 files changed, 268 insertions, 0 deletions
diff --git a/Dragon/data/CFC-CELL.x2m b/Dragon/data/CFC-CELL.x2m new file mode 100644 index 0000000..6dc624b --- /dev/null +++ b/Dragon/data/CFC-CELL.x2m @@ -0,0 +1,268 @@ +* 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 :: <<ICREEP>> ; + +WHILE CALCU 22 < DO + + ECHO "CALCULATION " CALCU " STARTED, Creep = " ICREEP ; + + LIBR := LIBRY :: <<CALCU>> ; + +* Reference case & modified power cases + IF CALCU 1 = CALCU 18 > + THEN + EDITN COMPO COMPOR LIBR BURNUP := FLUX + LIBR TRKS TRKF TLINES TLINEF :: + <<CALCU>> <<Nburn>> <<MaxBurn>> ; +* Perturbated cases + ELSE + EDITN COMPO COMPOR LIBR := FLUXP + LIBR EDIREF BRNREF TRKS TRKF TLINES TLINEF :: + <<CALCU>> <<Nburn>> ; + 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 <<FBMNAM>> DNAME FBMDATA + PWR <<PowBundRef>> <<PowBundU>> <<PowBundI>> <<PowBundD>> + TCOOL <<TCool>> <<TCoolU>> <<TCoolD>> + TMODE <<TMode>> <<TModeU>> <<TModeD>> + TFUEL <<TFuel>> <<TFuelU>> <<TFuelD>> + RHOM <<DMode>> + RHOC <<DCool>> + XIR <<PModecfc>> <<PModeDcfc>> ; + +* 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 . |
