.. _9-1:
XSDRNPM: A ONE-DIMENSIONAL DISCRETE-ORDINATES CODE FOR TRANSPORT ANALYSIS
=========================================================================
L. M. 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 *P*\ :sub:`1` diffusion theory, infinite
medium theory, or *B*\ :sub:`n` 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.
.. _9-1-1:
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.
.. _9-1-1-1:
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 |Bn| 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.
.. _9-1-1-2:
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:
.. describe:: 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.
.. describe::
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 |Sn| 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.
.. _9-1-1-3:
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.
.. _9-1-1-4:
Notes on the use of various spectral calculational options
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
.. |Sn| replace:: :math:`S_n`
.. |Bn| replace:: :math:`B_n`
As noted earlier, four options are available in XSDRNPM for calculating
fluxes, k-effectives, etc.:
1. |Sn| theory,
2. diffusion theory,
3. infinite medium theory, and
4. |Bn| theory.
However, XSDRNPM is primarily an |Sn| 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, |Sn| 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, |Sn| 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 |Sn| theory, since it has
essentially one equation to solve, versus number-of-angles equations for
|Sn| theory. This equation also can be explicitly solved using a
matrix inversion procedure, whereas the |Sn| 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
|Bn| 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 |Bn| 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.
.. _9-1-1-5:
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.
.. _9-1-2:
Theory and Procedures
---------------------
This section describes the models and procedures which are employed in
XSDRNPM.
.. _9-1-2-1:
One-dimensional discrete-ordinates theory
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
The time-independent Boltzmann transport equation can be written:
.. math::
:label: eq9-1-1
\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})