summaryrefslogtreecommitdiff
path: root/Donjon/data/Example2.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 /Donjon/data/Example2.x2m
Initial commit from Polytechnique Montreal
Diffstat (limited to 'Donjon/data/Example2.x2m')
-rw-r--r--Donjon/data/Example2.x2m182
1 files changed, 182 insertions, 0 deletions
diff --git a/Donjon/data/Example2.x2m b/Donjon/data/Example2.x2m
new file mode 100644
index 0000000..bd17c12
--- /dev/null
+++ b/Donjon/data/Example2.x2m
@@ -0,0 +1,182 @@
+***********************************************************
+* *
+* Input file : Example2.x2m *
+* Purpose : Test for non-regression using DONJON-4 *
+* Author(s) : D. Sekki (2007/11) *
+* *
+***********************************************************
+PROCEDURE assertS Pgeom Pfmap Pburn Pdevc ;
+MODULE DELETE: GREP: END: NCR: MACINI: FLUD: USPLIT:
+ DSET: TAVG: FLPOW: TRIVAT: TRIVAA: NEWMAC: ;
+LINKED_LIST GEOM TRACK MATEX FMAP FLUX POWER MACFL
+ DEVICE MACRO1 MACRO2 MACRO SYSTEM LCPO ;
+*--
+* variables:
+*--
+INTEGER nbMix := 8 ;
+INTEGER nbRefl nbFuel := 2 2 ;
+INTEGER mFuel1 mFuel2 := 1 2 ;
+INTEGER mRefl1 mRefl2 := 3 4 ;
+INTEGER mZCRin mZCRot := 5 6 ;
+INTEGER mSORin mSORot := 7 8 ;
+INTEGER MaxReg := 100000 ;
+STRING Method := "MCFD" ;
+INTEGER degree quadr := 1 1 ;
+INTEGER iter iEdit := 0 5 ;
+REAL Power := 1800. ;
+REAL epsil := 1.E-5 ;
+REAL Precf := 1.E-5 ;
+REAL Eps Keff Bexit ;
+*--
+* multi-compo file:
+*--
+SEQ_ASCII SCPO :: FILE 'MultiCompo' ;
+*----------------------------------------------------------
+*
+* FULL-CORE CALCULATION
+* ======================
+*--
+* geometry construction:
+*--
+GEOM := Pgeom ;
+*--
+* reactor material index:
+*--
+GEOM MATEX := USPLIT: GEOM :: EDIT 1 NGRP 2 MAXR <<MaxReg>>
+ NREFL <<nbRefl>> RMIX <<mRefl1>> <<mRefl2>>
+ NFUEL <<nbFuel>> FMIX <<mFuel1>> <<mFuel2>> ;
+*--
+* numerical discretization:
+*--
+IF Method "MCFD" = THEN
+ TRACK := TRIVAT: GEOM :: EDIT 1
+ MAXR <<MaxReg>> MCFD <<degree>> ;
+ELSEIF Method "PRIM" = THEN
+ TRACK := TRIVAT: GEOM :: EDIT 1
+ MAXR <<MaxReg>> PRIM <<degree>> ;
+ELSEIF Method "DUAL" = THEN
+ TRACK := TRIVAT: GEOM :: EDIT 1
+ MAXR <<MaxReg>> DUAL <<degree>> <<quadr>> ;
+ENDIF ;
+*--
+* macrolib for reflector and devices:
+*--
+LCPO := SCPO ;
+*
+MACRO1 := NCR: LCPO :: EDIT 1 MACRO NMIX <<nbMix>>
+ COMPO LCPO MODE
+ MIX <<mRefl1>> SET MTYPE CELL20 ENDMIX
+ MIX <<mRefl2>> SET MTYPE CELL18 ENDMIX
+ COMPO LCPO FUEL
+ MIX <<mZCRin>>
+ SET FTYPE ZCU SET RDTPOS 1. SET RDDPOS 1.
+ ENDMIX
+ MIX <<mZCRot>>
+ SET FTYPE ZCU SET RDTPOS 1. SET RDDPOS 0.
+ ENDMIX
+ MIX <<mSORin>>
+ SET FTYPE SOR SET RDTPOS 1. SET RDDPOS 1.
+ ENDMIX
+ MIX <<mSORot>>
+ SET FTYPE SOR SET RDTPOS 1. SET RDDPOS 0.
+ ENDMIX ;
+*--
+* device specification:
+*--
+DEVICE MATEX := Pdevc MATEX ::
+ <<mZCRin>> <<mZCRot>> <<mSORin>> <<mSORot>> ;
+*--
+* full insertion of ZCR-devices:
+*--
+DEVICE := DSET: DEVICE :: EDIT 1
+ ROD-GROUP 1 LEVEL 1.0 END
+ ROD-GROUP 2 LEVEL 1.0 END
+ ROD-GROUP 3 LEVEL 1.0 END ;
+*--
+* fuel-map specification:
+*--
+FMAP MATEX := Pfmap MATEX ;
+*--
+* average exit burnups:
+*--
+FMAP := Pburn FMAP ;
+EVALUATE Eps := epsil 1. + ;
+*----------------------------------------------------------
+* TIME-AVERAGE CALCULATION
+*----------------------------------------------------------
+WHILE Eps epsil > iter 10 < * DO
+
+ EVALUATE iter := iter 1 + ;
+*--
+* fuel-map macrolib:
+*--
+ MACFL := NCR: LCPO FMAP :: EDIT 0 MACRO
+ TABLE LCPO FUEL BURN
+ MIX <<mFuel1>> SET FTYPE CELL20 ENDMIX
+ TABLE LCPO FUEL BURN
+ MIX <<mFuel2>> SET FTYPE CELL18 ENDMIX ;
+*--
+* extended macrolib:
+*--
+ MACRO2 MATEX := MACINI: MATEX MACRO1 MACFL :: EDIT 0 ;
+ MACFL := DELETE: MACFL ;
+*--
+* complete macrolib:
+*--
+ MACRO MATEX := NEWMAC: MATEX MACRO2 DEVICE :: EDIT 0 ;
+ MACRO2 := DELETE: MACRO2 ;
+*--
+* numerical solution:
+*--
+ SYSTEM := TRIVAA: MACRO TRACK :: EDIT 0 ;
+ MACRO := DELETE: MACRO ;
+ IF iter 1 = THEN
+ FLUX := FLUD: SYSTEM TRACK :: EDIT 0
+ ACCE 3 3 ADI 4 EXTE 1000 <<Precf>>
+ THER 1000 ;
+ ELSE
+ FLUX := FLUD: FLUX SYSTEM TRACK :: EDIT 0
+ ACCE 3 3 ADI 4 EXTE 1000 <<Precf>>
+ THER 1000 ;
+ ENDIF ;
+ SYSTEM := DELETE: SYSTEM ;
+*--
+* flux and power:
+*--
+ POWER := FLPOW: FMAP FLUX TRACK MATEX ::
+ EDIT 0 PTOT <<Power>> ;
+*--
+* burnups integration limits:
+*--
+ FMAP := TAVG: FMAP POWER :: EDIT 0
+ AX-SHAPE RELAX 0.5 B-EXIT ;
+ POWER := DELETE: POWER ;
+*--
+* current parameters:
+*--
+ GREP: FLUX :: GETVAL 'K-EFFECTIVE' 1 >>Keff<< ;
+ GREP: FMAP :: GETVAL EPS-AX 1 >>Eps<< ;
+ ECHO "Iteration No. " iter ;
+ ECHO "AXIAL-SHAPE ERROR : " Eps ;
+ ECHO "RESULTING K-EFF : " Keff ;
+
+ENDWHILE ;
+*----------------------------------------------------------
+*--
+* edit resulting fluxes and powers:
+*--
+POWER := FLPOW: FMAP FLUX TRACK MATEX ::
+ EDIT <<iEdit>> PTOT <<Power>> ;
+*--
+* last parameters:
+*--
+GREP: FLUX :: GETVAL 'K-EFFECTIVE' 1 >>Keff<< ;
+GREP: FMAP :: GETVAL EPS-AX 1 >>Eps<< ;
+GREP: FMAP :: GETVAL B-EXIT 1 >>Bexit<< ;
+ECHO "Number of Iterations " iter ;
+ECHO "AXIAL-SHAPE ERROR : " Eps ;
+ECHO "CORE-AVERAGE EXIT BURNUP : " Bexit ;
+ECHO "RESULTING K-EFFECTIVE : " Keff ;
+assertS FLUX :: 'K-EFFECTIVE' 1 1.050102 ;
+END: ;
+QUIT .