ne.gif (2791 bytes)     NE571 Reactor Theory and Design
Fall semester 1998

Return to Course Outline


 

Performing Diffusion Theory Reactor Calculations

In this lesson, we will put together the assembly cross sections -- parameterized by assembly exposure -- into full reactor calculations.  At this point, we leave the SCALE system and run CARTER, a simple two dimensional Cartesian geometry diffusion theory burnup code I wrote several years ago.  (I picked it for this exercise because I could easily modify it to accept the parameterized cross sections from the previous exercises).

Setting up the CARTER run

The CARTER code executable is located in the root directory of all of the UTNE 3rd floor computers that run SCALE. 

The input file to CARTER uses the KOFFI system, which stands for keywork-ordered free-form input.  (The similarly to the name "Java" is coincidental; KOFFI predates Java by several years.)  All of the user-supplied input is provided from a text file in which the input data appears in "keyword = data" syntax.

Learning the keywords that must be input is best done by an example.  The following is a file that runs a quarter-core calculation of a reactor composed of a single assembly type surrounded by water assemblies:

assembly_width = 21.42
nx = 9
ny = 9
map = 
  4  4  4  4  0  0  0  0  0
  1  1  1  4  4  4  0  0  0
  1  1  1  1  1  4  4  0  0
  1  1  1  1  1  1  4  4  0
  1  1  1  1  1  1  1  4  0
  1  1  1  1  1  1  1  4  4
  1  1  1  1  1  1  1  1  4
  1  1  1  1  1  1  1  1  4
  1  1  1  1  1  1  1  1  4
left = 1
right = 0
top = 0
bottom = 1
burnup = 1000 15000
max_assembly_power = 20
max_reactor_power = 3400
groups = 3
! Include material cross sections
include region1.mxs
include region2.mxs
include region3.mxs
include water.mxs

We shall now go through this input line-by-line and explain the input.  (Note however, that the ORDER that the keywords appear make no difference to the KOFFI system.  The "groups" keyword, for example, could have been first instead of last.)
 

Line-by-Line Commentary of the Sample Input File

assembly_width = 21.42
nx = 9
ny = 9
These lines indicate that the reactor assemblies are 21.42 cm square and that the reactor model includes a 9x9 array of assemblies.  As we will see below, this models the "upper-right-hand quadrant" of the reactor.


map = 
  4  4  4  4  0  0  0  0  0
  1  1  1  4  4  4  0  0  0
  1  1  1  1  1  4  4  0  0
  1  1  1  1  1  1  4  4  0
  1  1  1  1  1  1  1  4  0
  1  1  1  1  1  1  1  4  4
  1  1  1  1  1  1  1  1  4
  1  1  1  1  1  1  1  1  4
  1  1  1  1  1  1  1  1  4

The "map" keyword precedes an actual layout of the assemblies in the model, looking DOWN on the reactor.  The numbers in the 9x9 array indicated the assembly type by position.  The "1" values indicate the position of the first type of fuel assembly; the "4" values indicate the positions of water assemblies; and the "0" values indicate positions that are outside the core, which are treated as extrapolated void boundaries by the diffusion theory calculation.
Since there are 52 "1" entries in this model, the full reactor is one with 4x52 = 208 fuel assemblies.


left = 1
right = 0
top = 0
bottom = 1

These lines establish the quarter-core symmetry by putting reflected boundary conditions (denoted by "1") on the left and bottom of the model and void boundary conditions (denoted by "0")on the top and right.


burnup = 1000 15000

This entry lays out the burnup calculation to be performed.  The "burnup" entries are, respectively, the burnup increment and the total (upper limit) burnup.  The units of burnup are "average MWt-days/assembly".
For example, after computing the reactor power (including indiidual assembly powers)at the beginning of life, CARTER will determine how many days of operation would add an average of increment MWt-days per assembly.  Then, the power distribution is used to determine the exact amount of burnup to add to each assembly.  Finally, the total cummulative exposure (burn-up) of each exposure is used in determining the group cross sections for each of the assemblies.  (Remember, previous exercises resulted in burn-up dependent cross sections fits.)


max_assembly_power = 20
max_reactor_power = 3400

These two lines specify the criteria by which the reactor power will be determined at any time.  To simulate (simplified) real-world conditions, CARTER assumes that there are two power limits: a limiting assembly power (based on preventing fuel pin/cladding melting)and a maximum power for the reactor as a whole (based on preventing pump cavitation or some other reactor-wide accident scenario).  These entries set these two limits in MWt ("megawatts thermal").
In practice, CARTER would raise the power (i.e., from 0) until one of the two limits is met.  If the assembly power limit is reached first, we say we are "assembly limited"; this will occur if the highest power assembly is significantly above the average.  If the reactor power limit is reached first, we say that we are "reactor limited".
Our goal is to design our reactor loadings so that we are always reactor limited.  (Whenever we are assembly limited, we are -- by definition -- operating at a lower reactor power than we could be.  Therefore , we want our assembly power profile to be as uniform ("flat") as possible so that we can output the maximum reactor power all the time.
groups = 3
! Include material cross sections
include region1.mxs
include region2.mxs
include region3.mxs
include water.mxs
The first entry states that the cross sections for this calculation involve three energy groups.  After a text comment (denoted to KOFFI  by the "!" in the first column, each of the assembly type cross sections are included.  The ".mxs" files, you will recall, are produced by the READ2H code operating on the SAS2H assembly calculation output. 
Note that (for the first time) ORDER MATTERS.  The first set included will be assembly type #1, the second is type #2, etc.  I have generated the water cross sections for you; they are in the SCALE43 subdirectory of the 3rd floor computers that run SCALE.  (As part of the class project, you will have to generate the other assembly cross sections through dedicated SAS2H runs.


1998 Note: The ".mxs" files from previous exercises WILL NOT WORK with CARTER due to recent changes to the READ2H code.  You have to rerun READ2H on your old SAS2H output files -- if you still have them ;)

Running CARTER

To run CARTER you need to::
  • Copy the "r1.inp" file and all ".mxs" files from the SCALE43 directory to your operating directory
  • Enter "carter"
  • In response to the prompt, enter "r1.inp".
  • In response to the prompt, enter "r1.out".
While the code is running, the screen will show the progress through the burnup.  Notice that the calculation may not go to the full burnup requested in the "burnup" keyword entry -- the calculation will stop if the system goes subcritical.

As you might suspect, the code output is in the file "r1.out".  Let's look at it.
 

CARTER output

The total output is too long to reproduce here, so I recommended you open another edit window -- preferably one that shows line numbers -- to follow this discussion.  Here are some interesting data from the output file:
  • Of the 1974 lines of output, the first 470 lines re-describe the problem description prior to getting started.  Notice that each of our precomputed cross sections -- shown beginning in line 130 --, which are in reality MACROSCOPIC cross sections, are interpreted by CARTER as MICROSCOPIC, so we have to specify an atom density of 1 atom/barn/cm to "officially" convert them to macroscopic.
  • The actual listing of the cross sections is underlabeled.  Beginning in line 191, for example, the total cross section of the "fake" isotope that comprises region 1 is listed as:

  •  

     

       Group     Total      Transport   nu*Fission    Scatter        Chi
         1   2.19300E-01  1.36900E-01  8.45700E-03  2.15570E-01  7.35300E-01
         2   6.65100E-01  3.22000E-01  6.00300E-03  6.53800E-01  2.64700E-01
         3   1.38500E+00  1.10400E+00  1.27000E-01  1.30467E+00  1.07200E-10
         1  -2.38000E-07 -2.00900E-07 -5.26100E-09 -2.32400E-07  2.60600E-08
         2   5.88200E-08  3.30800E-07 -2.18000E-07 -1.78100E-07 -2.72800E-08
         3   4.71100E-06 -5.63300E-06  2.64400E-06  2.46858E-06  3.27400E-16
         1   5.96800E-12  6.25400E-12 -9.00900E-13  6.17800E-12 -1.59300E-12
         2  -7.64000E-12 -1.71700E-11  1.75600E-12  6.11700E-12  1.76000E-12
         3  -3.93100E-10  2.09800E-10 -4.16600E-10 -1.40335E-10  1.39400E-20
         1  -1.21100E-16 -1.26600E-16  2.47300E-17 -1.28610E-16  3.56600E-17
         2   1.16400E-16  2.69200E-16  6.04700E-17 -1.79000E-16 -3.47300E-17
         3   9.03700E-15 -3.91000E-15  1.06800E-14  2.84226E-15 -7.46400E-25

    which seems to be multiply redundant -- listing group 1, then group 2, then group 3, then group 1 again(?), etc.  The explanation for this weirdness is that these are coefficients of an exposure-dependent polynomial expansion  for each of the cross sections.  The group 1 total should be interpreted by picking out the group 1 entries to read:


  • Beginning on line 470, the initial unburned core calculation is shown ("hot,clean").  A series of maps are shown: the assembly exposure (all zeroes), followed by an numbering of fuel assemblies from 1 to 52 in order of decreasing exposure ("Wait!", you say.  "All I see are zeroes!"  That's because there is nothing to order YET.), followed by the same ordering in reverse (i.e., in order of increasing exposure.  These maps are useful for core-shuffling, which will be part of the next lesson.
  • On line 519, we have the eigenvalue for the unburned case:

  •  

     

        Outer iteration   151, k =  1.262340, Error =    .0000970

    which is followed by an assembly relative power map:

         Relative Fission Power on original grid

      .0000   .0000   .0000   .0000   .0000   .0000   .0000   .0000   .0000
      .3332   .3001   .2225   .0000   .0000   .0000   .0000   .0000   .0000
      .6758   .6261   .5235   .3693   .2253   .0000   .0000   .0000   .0000
     1.0156   .9564   .8401   .6746   .4811   .2594   .0000   .0000   .0000
     1.3343  1.2680  1.1392   .9565   .7334   .4811   .2253   .0000   .0000
     1.6140  1.5420  1.4022  1.2031   .9565   .6746   .3693   .0000   .0000
     1.8390  1.7626  1.6141  1.4022  1.1392   .8401   .5235   .2225   .0000
     1.9964  1.9170  1.7626  1.5420  1.2680   .9564   .6261   .3001   .0000
     2.0774  1.9964  1.8390  1.6140  1.3343  1.0156   .6758   .3332   .0000

    These are the ratios of the assembly power to the average assembly power.  Notice that the peak is in the center assembly and that the peak is more than twice the average.  This is not good.  If the peak/average is greater than about 1.25, the reactor is sure to be assembly limited -- and therefore operating below full power.

  • This is followed by a power ordering map -- numbering the highest power assembly #1, the next #2, etc., through #52.  Again, this will be useful for core shuffling later.
  • Next (in line 554) we make the first real burnup step -- 103.87 days -- to arrive at an average assembly exposure of 1000 MWDt.
  • In line 563, the calculation of reactor conditions after the burn is begun.  Notice that we now have a non-zero exposure map, with the resulting ordering and inverse ordering maps.  (Notice that the highest exposure is 2077 MWD, which is 2.077 times the average, mirroring the initial peak/average power.)
  • When we get down to line 616, we see that the power profile has flattened quite a bit by the preferential burning of the center of the core -- now the peak/average is only 1.4177.  Interestingly, the location of the maximum power has drifted away from the center, beginning the characteristic "double-humped" power shape of deep burns (i.e., depressed in the center).
The same output pattern is repeated for all of the burn steps until the core goes subcritical.  A final table at the bottom of the output deck summarizes the reactor behaviour during the cycle:

============================================================

      Power and exposure by burnup

                         Avg.    Max/Ave           Max
                      Exposure  Assembly    Rx    Assembly
      Step    Time(d)  per Ass.  Power     Power   Power    K-eff
      ====  ========= ======== =========  ======= ======= ========
         0        .00      .00   2.0774     2002.   20.00  1.26234
         1     103.87  1000.00   1.4177     2934.   20.00  1.23053
         2     174.76  2000.00   1.2907     3223.   20.00  1.20552
         3     239.29  3000.00   1.2379     3360.   20.00  1.18327
         4     301.19  4000.00   1.2055     3400.   19.71  1.16281
         5     362.36  5000.00   1.1808     3400.   19.30  1.14371
         6     423.54  6000.00   1.1627     3400.   19.01  1.12571
         7     484.72  7000.00   1.1475     3400.   18.76  1.10863
         8     545.89  8000.00   1.1362     3400.   18.57  1.09231
         9     607.07  9000.00   1.1260     3400.   18.41  1.07667
        10     668.25 10000.00   1.1169     3400.   18.26  1.06162
        11     729.42 11000.00   1.1091     3400.   18.13  1.04712
        12     790.60 12000.00   1.1015     3400.   18.01  1.03314
        13     851.78 13000.00   1.0943     3400.   17.89  1.01969
        14     912.95 14000.00   1.0873     3400.   17.77  1.00679
       EOL     940.35 14447.82   1.0844     3400.   17.73  1.00000

Some interesting features about this table are:

  • In the third column, the average assembly exposure increases uniformly in steps of 1000.  The only row out of sync is the final one, which gives interpolated properties at the instant the the reactor slips below critical.
  • K-effective (right-most column) is monotonically decreasing throughout the charge.  This is normal, of course.
  • Examination of the reactor power and assembly power columns (5 and 6) indicates that we are assembly limited for the first 250 days of the charge, then become reactor limited (achieving the full power of 3400 MWt).
  • The 4th column, giving the peak/average assembly powers, shows that we need a peak/average power ratio of about 1.21 or lower to be reactor limited.  Continuing down the column, we see that the reactor "self-flattens" down to a EOL (i.e., "end-of-life") value of  under 1.10.  BUT, the price of a uniform charge is a BOL reactor power of only about 60% of full power and an 8 month creep up to full power.
  • Time (Column 2) seems non-uniform, but this is only true at the beginning.  After we become reactor limited, the time steps become constant.


The two common design strategies to flatten the assembly powers at the beginning of life are to:

  • Put less fuel (i.e., lower enriched uranium) uranium in the center assemblies to depress their BOL power while simultaneously loading more fuel in the outer assemblies; and/or
  • Add boron to the mid-core assemblies to temporarily depress their power.  Boron is really good for this purpose because it has a "half-exposure" (I am making this term up) of 600-1000 MWD.  By this I mean that for every 600-1000 MWD of assembly exposure, the boron concentration is cut in half.  In our earlier case, we don't want any power flattening after about 4000 MWD, so boron is a nicely disappearing poison.  (The catch, of course, is to get just the right amount...)

Complete the assignment:

Try to flatten the "early days" of the reactor loading by both methods discussed:
 

Calculation #1

Replace the 11 outer assemblies (the ones that touch the water assemblies -- diagonal doesn't count) with assembly type #3, which has a 0.5% higher fuel loading.  Keep the total fuel loading constant by replacing 11 inner assemblies (your choice) with assembly type #2, which has a 0.5% lower fuel loading.  Call your deck "r2.inp"

Run the case and compare your results with r1.out as to end-of-life burnup, length of the charge, and length of time at full power.
 

Calculation #2

Make a copy of "r1.inp" to "r3.inp".  Add "include regbor1.mxs" and "include regbor2.mxs" to your material list.  (These are versions of  "region1" with the same enrichment, but with Zirc-Boron fuel pins of 1% and 0.5% boron, respectively.)

Play around with replacing the hottest  assemblies (see the first power map in "r1.out") with these boron-loaded assemblies and see if you can get the inital reactor power up.

Be prepared to share your answers to the above questions in class.



Return to Course Outline                                                                                               © 1998 by Ronald E. Pevey.  All rights reserved.