summaryrefslogtreecommitdiff
path: root/Dragon/data/ErmBeavrsPwrRefl_proc/CreaStepList.c2m
diff options
context:
space:
mode:
Diffstat (limited to 'Dragon/data/ErmBeavrsPwrRefl_proc/CreaStepList.c2m')
-rw-r--r--Dragon/data/ErmBeavrsPwrRefl_proc/CreaStepList.c2m532
1 files changed, 532 insertions, 0 deletions
diff --git a/Dragon/data/ErmBeavrsPwrRefl_proc/CreaStepList.c2m b/Dragon/data/ErmBeavrsPwrRefl_proc/CreaStepList.c2m
new file mode 100644
index 0000000..c1c7b1e
--- /dev/null
+++ b/Dragon/data/ErmBeavrsPwrRefl_proc/CreaStepList.c2m
@@ -0,0 +1,532 @@
+*DECK CreaStepList.c2m
+*======================================================
+* Name: CreaStepList.c2m
+* Type: DRAGON procedure
+* Use: Create one object containing lists used for
+* Burnup evolution & SAPHYB creation
+* Author: A. Bruneau 04.2015
+* [CS-SI | IRSN/PSN-EXP/SNC/LNR]
+* mod: Change matrix definition and add histories
+* L. Liponi 03.2018
+* [CTE | IRSN/PSN-EXP/SNC/LN]
+*------------------------------------------------------
+* Input Required:
+* > Gestion : [STR]
+* > AssType : [STR]
+* > ConfigPyrex : [STR]
+* > TypeMatrix : [STR] Type of matrix structure for multi-parameter library
+* > NumHistCal : [INT] Nb. nominal/off-Nominal depletion
+* Output Provided:
+* < StepList : [LINKED_LIST] Matrix branch structure parameters
+*------------------------------------------------------
+* Procedure called as:
+* StepList := CreaStepList ::
+* <<Gestion>> <<TypeInfo>> <<ConfigPyrex>>
+* <<NumHistCal>> <<TypeMatrix>> ;
+*======================================================
+PARAMETER StepList :: ::: LINKED_LIST StepList ; ;
+PROCEDURE GetTechData ;
+MODULE UTL: GREP: ABORT: END: ;
+LINKED_LIST AvgList RodList ;
+
+*-----------------------------------------------------
+* Input Parameters
+*-----------------------------------------------------
+STRING Gestion AssType ConfigPyrex ;
+ :: >>Gestion<< >>AssType<< >>ConfigPyrex<< ;
+INTEGER NumHistCal ;
+ :: >>NumHistCal<< ;
+STRING TypeMatrix ;
+ :: >>TypeMatrix<< ;
+
+*--- Max Number of histories (except Control Rod ones)
+* Since the CR configurations are variable and recover by GetTechData.c2m,
+* the user needs to fix the number of history calculations (dmod, tcom,
+* cbor, etc.) that are defined before the CR ones.
+*--
+INTEGER NbHistWORod := 6 ;
+
+*-----------------------------------------------------
+* Variables
+*-----------------------------------------------------
+
+* Dummy value
+INTEGER DUMMY := 0 ;
+
+* Average Operative (Nominal) conditions
+REAL dmod_avg ; ! [g.cm-3]
+REAL tmod_avg ; ! [degC]
+REAL cbor_avg ; ! [ppm]
+REAL tcom_avg ; ! [degC]
+REAL barr_avg ; ! [REAL]
+
+* Depletion Conditions
+REAL dmod ; ! [g.cm-3]
+REAL tmod ; ! [degC]
+REAL cbor ; ! [ppm]
+REAL tcom ; ! [degC]
+REAL barr ; ! [REAL]
+
+* Branch conditions
+REAL dmod_low dmod_hgh cbor_hgh tcom_low ;
+
+* Control Rod Histories/Branches
+INTEGER NbConfRod ; ! Number of control rod configurations
+INTEGER idxCR ;
+REAL valCR ;
+
+*======================================================
+* AVERAGE OPERATIVE CONDITIONS
+*------------------------------------------------------
+* Recover average operative core condition from GetTechData.c2m
+*------------------------------------------------------
+
+*--- T/H operative parameters
+AvgList := GetTechData ::
+ <<Gestion>> <<AssType>> <<DUMMY>> <<ConfigPyrex>> 'DEPLPARAMAVG' ;
+GREP: AvgList :: GETVAL 'dmod' 1 >>dmod_avg<< ;
+GREP: AvgList :: GETVAL 'cbor' 1 >>cbor_avg<< ;
+GREP: AvgList :: GETVAL 'tcom' 1 >>tcom_avg<< ;
+GREP: AvgList :: GETVAL 'tmod' 1 >>tmod_avg<< ;
+
+*--- Absorbers configuration
+* The first value in the 'Rods' array corresponds to the rod
+* configuration usually selected for the nominal depletion.
+* If ConfigPyrex <> NONE, the base depletion is performed
+* with Pyrex inserted.
+*---
+RodList := GetTechData ::
+ <<Gestion>> <<AssType>> <<DUMMY>> <<ConfigPyrex>> 'RODLIST' ;
+GREP: RodList :: GETVAL 'Rods' 1 >>barr_avg<< ;
+
+*======================================================
+* INITIALISE StepList WITH RodList
+*------------------------------------------------------
+* It accounts for the dependency of the array 'Rods' with the Gestion
+*------------------------------------------------------
+!*! CONTROL ROD CONFIGURATIONS
+StepList := RodList ;
+
+*======================================================
+* BURNUP STEPS (EvoNominale)
+*------------------------------------------------------
+* Burnup Step in L_BURNUP structure
+*------------------------------------------------------
+
+*--- UOX & MOX
+IF AssType "UOX" = AssType "MOX" = + THEN
+
+ StepList := UTL: StepList ::
+ CREA 'ListBU' 51 =
+ 9.375 18.75 37.5 75. 112.5
+ 150. 325. 500. 750. 1000.
+ 1500. 2000. 2500. 3000. 4000.
+ 5000. 6000. 7000. 8000. 10000.
+ 12000. 14000. 16000. 18000. 20000.
+ 22000. 24000. 26000. 28000. 30000.
+ 32000. 34000. 36000. 38000. 40000.
+ 42000. 44000. 46000. 48000. 50000.
+ 52000. 54000. 56000. 58000. 60000.
+ 62000. 64000. 66000. 68000. 70000.
+ 72000.
+ ;
+
+*--- GADOLINIUM
+ELSEIF AssType "UGd" = AssType "UGd8" = + THEN
+
+ StepList := UTL: StepList ::
+ CREA 'ListBU' 328 =
+ 2.34375 4.6875 7.03125 9.375 11.71875
+ 14.0625 16.40625 18.75 23.4375 28.125
+ 32.8125 37.5 46.875 56.25 65.625
+ 75. 84.375 93.75 103.125 112.5
+ 121.875 131.25 140.625 150. 193.75
+ 237.5 281.25 325. 368.75 412.5
+ 456.25 500. 562.5 625. 687.5
+ 750. 812.5 875. 937.5 1000.
+ 1125. 1250. 1375. 1500. 1625.
+ 1750. 1875. 2000. 2125. 2250.
+ 2375. 2500. 2625. 2750. 2875.
+ 3000. 3250. 3500. 3750. 4000.
+ 4250. 4500. 4750. 5000. 5250.
+ 5500. 5750. 6000. 6250. 6500.
+ 6750. 7000. 7250. 7500. 7750.
+ 8000. 8250. 8500. 8750. 9000.
+ 9250. 9500. 9750. 10000. 10250.
+ 10500. 10750. 11000. 11250. 11500.
+ 11750. 12000. 12250. 12500. 12750.
+ 13000. 13250. 13500. 13750. 14000.
+ 14250. 14500. 14750. 15000. 15250.
+ 15500. 15750. 16000. 16250. 16500.
+ 16750. 17000. 17250. 17500. 17750.
+ 18000. 18250. 18500. 18750. 19000.
+ 19250. 19500. 19750. 20000. 20250.
+ 20500. 20750. 21000. 21250. 21500.
+ 21750. 22000. 22250. 22500. 22750.
+ 23000. 23250. 23500. 23750. 24000.
+ 24250. 24500. 24750. 25000. 25250.
+ 25500. 25750. 26000. 26250. 26500.
+ 26750. 27000. 27250. 27500. 27750.
+ 28000. 28250. 28500. 28750. 29000.
+ 29250. 29500. 29750. 30000. 30250.
+ 30500. 30750. 31000. 31250. 31500.
+ 31750. 32000. 32250. 32500. 32750.
+ 33000. 33250. 33500. 33750. 34000.
+ 34250. 34500. 34750. 35000. 35250.
+ 35500. 35750. 36000. 36250. 36500.
+ 36750. 37000. 37250. 37500. 37750.
+ 38000. 38250. 38500. 38750. 39000.
+ 39250. 39500. 39750. 40000. 40250.
+ 40500. 40750. 41000. 41250. 41500.
+ 41750. 42000. 42250. 42500. 42750.
+ 43000. 43250. 43500. 43750. 44000.
+ 44250. 44500. 44750. 45000. 45250.
+ 45500. 45750. 46000. 46250. 46500.
+ 46750. 47000. 47250. 47500. 47750.
+ 48000. 48250. 48500. 48750. 49000.
+ 49250. 49500. 49750. 50000. 50250.
+ 50500. 50750. 51000. 51250. 51500.
+ 51750. 52000. 52250. 52500. 52750.
+ 53000. 53250. 53500. 53750. 54000.
+ 54250. 54500. 54750. 55000. 55250.
+ 55500. 55750. 56000. 56250. 56500.
+ 56750. 57000. 57250. 57500. 57750.
+ 58000. 58250. 58500. 58750. 59000.
+ 59250. 59500. 59750. 60000. 60250.
+ 60500. 60750. 61000. 61250. 61500.
+ 61750. 62000. 62250. 62500. 62750.
+ 63000. 63250. 63500. 63750. 64000.
+ 64250. 64500. 64750. 65000. 65250.
+ 65500. 65750. 66000. 66250. 66500.
+ 66750. 67000. 67250. 67500. 67750.
+ 68000. 68250. 68500. 68750. 69000.
+ 69250. 69500. 69750. 70000. 70500.
+ 71000. 71500. 72000.
+ ;
+
+ELSE
+ ECHO "ERROR --- AssType:" AssType "not recognized." ;
+ ABORT: ;
+ENDIF ;
+
+*======================================================
+* DEPLETION BURNUP STEPS (MakeBib1BU)
+*------------------------------------------------------
+* 31 steps for SAPHYB and MULTICOMPO (indices 'BurnStep')
+* Les indices des 31 steps sont differents si il y a du Gadolinium:
+* - UOX et MOX : de 1 (0 MWj/t) a 52 (72000 MWj/t)
+* - UGd : de 1 (0 MWj/t) a 329 (72000 MWj/t)
+*------------------------------------------------------
+StepList := UTL: StepList ::
+ CREA 'Burnup' 31 =
+ 0. 9.375 18.75 75. 150.
+ 500. 1000. 2000. 3000. 4000.
+ 6000. 8000. 10000. 12000. 14000.
+16000. 18000. 20000. 24000. 28000.
+32000. 36000. 40000. 44000. 48000.
+52000. 56000. 60000. 64000. 68000.
+72000.
+;
+
+*--- UOX & MOX
+IF AssType "UOX" = AssType "MOX" = + THEN
+
+ StepList := UTL: StepList ::
+ CREA 'BurnStep' 31 =
+ 1 2 3 5 7 9 11 13 15 16
+ 18 20 21 22 23 24 25 26 28 30
+ 32 34 36 38 40 42 44 46 48 50
+ 52
+ ;
+
+*--- GADOLINIUM
+ELSEIF AssType "UGd" = AssType "UGd8" = + THEN
+
+ StepList := UTL: StepList ::
+ CREA 'BurnStep' 31 =
+ 1 5 9 17 25 33 41 49 57 61
+ 69 77 85 93 101 109 117 125 141 157
+ 173 189 205 221 237 253 269 285 301 317
+ 329
+ ;
+
+ELSE
+ ECHO "ERROR --- AssType:" AssType "not recognized." ;
+ ABORT: ;
+ENDIF ;
+
+*======================================================
+* SELF-SHIELDING
+*------------------------------------------------------
+* 9 pas d'evolution avec Autoprotection (EvoNominale)
+* Same for UOX, MOX and UGd
+*------------------------------------------------------
+StepList := UTL: StepList ::
+ CREA 'ListAutop' 9 =
+ 4000. 8000. 12000. 18000. 24000.
+36000. 48000. 60000. 72000.
+;
+
+*======================================================
+* BRANCH STRUCTURE
+*------------------------------------------------------
+* By default an identical branch structure is defined for
+* nominal and off/nominal depletions.
+* As an example, this is explained by the fact that with
+* regards of the concatenation of single history PMAX files
+* in a multi-history PMAX, it works only with single histories
+* having identical branch structures.
+* However, different branch structures can be defined for each
+* nominal/off-nominal depletion : it is sufficient to delete
+* the block in StepList using UTL:, and to define a new
+* block with an identical name, for the case of interest.
+* Example :
+* StepList := UTL: StepList ::
+* DEL 'Rods'
+* CREA 'Rods' 2 =
+* <<valCR>> <<barr_avg>>
+* ;
+*-----------------------------------------------------
+
+!REAL tcomb := 547.0 32.0 - 1.8 / ;
+REAL tcomb := 286.0 ;
+*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*
+* N-MATRIX *
+*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*
+IF TypeMatrix "N" = THEN
+
+ ECHO "The choosen matrix is : N-MATRIX " ;
+
+ !*! DENSITY MODERATOR
+ StepList := UTL: StepList ::
+ CREA 'DensModo' 8 =
+ .50 .64 .68 .71
+ .74 .82 .90 1.
+ ;
+
+ !*! BORON CONCENTRATION
+ StepList := UTL: StepList ::
+ CREA 'ConcBore' 6 =
+ 0. 600. 1200. 1800. 2400. 3000.
+ ;
+
+ !*! FUEL TEMPERATURE
+ StepList := UTL: StepList ::
+ CREA 'TempComb' 5 =
+ 50. 286. 650. 1400. 2200.
+ ;
+
+*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*
+* T-MATRIX *
+*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*
+ELSEIF TypeMatrix "T" = THEN
+
+ ECHO "The choosen matrix is : T-MATRIX " ;
+
+ !*! DENSITY MODERATOR
+ StepList := UTL: StepList ::
+ CREA 'DensModo' 2 =
+ .74 .82
+ ;
+
+ !*! BORON CONCENTRATION
+ StepList := UTL: StepList ::
+ CREA 'ConcBore' 3 =
+ 600. 1200. 1800.
+ ;
+
+ !*! FUEL TEMPERATURE
+ StepList := UTL: StepList ::
+ CREA 'TempComb' 1 =
+ <<tcomb>>
+ ;
+
+*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*
+* PARCS_BEAVRS-MATRIX *
+*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*
+* Branch structure used by A. Ward for BEAVRS and Watts Bar
+*---
+ELSEIF TypeMatrix "PAR-BEAV" = THEN
+
+ ECHO "The choosen matrix is : PARCS (BEAVRS AND WATTS BAR) MATRIX " ;
+
+ !*! DEPLETION PARAMETERS
+ EVALUATE dmod_avg := 0.71690 ;
+ EVALUATE cbor_avg := 500.0 ;
+ EVALUATE barr_avg := 1.0 ;
+ EVALUATE tcom_avg := 526.85 ;
+
+ !*! DENSITY MODERATOR
+ StepList := UTL: StepList ::
+ CREA 'DensModo' 3 =
+ 0.64470
+ <<dmod_avg>>
+ 0.76981
+ ;
+
+ !*! BORON CONCENTRATION
+ StepList := UTL: StepList ::
+ CREA 'ConcBore' 3 =
+ 0.0
+ <<cbor_avg>>
+ 1500.0
+ ;
+
+ !*! FUEL TEMPERATURE
+ StepList := UTL: StepList ::
+ CREA 'TempComb' 3 =
+ 281.85
+ <<tcom_avg>>
+ 1326.15
+ ;
+
+*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*
+* TEST-MATRIX *
+*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*
+ELSEIF TypeMatrix "TEST" = THEN
+
+ ECHO "The choosen matrix is : TEST MATRIX " ;
+
+ !*! DENSITY MODERATOR
+ EVALUATE dmod_low := dmod_avg .05 - ;
+ EVALUATE dmod_hgh := dmod_avg .04 + ;
+ StepList := UTL: StepList ::
+ CREA 'DensModo' 3 =
+ <<dmod_low>> <<dmod_avg>> <<dmod_hgh>>
+ ;
+
+ !*! BORON CONCENTRATION
+ EVALUATE cbor_hgh := cbor_avg 2. * ;
+ StepList := UTL: StepList ::
+ CREA 'ConcBore' 2 =
+ <<cbor_avg>> <<cbor_hgh>>
+ ;
+
+ !*! FUEL TEMPERATURE
+ EVALUATE tcom_low := tmod_avg 20. - ;
+ StepList := UTL: StepList ::
+ CREA 'TempComb' 2 =
+ <<tcom_low>> <<tcom_avg>>
+ ;
+
+ !*! CONTROL ROD COMPOSITION
+ StepList := UTL: StepList ::
+ DEL 'Rods'
+ CREA 'Rods' 1 =
+ 1.
+ ;
+
+ELSEIF TypeMatrix "DUMMY" = THEN
+ ECHO "WARNING --- TypeMatrix:" TypeMatrix "is a dummy value" ;
+ ECHO "WARNING --- The matrix parameters are not created" ;
+ELSE
+ ECHO "ERROR --- TypeMatrix:" TypeMatrix "not recognized." ;
+ ABORT: ;
+ENDIF ;
+
+*--- INITIALISE DEPLETION PARAMETERS
+EVALUATE dmod tmod cbor tcom barr :=
+ dmod_avg tmod_avg cbor_avg tcom_avg barr_avg ;
+
+*======================================================*
+* *
+* BASE DEPLETION *
+* *
+*======================================================*
+IF NumHistCal 0 = THEN
+
+ ECHO "$ BASE DEPLETION selected (No. " NumHistCal ")" ;
+
+*======================================================*
+* *
+* OFF-NOMINAL DEPLETIONS *
+* (HISTORIES) *
+* *
+*======================================================*
+
+ELSEIF NumHistCal 0 > THEN
+
+ ECHO "$ OFF-NOMINAL DEPLETION selected (No. " NumHistCal ")" ;
+
+ IF NumHistCal 1 = THEN
+ !======================================================*
+ ! HISTORY No. 1 (DMOD 1) *
+ !------------------------------------------------------*
+ ! https://webbook.nist.gov/chemistry/fluid/
+ ! Isobar values (p= 2250 psi = 155.132 bar) :
+ ! DT=+20K -> Drho=-0.050 g/cm3
+ ! T=293K -> rho=1.005 g/cm3
+ !------------------------------------------------------*
+ EVALUATE dmod := dmod_avg .05 - ;
+
+ ELSEIF NumHistCal 2 = THEN
+ !======================================================*
+ ! HISTORY No. 2 (DMOD 2) *
+ !------------------------------------------------------*
+ ! https://webbook.nist.gov/chemistry/fluid/
+ ! Isobar values (p= 2250 psi = 155.132 bar) :
+ ! DT=-20K -> Drho=+0.040 g/cm3
+ !------------------------------------------------------*
+ EVALUATE dmod := dmod_avg .04 + ;
+
+ ELSEIF NumHistCal 3 = THEN
+ !======================================================*
+ ! HISTORY No. 3 (CBOR 1) *
+ !------------------------------------------------------*
+ EVALUATE cbor := cbor_avg 2. * ;
+
+ ELSEIF NumHistCal 4 = THEN
+ !======================================================*
+ ! HISTORY No. 4 (CBOR 2) *
+ !------------------------------------------------------*
+ EVALUATE cbor := 150. ;
+
+ ELSEIF NumHistCal 5 = THEN
+ !======================================================*
+ ! HISTORY No. 5 (TCOM 1) *
+ !------------------------------------------------------*
+ EVALUATE tcom := tmod_avg 20. - ;
+
+ ELSEIF NumHistCal 6 = THEN
+ !======================================================*
+ ! HISTORY No. 6 (TCOM 2) *
+ !------------------------------------------------------*
+ EVALUATE tcom := 1500. ;
+
+ ELSEIF NumHistCal NbHistWORod > THEN
+ !======================================================*
+ ! HISTORY No. 7+ (BARR 1+) *
+ !------------------------------------------------------*
+
+ EVALUATE idxCR := NumHistCal NbHistWORod - 1 + ; ! +1 -> avoid first index -> average
+ GREP: RodList :: GETVAL 'Rods' <<idxCR>> >>valCR<< ;
+ ECHO "$$$$ idxCR : " idxCR " valCR : " valCR ;
+ EVALUATE barr := valCR ;
+
+ ENDIF ;
+
+ENDIF ;
+
+*======================================================
+* DEPLETION CONDITIONS (EvoNominale.x2m)
+*------------------------------------------------------
+StepList := UTL: StepList ::
+ CREA 'DeplParam' 5 =
+ <<dmod>> <<cbor>> <<barr>> <<tcom>> <<tmod>>
+ ;
+
+ECHO "$$$ Summary depletion conditions (No. " NumHistCal ")" ;
+ECHO " - dmod : " dmod ;
+ECHO " - cbor : " cbor ;
+ECHO " - barr : " barr ;
+ECHO " - tcom : " tcom ;
+
+*======================================================
+* Print StepList
+*------------------------------------------------------
+ECHO "$$$ Summary StepList $$$" ;
+UTL: StepList :: DUMP ;
+
+*------------------------------------------------------
+END: ;
+QUIT "LIST" .