.. _sec-xsproc.mcdancoff:

MCDancoff: Monte-Carlo based Dancoff Factor Calculation
=======================================================

*L. M. Petrie, B. T. Rearden, A. M. Holcomb, and K. S. Kim*

ABSTRACT

The MCDancoff program is used to calculate Dancoff factors in
complicated, three-dimensional (3-D) geometries using Monte Carlo
integrations. The geometries are standard SCALE geometry descriptions,
with the current restriction that Dancoff factors can only be calculated
for regions bounded by cuboids, spheres, or cylinders. Multiple Dancoff
factors can be calculated with one input file. New AMPX one group 
library for MCDancoff was developed for SCALE 6.3 based on ENDF/B-VII.1.

ACKNOWLEDGMENT

This work was sponsored in part by Atomic Energy of Canada, Ltd. 
Development of new ENDF/B-VII.1 based AMPX one group library for 
SCALE 6.3 was sponsored by the US Nuclear Regulatory Commision (NRC). The
contribution of S. J. Poarch in preparing this document is gratefully
acknowledged.



Introduction
------------

MCDancoff (Monte Carlo Dancoff) is a program that calculates Dancoff
factors for complicated, three-dimensional geometries. Its input is a
slight modification of a CSAS6 input file which uses the standard SCALE
geometry as detailed for KENO-VI. The modifications to the input involve
different input in the START data block describing which Dancoff factors
are to be calculated. The calculation involves starting histories
isotropically on the surface of the region for which the Dancoff factor
is to be calculated and following the path of each history until it has
encountered all the elements of the material in the region, or until it
has exited the system. A one group cross-section library is used to
determine the total cross sections of the mixtures in the problem. The 
one group library has been developed based on ENDF/B-VII.1 for SCALE 6.3 
for which various reaction cross sections were obtained by energy group 
collapsing and elastic cross sections (MT=2) were replaced by potential 
cross sections.

A current restriction of MCDancoff is that it can only calculate Dancoff
factors for regions bounded by cylinders, spheres, or cuboids. Other
simple bodies could be added in the future, but a general bounding
surface would be impractical.

The Dancoff factors are used in SCALE to correctly self-shield
multigroup cross sections for a given problem; either as input to BONAMI
or to determine an equivalent cell for CENTRM. This is most typically
accomplished through the MORE DATA and CENTRM DATA blocks.

The Dancoff factors are actually calculated by a modified version of the
KENO-VI code called KENO_Dancoff. All printed output from these
calculations is suppressed by default. If there is a need to see this
output (for example, to find an error message), it can be turned on by
setting an environment variable **print_dancoff=yes**.



Input data description
----------------------

MCDancoff input data is the same as CSAS6 input data with the following
exceptions. A special one group cross-section library will be used. It
can be specified as **xn01** in the input but will be set to this if
anything else is entered for the library. Because MCDancoff is running a
fixed source problem, and the Dancoff factor doesn’t need to be
calculated with the same accuracy as an eigenvalue, there are useful
changes that can be made to the parameters in the PARAMETER data block.
:numref:`7-8-3` discusses this in more detail. Finally, the START data
block is used to define which Dancoff factors will be calculated. This
data block is defined below.

::

 READ START Begins the data block
 
   1. dancoff
   
   begins defining a new Dancoff factor. Always start
   relative to the global unit in the geometry.
   
   2. array
   
   step into an array contained in the current unit – followed
   by karray, nbx, nby, nbz where karray is the
   region containing the array in the current unit, nbx is the x
   position in the array of the next unit, nby is the y position
   in the array of the next unit, and **nbz** is the z position in
   the array of the next unit.
   
   3. hole
   
   step into a hole contained in the current unit – followed by
   nhole, the hole number relative to the current unit.
   
   4. unit
   
   final unit in the nesting chain – followed by **nn**, the
   unit number
   
   5. region
   
   region to calculate the Dancoff factor for – followed by
   k, the relative geometry word in unit nn defining the
   outer bound of the region.
   
   6. nst
 
 if input, must be 0 (defaults to 0).
 Repeat 2 and 3 to get from the global unit to the final unit nn.
 Repeat 1–5 for each Dancoff factor to be calculated.
 
 END START Ends the data block


.. _7-8-3:

Calculation and use of 3D Dancoff factors
-----------------------------------------

1. The 3-D Dancoff factors are computed with KENO-VI geometry. If
   beginning with CSAS5 model, use C5TOC6 to convert to CSAS6.

2. Change sequence name from CSAS6 to MCDancoff and change cross-section
   library to **xn01**.

3. Input appropriate parameter data.

..

   Since the Dancoff calculation is fixed source integration, there is
   no need to skip generations, and **nsk** should be set to 0. Since
   small changes to the Dancoff have very minor effects on the cross
   sections, fewer histories are probably needed for calculating the
   Dancoff than for calculating *k\ eff*. Thirty thousand histories
   divided as 100 generations of 300 histories per generation has
   produced Dancoff factors with deviations of less than 1 percent. It
   may be advantageous to turn off plots at this point. Since the same
   parameters can be entered more than once, with the final entry being
   the one used, adding a separate record with these values immediately
   before the **end parameter** keywords would override the original
   KENO-VI parameters.

   Example:


.. highlight:: scale

..


::

     read param
              .........
       nsk=0 npg=300 gen=100 nub=no fdn=no flx=yes plt=no
     end param


4. Identify the region for which Dancoff factors are desired in START
   data.

..

   The start type needs to be set to **0** for the Dancoff calculation
   (this is the default). All KENO-VI START data should be removed or
   commented out by placing an apostrophe in column 1. Each region for
   which a Dancoff calculation is desired then starts with the keyword
   **dancoff**. This is followed by data that specify the relationship
   of the global unit to the specific geometry description of the
   region. If the region is nested inside an array, then the keyword,
   **array**, is specified, followed by four integers. The first integer
   is the indices of the media record specifying the array relative to
   the current unit. The next 3 integers are the X, Y, and Z indexes of
   the position of the next unit in the array. If the region is nested
   in a hole, then the keyword, **hole**, is specified, followed by the
   relative count of the correct hole in the unit. The preceding data
   are repeated (in the correct nesting order starting with the global
   unit) until reaching the unit where the region is located. Then the
   keyword, **unit**, followed by the unit number is given, followed by
   the keyword, **region**, followed by the relative index of the
   geometry keyword describing the desired region with respect to that
   unit. Currently, only cylinders, spheres, and cuboids are programmed
   for calculating Dancoff factors.

   Examples:

   ::

     read start
       nst=0
       dancoff    hole 1    unit=1  reg=1
     end start

     read start
        dancoff  array  1 1 1 1  array  1 17 17 2  unit 10  region 1
     end start


5. Execute MCDANCOFF *filename.*\ input file like any other SCALE input
   file.


6. Examine *filename*.dancoff file, which will contain Dancoff factors
   for each nuclide in the specified region

::

  index        nuclide        dancoff      deviation
                     1          92234    3.36340E-01    1.81134E-03
                     2          92235    3.36340E-01    1.81134E-03
                     3          92236    3.36340E-01    1.81134E-03
                     4          92238    3.36340E-01    1.81134E-03
                     5           8016    1.00000E+00    0.00000E+00

7. Once all desired Dancoff factors are obtained, return to original model 
   and enter CENTRM DATA for each cell with dan2pitch(mix) specified.


::

  read celldata
    latticecell triangpitch fuelr=0.633  1 gapr=0.637 0 cladr=0.675 10 hpitch=0.867  14 end
  centrm data
    dan2pitch(1)=0.336
  end centrm

8. If executing TSUNAMI-3D, additional steps are necessary because
   TSUNAMI-3D does not treat the dan2pitch input parameter.

..

   Return to the original TSUNAMI-3D input file and replace the sequence
   name to "CSAS-MG PARM=CHECK" and delete all data after the unit cell
   data to quickly obtain revised pitch values. (Note: CSAS will not
   modify cell dimensions to more than 20 cm, so a revised moderator
   density may need to be entered to obtain the desired Dancoff factor.)
   Search for the word "\ *desired"* in output file to find new pitch
   values for each cell.

   ::

     unit cell  =    1
       original pitch                = 1.7340E+00
       Dancoff for orig pitch        = 2.9728E-01
       desired Dancoff               = 3.3600E-01

     pitch to produce desired Dancoff= 1.6845E+00

9. Enter revised pitch and revised moderator density (for cell
   calculation only, not for geometry model) in TSUNAMI model.



Example Case
------------

The following is a contrived case to illustrate an input file using both
holes, arrays, and multiple sets of Dancoff factors (although both
factors apply to the same pin, so only one set can be used). The case
represents two fuel assemblies in a cylindrical tank, each assembly
having a poisoned central pin, and four water holes. The Dancoff factors
are calculated for each central pin. The input file is listed in
:numref:`list7-8-1`.

.. code-block:: scale
  :name: list7-8-1
  :caption: Example input file.

  =mcdancoff
  sample case demonstrating calculating Dancoff factors
  xn01
  read composition
    uo2     1  den=10.38  1  294  92234 .0303  92235 4.7378  92236 .1364  92238 95.0955  end uo2
    zirc4   2             1  294  end zirc4
    h2o     3             1  294  end h2o
    uo2     4  den=10.08  1  294  92234 .0303  92235 4.7378  92236 .1364  92238 95.0955  end uo2
    gd      4  den= 0.3   1  294  end gd
  end composition
  read param
    nsk=0 gen=100 npg=300
  end param
  read geometry
    unit 1
      com=!fuel pin!
      cylinder   10  0.395  40.0  -40.0
      cylinder   20  0.410  40.0  -40.0
      cylinder   30  0.470  40.0  -40.0
      cuboid     40  4p0.65  2p40.0
      media      1  1  10
      media      0  1  20 -10
      media      2  1  30 -20
      media      3  1  40 -30
      boundary   40
    unit 2
      com=!water hole!
      cuboid     40  4p0.65  2p40.0
      media      3  1  40
      boundary   40
    unit 3
      com=!unit containing a 2x2 array of fuel pins!
      cuboid     10  4p1.30  2p40.0
      array      1  10  place 1 1 1 -0.65 -0.65 0.0
      boundary   10
    unit 4
      com=!unit containing a 1x2 array of fuel pins!
      cuboid     10  2p0.65  2p1.30  2p40.0
      array      2  10  place 1 1 1 0.0 -0.65 0.0
      boundary   10
    unit 5
      com=!unit containing a 2x1 array of fuel pins!
      cuboid     10  2p1.30  2p0.65  2p40.0
      array      3  10  place 1 1 1 -0.65 0.0 0.0
      boundary   10
    unit 6
      com=!unit containing a 5x5 array of fuel pins!
      cuboid     10  4p3.25  2p40.0
      array      4  10  place 2 2 1 0.0 0.0 0.0
      boundary   10
    unit 7
      com=!unit containing a 5x5 array of fuel pins - water hole in the middle!
      cuboid     10  4p3.25  2p40.0
      array      5  10  place 2 2 1 0.0 0.0 0.0
      boundary   10
    unit 8
      com=!unit containing a 5x5 array of fuel pins - poisoned pin in the middle!
      cuboid     10  4p3.25  2p40.0
      array      6  10  place 2 2 1 0.0 0.0 0.0
      boundary   10
    unit 9
      com=!poisoned fuel pin!
      cylinder   10  0.395  40.0  -40.0
      cylinder   20  0.410  40.0  -40.0
      cylinder   30  0.470  40.0  -40.0
      cuboid     40  4p0.65  2p40.0
      media      4  1  10
      media      0  1  20 -10
      media      2  1  30 -20
      media      3  1  40 -30
      boundary   40
    unit 10
      com=!unit containing a 15x15 fuel assembly!
      cuboid     10  4p9.75  2p40.0
      array      7  10  place  2 2 1 0.0 0.0 0.0
      boundary   10
    global
    unit 11
      com=!global unit with 2 fuel assemblies!
      cylinder   10  25.0  60.0  -60.0
      hole       10  origin x=-10.0
      hole       10  origin x= 10.0
      media      3  1  10
      boundary   10
    end geometry
    read array
    ara=1 typ=square nux=2 nuy=2 nuz=1  fill f1 end fill
    ara=2 typ=square nux=1 nuy=2 nuz=1  fill f1 end fill
    ara=3 typ=square nux=2 nuy=1 nuz=1  fill f1 end fill
    ara=4 typ=square nux=3 nuy=3 nuz=1  fill 3 4 3 5 1 5 3 4 3 end fill
    ara=5 typ=square nux=3 nuy=3 nuz=1  fill 3 4 3 5 2 5 3 4 3 end fill
    ara=6 typ=square nux=3 nuy=3 nuz=1  fill 3 4 3 5 9 5 3 4 3 end fill
    ara=7 typ=square nux=3 nuy=3 nuz=1  fill 7 6 7 6 8 6 7 6 7 end fill
    end array
    read start
    ' first Dancoff - calculate for the poisoned fuel pin in unit 9 for the x=-10 assembly
    dancoff
    ' hole 1 is unit 10 at x=-10
      hole 1
    ' array in first region of unit 10 is array 7 - 2 2 1 position is unit 8
      array 1 2 2 1
    ' array in first region of unit 8 is array 6 - 2 2 1 position is unit 9
      array 1 2 2 1
    '  cylinder labeled 10 in unit 9 is the first region
      unit 9   region 1
    ' second Dancoff - calculate for the poisoned fuel pin in unit 9 for the x=+10 assembly
    dancoff
    ' hole 2 is unit 10 at x=+10
      hole 2
    ' array in first region of unit 10 is array 7 - 2 2 1 position is unit 8
      array 1 2 2 1
    ' array in first region of unit 8 is array 6 - 2 2 1 position is unit 9
      array 1 2 2 1
    '  cylinder labeled 10 in unit 9 is the first region
      unit 9   region 1
    end start
    end data
    end


This input file creates two files of Dancoff factors.  The first such file is listed in :numref:`list7-8-2`.

.. code-block:: scale
  :name: list7-8-2
  :caption: Output file of Dancoff factors.

  Unit 9 at global x -1.00000E+01  y  0.00000E+00  z  0.00000E+00
            index        nuclide        dancoff      deviation
                1          92234    2.20873E-01    1.03436E-03
                2          92235    2.20873E-01    1.03436E-03
                3          92236    2.20873E-01    1.03436E-03
                4          92238    2.20873E-01    1.03436E-03
                5           8016    9.64748E-01    4.28121E-04
                6          64000    2.82254E-10    3.61320E-11

The second file is statistically the same, as it solved for the mirror image Dancoff factor.