summaryrefslogtreecommitdiff
path: root/Dragon/data/CFC-CELL.x2m
diff options
context:
space:
mode:
authorstainer_t <thomas.stainer@oecd-nea.org>2025-09-08 13:48:49 +0200
committerstainer_t <thomas.stainer@oecd-nea.org>2025-09-08 13:48:49 +0200
commit7dfcc480ba1e19bd3232349fc733caef94034292 (patch)
tree03ee104eb8846d5cc1a981d267687a729185d3f3 /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.x2m268
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 .