diff --git a/.gitignore b/.gitignore
index f67c611db..2dae450d0 100644
--- a/.gitignore
+++ b/.gitignore
@@ -1,4 +1,5 @@
# Compiled objects and modules
+*.a
*.o
*.mod
*.log
@@ -18,6 +19,7 @@ src/openmc
# Documentation builds
docs/build
+docs/source/_images/*.pdf
# xml-fortran reader
src/xml-fortran/xmlreader
@@ -26,4 +28,7 @@ src/xml-fortran/xmlreader
src/templates/*.f90
# Test results error file
-results_error.dat
\ No newline at end of file
+results_error.dat
+
+# HDF5 files
+*.h5
diff --git a/LICENSE b/LICENSE
index f8d9cd7c0..0b9c35137 100644
--- a/LICENSE
+++ b/LICENSE
@@ -1,4 +1,4 @@
-Copyright (c) 2011-2013 Massachusetts Institute of Technology
+Copyright (c) 2011-2014 Massachusetts Institute of Technology
Permission is hereby granted, free of charge, to any person obtaining a copy of
this software and associated documentation files (the "Software"), to deal in
diff --git a/data/cross_sections_nndc.xml b/data/cross_sections_nndc.xml
new file mode 100644
index 000000000..2e421d7ab
--- /dev/null
+++ b/data/cross_sections_nndc.xml
@@ -0,0 +1,1716 @@
+
+
+ ascii
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/data/get_nndc_data.py b/data/get_nndc_data.py
new file mode 100755
index 000000000..2e76401a4
--- /dev/null
+++ b/data/get_nndc_data.py
@@ -0,0 +1,96 @@
+#!/usr/bin/env python
+
+from __future__ import print_function
+import os
+import shutil
+import subprocess
+import sys
+import tarfile
+
+try:
+ from urllib.request import urlopen
+except ImportError:
+ from urllib2 import urlopen
+
+baseUrl = 'http://www.nndc.bnl.gov/endf/b7.1/aceFiles/'
+files = ['ENDF-B-VII.1-neutron-293.6K.tar.gz',
+ 'ENDF-B-VII.1-neutron-300K.tar.gz',
+ 'ENDF-B-VII.1-neutron-900K.tar.gz',
+ 'ENDF-B-VII.1-neutron-1500K.tar.gz',
+ 'ENDF-B-VII.1-tsl.tar.gz']
+block_size = 16384
+
+# ==============================================================================
+# DOWNLOAD FILES FROM NNDC SITE
+
+filesComplete = []
+for f in files:
+ # Establish connection to URL
+ url = baseUrl + f
+ req = urlopen(url)
+
+ # Get file size from header
+ file_size = int(req.info().getheaders('Content-Length')[0])
+ downloaded = 0
+
+ # Check if file already downloaded
+ if os.path.exists(f):
+ if os.path.getsize(f) == file_size:
+ print('Skipping ' + f)
+ filesComplete.append(f)
+ continue
+ else:
+ if sys.version_info[0] < 3:
+ overwrite = raw_input('Overwrite {0}? ([y]/n) '.format(f))
+ else:
+ overwrite = input('Overwrite {0}? ([y]/n) '.format(f))
+ if overwrite.lower().startswith('n'):
+ continue
+
+ # Copy file to disk
+ print('Downloading {0}... '.format(f), end='')
+ with open(f, 'wb') as fh:
+ while True:
+ chunk = req.read(block_size)
+ if not chunk: break
+ fh.write(chunk)
+ downloaded += len(chunk)
+ status = '{0:10} [{1:3.2f}%]'.format(downloaded, downloaded * 100. / file_size)
+ print(status + chr(8)*len(status), end='')
+ print('')
+ filesComplete.append(f)
+
+# ==============================================================================
+# EXTRACT FILES FROM TGZ
+
+for f in files:
+ if not f in filesComplete:
+ continue
+
+ # Extract files
+ suffix = f[f.rindex('-') + 1:].rstrip('.tar.gz')
+ with tarfile.open(f, 'r') as tgz:
+ print('Extracting {0}...'.format(f))
+ tgz.extractall(path='nndc/' + suffix)
+
+# ==============================================================================
+# COPY CROSS_SECTIONS.XML
+
+print('Copying cross_sections_nndc.xml...')
+shutil.copyfile('cross_sections_nndc.xml', 'nndc/cross_sections.xml')
+
+# ==============================================================================
+# PROMPT USER TO DELETE .TAR.GZ FILES
+
+# Ask user to delete
+if sys.version_info[0] < 3:
+ response = raw_input('Delete *.tar.gz files? ([y]/n) ')
+else:
+ response = input('Delete *.tar.gz files? ([y]/n) ')
+
+# Delete files if requested
+if not response or response.lower().startswith('y'):
+ for f in files:
+ if os.path.exists(f):
+ print('Removing {0}...'.format(f))
+ os.remove(f)
diff --git a/data/readme.rst b/data/readme.rst
index d975723b5..03685491d 100644
--- a/data/readme.rst
+++ b/data/readme.rst
@@ -15,6 +15,9 @@ work with a few common cross section sources.
- **cross_sections_ascii.xml** -- This file matches ENDF/B-VII.0 cross sections
distributed with MCNP5 / MCNP6 beta.
+- **cross_sections_nndc.xml** -- This file matches ENDF/B-VII.1 cross sections
+ distributed from the `NNDC website`_.
+
- **cross_sections_serpent.xml** -- This file matches ENDF/B-VII.0 cross
sections distributed with Serpent 1.1.7.
@@ -31,3 +34,4 @@ element in your settings.xml, or set the CROSS_SECTIONS environment variable to
the full path of the cross_sections.xml file.
.. _user's guide: http://mit-crpg.github.io/openmc/usersguide/install.html#cross-section-configuration
+.. _NNDC website: http://www.nndc.bnl.gov/endf/b7.1/acefiles.html
diff --git a/docs/Makefile b/docs/Makefile
index 8909256f3..89c71dc07 100644
--- a/docs/Makefile
+++ b/docs/Makefile
@@ -6,13 +6,19 @@ SPHINXOPTS =
SPHINXBUILD = sphinx-build
PAPER =
BUILDDIR = build
+IMAGEDIR = source/_images
# Internal variables.
PAPEROPT_a4 = -D latex_paper_size=a4
PAPEROPT_letter = -D latex_paper_size=letter
ALLSPHINXOPTS = -d $(BUILDDIR)/doctrees $(PAPEROPT_$(PAPER)) $(SPHINXOPTS) source
-.PHONY: help clean html dirhtml singlehtml pickle json htmlhelp qthelp devhelp epub latex latexpdf text man changes linkcheck doctest
+# SVG to PDF conversion
+SVG2PDF = inkscape
+PDFS = $(patsubst %.svg,%.pdf,$(wildcard $(IMAGEDIR)/*.svg))
+
+
+.PHONY: help images clean html dirhtml singlehtml pickle json htmlhelp qthelp devhelp epub latex latexpdf text man changes linkcheck doctest
help:
@echo "Please use \`make ' where is one of"
@@ -33,8 +39,16 @@ help:
@echo " linkcheck to check all external links for integrity"
@echo " doctest to run all doctests embedded in the documentation (if enabled)"
+# Pattern rule for converting SVG to PDF
+%.pdf: %.svg
+ $(SVG2PDF) -f $< -A $@
+
+# Rule to build PDFs
+images: $(PDFS)
+
clean:
-rm -rf $(BUILDDIR)/*
+ -rm $(PDFS)
html:
$(SPHINXBUILD) -b html $(ALLSPHINXOPTS) $(BUILDDIR)/html
@@ -91,14 +105,14 @@ epub:
@echo
@echo "Build finished. The epub file is in $(BUILDDIR)/epub."
-latex:
+latex: images
$(SPHINXBUILD) -b latex $(ALLSPHINXOPTS) $(BUILDDIR)/latex
@echo
@echo "Build finished; the LaTeX files are in $(BUILDDIR)/latex."
@echo "Run \`make' in that directory to run these through (pdf)latex" \
"(use \`make latexpdf' here to do that automatically)."
-latexpdf:
+latexpdf: images
$(SPHINXBUILD) -b latex $(ALLSPHINXOPTS) $(BUILDDIR)/latex
@echo "Running LaTeX files through pdflatex..."
make -C $(BUILDDIR)/latex all-pdf
diff --git a/docs/source/_images/3dba.png b/docs/source/_images/3dba.png
new file mode 100644
index 000000000..69de65414
Binary files /dev/null and b/docs/source/_images/3dba.png differ
diff --git a/docs/img/3dcore.png b/docs/source/_images/3dcore.png
similarity index 100%
rename from docs/img/3dcore.png
rename to docs/source/_images/3dcore.png
diff --git a/docs/img/3dgeomplot.png b/docs/source/_images/3dgeomplot.png
similarity index 100%
rename from docs/img/3dgeomplot.png
rename to docs/source/_images/3dgeomplot.png
diff --git a/docs/source/_images/Tracks.png b/docs/source/_images/Tracks.png
new file mode 100644
index 000000000..39c83cd59
Binary files /dev/null and b/docs/source/_images/Tracks.png differ
diff --git a/docs/img/atr.png b/docs/source/_images/atr.png
similarity index 100%
rename from docs/img/atr.png
rename to docs/source/_images/atr.png
diff --git a/docs/img/fluxplot.png b/docs/source/_images/fluxplot.png
similarity index 100%
rename from docs/img/fluxplot.png
rename to docs/source/_images/fluxplot.png
diff --git a/docs/img/fork.png b/docs/source/_images/fork.png
similarity index 100%
rename from docs/img/fork.png
rename to docs/source/_images/fork.png
diff --git a/docs/img/halfspace.svg b/docs/source/_images/halfspace.svg
similarity index 100%
rename from docs/img/halfspace.svg
rename to docs/source/_images/halfspace.svg
diff --git a/docs/img/master-slave.png b/docs/source/_images/master-slave.png
similarity index 100%
rename from docs/img/master-slave.png
rename to docs/source/_images/master-slave.png
diff --git a/docs/img/nearest-neighbor-example.png b/docs/source/_images/nearest-neighbor-example.png
similarity index 100%
rename from docs/img/nearest-neighbor-example.png
rename to docs/source/_images/nearest-neighbor-example.png
diff --git a/docs/img/nearest-neighbor.png b/docs/source/_images/nearest-neighbor.png
similarity index 100%
rename from docs/img/nearest-neighbor.png
rename to docs/source/_images/nearest-neighbor.png
diff --git a/docs/img/openmc.png b/docs/source/_images/openmc.png
similarity index 100%
rename from docs/img/openmc.png
rename to docs/source/_images/openmc.png
diff --git a/docs/img/plotmeshtally.png b/docs/source/_images/plotmeshtally.png
similarity index 100%
rename from docs/img/plotmeshtally.png
rename to docs/source/_images/plotmeshtally.png
diff --git a/docs/img/pullrequest.png b/docs/source/_images/pullrequest.png
similarity index 100%
rename from docs/img/pullrequest.png
rename to docs/source/_images/pullrequest.png
diff --git a/docs/img/union.svg b/docs/source/_images/union.svg
similarity index 100%
rename from docs/img/union.svg
rename to docs/source/_images/union.svg
diff --git a/docs/img/uniongrid.svg b/docs/source/_images/uniongrid.svg
similarity index 100%
rename from docs/img/uniongrid.svg
rename to docs/source/_images/uniongrid.svg
diff --git a/docs/source/conf.py b/docs/source/conf.py
index 8752b4898..7fb622631 100644
--- a/docs/source/conf.py
+++ b/docs/source/conf.py
@@ -39,7 +39,7 @@ master_doc = 'index'
# General information about the project.
project = u'OpenMC'
-copyright = u'2011-2013, Massachusetts Institute of Technology'
+copyright = u'2011-2014, Massachusetts Institute of Technology'
# The version info for the project you're documenting, acts as replacement for
# |version| and |release|, also used in various other places throughout the
@@ -121,7 +121,7 @@ html_title = "OpenMC Documentation"
# The name of an image file (relative to this directory) to place at the top
# of the sidebar.
-html_logo = '../img/openmc.png'
+html_logo = '_images/openmc.png'
# The name of an image file (within the static path) to use as favicon of the
# docs. This file should be a Windows icon file (.ico) being 16x16 or 32x32
@@ -188,6 +188,8 @@ latex_documents = [
u'Massachusetts Institute of Technology', 'manual'),
]
+latex_elements = {'preamble': '\\usepackage{enumitem}\\setlistdepth{9}'}
+
# The name of an image file (relative to this directory) to place at the top of
# the title page.
#latex_logo = None
diff --git a/docs/source/devguide/index.rst b/docs/source/devguide/index.rst
index 1eb7436d0..1ceba324c 100644
--- a/docs/source/devguide/index.rst
+++ b/docs/source/devguide/index.rst
@@ -15,6 +15,6 @@ as debugging.
structures
styleguide
workflow
- xml-fortran
+ xml-parsing
statepoint
voxel
diff --git a/docs/source/devguide/statepoint.rst b/docs/source/devguide/statepoint.rst
index 9862a4528..5f05c92c8 100644
--- a/docs/source/devguide/statepoint.rst
+++ b/docs/source/devguide/statepoint.rst
@@ -4,6 +4,296 @@
State Point Binary File Specifications
======================================
+-----------
+Revision 11
+-----------
+
+**integer(4) FILETYPE_STATEPOINT**
+
+ Flags whether this file is a statepoint file or a particle restart file.
+
+**integer(4) REVISION_STATEPOINT**
+
+ Revision of the binary state point file. Any time a change is made in the
+ format of the state-point file, this integer is incremented.
+
+**integer(4) VERSION_MAJOR**
+
+ Major version number for OpenMC
+
+**integer(4) VERSION_MINOR**
+
+ Minor version number for OpenMC
+
+**integer(4) VERSION_RELEASE**
+
+ Release version number for OpenMC
+
+**character(19) time_stamp**
+
+ Date and time the state point was written.
+
+**character(255) path**
+
+ Absolute path to directory containing input files.
+
+**integer(8) seed**
+
+ Pseudo-random number generator seed.
+
+**integer(4) run_mode**
+
+ run mode used. The modes are described in constants.F90.
+
+**integer(8) n_particles**
+
+ Number of particles used per generation.
+
+**integer(4) n_batches**
+
+ Total number of batches (active + inactive).
+
+**integer(4) current_batch**
+
+ The number of batches already simulated.
+
+if (run_mode == MODE_EIGENVALUE)
+
+ **integer(4) n_inactive**
+
+ Number of inactive batches
+
+ **integer(4) gen_per_batch**
+
+ Number of generations per batch for criticality calculations
+
+ *do i = 1, current_batch \* gen_per_batch*
+
+ **real(8) k_generation(i)**
+
+ k-effective for the i-th total generation
+
+ *do i = 1, current_batch \* gen_per_batch*
+
+ **real(8) entropy(i)**
+
+ Shannon entropy for the i-th total generation
+
+ **real(8) k_col_abs**
+
+ Sum of product of collision/absorption estimates of k-effective
+
+ **real(8) k_col_tra**
+
+ Sum of product of collision/track-length estimates of k-effective
+
+ **real(8) k_abs_tra**
+
+ Sum of product of absorption/track-length estimates of k-effective
+
+ **real(8) k_combined(2)**
+
+ Mean and standard deviation of a combined estimate of k-effective
+
+ **integer(4) cmfd_on**
+
+ Flag that cmfd is on
+
+ if (cmfd_on)
+
+ **integer(4) cmfd % indices**
+
+ Indices for cmfd mesh (i,j,k,g)
+
+ **real(8) cmfd % k_cmfd(1:current_batch)**
+
+ CMFD eigenvalues
+
+ **real(8) cmfd % src(1:G,1:I,1:J,1:K)**
+
+ CMFD fission source
+
+ **real(8) cmfd % entropy(1:current_batch)**
+
+ CMFD estimate of Shannon entropy
+
+ **real(8) cmfd % balance(1:current_batch)**
+
+ RMS of the residual neutron balance equation on CMFD mesh
+
+ **real(8) cmfd % dom(1:current_batch)**
+
+ CMFD estimate of dominance ratio
+
+ **real(8) cmfd % scr_cmp(1:current_batch)**
+
+ RMS comparison of difference between OpenMC and CMFD fission source
+
+**integer(4) n_meshes**
+
+ Number of meshes in tallies.xml file
+
+*do i = 1, n_meshes*
+
+ **integer(4) meshes(i) % id**
+
+ Unique ID of mesh.
+
+ **integer(4) meshes(i) % type**
+
+ Type of mesh.
+
+ **integer(4) meshes(i) % n_dimension**
+
+ Number of dimensions for mesh (2 or 3).
+
+ **integer(4) meshes(i) % dimension(:)**
+
+ Number of mesh cells in each dimension.
+
+ **real(8) meshes(i) % lower_left(:)**
+
+ Coordinates of lower-left corner of mesh.
+
+ **real(8) meshes(i) % upper_right(:)**
+
+ Coordinates of upper-right corner of mesh.
+
+ **real(8) meshes(i) % width(:)**
+
+ Width of each mesh cell in each dimension.
+
+**integer(4) n_tallies**
+
+*do i = 1, n_tallies*
+
+ **integer(4) tallies(i) % id**
+
+ Unique ID of tally.
+
+ **integer(4) tallies(i) % n_realizations**
+
+ Number of realizations for the i-th tally.
+
+ **integer(4) size(tallies(i) % scores, 1)**
+
+ Total number of score bins for the i-th tally
+
+ **integer(4) size(tallies(i) % scores, 2)**
+
+ Total number of filter bins for the i-th tally
+
+ **integer(4) tallies(i) % n_filters**
+
+ *do j = 1, tallies(i) % n_filters*
+
+ **integer(4) tallies(i) % filter(j) % type**
+
+ Type of tally filter.
+
+ **integer(4) tallies(i) % filter(j) % n_bins**
+
+ Number of bins for filter.
+
+ **integer(4)/real(8) tallies(i) % filter(j) % bins(:)**
+
+ Value for each filter bin of this type.
+
+ **integer(4) tallies(i) % n_nuclide_bins**
+
+ Number of nuclide bins. If none are specified, this is just one.
+
+ *do j = 1, tallies(i) % n_nuclide_bins*
+
+ **integer(4) tallies(i) % nuclide_bins(j)**
+
+ Values of specified nuclide bins
+
+ **integer(4) tallies(i) % n_score_bins**
+
+ Number of scoring bins.
+
+ *do j = 1, tallies(i) % n_score_bins*
+
+ **integer(4) tallies(i) % score_bins(j)**
+
+ Values of specified scoring bins (e.g. SCORE_FLUX).
+
+ *do j = 1, tallies(i) % n_score_bins*
+
+ **integer(4) tallies(i) % scatt_order(j)**
+
+ Scattering Order specified scoring bins.
+
+ **integer(4) tallies(i) % n_score_bins**
+
+ Number of scoring bins without accounting for those added by
+ the scatter-pn command.
+
+**integer(4) source_present**
+
+ Flag indicated if source bank is present in the file
+
+**integer(4) n_realizations**
+
+ Number of realizations for global tallies.
+
+**integer(4) N_GLOBAL_TALLIES**
+
+ Number of global tally scores
+
+*do i = 1, N_GLOBAL_TALLIES*
+
+ **real(8) global_tallies(i) % sum**
+
+ Accumulated sum for the i-th global tally
+
+ **real(8) global_tallies(i) % sum_sq**
+
+ Accumulated sum of squares for the i-th global tally
+
+**integer(4) tallies_on**
+
+ Flag indicated if tallies are present in the file.
+
+if (tallies_on > 0)
+
+ *do i = 1, n_tallies*
+
+ *do k = 1, size(tallies(i) % scores, 2)*
+
+ *do j = 1, size(tallies(i) % scores, 1)*
+
+ **real(8) tallies(i) % scores(j,k) % sum**
+
+ Accumulated sum for the j-th score and k-th filter of the
+ i-th tally
+
+ **real(8) tallies(i) % scores(j,k) % sum_sq**
+
+ Accumulated sum of squares for the j-th score and k-th
+ filter of the i-th tally
+
+if (run_mode == MODE_EIGENVALUE and source_present)
+
+ *do i = 1, n_particles*
+
+ **real(8) source_bank(i) % wgt**
+
+ Weight of the i-th source particle
+
+ **real(8) source_bank(i) % xyz(1:3)**
+
+ Coordinates of the i-th source particle.
+
+ **real(8) source_bank(i) % uvw(1:3)**
+
+ Direction of the i-th source particle
+
+ **real(8) source_bank(i) % E**
+
+ Energy of the i-th source particle.
+
-----------
Revision 10
-----------
diff --git a/docs/source/devguide/workflow.rst b/docs/source/devguide/workflow.rst
index 9562c9584..f3793628a 100644
--- a/docs/source/devguide/workflow.rst
+++ b/docs/source/devguide/workflow.rst
@@ -60,7 +60,7 @@ features and bug fixes. The general steps for contributing are as follows:
repository with the same name under your personal account. As such, you can
commit to it as you please without disrupting other developers.
- .. image:: ../../img/fork.png
+ .. image:: ../_images/fork.png
2. Clone your fork of OpenMC and create a branch that branches off of *develop*:
@@ -77,7 +77,7 @@ features and bug fixes. The general steps for contributing are as follows:
4. Issue a pull request from GitHub and select the *develop* branch of
mit-crpg/openmc as the target.
- .. image:: ../../img/pullrequest.png
+ .. image:: ../_images/pullrequest.png
At a minimum, you should describe what the changes you've made are and why
you are making them. If the changes are related to an oustanding issue, make
diff --git a/docs/source/devguide/xml-fortran.rst b/docs/source/devguide/xml-fortran.rst
deleted file mode 100644
index 456cd662f..000000000
--- a/docs/source/devguide/xml-fortran.rst
+++ /dev/null
@@ -1,40 +0,0 @@
-.. _devguide_xml-fortran:
-
-=========================
-xml-fortran Input Parsing
-=========================
-
-OpenMC relies on the xml-fortran package for reading and intrepreting the XML
-input files for geometry, materials, settings, tallies, etc. The use of an XML
-format makes writing input files considerably more flexible than would otherwise
-be possible.
-
-With the xml-fortran package, extending the user input files to include new tags
-is fairly straightforward. A "template" file exists for each diferent type of
-input file that tells xml-fortran what to expect in a file. These template files
-can be found in the src/templates directory. The steps for modifying/adding
-input are as follows:
-
-1. Add a ````` tag to the desired template file,
-e.g. src/templates/geometry_t.xml. See the `xml-fortran documentation`_ for a
-description of the acceptable fields.
-
-2. In the input_xml module, any input given in your new tag will be read
-automatically through a call to, e.g. read_xml_file_geometry_t. Whatever
-variable name you specified should have the data available.
-
-3. Add code in the appropriate subroutine to check the variable for any possible
-errors.
-
-4. Add a variable in OpenMC to copy the temporary variable into if there are no
-errors.
-
-A set of `RELAX NG`_ schemata exists that enables real-time validation of input
-files when using the GNU Emacs text editor. You should also modify the RELAX NG
-schema for the template you changed (e.g. src/templates/geometry.rnc) so that
-those who use Emacs can confirm whether their input is valid before they
-run. You will need to be familiar with RELAX NG `compact syntax`_.
-
-.. _xml-fortran documentation: http://xml-fortran.sourceforge.net/documentation.html
-.. _RELAX NG: http://relaxng.org/
-.. _compact syntax: http://relaxng.org/compact-tutorial-20030326.html
diff --git a/docs/source/devguide/xml-parsing.rst b/docs/source/devguide/xml-parsing.rst
new file mode 100644
index 000000000..8310d53e4
--- /dev/null
+++ b/docs/source/devguide/xml-parsing.rst
@@ -0,0 +1,38 @@
+.. _devguide_xml-parsing:
+
+=================
+XML Input Parsing
+=================
+
+OpenMC relies on the FoX_ Fortran XML library for reading and intrepreting the
+XML input files for geometry, materials, settings, tallies, etc. The use of an
+XML format makes writing input files considerably more flexible than would
+otherwise be possible.
+
+With the FoX library, extending the user input files to include new tags is
+fairly straightforward. The steps for modifying/adding input are as follows:
+
+1. Add appropriate calls to procedures from the `xml_interface module`_, such as
+``check_for_node``, ``get_node_value``, and ``get_node_array``. All input
+reading is performed in the `input_xml module`_.
+
+2. Make sure that your input can be categorized as one of the datatypes from
+`XML Schema Part 2`_ and that parsing of the data appropriately reflects
+this. For example, for a boolean_ value, true can be represented either by "true"
+or by "1".
+
+3. Add code to check the variable for any possible errors.
+
+A set of `RELAX NG`_ schemata exists that enables real-time validation of input
+files when using the GNU Emacs text editor. You should also modify the RELAX NG
+schema for the file you changed (e.g. src/relaxng/geometry.rnc) so that
+those who use Emacs can confirm whether their input is valid before they
+run. You will need to be familiar with RELAX NG `compact syntax`_.
+
+.. _FoX: https://github.com/andreww/fox
+.. _xml_interface module: https://github.com/mit-crpg/openmc/blob/develop/src/xml_interface.F90
+.. _input_xml module: https://github.com/mit-crpg/openmc/blob/develop/src/input_xml.F90
+.. _XML Schema Part 2: http://www.w3.org/TR/xmlschema-2/
+.. _boolean: http://www.w3.org/TR/xmlschema-2/#boolean
+.. _RELAX NG: http://relaxng.org/
+.. _compact syntax: http://relaxng.org/compact-tutorial-20030326.html
diff --git a/docs/source/license.rst b/docs/source/license.rst
index a7d7f2976..e7f4b3a69 100644
--- a/docs/source/license.rst
+++ b/docs/source/license.rst
@@ -4,7 +4,7 @@
License Agreement
=================
-Copyright © 2011-2013 Massachusetts Institute of Technology
+Copyright © 2011-2014 Massachusetts Institute of Technology
Permission is hereby granted, free of charge, to any person obtaining a copy of
this software and associated documentation files (the "Software"), to deal in
diff --git a/docs/source/methods/cross_sections.rst b/docs/source/methods/cross_sections.rst
index c564896c7..a193dde96 100644
--- a/docs/source/methods/cross_sections.rst
+++ b/docs/source/methods/cross_sections.rst
@@ -80,7 +80,7 @@ dashed box would need to be stored on a per-nuclide basis, and the union grid
would need to be stored once. This method is also referred to as *double
indexing* and is available as an option in Serpent (see paper by Leppanen_).
-.. figure:: ../../img/uniongrid.svg
+.. figure:: ../_images/uniongrid.*
:width: 600px
:align: center
:figclass: align-center
diff --git a/docs/source/methods/eigenvalue.rst b/docs/source/methods/eigenvalue.rst
index a5ba0bf45..fe99ba22e 100644
--- a/docs/source/methods/eigenvalue.rst
+++ b/docs/source/methods/eigenvalue.rst
@@ -108,6 +108,40 @@ at plots of :math:`k_{eff}` and the Shannon entropy. A number of methods have
been proposed (see e.g. [Romano]_, [Ueki]_), but each of these is not without
problems.
+---------------------------
+Uniform Fission Site Method
+---------------------------
+
+Generally speaking, the variance of a Monte Carlo tally will be inversely
+proportional to the number of events that score to the tally. In a reactor
+problem, this implies that regions with low relative power density will have
+higher variance that regions with high relative power density. One method to
+circumvent the uneven distribution of relative errors is the uniform fission
+site (UFS) method introduced by [Sutton]_. In this method, the portion of the
+problem containing fissionable material is subdivided into a number of cells
+(typically using a structured mesh). Rather than producing
+
+.. math::
+
+ m = \frac{w}{k} \frac{\nu\Sigma_f}{\Sigma_t}
+
+fission sites at each collision where :math:`w` is the weight of the neutron,
+:math:`k` is the previous-generation estimate of the neutron multiplication
+factor, :math:`\nu\Sigma_f` is the neutron production cross section, and
+:math:`\Sigma_t` is the total cross section, in the UFS method we produce
+
+.. math::
+
+ m_{UFS} = \frac{w}{k} \frac{\nu\Sigma_f}{\Sigma_t} \frac{v_i}{s_i}
+
+fission sites at each collision where :math:`v_i` is the fraction of the total
+volume occupied by cell :math:`i` and :math:`s_i` is the fraction of the fission
+source contained in cell :math:`i`. To ensure that no bias is introduced, the
+weight of each fission site stored in the fission bank is :math:`s_i/v_i` rather
+than unity. By ensuring that the expected number of fission sites in each mesh
+cell is constant, the collision density across all cells, and hence the variance
+of tallies, is more uniform than it would be otherwise.
+
.. _Shannon entropy: https://laws.lanl.gov/vhosts/mcnp.lanl.gov/pdf_files/la-ur-06-3737_entropy.pdf
.. [Lieberoth] J. Lieberoth, "A Monte Carlo Technique to Solve the Static
@@ -119,5 +153,9 @@ problems.
*Proc. International Conference on Mathematics, Computational Methods, and
Reactor Physics*, Saratoga Springs, New York (2009).
+.. [Sutton] Daniel J. Kelly, Thomas M. Sutton, and Stephen C. Wilson, "MC21
+ Analysis of the Nuclear Energy Agency Monte Carlo Performance Benchmark
+ Problem," *Proc. PHYSOR 2012*, Knoxville, Tennessee, Apr. 15--20 (2012).
+
.. [Ueki] Taro Ueki, "On-the-Fly Judgments of Monte Carlo Fission Source
Convergence," *Trans. Am. Nucl. Soc.*, **98**, 512 (2008).
diff --git a/docs/source/methods/geometry.rst b/docs/source/methods/geometry.rst
index d4824f5d1..1515ffa89 100644
--- a/docs/source/methods/geometry.rst
+++ b/docs/source/methods/geometry.rst
@@ -45,7 +45,7 @@ surface by a combination of the unique ID of the surface and a positive/negative
sign. The following illustration shows an example of an ellipse with unique ID 1
dividing space into two half-spaces.
-.. figure:: ../../img/halfspace.svg
+.. figure:: ../_images/halfspace.*
:align: center
:figclass: align-center
@@ -60,7 +60,7 @@ half-space references whose intersection defines the region. The region is then
assigned a material defined elsewhere. The following illustration shows an
example of a cell defined as the intersection of an ellipse and two planes.
-.. figure:: ../../img/union.svg
+.. figure:: ../_images/union.*
:align: center
:figclass: align-center
diff --git a/docs/source/methods/parallelization.rst b/docs/source/methods/parallelization.rst
index 7f0b9bd6e..66ead52a2 100644
--- a/docs/source/methods/parallelization.rst
+++ b/docs/source/methods/parallelization.rst
@@ -65,7 +65,7 @@ in the case of an eigenvalue calculation). This idea is illustrated in
.. _figure-master-slave:
-.. figure:: ../../img/master-slave.png
+.. figure:: ../_images/master-slave.png
:align: center
:figclass: align-center
@@ -122,7 +122,7 @@ needed. This concept is illustrated in :ref:`Figure 2
.. _figure-nearest-neighbor:
-.. figure:: ../../img/nearest-neighbor.png
+.. figure:: ../_images/nearest-neighbor.png
:align: center
:figclass: align-center
@@ -203,7 +203,7 @@ communicated between adjacent nodes.
.. _figure-neighbor-example:
-.. figure:: ../../img/nearest-neighbor-example.png
+.. figure:: ../_images/nearest-neighbor-example.png
:align: center
:figclass: align-center
diff --git a/docs/source/methods/physics.rst b/docs/source/methods/physics.rst
index c79144dfe..54dc91345 100644
--- a/docs/source/methods/physics.rst
+++ b/docs/source/methods/physics.rst
@@ -790,6 +790,7 @@ outgoing angle is
\mu = \frac{1}{A} \ln \left ( \xi_4 e^A + (1 - \xi_4) e^{-A} \right ).
+.. _ace-law-61:
ACE Law 61 - Correlated Energy and Angle Distribution
+++++++++++++++++++++++++++++++++++++++++++++++++++++
@@ -952,7 +953,7 @@ as
v_n \bar{\sigma} (v_n, T) = \int d\mathbf{v}_T v_r \sigma(v_r)
M (\mathbf{v}_T)
-
+
where :math:`v_n` is the magnitude of the velocity of the neutron,
:math:`\bar{\sigma}` is an effective cross section, :math:`T` is the temperature
of the target material, :math:`\mathbf{v}_T` is the velocity of the target
@@ -1321,7 +1322,7 @@ given analytically by
\mu = 1 - \frac{E_i}{E}
-where :math:`E_i` is the energy of the Bragg edge that scattered the neutron.
+where :math:`E_i` is the energy of the Bragg edge that scattered the neutron.
Outgoing Angle for Incoherent Elastic Scattering
------------------------------------------------
@@ -1348,18 +1349,24 @@ where the interpolation factor is defined as
Outgoing Energy and Angle for Inelastic Scattering
--------------------------------------------------
-On each |sab| table, there is a correlated angle-energy secondary distribution
-for neutron thermal inelastic scattering. While the documentation for the ACE
-format implies that there are a series of equiprobable outgoing energies, the
-outgoing energies may have non-uniform probability distribution. In particular,
-if the thermal data were processed with :math:`iwt = 0` in NJOY, then the first
-and last outgoing energies have a relative probability of 1, the second and
-second to last energies have a relative probability of 4, and all other energies
-have a relative probability of 10. The procedure to determine the outgoing
-energy and angle is as such. First, the interpolation factor is determined from
-equation :eq:`sab-interpolation-factor`. Then, an outgoing energy bin is sampled
-either from a uniform distribution or from the aforementioned skewed
-distribution. The outgoing energy is then interpolated between values
+Each |sab| table provides a correlated angle-energy secondary distribution for
+neutron thermal inelastic scattering. There are three representations used
+in the ACE thermal scattering data: equiprobable discrete outgoing
+energies, non-uniform yet still discrete outgoing energies, and continuous
+outgoing energies with corresponding probability and cumulative distribution
+functions provided in tabular format. These three representations all
+represent the angular distribution in a common format, using a series of
+discrete equiprobable outgoing cosines.
+
+Equi-Probable Outgoing Energies
++++++++++++++++++++++++++++++++
+
+If the thermal data was processed with :math:`iwt = 1` in NJOY, then the
+outgoing energy spectra is represented in the ACE data as a set of discrete and
+equiprobable outgoing energies. The procedure to determine the outgoing energy
+and angle is as such. First, the interpolation factor is determined from
+equation :eq:`sab-interpolation-factor`. Then, an outgoing energy bin is
+sampled from a uniform distribution and then interpolated between values
corresponding to neighboring incoming energies:
.. math::
@@ -1380,6 +1387,37 @@ uniformly and then the final cosine is interpolated on the incoming energy grid:
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.
+Skewed Equi-Probable Outgoing Energies
+++++++++++++++++++++++++++++++++++++++
+
+If the thermal data was processed with :math:`iwt=0` in NJOY, then the
+outgoing energy spectra is represented in the ACE data according to the
+following: the first and last outgoing energies have a relative probability of
+1, the second and second-to-last energies have a relative probability of 4, and
+all other energies have a relative probability of 10. The procedure to
+determine the outgoing energy and angle is similar to the method discussed
+above, except that the sampled probability distribution is now skewed
+accordingly.
+
+Continuous Outgoing Energies
+++++++++++++++++++++++++++++
+
+If the thermal data was processed with :math:`iwt=2` in NJOY, then the
+outgoing energy spectra is represented by a continuous outgoing energy spectra
+in tabular form with linear-linear interpolation. The sampling of the outgoing
+energy portion of this format is very similar to :ref:`ACE Law 61`,
+but the sampling of the correlated angle is performed as it was in the other
+two representations discussed in this sub-section. In the Law 61 algorithm,
+we found an interpolation factor :math:`f`, statistically sampled an incoming
+energy bin :math:`\ell`, and sampled an outgoing energy bin :math:`j` based on
+the tabulated cumulative distribution function. Once the outgoing energy has
+been determined with equation :eq:`ace-law-4-energy`, we then need to decide
+which angular distribution data to use. Like the linear-linear interpolation
+case in Law 61, the angular distribution closest to the sampled value of the
+cumulative distribution function for the outgoing energy is utilized. The
+actual algorithm utilized to sample the outgoing angle is shown in equation
+:eq:`inelastic-angle`.
+
.. _probability_tables:
----------------------------------------------
diff --git a/docs/source/publications.rst b/docs/source/publications.rst
index d757b9c3c..df7ca639b 100644
--- a/docs/source/publications.rst
+++ b/docs/source/publications.rst
@@ -4,6 +4,53 @@
Publications
============
+- Benoit Forget, Sheng Xu, and Kord Smith, "Direct Doppler broadening in Monte
+ Carlo simulations using the multipole representation," *Ann. Nucl. Energy*,
+ **64**, 78--85 (2014). ``_
+
+- Andrew Siegel, Kord Smith, Kyle Felker, Paul Romano, Benoit Forget, and Peter
+ Beckman, "Improved cache performance in Monte Carlo transport calculations
+ using energy banding," *Comput. Phys. Commun.*
+ (2013). ``_
+
+- Jonathan A. Walsh, Benoit Forget, and Kord S. Smith, "Validation of OpenMC
+ Reactor Physics Simulations with the B&W 1810 Series Benchmarks,"
+ *Trans. Am. Nucl. Soc.*, **109**, 1301--1304 (2013).
+
+- Bryan R. Herman, Benoit Forget, and Kord Smith, "Utilizing CMFD in OpenMC to
+ Estimate Dominance Ratio and Adjoint," *Trans. Am. Nucl. Soc.*, **109**,
+ 1389-1392 (2013).
+
+- Timothy P. Burke, Brian C. Kiedrowski, and William R. Martin, "Flux and
+ Reaction Rate Kernel Density Estimators in OpenMC," *Trans. Am. Nucl. Soc.*,
+ **109**, 683-686 (2013).
+
+- Paul K. Romano, Benoit Forget, Kord Smith, and Andrew Siegel, "On the use of
+ tally servers in Monte Carlo simulations of light-water reactors,"
+ *Proc. Joint International Conference on Supercomputing in Nuclear
+ Applications and Monte Carlo*, Paris, France, Oct. 27--31 (2013).
+
+- Paul K. Romano, Nicholas E. Horelik, Bryan R. Herman, Adam G. Nelson, Benoit
+ Forget, and Kord Smith, "OpenMC: A State-of-the-Art Monte Carlo Code for
+ Research and Development," *Proc. Joint International Conference on
+ Supercomputing in Nuclear Applications and Monte Carlo*, Paris, France,
+ Oct. 27--31 (2013).
+
+- Kyle G. Felker, Andrew R. Siegel, Kord S. Smith, Paul K. Romano, and Benoit
+ Forget, "The energy band memory server algorithm for parallel Monte Carlo
+ calculations," *Proc. Joint International Conference on Supercomputing in
+ Nuclear Applications and Monte Carlo*, Paris, France, Oct. 27--31 (2013).
+
+- John R. Tramm and Andrew R. Siegel, "Memory Bottlenecks and Memory Contention
+ in Multi-Core Monte Carlo Transport Codes," *Proc. Joint International
+ Conference on Supercomputing in Nuclear Applications and Monte Carlo*, Paris,
+ France, Oct. 27--31 (2013).
+
+- Andrew R. Siegel, Kord Smith, Paul K. Romano, Benoit Forget, and Kyle Felker,
+ "Multi-core performance studies of a Monte Carlo neutron transport code,"
+ *Int. J. High Perform. Comput. Appl.*, **28** (1), 87--96
+ (2014). ``_
+
- Paul K. Romano, Andrew R. Siegel, Benoit Forget, and Kord Smith, "Data
decomposition of Monte Carlo particle transport simulations via tally
servers," *J. Comput. Phys.*, **252**, 20--36
diff --git a/docs/source/quickinstall.rst b/docs/source/quickinstall.rst
index 2cee56987..ccbfabebe 100644
--- a/docs/source/quickinstall.rst
+++ b/docs/source/quickinstall.rst
@@ -48,7 +48,12 @@ following commands in a terminal:
sudo make install
This will build an executable named ``openmc`` and install it (by default in
-/usr/local/bin).
+/usr/local/bin). If you do not have administrator privileges, the last command
+can be replaced with a local install, e.g.
+
+.. code-block:: sh
+
+ make install -e prefix=$HOME/.local
.. _GitHub: https://github.com/mit-crpg/openmc
.. _git: http://git-scm.com
diff --git a/docs/source/releasenotes/index.rst b/docs/source/releasenotes/index.rst
index 9164fa594..d649b1403 100644
--- a/docs/source/releasenotes/index.rst
+++ b/docs/source/releasenotes/index.rst
@@ -10,6 +10,7 @@ bugs fixed, and known issues for each successive release.
.. toctree::
:maxdepth: 1
+ notes_0.5.4
notes_0.5.3
notes_0.5.2
notes_0.5.1
diff --git a/docs/source/releasenotes/notes_0.5.3.rst b/docs/source/releasenotes/notes_0.5.3.rst
index c9c7aee38..6d93f9aec 100644
--- a/docs/source/releasenotes/notes_0.5.3.rst
+++ b/docs/source/releasenotes/notes_0.5.3.rst
@@ -4,10 +4,6 @@
Release Notes for OpenMC 0.5.3
==============================
-.. note::
- These release notes are for an upcoming release of OpenMC and are still
- subject to change.
-
-------------------
System Requirements
-------------------
diff --git a/docs/source/releasenotes/notes_0.5.4.rst b/docs/source/releasenotes/notes_0.5.4.rst
new file mode 100644
index 000000000..a69354aa0
--- /dev/null
+++ b/docs/source/releasenotes/notes_0.5.4.rst
@@ -0,0 +1,64 @@
+.. _notes_0.5.4:
+
+==============================
+Release Notes for OpenMC 0.5.4
+==============================
+
+-------------------
+System Requirements
+-------------------
+
+There are no special requirements for running the OpenMC code. As of this
+release, OpenMC has been tested on a variety of Linux distributions, Mac OS X,
+and Microsoft Windows 7. Memory requirements will vary depending on the size of
+the problem at hand (mostly on the number of nuclides in the problem).
+
+------------
+New Features
+------------
+
+- Source sites outside geometry are resampled
+- XML-Fortran backend replaced by FoX XML
+- Ability to write particle track files
+- Handle lost particles more gracefully (via particle track files)
+- Multiple random number generator streams
+- Mesh tally plotting utility converted to use Tkinter rather than PyQt
+- Script added to download ACE data from NNDC
+- Mixed ASCII/binary cross_sections.xml now allowed
+- Expanded options for writing source bank
+- Re-enabled ability to use source file as starting source
+- S(a,b) recalculation avoided when same nuclide and S(a,b) table are accessed
+
+---------
+Bug Fixes
+---------
+
+- 32c03c_: Check for valid data in cross_sections.xml
+- c71ef5_: Fix bug in statepoint.py
+- 8884fb_: Check for all ZAIDs for S(a,b) tables
+- b38af0_: Fix XML reading on multiple levels of input
+- d28750_: Fix bug in convert_xsdir.py
+- cf567c_: ENDF/B-VI data checked for compatibility
+- 6b9461_: Fix p_valid sampling inside of sample_energy
+
+.. _32c03c: https://github.com/mit-crpg/openmc/commit/32c03c
+.. _c71ef5: https://github.com/mit-crpg/openmc/commit/c71ef5
+.. _8884fb: https://github.com/mit-crpg/openmc/commit/8884fb
+.. _b38af0: https://github.com/mit-crpg/openmc/commit/b38af0
+.. _d28750: https://github.com/mit-crpg/openmc/commit/d28750
+.. _cf567c: https://github.com/mit-crpg/openmc/commit/cf567c
+.. _6b9461: https://github.com/mit-crpg/openmc/commit/6b9461
+
+------------
+Contributors
+------------
+
+This release contains new contributions from the following people:
+
+- `Sterling Harper `_
+- `Bryan Herman `_
+- `Nick Horelik `_
+- `Adam Nelson `_
+- `Paul Romano `_
+- `Tuomas Viitanen `_
+- `Jon Walsh `_
diff --git a/docs/source/usersguide/input.rst b/docs/source/usersguide/input.rst
index 1ae061f4c..eebe6bfc1 100644
--- a/docs/source/usersguide/input.rst
+++ b/docs/source/usersguide/input.rst
@@ -198,19 +198,26 @@ tally data, this option can significantly improve the parallel efficiency.
--------------------
The ``