Keno: A Monte Carlo Criticality Program

L. M. Petrie, K. B. Bekar, C. Celik, D. F. Hollenbach,1 C. M. Perfetti, S. Goluoglu,1 N. F. Landers,1 M. E. Dunn, B. T. Rearden

KENO is a three-dimensional (3D) Monte Carlo criticality transport program developed and maintained for use as part of the SCALE Code System. It can be used as part of a sequence or as a standalone program. There are two versions of the code currently supported in SCALE. KENO V.a is the older of the two. KENO-VI contains all current KENO V.a features plus a more flexible geometry package known as the SCALE Generalized Geometry Package. The geometry package in KENO-VI is capable of modeling any volume that can be constructed using quadratic equations. In addition, such features as geometry intersections, body rotations, hexagonal and dodecahedral arrays, and array boundaries have been included to make the code more flexible.

The simpler geometry features supported by KENO V.a allow for significantly shorter execution times than KENO-VI, while the additional geometry features supported in KENO-VI make the code appropriate for cases where geometry modeling is not possible with KENO V.a. In particular, KENO-VI allows intersections, body truncations with planes, and a much wider variety of geometrical bodies. KENO-VI also has the ability to rotate bodies so that volumes no longer must be positioned parallel to a major axis. Hexagonal arrays are available in KENO-VI and dohecahedral arrays enable the code to model pebble bed reactors and other systems composed of close packed spheres. The use of array boundaries makes it possible to fill a non-cuboidal volume with an array, specifying the boundary where a particle leaves and enters the array.

Except for geometry capabilities, the two versions of KENO share most of the computational capabilities and the input flexibility specific to most SCALE modules. They can both operate in multigroup or continuous energy mode, run as standalone codes, or integrated in computational sequences such as CSAS, TSUNAMI-3D, or TRITON. Both versions of the code are continually updated and are written in FORTRAN 90.

Computational capabilities shared by the two versions of KENO include the determination of k‑effective, neutron lifetime, generation time, energy-dependent leakages, energy- and region-dependent absorptions, fissions, the system mean-free-path, the region-dependent mean-free-path, average neutron energy, flux densities, fission densities, reaction rate tallies, mesh tallies, source convergence diagnostics, problem-dependent continuous energy temperature treatments, parallel calculations, restart capabilities, and many more.

1Formerly with Oak Ridge National Laboratory

ACKNOWLEDGMENTS

Many individuals have contributed significantly to the development of KENO. Special recognition is given to G. E. Whitesides, former Director of the Computing Applications Division, who was responsible for the concept and development of the original KENO code. He has also contributed significantly to some of the techniques used in both KENO versions. The late J. T. Thomas offered many ideas that have been implemented in the code. R. M. Westfall, retired from ORNL, provided early consultation, encouragement, and benchmarks for validating the code. The special abilities of J. R. Knight, retired from ORNL, contributed substantially to debugging early versions of the code. S. W. D. Hart was instrumental in implementing continuous energy temperature treatments. W. J. Marshall has provided substantial validation and quality assurance reviews. Appreciation is expressed to C. V. Parks and S. M. Bowman for their support of KENO and the KENO3D visualization tool. The late P. B. Fox provided many of the figures in this document. D. Ilas, B. J. Marshall, and D. E. Mueller consolidated the previous KENO V.a and KENO-VI manuals into this present form. The efforts of L. F. Norris (retired), W. C. Carter (retired), S. J. Poarch, D. J. Weaver (retired), S. Y. Walker and R. B. Raney in preparing this document are gratefully acknowledged.

The authors thank the U. S. Nuclear Regulatory Commission and the DOE Nuclear Criticality Safety Program for sponsorship of the continuous energy, source convergence diagnostics, and grid geometry features in the current version.

Introduction to KENO

KENO, a functional module in the SCALE system, is a Monte Carlo criticality program used to calculate $$k_{eff}$$, fluxes, reaction rates, and other data for three-dimensional (3-D) systems. Special features include multigroup or continuous energy mode, simplified data input, the ability to specify origins for spherical and cylindrical geometry regions, a Pn scattering treatment, and restart capability.

The KENO data input features flexibility in the order of input. The only restrictions are that the sequence identifier, title, and cross section library must be entered first. A large portion of the data has been assigned default values found to be adequate for many problems. This feature enables the user to run a problem with a minimum of input data.

In addition to the features listed above, KENO-VI uses the SCALE Generalized Geometry Package (SGGP), which contains a much larger set of geometrical bodies, including cuboids, cylinders, spheres, cones, dodecahedrons, elliptical cylinders, ellipsoids, hoppers, parallelepipeds, planes, rhomboids, and wedges. The code’s flexibility is increased by allowing: intersecting geometry regions; hexagonal, dodecahedral, and cuboidal arrays; bodies and holes rotated to any angle and translated to any position; and a specified array boundary that contains only that portion of the array located inside the boundary. Users should be aware that the added geometry features in KENO‑VI can result in significantly longer run times than KENO V.a. A KENO-VI problem that can be modeled in KENO V.a will typically run about four times as long with KENO-VI as it does with KENO V.a. Therefore KENO-VI is not a replacement for KENO V.a, but rather an additional version for more complex geometries that could not be modeled previously.

Blocks of input data are entered in the form

where XXXX is the keyword for the type of data being entered. The types of data entered include parameters, geometry region data, array definition data, biasing or weighting data, albedo boundary conditions, starting distribution information, the cross section mixing table, extra one-dimensional (1-D) (reaction rate) cross section IDs for special applications, energy group boundaries for tallying in the continuous energy mode, a mesh grid for collecting flux moments, and printer plot information.

A block of data can be omitted unless it is needed or desired for the problem. Within the blocks of data, most of the input is activated by using keywords to override default values.

The treatment of the energy variable can be either multigroup or continuous. Changing the calculation mode from multigroup to continuous energy or vice versa is established by simply changing the cross section library used. All available calculated entities in the multigroup mode can also be calculated in the continuous energy mode. If the calculated entity is energy or group dependent, it is automatically tallied into the appropriate group structure in the continuous energy mode.

The KENO V.a geometry input consists of spheres, hemispheres, cylinders, hemicylinders, and cuboids. Although the origin of the cylinders, hemicylinders, spheres, and hemispheres is zero by default, they may be specified to any value that will allow the geometry to fit in the problem. This feature allows the use of nonconcentric cylindrical and spherical shapes and provides a great deal of freedom in positioning them. Another feature that expands the generality of the code is the ability to place the cut surface of the hemicylinders and hemispheres at any distance between the radius and the origin.

An additional convenience is the availability of an alternative method for specifying the array definition unit-location data. This method uses FIDO-like options for filling the array.

As mentioned above, KENO-VI uses the SGGP, which contains a much more flexible geometry package than the one in KENO V.a. In KENO-VI, geometry regions are constructed and processed as sets of quadratic equations. A set of geometric shapes (including all of those used in KENO V.a plus others) is available in KENO-VI, as well as the ability to build more complex geometric shapes using sets of quadratic equations. Unlike KENO V.a, KENO-VI allows intersections between geometry regions within a unit, and it provides the ability to specify an array boundary that intersects the array.

The most flexible KENO V.a geometry features are the “ARRAY-of-ARRAYs” and “HOLEs” capabilities. The ARRAY-of-ARRAYs option allows the construction of ARRAYs from other ARRAYs. The depth of nesting is limited only by computer space restrictions. This option greatly simplifies the setup for ARRAYs involving different UNITs at different spacings. The HOLE option allows a UNIT or an ARRAY to be placed at any desired location within a geometry region. The emplaced UNIT or ARRAY cannot intersect any geometry region and must be wholly contained within a region. As many HOLEs as will snugly fit without intersecting can be placed in a region. This option is especially useful for describing shipping casks and reflectors that have gaps or other geometrical features. Any number of HOLEs can be described in a problem, and HOLEs can be nested to any depth.

The primary difference between the KENO V.a and KENO-VI geometry input is the methodology used to represent the geometry/material regions in a unit. KENO-VI uses two geometry records (cards) to describe a region. The first record, called the GEOMETRY record, contains the geometry (shape) keyword, region boundary definitions, and any geometry modification data. Using geometry modification data, regions can be rotated and translated to any angle and position within a unit. The second record, the CONTENT record, contains the MEDIA keyword; the material, HOLE, or ARRAY ID number; the bias ID number; and the region definition vector. KENO-VI requires that a GLOBAL UNIT be specified in all problems, including single unit problems.

In addition to the cuboidal ARRAYs available in KENO V.a, hexagonal ARRAYs and dodecahedral ARRAYs can be directly constructed in KENO-VI. Also, the ability to specify an ARRAY boundary that intersects the ARRAY makes it possible to construct a lattice in a cylinder using one ARRAY in KENO-VI instead of multiple ARRAYs and HOLEs as would be required in KENO V.a.

Anisotropic scattering is treated by using discrete scattering angles. The angles and associated probabilities are generated in a manner that preserves the moments of the angular scattering distribution for the selected group-to-group transfer. These moments can be derived from the coefficients of a Pn Legendre polynomial expansion. All moments through the 2n − 1 moment are preserved for n discrete scattering angles. A one-to-one correspondence exists such that n Legendre coefficients yield n moments. The cases of zero and one scattering angle are treated in a special manner. Even when the user specifies multiple scattering angles, KENO can recognize that the distribution is isotropic, and therefore KENO selects from a continuous isotropic distribution. If the user specifies one scattering angle, the code selects the scattering angle from a linear function if it is positive between -1 and +1, and otherwise it performs semicontinuous scattering by picking scattering angle cosines uniformly over some range between –1 and +1. The probability is zero over the rest of the range.

The KENO restart option is easy to activate. Certain changes can be made when a problem is restarted, including using a different random sequence or turning off certain print options such as fluxes or the fissions and absorptions by region.

KENO can also compute angular fluxes and flux moments in multigroup calculations, which are required to compute scattering terms for generation of sensitivity coefficients with the SAMS module or the TSUNAMI-3D control module. Fluxes can also be accumulated in a Cartesian mesh that is superimposed over the user-defined geometry in an automated manner.

KENO can perform Monte Carlo transport calculations concurrently on a number of computational nodes. By introducing a simple master-slave approach via MPI, KENO runs different random walks concurrently on the replicated geometry within the same generation. Fission source and other tallied quantities are gathered at the end of each generation by the master process and are then processed either for final edits or subsequent generations. Code parallel performance is strongly dependent on the size of the problem simulated and the size of the tallied quantities.

KENO Data Guide

KENO may be run stand alone or as part of a SCALE criticality safety or sensitivity and uncertainty analysis sequence. If KENO is run stand alone in the multigroup mode, cross section data can be used from an AMPX [DG02] working format library or from a Monte Carlo format cross section library. If KENO uses an AMPX working format library, a mixing table data block must be entered. If a Monte Carlo format library is used, a mixing table data block is not entered, and the mixtures specified in the KENO geometry description must be consistent with the mixtures created on the Monte Carlo format library file.

If KENO is run stand alone in the continuous energy mode, a mixing table data block must be provided unless the restart option is used.

If KENO is run as part of a SCALE criticality safety or sensitivity and uncertainty analysis sequence, the mixtures are defined in the CSAS or TSUNAMI-3D input, and a mixing table data block cannot be entered in KENO. Furthermore, the mixture numbers used in the KENO geometry description must correspond to those defined in the composition data block of the CSAS or TSUNAMI-3D input. To use a cell-weighted mixture in KENO, the keyword “CELLMIX=,” followed by a unique mixture number, must be specified in the unit cell data of the CSAS or TSUNAMI‑3D sequence. Unit cell data are applicable only in the multigroup mode. The mixture number used in the KENO input is the unique mixture number immediately following the keyword “CELLMIX=.” A cell‑weighted mixture is available only in SCALE sequences that use XSDRN to perform a cell-weighting calculation using a multigroup cross section library. Table 136 through Table 149 summarize the KENO input data blocks. These input data blocks are discussed in detail in the following sections.

In order to run KENO parallel (standalone execution), the user must provide a name with the “%” prefix in the input file (=%kenovi). Control modules like CSAS, TRITON, and TSUNAMI-3D automatically initiate parallel KENO execution if the user provides the required arguments while running this code.