summaryrefslogtreecommitdiff
path: root/Dragon/data/pincell_mco.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/pincell_mco.x2m
Initial commit from Polytechnique Montreal
Diffstat (limited to 'Dragon/data/pincell_mco.x2m')
-rw-r--r--Dragon/data/pincell_mco.x2m395
1 files changed, 395 insertions, 0 deletions
diff --git a/Dragon/data/pincell_mco.x2m b/Dragon/data/pincell_mco.x2m
new file mode 100644
index 0000000..d4407a4
--- /dev/null
+++ b/Dragon/data/pincell_mco.x2m
@@ -0,0 +1,395 @@
+*----
+* Nom : pincell_mco.x2m
+* Auteur : A. Hebert
+* Pincell branch calculation and production of a Multicompo
+*----
+* Define STRUCTURES and MODULES used
+*----
+************************************************************************
+* BEGIN DECLARATION *
+************************************************************************
+INTEGER istep iautop iDcaStep ;
+LINKED_LIST
+ GEOM TRACKN FLUX LIBRARY LIBRARY2 DONNEES MICLIB BURN164 EDIOBJ COMPO ;
+SEQ_ASCII ACOMPO :: FILE './ACOMPO' ;
+MODULE
+ GEO: SYBILT: EXCELT: DELETE: GREP: BIVACT: EVO: UTL: COMPO: EDI:
+ LIB: ABORT: END: ;
+PROCEDURE Mix_UOX CalcFlux BranchFlux ;
+PROCEDURE assertS ;
+*----
+* Choix des options de calcul
+*----
+STRING Library := "DLIB_J2" ;
+*----
+* Calculation data
+*----
+REAL Kinf1 Kinf2 Keff2 B2 ;
+REAL Tbeg Tend BUbeg BUend BUnextSS burnup keff11 ;
+REAL Fuelpwr := 38.425 ; ! W/g ou kW/kg ou MW/t
+REAL dens_mod dens_mod_0 ;
+
+************************************************************************
+* BEGIN VALUES EVALUATION *
+************************************************************************
+REAL pbore_0 := 500. ; ! natural boron concentration in ppm
+REAL temp_comb_0 temp_mode_0 := 800.0 600.0 ;
+
+REAL Rcomb4 := 0.41 ;
+REAL Rcomb1 := 0.5 SQRT Rcomb4 * ;
+REAL Rcomb2 := 0.8 SQRT Rcomb4 * ;
+REAL Rcomb3 := 0.95 SQRT Rcomb4 * ;
+
+REAL R_int_G := 0.418 ;
+REAL R_ext_G := 0.48 ;
+
+REAL Cote := 1.26 ;
+
+REAL RmodeN1 := 0.60 ;
+
+REAL N_U5_UOX := 3.70E-02 ;
+
+REAL densU_UOX := 10.0 ;
+
+************************************************************************
+* END VALUES EVALUATION *
+************************************************************************
+
+INTEGER maxstep := 21 ;
+INTEGER iDcaMax := 3 ;
+INTEGER iAutopMax := 2 ;
+DONNEES := UTL: ::
+ CREA
+ burn <<maxstep>> =
+ 0.0 9.375 18.75 37.5 75.0 150.0
+ 237.5 325.0 412.5 500.0 625.0 750.0
+ 1000.0 1250.0 1500.0 1750.0 2000.0 2500.0
+ 3000.0 3500.0 4000.0
+ CREA
+ dca <<iDcaMax>> =
+ 0.300 0.500 0.800
+ CREA
+ autop <<iAutopMax>> =
+ 0.0 4000.0
+ ;
+
+************************************************************************
+* END DECLARATION *
+************************************************************************
+************************************************************************
+* BEGIN GEOMETRY *
+************************************************************************
+GEOM := GEO: :: CARCEL 7
+ MESHX 0.0 <<Cote>>
+ MESHY 0.0 <<Cote>>
+ X- REFL X+ REFL Y- REFL Y+ REFL
+ RADIUS 0.0 <<Rcomb1>> <<Rcomb2>> <<Rcomb3>> <<Rcomb4>>
+ <<R_int_G>> <<R_ext_G>> <<RmodeN1>>
+ MIX 4 5 6 7 2 1 3 3
+ ;
+************************************************************************
+* END GEOMETRY *
+************************************************************************
+************************************************************************
+* BEGIN TRACKING *
+************************************************************************
+TRACKN := SYBILT: GEOM ::
+ EDIT 99
+ MAXR 500
+ MAXZ 1000000
+ TITLE 'TRACKING FOR PINCELL'
+ QUA2 20 3
+ DP01 ;
+
+************************************************************************
+* END TRACKING *
+************************************************************************
+************************************************************************
+* BEGIN COMPO INITIALIZATION *
+************************************************************************
+ COMPO := COMPO: ::
+ EDIT 10
+ STEP UP 'EDI2B'
+ MAXCAL 5
+ COMM 'evolution burnup pincell' ENDC
+ PARA 'burnup' IRRA
+ PARA 'DCA' VALU REAL
+ PARA 'DCAH' VALU REAL ! historical parameter for coolant density
+ ISOT 15 Pm147 Pm148 Pm148m Pm149 Sm147 Sm148 Sm149 Sm150 Nd146 Nd147
+ Nd148 B10m B11m Xe135 I135
+ INIT
+ ;
+************************************************************************
+* END COMPO INITIALIZATION *
+************************************************************************
+
+************************************************************************
+* SUPER LOOP OVER DEPLETING SCENARIOS *
+************************************************************************
+ECHO "$$$$ Super loop over depleting scenarios" ;
+INTEGER iDcaStep_0 := 0 ;
+WHILE iDcaStep_0 iDcaMax < DO
+ EVALUATE iDcaStep_0 := iDcaStep_0 1 + ;
+ GREP: DONNEES :: GETVAL 'dca' <<iDcaStep_0>> >>dens_mod_0<< ;
+ ECHO "iDcaStep_0=" iDcaStep_0 "/" iDcaMax "dens_mod_0=" dens_mod_0 ;
+
+************************************************************************
+* REFERENCE BURNUP LOOP WITH DEPLETION *
+************************************************************************
+************************************************************************
+* BEGIN LIBRARY READING *
+************************************************************************
+LIBRARY := Mix_UOX ::
+ <<Library>> <<dens_mod_0>> <<pbore_0>> <<N_U5_UOX>> <<densU_UOX>>
+ <<temp_comb_0>> <<temp_mode_0>> ;
+
+************************************************************************
+* INITIAL FLUX CALCULATION *
+************************************************************************
+EVALUATE istep iautop := 1 1 ;
+EVALUATE Tend BUend := 0.0 0.0 ;
+GREP: DONNEES :: GETVAL 'autop' <<iautop>> >>BUnextSS<< ;
+ECHO "BUnextSS=" BUnextSS ;
+ECHO "call CalcFlux(1)" ;
+
+LIBRARY2 FLUX := CalcFlux LIBRARY TRACKN :: <<istep>>
+ <<BUend>> <<BUnextSS>> <<Fuelpwr>> ;
+
+GREP: FLUX :: GETVAL 'K-EFFECTIVE' 1 >>keff11<< ;
+ECHO "+++ Burnup= 0.0 Keff=" keff11 ;
+
+BURN164 LIBRARY2 := EVO: LIBRARY2 FLUX TRACKN ::
+ EDIT 2
+ SAVE <<Tend>> DAY POWR <<Fuelpwr>> ;
+
+EVALUATE iautop := iautop 1 + ;
+GREP: DONNEES :: GETVAL 'autop' <<iautop>> >>BUnextSS<< ;
+
+************************************************************************
+* 2-GROUPS ENERGY CONDENSATION AND HOMOGENISATION *
+************************************************************************
+EDIOBJ := EDI: FLUX LIBRARY2 TRACKN ::
+ EDIT 0
+ MICR 35 U234 U235 U236 U237 U238 Np237 Np238 Np239 Pu238 Pu239
+ Pu240 Pu241 Pu242 Cm242 Cm243 Cm244 Cm245 Am241 Am242m Am243
+ Pm147 Pm148 Pm148m Pm149 Sm147 Sm148 Sm149 Sm150 Nd146 Nd147
+ Nd148 B10m B11m Xe135 I135
+ MERG COMP
+ COND 4.0
+ SAVE ON EDI2B ;
+
+************************************************************************
+* INITIAL MULTICOMPO FEEDING *
+************************************************************************
+ COMPO := COMPO: COMPO EDIOBJ BURN164 LIBRARY ::
+ EDIT 2
+ STEP UP 'EDI2B'
+ 'DCA' <<dens_mod_0>>
+ 'DCAH' <<dens_mod_0>>
+ SET <<Tend>> DAY ;
+
+EDIOBJ := DELETE: EDIOBJ ;
+
+************************************************************************
+* DEPLETION - HOMOGENISATION *
+************************************************************************
+WHILE istep maxstep < DO
+ EVALUATE istep := istep 1 + ;
+ ECHO "istep=" istep "/" maxstep ;
+
+ EVALUATE BUbeg Tbeg := BUend Tend ;
+ GREP: DONNEES :: GETVAL 'burn' <<istep>> >>BUend<< ;
+ EVALUATE Tend := BUend Fuelpwr / ;
+
+ BURN164 LIBRARY2 := EVO: BURN164 LIBRARY2 FLUX TRACKN ::
+ EDIT 2 NOEX DEPL <<Tbeg>> <<Tend>> DAY POWR <<Fuelpwr>>
+ PICK >>burnup<< ;
+
+ ECHO "BURNUP_sortie = " BUend "Next SS = " BUnextSS ;
+
+************************************************************************
+* FLUX CALCULATION *
+************************************************************************
+ ECHO "call CalcFlux(2)" ;
+ LIBRARY2 FLUX := CalcFlux LIBRARY2 FLUX LIBRARY TRACKN
+ :: <<istep>> <<BUend>> <<BUnextSS>> <<Fuelpwr>> ;
+
+ GREP: FLUX :: GETVAL 'K-EFFECTIVE' 1 >>keff11<< ;
+ ECHO "+++ Burnup=" burnup " Keff=" keff11 ;
+
+ BURN164 LIBRARY2 := EVO: BURN164 LIBRARY2 FLUX TRACKN ::
+ EDIT 0
+ SAVE <<Tend>> DAY POWR <<Fuelpwr>>
+ ;
+
+ IF BUend BUnextSS - ABS 1E-5 < THEN
+ EVALUATE iautop := iautop 1 + ;
+ IF iautop iAutopMax <= THEN
+ GREP: DONNEES :: GETVAL 'autop' <<iautop>> >>BUnextSS<< ;
+ ENDIF ;
+ ENDIF ;
+
+************************************************************************
+* 2-GROUPS ENERGY CONDENSATION AND HOMOGENISATION *
+************************************************************************
+ EDIOBJ := EDI: FLUX LIBRARY2 TRACKN ::
+ EDIT 0
+ MICR 35 U234 U235 U236 U237 U238 Np237 Np238 Np239 Pu238 Pu239
+ Pu240 Pu241 Pu242 Cm242 Cm243 Cm244 Cm245 Am241 Am242m Am243
+ Pm147 Pm148 Pm148m Pm149 Sm147 Sm148 Sm149 Sm150 Nd146 Nd147
+ Nd148 B10m B11m Xe135 I135
+ MERG COMP
+ COND 4.0
+ SAVE ON EDI2B ;
+
+************************************************************************
+* MULTICOMPO FEEDING *
+************************************************************************
+ COMPO := COMPO: COMPO EDIOBJ BURN164 LIBRARY ::
+ EDIT 2
+ STEP UP 'EDI2B'
+ 'DCA' <<dens_mod_0>>
+ 'DCAH' <<dens_mod_0>>
+ SET <<Tend>> DAY ;
+
+ EDIOBJ := DELETE: EDIOBJ ;
+
+ENDWHILE ; ! reference burnup loop
+
+IF iDcaStep_0 1 = THEN
+ assertS FLUX :: K-INFINITY 1 1.049062 ;
+ELSEIF iDcaStep_0 2 = THEN
+ assertS FLUX :: K-INFINITY 1 1.153705 ;
+ELSEIF iDcaStep_0 3 = THEN
+ assertS FLUX :: K-INFINITY 1 1.224496 ;
+ENDIF ;
+
+LIBRARY LIBRARY2 := DELETE: LIBRARY LIBRARY2 ;
+FLUX := DELETE: FLUX ;
+************************************************************************
+* END OF REFERENCE BURNUP LOOP WITH DEPLETION *
+************************************************************************
+************************************************************************
+
+************************************************************************
+* COOLANT DENSITY LOOP *
+************************************************************************
+ECHO "$$$ Moderator density loop" ;
+EVALUATE iDcaStep := 0 ;
+WHILE iDcaStep iDcaMax < DO
+ EVALUATE iDcaStep := iDcaStep 1 + ;
+ GREP: DONNEES :: GETVAL 'dca' <<iDcaStep>> >>dens_mod<< ;
+ ECHO "iDcaStep=" iDcaStep "/" iDcaMax "dens_mod=" dens_mod ;
+************************************************************************
+* BEGIN LIBRARY READING *
+************************************************************************
+LIBRARY := Mix_UOX ::
+ <<Library>> <<dens_mod>> <<pbore_0>> <<N_U5_UOX>> <<densU_UOX>>
+ <<temp_comb_0>> <<temp_mode_0>> ;
+
+************************************************************************
+* INITIAL FLUX CALCULATION *
+************************************************************************
+EVALUATE istep iautop := 0 1 ;
+EVALUATE Tend BUend := 0.0 0.0 ;
+GREP: DONNEES :: GETVAL 'autop' <<iautop>> >>BUnextSS<< ;
+ECHO "BUnextSS=" BUnextSS ;
+
+************************************************************************
+* DEPLETION - HOMOGENISATION *
+************************************************************************
+WHILE istep maxstep < DO
+ EVALUATE istep := istep 1 + ;
+
+ EVALUATE BUbeg Tbeg := BUend Tend ;
+ GREP: DONNEES :: GETVAL 'burn' <<istep>> >>BUend<< ;
+ ECHO "branch istep=" istep "/" maxstep "BUend=" BUend ;
+ EVALUATE Tend := BUend Fuelpwr / ;
+
+************************************************************************
+* RECOVER LIBRARY2 AT istep *
+************************************************************************
+ IF istep 1 > THEN
+ LIBRARY2 := LIB: LIBRARY2 BURN164 ::
+ EDIT 0
+ BURN <<istep>>
+ MIX 4 MIX 5 MIX 6 MIX 7 ;
+ ENDIF ;
+
+************************************************************************
+* FLUX CALCULATION *
+************************************************************************
+ ECHO "call BranchFlux" ;
+ IF istep 1 = THEN
+ LIBRARY2 FLUX := BranchFlux LIBRARY TRACKN
+ :: <<istep>> <<BUend>> <<BUnextSS>> <<Fuelpwr>> ;
+ ELSE
+ LIBRARY2 FLUX := BranchFlux LIBRARY2 FLUX LIBRARY TRACKN
+ :: <<istep>> <<BUend>> <<BUnextSS>> <<Fuelpwr>> ;
+ ENDIF ;
+ GREP: FLUX :: GETVAL 'K-EFFECTIVE' 1 >>keff11<< ;
+ ECHO "+++ Burnup=" BUend "dens_mod=" dens_mod "dens_mod_0=" dens_mod_0
+ " Keff=" keff11 ;
+ IF BUend BUnextSS - ABS 1E-5 < THEN
+ EVALUATE iautop := iautop 1 + ;
+ IF iautop iAutopMax <= THEN
+ GREP: DONNEES :: GETVAL 'autop' <<iautop>> >>BUnextSS<< ;
+ ENDIF ;
+ ENDIF ;
+
+************************************************************************
+* 2-GROUPS ENERGY CONDENSATION AND HOMOGENISATION *
+************************************************************************
+ EDIOBJ := EDI: FLUX LIBRARY2 TRACKN ::
+ EDIT 0
+ MICR 35 U234 U235 U236 U237 U238 Np237 Np238 Np239 Pu238 Pu239
+ Pu240 Pu241 Pu242 Cm242 Cm243 Cm244 Cm245 Am241 Am242m Am243
+ Pm147 Pm148 Pm148m Pm149 Sm147 Sm148 Sm149 Sm150 Nd146 Nd147
+ Nd148 B10m B11m Xe135 I135
+ MERG COMP
+ COND 4.0
+ SAVE ON EDI2B ;
+
+************************************************************************
+* MULTICOMPO FEEDING *
+************************************************************************
+ IF dens_mod dens_mod_0 = THEN
+ ECHO "Duplicate branch calculation at dens_mod=" dens_mod ;
+ ELSE
+ COMPO := COMPO: COMPO EDIOBJ BURN164 LIBRARY ::
+ EDIT 2
+ STEP UP 'EDI2B'
+ 'DCA' <<dens_mod>>
+ 'DCAH' <<dens_mod_0>>
+ SET <<Tend>> DAY ;
+ ENDIF ;
+ EDIOBJ := DELETE: EDIOBJ ;
+
+ENDWHILE ; ! burnup loop
+
+LIBRARY LIBRARY2 := DELETE: LIBRARY LIBRARY2 ;
+FLUX := DELETE: FLUX ;
+
+ENDWHILE ; ! coolant density loop
+************************************************************************
+* END OF COOLANT DENSITY LOOP *
+************************************************************************
+************************************************************************
+************************************************************************
+BURN164 := DELETE: BURN164 ;
+
+ENDWHILE ;
+************************************************************************
+* END OF SUPER LOOP OVER DEPLETING SCENARIOS *
+************************************************************************
+************************************************************************
+************************************************************************
+
+************************************************************************
+* EXPORT MULTICOMPO IN ASCII FORMAT *
+************************************************************************
+ACOMPO := COMPO ;
+
+ECHO "Successful end of calculation" ;
+END: ;
+QUIT .