*********************************************************** * * * 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 <> NREFL <> RMIX <> <> NFUEL <> FMIX <> <> ; *-- * numerical discretization: *-- IF Method "MCFD" = THEN TRACK := TRIVAT: GEOM :: EDIT 1 MAXR <> MCFD <> ; ELSEIF Method "PRIM" = THEN TRACK := TRIVAT: GEOM :: EDIT 1 MAXR <> PRIM <> ; ELSEIF Method "DUAL" = THEN TRACK := TRIVAT: GEOM :: EDIT 1 MAXR <> DUAL <> <> ; ENDIF ; *-- * macrolib for reflector and devices: *-- LCPO := SCPO ; * MACRO1 := NCR: LCPO :: EDIT 1 MACRO NMIX <> COMPO LCPO MODE MIX <> SET MTYPE CELL20 ENDMIX MIX <> SET MTYPE CELL18 ENDMIX COMPO LCPO FUEL MIX <> SET FTYPE ZCU SET RDTPOS 1. SET RDDPOS 1. ENDMIX MIX <> SET FTYPE ZCU SET RDTPOS 1. SET RDDPOS 0. ENDMIX MIX <> SET FTYPE SOR SET RDTPOS 1. SET RDDPOS 1. ENDMIX MIX <> SET FTYPE SOR SET RDTPOS 1. SET RDDPOS 0. ENDMIX ; *-- * device specification: *-- DEVICE MATEX := Pdevc MATEX :: <> <> <> <> ; *-- * 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 <> SET FTYPE CELL20 ENDMIX TABLE LCPO FUEL BURN MIX <> 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 <> THER 1000 ; ELSE FLUX := FLUD: FLUX SYSTEM TRACK :: EDIT 0 ACCE 3 3 ADI 4 EXTE 1000 <> THER 1000 ; ENDIF ; SYSTEM := DELETE: SYSTEM ; *-- * flux and power: *-- POWER := FLPOW: FMAP FLUX TRACK MATEX :: EDIT 0 PTOT <> ; *-- * 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 <> PTOT <> ; *-- * 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 .