diff options
| author | stainer_t <thomas.stainer@oecd-nea.org> | 2025-09-08 13:48:49 +0200 |
|---|---|---|
| committer | stainer_t <thomas.stainer@oecd-nea.org> | 2025-09-08 13:48:49 +0200 |
| commit | 7dfcc480ba1e19bd3232349fc733caef94034292 (patch) | |
| tree | 03ee104eb8846d5cc1a981d267687a729185d3f3 /Donjon/data/Example2.x2m | |
Initial commit from Polytechnique Montreal
Diffstat (limited to 'Donjon/data/Example2.x2m')
| -rw-r--r-- | Donjon/data/Example2.x2m | 182 |
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 . |
