diff --git a/docs/source/devguide/structures.rst b/docs/source/devguide/structures.rst index aa22c40fe0..15777f6065 100644 --- a/docs/source/devguide/structures.rst +++ b/docs/source/devguide/structures.rst @@ -80,6 +80,71 @@ low-energy scattering, a :math:`S(\alpha,\beta)` can be associated with that material through the ``sab_table`` component. Again, this component contains the index in the ``sab_tables`` array from the `global module`_. +------- +Nuclide +------- + +The Nuclide derived type stores cross section and interaction data for a nucleus +and is defined in the `ace_header module`_. The ``energy`` component is an array +that gives the discrete energies at which microscopic cross sections are +tabulated. The actual microscopic cross sections are stored in a separate +derived type, Reaction. An arrays of Reactions is present in the ``reactions`` +component. There are a few summary microscopic cross sections stored in other +components, such as ``total``, ``elastic``, ``fission``, and ``nu_fission``. + +If a Nuclide is fissionable, the prompt and delayed neutron yield and energy +distributions are also stored on the Nuclide type. Many nuclides also have +unresolved resonance probability table data. If present, this data is stored in +the component ``urr_data`` of derived type UrrData. A complete description of +the probability table method is given in :ref:`probability_tables`. + +The list of nuclides present in a problem is stored in the ``nuclides`` array +defined in the `global module`_. + +---------- +SAlphaBeta +---------- + +The SAlphaBeta derived type stores :math:`S(\alpha,\beta)` data to account for +molecular binding effects when treating thermal scattering. Each SAlphaBeta +table is associated with a specific nuclide as identified in the ``zaid`` +component. A complete description of the :math:`S(\alpha,\beta)` treatment can +be found in :ref:`sab_tables`. + +--------- +XsListing +--------- + +The XsListing derived type stores information on the location of an ACE cross +section table based on the data in cross_sections.xml and is defined in the +`ace_header module`_. For each ```` you see in cross_sections.xml, +there is a XsListing with its information. When the user input is read, the +array ``xs_listings`` in the `global module`_ that is of derived type XsListing +is used to locate the ACE data to parse. + +-------------- +NuclideMicroXS +-------------- + +The NuclideMicroXS derived type, defined in the `ace_header module`_, acts as a +'cache' for microscopic cross sections. As a particle is traveling through +different materials, cross sections can be reused if the energy of the particle +hasn't changed. The components ``total``, ``elastic``, ``absorption``, +``fission``, and ``nu_fission`` represent those microscopic cross sections at +the current energy of the particle for a given nuclide. An array ``micro_xs`` in +the `global module`_ that is the same length as the ``nuclides`` array stores +these cached cross sections for each nuclide in the problem. + +--------------- +MaterialMacroXS +--------------- + +In addition to the NuclideMicroXS type, there is also a MaterialMacroXS derived +type, defined in the `ace_header module`_ that stored cached *macroscopic* cross +sections for the current material. These macroscopic cross sections are used for +both physics and tallying purposes. The variable ``material_xs`` in the `global +module`_ is of type MaterialMacroXS. + .. _derived types: http://nf.nci.org.au/training/FortranAdvanced/slides/slides.025.html .. _global module: https://github.com/mit-crpg/openmc/blob/master/src/global.F90 @@ -87,3 +152,4 @@ index in the ``sab_tables`` array from the `global module`_. .. _geometry_header module: https://github.com/mit-crpg/openmc/blob/master/src/geometry_header.F90 .. _constants module: https://github.com/mit-crpg/openmc/blob/master/src/constants.F90 .. _material_header module: https://github.com/mit-crpg/openmc/blob/master/src/material_header.F90 +.. _ace_header module: https://github.com/mit-crpg/openmc/blob/master/src/ace_header.F90 diff --git a/docs/source/methods/physics.rst b/docs/source/methods/physics.rst index 865329fee2..0ed40130dd 100644 --- a/docs/source/methods/physics.rst +++ b/docs/source/methods/physics.rst @@ -1272,6 +1272,8 @@ If is not accepted, then we repeat the process and resample a target speed and cosine until a combination is found that satisfies equation :eq:`freegas-accept-2`. +.. _sab_tables: + ------------ |sab| Tables ------------ @@ -1419,7 +1421,9 @@ uniformly and then the final cosine is interpolated on the incoming energy grid: \mu = \mu_{i,j,k} + f (\mu_{i+1,j,k} - \mu_{i,j,k}) where :math:`\mu_{i,j,k}` is the k-th outgoing cosine corresponding to the j-th -outgoing energy and the i-th incoming energy. +outgoing energy and the i-th incoming energy. + +.. _probability_tables: ---------------------------------------------- Unresolved Resonance Region Probability Tables