summaryrefslogtreecommitdiff
path: root/Donjon/data/Example1.x2m
diff options
context:
space:
mode:
Diffstat (limited to 'Donjon/data/Example1.x2m')
-rw-r--r--Donjon/data/Example1.x2m206
1 files changed, 206 insertions, 0 deletions
diff --git a/Donjon/data/Example1.x2m b/Donjon/data/Example1.x2m
new file mode 100644
index 0000000..26363c3
--- /dev/null
+++ b/Donjon/data/Example1.x2m
@@ -0,0 +1,206 @@
+***********************************************************
+* *
+* Input file : Example1.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: CRE: MACINI: FLUD: USPLIT:
+ DSET: TAVG: FLPOW: TRIVAT: TRIVAA: NEWMAC: ;
+LINKED_LIST GEOM TRACK MATEX FMAP FLUX POWER MACFL
+ DEVICE MACRO1 MACRO2 MACRO SYSTEM ;
+LINKED_LIST LREFL1 LREFL2 LFUEL1 LFUEL2
+ LZCRin LZCRot LSORin LSORot ;
+*--
+* 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 ;
+*--
+* compo files:
+*--
+SEQ_ASCII SFUEL1 :: FILE 'CpoFuel1' ;
+SEQ_ASCII SFUEL2 :: FILE 'CpoFuel2' ;
+SEQ_ASCII SREFL1 :: FILE 'CpoMode1' ;
+SEQ_ASCII SREFL2 :: FILE 'CpoMode2' ;
+SEQ_ASCII SZCRin :: FILE 'CpoZCRin' ;
+SEQ_ASCII SZCRot :: FILE 'CpoZCRot' ;
+SEQ_ASCII SSORin :: FILE 'CpoSORin' ;
+SEQ_ASCII SSORot :: FILE 'CpoSORot' ;
+*--
+* compo directories:
+*--
+STRING NamFuel1 := "FUEL1 1" ;
+STRING NamFuel2 := "FUEL2 1" ;
+STRING NamRefl1 := "MODE1 1" ;
+STRING NamRefl2 := "MODE2 1" ;
+STRING NamZCRin := "ZCRIN 1" ;
+STRING NamZCRot := "ZCROT 1" ;
+STRING NamSORin := "SORIN 1" ;
+STRING NamSORot := "SOROT 1" ;
+*----------------------------------------------------------
+*
+* FULL-CORE CALCULATION
+* ======================
+*--
+* geometry construction:
+*--
+GEOM := Pgeom ;
+*--
+* reactor material index:
+*--
+GEOM MATEX := USPLIT: GEOM :: EDIT 0 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:
+*--
+LREFL1 := SREFL1 ;
+LREFL2 := SREFL2 ;
+MACRO1 := CRE: LREFL1 LREFL2 :: EDIT 1 NMIX <<nbMix>> READ
+ COMPO LREFL1 MIX <<mRefl1>> <<NamRefl1>> ENDMIX
+ COMPO LREFL2 MIX <<mRefl2>> <<NamRefl2>> 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 ;
+*--
+* update macrolib for devices:
+*--
+LZCRin := SZCRin ;
+LZCRot := SZCRot ;
+LSORin := SSORin ;
+LSORot := SSORot ;
+MACRO1 := CRE: MACRO1 LZCRin LZCRot LSORin LSORot :: EDIT 1
+ READ
+ COMPO LZCRin MIX <<mZCRin>> <<NamZCRin>> ENDMIX
+ COMPO LZCRot MIX <<mZCRot>> <<NamZCRot>> ENDMIX
+ COMPO LSORin MIX <<mSORin>> <<NamSORin>> ENDMIX
+ COMPO LSORot MIX <<mSORot>> <<NamSORot>> ENDMIX ;
+*--
+* fuel-map specification:
+*--
+FMAP MATEX := Pfmap MATEX ;
+*--
+* average exit burnups:
+*--
+FMAP := Pburn FMAP ;
+*--
+* initialization:
+*--
+LFUEL1 := SFUEL1 ;
+LFUEL2 := SFUEL2 ;
+EVALUATE Eps := epsil 1. + ;
+*----------------------------------------------------------
+* TIME-AVERAGE CALCULATION
+*----------------------------------------------------------
+WHILE Eps epsil > iter 20 < * DO
+
+ EVALUATE iter := iter 1 + ;
+*--
+* fuel-map macrolib:
+*--
+ MACFL := CRE: LFUEL1 LFUEL2 FMAP :: EDIT 0 READ
+ TABLE LFUEL1
+ MIX <<mFuel1>> <<NamFuel1>> ENDMIX
+ TABLE LFUEL2
+ MIX <<mFuel2>> <<NamFuel2>> 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.050128 ;
+END: ;
+QUIT .