*---- * TEST CASE ene6103 * * REF: A. Hebert, "Applied Reactor Physics", Presses Internationales * Polytechnique, Problem 5.12 (2009). * *---- * Define STRUCTURES and MODULES used *---- LINKED_LIST GEOM MACRO MACROP TRACK SYSTEM SYSTEMP FLUX EDIT KINET ; MODULE GEO: MAC: TRIVAT: TRIVAA: FLUD: OUT: INIKIN: KINSOL: DELETE: GREP: END: ; REAL FNORM ; REAL TIME := 0.0 ; PROCEDURE assertS assertS2 ; * GEOM := GEO: :: CAR1D 4 X- ZERO X+ ZERO MIX 2 1 3 2 MESHX 0.0 40.0 350.0 660.0 700.0 SPLITX 1 4 4 1 ; *---- * Macroscopic cross sections *---- MACRO := MAC: :: EDIT 2 NGRO 2 NMIX 3 NIFI 1 READ INPUT MIX 1 DIFF 1.264E+00 0.9328E+00 TOTAL 8.154E-03 4.1000E-03 NUSIGF 0.000E+00 4.5620E-03 CHI 1.000E+00 0.000E+00 H-FACTOR 0.000E+00 4.5620E-03 SCAT 1 1 0.0 2 2 0.0 7.368E-03 OVERV 1.000E-07 5.000E-06 MIX 2 DIFF 1.310E+00 0.8695E+00 TOTAL 1.018E-02 2.1170E-04 SCAT 1 1 0.0 2 2 0.0 1.0180E-02 OVERV 1.000E-07 5.000E-06 MIX 3 DIFF 1.264E+00 0.9328E+00 TOTAL 8.154E-03 4.1000E-03 NUSIGF 0.000E+00 4.5620E-03 CHI 1.000E+00 0.000E+00 H-FACTOR 0.000E+00 4.5620E-03 SCAT 1 1 0.0 2 2 0.0 7.368E-03 OVERV 1.000E-07 5.000E-06 ; *---- * Steady-state calculation *---- MACROP := MAC: MACRO :: EDIT 2 READ INPUT MIX 1 TOTAL 8.154E-03 4.0800E-03 ; TRACK := TRIVAT: GEOM :: TITLE 'BENCHMARK ENE6103' EDIT 99 MAXR 18 DUAL 1 2 ; SYSTEM := TRIVAA: MACRO TRACK :: EDIT 5 UNIT ; FLUX := FLUD: SYSTEM TRACK :: EDIT 2 EXTE 5.0E-7 ; GREP: FLUX :: STEP UP FLUX GETVAL 2 5 >>FNORM<< ; assertS FLUX :: 'K-EFFECTIVE' 1 0.9977700 ; EVALUATE FNORM := 1.0 FNORM / ; ECHO "Flux normalization factor=" FNORM ; EDIT := OUT: FLUX TRACK MACRO GEOM :: EDIT 2 INTG IN ; SYSTEMP := TRIVAA: MACROP TRACK :: EDIT 5 UNIT ; *---- * Implicit space-time kinetics *---- KINET := INIKIN: MACRO TRACK SYSTEM FLUX :: EDIT 6 NDEL 6 BETA 0.000266 0.001491 0.001316 0.002849 0.000896 0.000182 LAMBDA 0.0127 0.0317 0.1150 0.3110 1.4000 3.8700 CHID 1.0 1.0 1.0 1.0 1.0 1.0 0.0 0.0 0.0 0.0 0.0 0.0 NORM <> ; WHILE TIME 10.0 <= DO KINET := KINSOL: KINET MACROP TRACK SYSTEMP :: EDIT 5 DELTA 0.1 SCHEME FLUX IMPLIC PREC IMPLIC EXTE 1.0E-6 ; GREP: KINET :: GETVAL 'TOTAL-TIME' 1 >>TIME<< ; ECHO "TIME=" TIME "S" ; IF TIME 0.1 - ABS 1.0E-3 < THEN assertS2 KINET :: 'CTRL-FLUX' 1 1.188061 ; assertS2 KINET :: 'CTRL-PREC' 1 9.578695E-05 ; ELSEIF TIME 0.5 - ABS 1.0E-3 < THEN assertS2 KINET :: 'CTRL-FLUX' 1 1.566028 ; assertS2 KINET :: 'CTRL-PREC' 1 9.600593E-05 ; ELSEIF TIME 1.0 - ABS 1.0E-3 < THEN assertS2 KINET :: 'CTRL-FLUX' 1 1.785574 ; assertS2 KINET :: 'CTRL-PREC' 1 9.643309E-05 ; ELSEIF TIME 5.0 - ABS 1.0E-3 < THEN assertS2 KINET :: 'CTRL-FLUX' 1 2.910440 ; assertS2 KINET :: 'CTRL-PREC' 1 1.028784E-04 ; ELSEIF TIME 10.0 - ABS 1.0E-3 < THEN assertS2 KINET :: 'CTRL-FLUX' 1 4.719877 ; assertS2 KINET :: 'CTRL-PREC' 1 1.188491E-04 ; ENDIF ; ENDWHILE ; KINET := DELETE: KINET ; *---- * Crank-Nicholson space-time kinetics *---- EVALUATE TIME := 0.0 ; KINET := INIKIN: MACRO TRACK SYSTEM FLUX :: EDIT 6 NDEL 6 BETA 0.000266 0.001491 0.001316 0.002849 0.000896 0.000182 LAMBDA 0.0127 0.0317 0.1150 0.3110 1.4000 3.8700 CHID 1.0 1.0 1.0 1.0 1.0 1.0 0.0 0.0 0.0 0.0 0.0 0.0 NORM <> ; WHILE TIME 10.0 <= DO KINET := KINSOL: KINET MACROP TRACK SYSTEMP :: EDIT 5 DELTA 0.1 SCHEME FLUX CRANK PREC CRANK EXTE 1.0E-6 ; GREP: KINET :: GETVAL 'TOTAL-TIME' 1 >>TIME<< ; ECHO "TIME=" TIME "S" ; IF TIME 0.1 - ABS 1.0E-3 < THEN assertS2 KINET :: 'CTRL-FLUX' 1 1.225754 ; assertS2 KINET :: 'CTRL-PREC' 1 9.577782E-05 ; ELSEIF TIME 0.5 - ABS 1.0E-3 < THEN assertS2 KINET :: 'CTRL-FLUX' 1 1.5943015 ; assertS2 KINET :: 'CTRL-PREC' 1 9.598914E-05 ; ELSEIF TIME 1.0 - ABS 1.0E-3 < THEN assertS2 KINET :: 'CTRL-FLUX' 1 1.795137 ; assertS2 KINET :: 'CTRL-PREC' 1 9.641384E-05 ; ELSEIF TIME 5.0 - ABS 1.0E-3 < THEN assertS2 KINET :: 'CTRL-FLUX' 1 2.905773 ; assertS2 KINET :: 'CTRL-PREC' 1 1.027955E-04 ; ELSEIF TIME 10.0 - ABS 1.0E-3 < THEN assertS2 KINET :: 'CTRL-FLUX' 1 4.703376 ; assertS2 KINET :: 'CTRL-PREC' 1 1.186155E-04 ; ENDIF ; ENDWHILE ; KINET := DELETE: KINET ; *---- * Crank-Nicholson space-time kinetics with exponential transformation *---- EVALUATE TIME := 0.0 ; KINET := INIKIN: MACRO TRACK SYSTEM FLUX :: EDIT 6 NDEL 6 BETA 0.000266 0.001491 0.001316 0.002849 0.000896 0.000182 LAMBDA 0.0127 0.0317 0.1150 0.3110 1.4000 3.8700 CHID 1.0 1.0 1.0 1.0 1.0 1.0 0.0 0.0 0.0 0.0 0.0 0.0 NORM <> ; WHILE TIME 10.0 <= DO KINET := KINSOL: KINET MACROP TRACK SYSTEMP :: EDIT 5 DELTA 0.1 SCHEME FLUX TEXP CRANK PREC CRANK EXTE 1.0E-6 ; GREP: KINET :: GETVAL 'TOTAL-TIME' 1 >>TIME<< ; ECHO "TIME=" TIME "S" ; IF TIME 0.1 - ABS 1.0E-3 < THEN assertS2 KINET :: 'CTRL-FLUX' 1 1.225750 ; assertS2 KINET :: 'CTRL-PREC' 1 9.577782E-05 ; ELSEIF TIME 0.5 - ABS 1.0E-3 < THEN assertS2 KINET :: 'CTRL-FLUX' 1 1.541330 ; assertS2 KINET :: 'CTRL-PREC' 1 9.597840E-05 ; ELSEIF TIME 1.0 - ABS 1.0E-3 < THEN assertS2 KINET :: 'CTRL-FLUX' 1 1.761252 ; assertS2 KINET :: 'CTRL-PREC' 1 9.637990E-05 ; ELSEIF TIME 5.0 - ABS 1.0E-3 < THEN assertS2 KINET :: 'CTRL-FLUX' 1 2.854255 ; assertS2 KINET :: 'CTRL-PREC' 1 1.025769E-04 ; ELSEIF TIME 10.0 - ABS 1.0E-3 < THEN assertS2 KINET :: 'CTRL-FLUX' 1 4.593970 ; assertS2 KINET :: 'CTRL-PREC' 1 1.179521E-04 ; ENDIF ; ENDWHILE ; ECHO "test dual12_tri completed" ; END: ;