XSDRNPM: A ONE-DIMENSIONAL DISCRETE-ORDINATES CODE FOR TRANSPORT ANALYSIS

1. Petrie, N. M. Greene, [1]_ M. L. Williams

ABSTRACT

XSDRNPM is a discrete-ordinates code that solves the one-dimensional Boltzmann equation in slab, cylindrical, or spherical coordinates. Alternatively, the user can select P1 diffusion theory, infinite medium theory, or Bn theory. A variety of calculational types is available, including fixed source, eigenvalue, or “search” calculations. In SCALE, XSDRNPM is used for several purposes: eigenvalue (k‑effective) determination, cross-section collapsing, shielding analysis, computation of fundamental-mode or generalized adjoint functions for sensitivity analysis, and for producing bias factors for use in Monte Carlo shielding calculations.

ACKNOWLEDGMENTS

W. W. Engle has been very generous with the use of his notes on Sn theory and on discussing details of various procedures in XSDRNPM which were lifted directly from his ANISN program.

The authors also wish to thank R. H. Odegaarden (the former technical monitor at the U.S. Nuclear Regulatory Commission) who supplied the necessary incentives for completing this report.

Introduction

XSDRNPM is a one-dimensional (1-D) discrete-ordinates transport code and is the latest in a series of codes in the XSDRN [2]_ family. As such, it contains several unique characteristics, as will be detailed in this report, though a large portion of the theoretical bases and intended uses of the program are the same for all versions.

Functions performed

The function of XSDRNPM is twofold: (1) perform a 1-D discrete-ordinates calculation in slab, cylindrical, or spherical geometry (optionally, a 1-D diffusion theory or infinite medium $$B_n$$ calculation can be made), and (2) use the fluxes determined from its spectral calculation to collapse input cross sections and write these into one of several formats.

A great deal of flexibility is allowed in describing a problem for XSDRNPM. The number of spatial intervals, the number of energy groups, the number of nuclides, the quadrature order, the order of fits to the angular variation in basic cross sections are all arbitrary and are limited only by computer and monetary resources.

The flux calculation can be performed according to several options, including fixed source calculations, k-calculations, and dimension search calculations.

A variety of weighting options are allowed, including zone, cell, or a special “vein” weighting option which is described herein.

Background on XSDRNPM

Development of the XSDRN1 program started in the mid-1960s. The goal was to develop a program that would combine features from the GAM-II, [3]_ ANISN, [4]_ and THERMOS [5]_ programs in a more unified and general way than would be possible if one simply elected to use these codes individually.

The salient features to be retained from the programs were as follows:

GAM-II
The Nordheim Integral Treatment was desired for resonance
self-shielding; the generality of including cross sections for an
arbitrary number of processes, along with the provisions for
truncating zero or impossible transfers in the scattering matrices,
was also a requirement.
ANISN One-dimensional discrete-ordinates or diffusion theory or
infinite-medium theory was to be available to generate a spectrum for
cross-section collapsing.
..describe::

THERMOS The ability to perform detailed 1-D spectral calculations, including upscatter effects, was required for the thermal region.

The whole code was required to be dynamically dimensioned to allow calculations for arbitrary group structures, spatial structures, angular quadratures, etc.

The XSDRN program that embodied these features was released in 1969.

In the early 1970s, the Defense Nuclear Agency (DNA) initiated support for the AMPX system, which was to be a total cross-section generation system capable of performing all tasks necessary to take basic neutron and gamma-ray cross-section data and process these data into the proper form needed for weapons effects calculations. Since XSDRN already encompassed many of the features needed, it was selected as a basis for modules in the new system. In this case, experience gained in the original construction of XSDRN served to suggest that a more modular approach would have been better with independent tasks being done in separate, smaller, easier-to-manage programs. Therefore, the code was split into NITAWL-II (for resonance self-shielding and some basic cross-section data manipulation) and XSDRNPM (for spectral calculations and cross-section collapsing). In retrospect, if the AMPX development were initiated today, XSDRN would have been split even further, into perhaps as many as six or seven programs.

The XSDRNPM module differs from XSDRN in several respects:

• It will perform coupled neutron-gamma calculations.

• It allows any mixture to be represented to an arbitrary order of anisotropic representation, whereas XSDRN only allowed through order 3.

• It will perform an adjoint calculation, whereas the option was never provided in XSDRN. In 2010, a generalized adjoint solution was also added.

• It is considerably more efficient in the manner in which data storage is used and, hence, will run much larger problems in less core storage.

• It employs improved thermal flux scaling techniques for better problem convergence.

• Input specifications have been reordered, and more defaults have been provided to make the use of this module easier.

• It will calculate $$S_n$$ constants for any order for any of the three 1-D geometries available.

• Mixture-dependent fission spectra are calculated and used in XSDRNPM, which takes into account all fissionable nuclides in a problem.

AMPX was released in 1976, about the same time as the U.S. Nuclear Regulatory Commission (NRC) support for the SCALE system was initiated. Although separate versions of XSDRNPM were initially maintained for AMPX and SCALE, in recent years the same version is used for the two systems.

Applications in SCALE

XSDRNPM is used in several places in SCALE. In SAS1, XSDOSE uses fluxes from a 1-D shielding calculation to determine a dose rate. Within the CSAS5 and CSAS6 control modules, XSDRNPM is used in the sequences to perform eigenvalue calculations and cell weighting of cross sections. TSUNAMI-1D uses XSDRN to compute forward and adjoint fluxes (fundamental-mode and generalized adjoint) for sensitivity and uncertainty analysis.

Notes on the use of various spectral calculational options

As noted earlier, four options are available in XSDRNPM for calculating fluxes, k-effectives, etc.:

1. $$S_n$$ theory,

2. diffusion theory,

3. infinite medium theory, and

4. $$B_n$$ theory.

However, XSDRNPM is primarily an $$S_n$$ code. The latter three options are provided for reasons of completeness and are not nearly as optimized as they would be in other codes for which these are the primary spectral calculation options.

Without a very detailed calculational study, it is perhaps impossible to be able to quantify the degree of adequacy or inadequacy of any of these methods for performing a particular problem. However, some general comments can be made which may provide some guidance with their selection.

First, $$S_n$$ theory is the most correct of the options and will solve a larger class of problems. It is the most complicated and time-consuming of the four, but it still runs very fast for most cases. There are problems for which it (or some alternative method based on a solution of the Boltzmann equation) is the only one of the four methods which is adequate. Many shielding applications fall in this class. In deep-penetration problems, anisotropic effects can dominate, thus requiring an accurate treatment of the anisotropy of both flux and cross section. It is well known that diffusion theory is not very accurate when used to calculate systems involving regions of very dissimilar cross-section values, such as is the case when control rods are interspersed in a reactor core. Because of the anisotropy involved in gamma-ray problems, $$S_n$$ theory should be used.

Diffusion theory, on the other hand, is certainly the most successful of the four methods in terms of the amount of use it has for designing reactors, etc. In cases involving reasonably large, homogeneous regions, it is generally adequate, such as is the case for a large class of “reactor” applications. For most problems, the diffusion theory option should run appreciably faster than $$S_n$$ theory, since it has essentially one equation to solve, versus number-of-angles equations for $$S_n$$ theory. This equation also can be explicitly solved using a matrix inversion procedure, whereas the $$S_n$$ theory requires a more time-consuming iterative procedure. However, in many cases with large numbers of groups (200 to 300), the greater fraction of the calculational time can be spent calculating the scattering source terms, which tends to lessen the impact of time spent on a more correct theory. (This same observation can also be made of the infinite medium and $$B_n$$ method.)

The infinite medium option is the fastest of the four methods and can be used safely to perform calculations for large homogeneous regions, wherein the spectrum may be needed to collapse cross sections. This option only determines the first moment of the flux, and is, therefore, quite suspect for many applications, such as calculating diffusion coefficients.

The $$B_n$$ option shares many of the same restrictions as the infinite-medium method; however, this treatment does (as its name implies) use a buckling approximation to account for leakage from the large homogeneous region, thereby giving higher order flux moments that can be used, for example, to determine diffusion coefficients.

Selection of output cross-section library formats

XSDRNPM will, on option, collapse cross sections and write the collapsed sets into four different formats:

1. ANISN3 BCD Library,

2. ANISN3 Binary Library,

3. CCCC [6]_ ISOTXS Library, or

4. AMPX [7]_ Working Library.

The choice of the output cross-section format is determined by the computer code that will use the data. XSDRNPM always produces an AMPX working library when cross sections are collapsed, and all other formats are produced by reformatting data from this library. Therefore, for archival purposes, if a collapsed library is to be saved, the working format is the best choice, because it is the most general of those provided. AMPX working libraries are used by all multi-group transport codes currently in SCALE, including DENOVO (3D orthogonal mesh discrete ordinates code), NEWT (2D arbitrary mesh discrete ordinates code), and KENO and MONOCO (multigroup Monte Carlo codes. Stand-alone modules exist for converting AMPX working libraries to the other formats.

ANISN formats are used by older ORNL transport codes such as ANISN (a 1-D discrete-ordinates code), by DORT/TORT [8]_ [two-dimensional (2-D) and three dimensional (3D) discrete-ordinates codes], and by MORSE [9]_ (a multigroup Monte Carlo code). The formats are quite comprehensive and can handle coupled neutron-gamma calculations, arbitrary orders of anisotropy, upscattering, etc. The major shortcoming of the format is its lack of internal documentation as to its structure (e.g., no provisions exist for specifying where a particular kind of cross section is located in the library or even if it is included). ANISN libraries can be produced in a free-form card-image BCD format or in a binary form.

The CCCC (Committee on Computer Code Coordination) ISOTXS file is a format for neutron cross sections that is one of several “standard interfaces” developed to facilitate the exchange of data between different computer codes. It is a self-defined format, which has provisions for identifying cross sections in the library. Scattering matrices can be supplied for elastic, inelastic, and (n,2n) scattering.

Theory and Procedures

This section describes the models and procedures which are employed in XSDRNPM.

One-dimensional discrete-ordinates theory

The time-independent Boltzmann transport equation can be written:

()$\rightharpoon{\Omega} \bullet \nabla \psi(\vec{r}, E, \bar{\Omega})+\sum_{i}(\vec{r}, E) \psi(E, \vec{r}, \bar{\Omega})=S(\vec{r}, E, \bar{\Omega})$