Documentation for version 0.5.3.

This commit is contained in:
Paul Romano 2013-11-19 19:36:18 -05:00
parent 9d32761f97
commit 05a2002f36
54 changed files with 1902 additions and 229 deletions

BIN
_images/Tracks.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 92 KiB

BIN
_images/fork.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 8.4 KiB

BIN
_images/pullrequest.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 17 KiB

View file

@ -4,6 +4,544 @@
State Point Binary File Specifications
======================================
-----------
Revision 10
-----------
**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:I,1:J,1:K,1:G)**
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) 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)
*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 9
----------
**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) 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) 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)
*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 8
----------

View file

@ -35,17 +35,17 @@ Don't use ``print *`` or ``write(*,*)``. If writing to a file, use a specific
unit. Writing to standard output or standard error should be handled by the
``write_message`` subroutine or functionality in the error module.
-------------------------
Subroutines and Functions
-------------------------
----------
Procedures
----------
Above each subroutine/function, include a comment block giving a brief
description of what the subroutine or function does.
Above each procedure, include a comment block giving a brief description of what
the procedure does.
Arguments to subroutines/functions should be explicitly specified as intent(in),
intent(out), or intent(inout).
Nonpointer dummy arguments to procedures should be explicitly specified as
intent(in), intent(out), or intent(inout).
Include a comment describing what each argument to a subroutine/function is.
Include a comment describing what each argument to a procedure is.
---------
Variables
@ -133,9 +133,11 @@ value of f90-continuation-indent in Emacs.
Whitespace in Expressions
-------------------------
Use a single space between arguments to procedures.
Avoid extraneous whitespace in the following situations:
- In subroutine/function calls::
- In procedure calls::
Yes: call somesub(x, y(2), z)
No: call somesub( x, y( 2 ), z )

View file

@ -5,41 +5,113 @@ Development Workflow
====================
Anyone wishing to make contributions to OpenMC should be fully acquianted and
comfortable working with git_ and GitHub_. The primary means of modifying and
making contributions to OpenMC is through GitHub `pull requests`_. This is
what's known as a fork and pull development model. The steps for this are as
follows:
comfortable working with git_ and GitHub_. We assume here that you have git
installed on your system, have a GitHub account, and have setup SSH keys to be
able to create/push to repositories on GitHub.
Overview
--------
Development of OpenMC relies heavily on branching; specifically, we use a
branching model sometimes referred to as `git flow`_. If you plan to contribute
to OpenMC development, we highly recommend that you read the linked blog post to
get a sense of how the branching model works. There are two main branches that
always exist: *master* and *develop*. The *master* branch is a stable branch
that contains the latest release of the code. The *develop* branch is where any
ongoing development takes place prior to a release and is not guaranteed to be
stable. When the development team decides that a release should occur, the
*develop* branch is merged into *master*.
Trivial changes to the code may be committed directly to the *develop* branch by
a trusted developer. However, most new features should be developed on a branch
that branches off of *develop*. When the feature is completed, a `pull request`_
is initiated on GitHub that is then reviewed by a trusted developer. If the pull
request is satisfactory, it is then merged into *develop*. Note that a trusted
developer may not review their own pull request (i.e., an independent code
review is required).
Code Review Criteria
--------------------
In order to be considered suitable for inclusion in the *develop* branch, the
following criteria must be satisfied for all proposed changes:
- Changes have a clear purpose and are useful.
- Compiles under all conditions (MPI, OpenMP, HDF5, etc.). This is checked as
part of the test suite (see `test_compile.py`_).
- Passes the regression suite.
- If appropriate, test cases are added to regression suite.
- No memory leaks (checked with valgrind_).
- Conforms to the OpenMC `style guide`_.
- No degradation of performance or greatly increased memory usage. This is not a
hard rule -- in certain circumstances, a performance loss might be acceptable
if there are compelling reasons.
- New features/input are documented.
- No unnecessary external software dependencies are introduced.
Contributing
------------
Now that you understand the basic development workflow, let's discuss how an
individual to contribute to development. Note that this would apply to both new
features and bug fixes. The general steps for contributing are as follows:
1. Fork the main openmc repository from `mit-crpg/openmc`_. This will create a
repository with the same name under your personal account. As such, you can
commit to it as you please without disrupting other developers.
repository with the same name under your personal account. As such, you can
commit to it as you please without disrupting other developers.
2. Create a branch that you want merged back to `mit-crpg/openmc`_ and make
commits that you intend to go back. If you have made other changes that should
not be merged back, those changes should be on another branch.
.. image:: ../../img/fork.png
3. Issue a pull request from GitHub and select the branch you want merged.
2. Clone your fork of OpenMC and create a branch that branches off of *develop*:
4. The OpenMC integration manager will review your pull request and make sure it
conforms to the :ref:`devguide_styleguide`, compiles correctly, runs in parallel
correctly, does not break other features in the code, etc. Any issues with the
pull request can be discussed directly on the pull request page itself.
.. code-block:: sh
5. After the pull request has been thoroughly vetted, it is merged back into
`mit-crpg/openmc`_.
git clone git@github.com:yourusername/openmc.git
cd openmc
git checkout -b newbranch develop
3. Make your changes on the new branch that you intend to have included in
*develop*. If you have made other changes that should not be merged back,
ensure that those changes are made on a different branch.
4. Issue a pull request from GitHub and select the *develop* branch of
mit-crpg/openmc as the target.
.. image:: ../../img/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
sure it is cross-referenced. A wise developer would also check whether their
changes do indeed pass the regression test suite.
5. A trusted developer will review your pull request based on the criteria
above. Any issues with the pull request can be discussed directly on the pull
request page itself.
6. After the pull request has been thoroughly vetted, it is merged back into the
*develop* branch of mit-crpg/openmc.
Private Development
-------------------
While the process above depends on the fork of the OpenMC repository being
publicly available on GitHub, you may also wish to do development on a private
repository for research or commercial purposes. The proper way to do this is to
create a complete copy of the OpenMC repository (not a fork from GitHub). The
private repository can then either be stored just locally or in conjunction with
a private repository on Github (this requires a `paid plan`_). If you want to
merge some changes you've made in your private repository back to
`mit-crpg/openmc`_ repository, simply follow the steps above with an extra step
of pulling a branch from your private repository into your public fork.
a private repository on Github (this requires a `paid plan`_). Alternatively,
`Bitbucket`_ offers private repositories for free. If you want to merge some
changes you've made in your private repository back to mit-crpg/openmc
repository, simply follow the steps above with an extra step of pulling a branch
from your private repository into a public fork.
.. _git: http://git-scm.com/
.. _GitHub: https://github.com/
.. _pull requests: https://help.github.com/articles/using-pull-requests
.. _git flow: http://nvie.com/git-model
.. _test_compile.py: https://github.com/mit-crpg/openmc/blob/develop/tests/test_compile/test_compile.py
.. _valgrind: http://valgrind.org/
.. _style guide: http://mit-crpg.github.io/openmc/devguide/styleguide.html
.. _pull request: https://help.github.com/articles/using-pull-requests
.. _mit-crpg/openmc: https://github.com/mit-crpg/openmc
.. _paid plan: https://github.com/plans
.. _Bitbucket: https://bitbucket.org

View file

@ -4,6 +4,58 @@
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). `<http://dx.doi.org/10.1016/j.anucene.2013.09.043>`_
- 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). `<http://dx.doi.org/10.1016/j.cpc.2013.10.008>`_
- 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 user 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.*
(2013). `<http://dx.doi.org/10.1177/1094342013492179>`_
- 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
(2013). `<http://dx.doi.org/10.1016/j.jcp.2013.06.011>`_
- Paul K. Romano, Bryan R. Herman, Nicholas E. Horelik, Benoit Forget, Kord
Smith, and Andrew R. Siegel, "Progress and Status of the OpenMC Monte Carlo
Code," *Proc. Int. Conf. Mathematics and Computational Methods Applied to

View file

@ -43,6 +43,7 @@ following commands in a terminal:
git clone git://github.com/mit-crpg/openmc.git
cd openmc/src
git checkout master
make
sudo make install

View file

@ -10,6 +10,7 @@ bugs fixed, and known issues for each successive release.
.. toctree::
:maxdepth: 1
notes_0.5.3
notes_0.5.2
notes_0.5.1
notes_0.5.0

View file

@ -0,0 +1,49 @@
.. _notes_0.5.3:
==============================
Release Notes for OpenMC 0.5.3
==============================
-------------------
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
------------
- Output interface enhanced to allow multiple files handles to be opened
- Particle restart file linked to output interface
- Particle restarts and state point restarts are both identified with the -r
command line flag.
- Particle instance no longer global, passed to all physics routines
- Physics routines refactored to rely less on global memory, more arguments
passed in
- CMFD routines refactored and now can compute dominance ratio on the fly
- PETSc 3.4.2 or higher must be used and compiled with fortran datatype support
- Memory leaks fixed except for ones from xml-fortran package
- Test suite enhanced to test output with different compiler options
- Description of OpenMC development workflow added
- OpenMP shared-memory parallelism added
- Special run mode --tallies removed.
---------
Bug Fixes
---------
- 2b1e8a_: Normalize direction vector after reflecting particle.
- 5853d2_: Set blank default for cross section listing alias.
- e178c7_: Fix infinite loop with words greater than 80 characters in write_message.
- c18a6e_: Check for valid secondary mode on S(a,b) tables.
- 82c456_: Fix bug where last process could have zero particles.
.. _2b1e8a: https://github.com/mit-crpg/openmc/commit/2b1e8a
.. _5853d2: https://github.com/mit-crpg/openmc/commit/5853d2
.. _e178c7: https://github.com/mit-crpg/openmc/commit/e178c7
.. _c18a6e: https://github.com/mit-crpg/openmc/commit/c18a6e
.. _82c456: https://github.com/mit-crpg/openmc/commit/82c456

View file

@ -381,6 +381,14 @@ survival biasing, otherwise known as implicit capture or absorption.
.. _trace:
``<threads>`` Element
---------------------
The ``<threads>`` element indicates the number of OpenMP threads to be used for
a simulation. It has no attributes and accepts a positive integer value.
*Default*: None (Determined by environment variable :envvar:`OMP_NUM_THREADS`)
``<trace>`` Element
-------------------
@ -390,6 +398,15 @@ integers: the batch number, generation number, and particle number.
*Default*: None
.. _track:
``<track>`` Element
-------------------
The ``<track>`` element specifies particles for which OpenMC will output binary files describing particle position at every step of its transport. This element should be followed by triplets of integers. Each triplet describes one particle. The integers in each triplet specify the batch number, generation number, and particle number, respectively.
*Default*: None
``<uniform_fs>`` Element
------------------------
@ -628,9 +645,10 @@ Each ``<cell>`` element can have the following attributes or sub-elements:
---------------------
The ``<lattice>`` can be used to represent repeating structures (e.g. fuel pins
in an assembly) or other geometry which naturally fits into a two-dimensional
structured mesh. Each cell within the lattice is filled with a specified
universe. A ``<lattice>`` accepts the following attributes or sub-elements:
in an assembly) or other geometry which naturally fits into a two- or
three-dimensional structured mesh. Each cell within the lattice is filled with a
specified universe. A ``<lattice>`` accepts the following attributes or
sub-elements:
:id:
A unique integer that can be used to identify the surface.
@ -642,18 +660,19 @@ universe. A ``<lattice>`` accepts the following attributes or sub-elements:
*Default*: rectangular
:dimension:
Two integers representing the number of lattice cells in the x- and y-
directions, respectively.
Two or three integers representing the number of lattice cells in the x- and
y- (and z-) directions, respectively.
*Default*: None
:lower_left:
The coordinates of the lower-left corner of the lattice.
The coordinates of the lower-left corner of the lattice. If the lattice is
two-dimensional, only the x- and y-coordinates are specified.
*Default*: None
:width:
The width of the lattice cell in the x- and y- directions.
The width of the lattice cell in the x- and y- (and z-) directions.
*Default*: None
@ -1131,6 +1150,22 @@ The ``<begin>`` element controls what batch CMFD calculations should begin.
*Default*: 1
``<display>`` Element
---------------------
The ``<display>`` element sets one additional CMFD output column. Options are:
* "balance" - prints the RMS [%] of the resdiual from the neutron balance equation
on CMFD tallies.
* "dominance" - prints the estimated dominance ratio from the CMFD iterations.
**This will only work for power iteration eigensolver**.
* "entropy" - prints the *entropy* of the CMFD predicted fission source.
**Can only be used if OpenMC entropy is active as well**.
* "source" - prints the RMS [%] between the OpenMC fission source and CMFD
fission source.
*Default*: None
``<feedback>`` Element
----------------------
@ -1150,14 +1185,14 @@ with "true" and off with "false"
*Default*: true
``<keff_tol>`` Element
----------------------
``<inactive_flush>`` Element
----------------------------
The ``<keff_tol>`` element specifies acceptance criteria of a CMFD eigenvalue.
If the CMFD eigenvalue and OpenMC batch eigenvalue are within this tolerance,
CMFD is allowed to modify source neutron weights.
The ``<inactive_flush>`` element controls when CMFD tallies are reset during
inactive batches. The integer set here is the interval at which this reset
occurs. The amout of resets is controlled with the ``<num_flushes>`` element.
*Default*: 0.005
*Defualt*: 9999
``<ksp_monitor>`` Element
-------------------------
@ -1172,13 +1207,9 @@ with "false".
``<mesh>`` Element
------------------
If a structured mesh is desired as a filter for a tally, it must be specified in
a separate element with the tag name ``<mesh>``. This element has the following
The CMFD mesh is a structured Cartesian mesh. This element has the following
attributes/sub-elements:
:type:
The type of structured mesh. Only "rectangular" is currently supported.
:lower_left:
The lower-left corner of the structured mesh. If only two coordinate are
given, it is assumed that the mesh is an x-y mesh.
@ -1241,14 +1272,13 @@ not impact the calculation.
*Default*: 1.0
``<n_procs_cmfd>`` Element
--------------------------
``<num_flushes>`` Element
-------------------------
The ``<n_procs_cmfd>`` element is used to set the number of processors used
for CMFD calculation. It should be less than or equal to the number of
processors used during OpenMC.
The ``<num_flushes>`` element controls the number of CMFD tally resets that
occur during inactive CMFD batches.
*Default*: 1
*Default*: 9999
``<power_monitor>`` Element
---------------------------
@ -1256,26 +1286,33 @@ processors used during OpenMC.
The ``<power_monitor>`` element is used to view the convergence of power iteration.
This option can be turned on with "true" and turned off with "false".
*Default*: false
``<run_adjoint>`` Element
-------------------------
The ``<run_adjoint>`` element can be turned on with "true" to have an adjoint
calculation be performed on the last batch when CMFD is active.
*Default*: false
``<write_balance>`` Element
---------------------------
``<snes_monitor>`` Element
--------------------------
The ``<write_balance>`` element is used to view the balance of OpenMC tally
residuals for every coarse mesh region and energy group. This option can be
turned on with "true" and off with "false".
The ``<snes_monitor>`` element is used to view the convergence of the nonlinear SNES
function in PETSc. This option can be turned on with "true" and turned off with "false".
*Default*: false
``<write_hdf5>`` Element
------------------------
``<solver>`` Element
--------------------
The ``<write_hdf5>`` element can be turned on with "true" to get an
HDF5 output file of CMFD results.
The ``<solver>`` element controls whether the CMFD eigenproblem is solved with
standard power iteration or nonlinear Jacobian-free Newton Krylov (JFNK).
By setting "power", power iteration is used and by setting "jfnk", JFNK is used.
*Default*: false
*Default*: power
``<write_matrices>`` Element
----------------------------

View file

@ -71,13 +71,29 @@ Prerequisites
To compile with support for HDF5_ output (highly recommended), you will
need to have HDF5 installed on your computer. The installed version will
need to have been compiled with the same compiler you intend to compile
OpenMC with.
OpenMC with. HDF5_ must be built with parallel I/O features if you intend
to use HDF5_ with MPI. An example of configuring HDF5_ is listed below::
FC=/opt/mpich/3.0.4-gnu/bin/mpif90 CC=/opt/mpich/3.0.4-gnu/bin/mpicc \
./configure --prefix=/opt/hdf5/1.8.11-gnu --enable-fortran \
--enable-fortran2003 --enable-parallel
You may omit '--enable-parallel' if you want to compile HDF5_ in serial.
* PETSc_ for CMFD acceleration
To enable CMFD acceleration, you will need to have PETSc_ installed on
your computer. The installed version will need to have been compiled with
the same compiler you intend to compile OpenMC with.
To enable CMFD acceleration, you will need to have PETSc_ (3.4.2 or higher)
installed on your computer. The installed version will need to have been
compiled with the same compiler you intend to compile OpenMC with. OpenMC
requires PETSc_ to be configured with Fortran datatypes. An example of
configuring PETSc_ is listed below::
./configure --prefix=/opt/petsc/3.4.2-gnu --download-f-blas-lapack \
--with-mpi-dir=/opt/mpich/3.0.4-gnu/ --with-shared-libraries=0 \
--with-fortran-datatypes
The BLAS/LAPACK library is not required to be downloaded and can be linked
explicitly (e.g., Intel MLK library).
* git_ version control software for obtaining source code
@ -102,6 +118,12 @@ repository::
git clone git://github.com/mit-crpg/openmc.git
By default, the cloned repository will be set to the development branch. To
switch to the source of the latest stable release, run the following commands::
cd openmc/src
git checkout master
.. _GitHub: https://github.com/mit-crpg/openmc
.. _git: http://git-scm.com
.. _ssh: http://en.wikipedia.org/wiki/Secure_Shell
@ -135,6 +157,10 @@ MPI
Enables parallel runs using the Message Passing Interface. The MPI_DIR
variable should be set to the base directory of the MPI implementation.
OPENMP
Enables shared-memory parallelism using the OpenMP API. The Fortran compiler
being used must support OpenMP.
HDF5
Enables HDF5 output in addition to normal screen and text file output. The
HDF5_DIR variable should be set to the base directory of the HDF5
@ -320,6 +346,21 @@ Alternatively, you could run from any directory:
Note that in the latter case, any output files will be placed in the present
working directory which may be different from ``/home/username/somemodel``.
Command-Line Flags
------------------
OpenMC accepts the following command line flags:
-g, --geometry-debug Run in geometry debugging mode, where cell overlaps are
checked for after each move of a particle
-n, --particles N Use *N* particles per generation or batch
-p, --plot Run in plotting mode
-r, --restart file Restart a previous run from a state point or a particle
restart file
-s, --threads N Run with *N* OpenMP threads
-t, --track Write tracks for all particles
-v, --version Show version information
-----------------------------------------------------
Configuring Input Validation with GNU Emacs nXML mode
-----------------------------------------------------

View file

@ -353,9 +353,41 @@ file. Note that the data contained in the output from
``StatePoint.extract_result`` is already in a Numpy array that can be reshaped
and dumped to MATLAB in one step.
----------------------------
Particle Track Visualization
----------------------------
.. image:: ../../img/Tracks.png
:height: 200px
OpenMC can dump particle tracks—the position of particles as they are
transported through the geometry. There are two ways to make OpenMC output
tracks: all particle tracks through a commandline argument or specific particle
tracks through settings.xml.
Running OpenMC with the argument "-t", "-track", or "--track" will cause a track
file to be created for every particle transported in the code.
The settings.xml file can dictate that specific particle tracks are output.
These particles are specified withen a ''track'' element. The ''track'' element
should contain triplets of integers specifying the batch, generation, and
particle numbers, respectively. For example, to output the tracks for particles
3 and 4 of batch 1 and generation 2 the settings.xml file should contain:
.. code-block:: xml
<track>
1 2 3
1 2 4
</track>
After running OpenMC, the directory should contain a file of the form
"track_(batch #)_(generation #)_(particle #).(binary or h5)" for each particle
tracked. These track files can be converted into VTK poly data files with the
"track.py" utility. The usage of track.py is of the form "track.py [-o OUT] IN"
where OUT is the optional output filename and IN is one or more filenames
describing track files. The default output name is "track.pvtp". A common
usage of track.py is "track.py track*.binary" which will use the data from all
binary track files in the directory to write a "track.pvtp" VTK output file.
The .pvtp file can then be read and plotted by 3d visualization programs such as
Paraview.

View file

@ -17,7 +17,7 @@
<script type="text/javascript">
var DOCUMENTATION_OPTIONS = {
URL_ROOT: '',
VERSION: '0.5.2',
VERSION: '0.5.3',
COLLAPSE_INDEX: false,
FILE_SUFFIX: '.html',
HAS_SOURCE: true

View file

@ -17,7 +17,7 @@
<script type="text/javascript">
var DOCUMENTATION_OPTIONS = {
URL_ROOT: '../',
VERSION: '0.5.2',
VERSION: '0.5.3',
COLLAPSE_INDEX: false,
FILE_SUFFIX: '.html',
HAS_SOURCE: true
@ -72,24 +72,32 @@ as debugging.</p>
</li>
<li class="toctree-l1"><a class="reference internal" href="styleguide.html">2. Style Guide for OpenMC</a><ul>
<li class="toctree-l2"><a class="reference internal" href="styleguide.html#general-rules">2.1. General Rules</a></li>
<li class="toctree-l2"><a class="reference internal" href="styleguide.html#subroutines-and-functions">2.2. Subroutines and Functions</a></li>
<li class="toctree-l2"><a class="reference internal" href="styleguide.html#procedures">2.2. Procedures</a></li>
<li class="toctree-l2"><a class="reference internal" href="styleguide.html#variables">2.3. Variables</a></li>
<li class="toctree-l2"><a class="reference internal" href="styleguide.html#derived-types-and-classes">2.4. Derived Types and Classes</a></li>
<li class="toctree-l2"><a class="reference internal" href="styleguide.html#indentation">2.5. Indentation</a></li>
<li class="toctree-l2"><a class="reference internal" href="styleguide.html#whitespace-in-expressions">2.6. Whitespace in Expressions</a></li>
</ul>
</li>
<li class="toctree-l1"><a class="reference internal" href="workflow.html">3. Development Workflow</a></li>
<li class="toctree-l1"><a class="reference internal" href="workflow.html">3. Development Workflow</a><ul>
<li class="toctree-l2"><a class="reference internal" href="workflow.html#overview">3.1. Overview</a></li>
<li class="toctree-l2"><a class="reference internal" href="workflow.html#code-review-criteria">3.2. Code Review Criteria</a></li>
<li class="toctree-l2"><a class="reference internal" href="workflow.html#contributing">3.3. Contributing</a></li>
<li class="toctree-l2"><a class="reference internal" href="workflow.html#private-development">3.4. Private Development</a></li>
</ul>
</li>
<li class="toctree-l1"><a class="reference internal" href="xml-fortran.html">4. xml-fortran Input Parsing</a></li>
<li class="toctree-l1"><a class="reference internal" href="statepoint.html">5. State Point Binary File Specifications</a><ul>
<li class="toctree-l2"><a class="reference internal" href="statepoint.html#revision-8">5.1. Revision 8</a></li>
<li class="toctree-l2"><a class="reference internal" href="statepoint.html#revision-7">5.2. Revision 7</a></li>
<li class="toctree-l2"><a class="reference internal" href="statepoint.html#revision-6">5.3. Revision 6</a></li>
<li class="toctree-l2"><a class="reference internal" href="statepoint.html#revision-5">5.4. Revision 5</a></li>
<li class="toctree-l2"><a class="reference internal" href="statepoint.html#revision-4">5.5. Revision 4</a></li>
<li class="toctree-l2"><a class="reference internal" href="statepoint.html#revision-3">5.6. Revision 3</a></li>
<li class="toctree-l2"><a class="reference internal" href="statepoint.html#revision-2">5.7. Revision 2</a></li>
<li class="toctree-l2"><a class="reference internal" href="statepoint.html#revision-1">5.8. Revision 1</a></li>
<li class="toctree-l2"><a class="reference internal" href="statepoint.html#revision-10">5.1. Revision 10</a></li>
<li class="toctree-l2"><a class="reference internal" href="statepoint.html#revision-9">5.2. Revision 9</a></li>
<li class="toctree-l2"><a class="reference internal" href="statepoint.html#revision-8">5.3. Revision 8</a></li>
<li class="toctree-l2"><a class="reference internal" href="statepoint.html#revision-7">5.4. Revision 7</a></li>
<li class="toctree-l2"><a class="reference internal" href="statepoint.html#revision-6">5.5. Revision 6</a></li>
<li class="toctree-l2"><a class="reference internal" href="statepoint.html#revision-5">5.6. Revision 5</a></li>
<li class="toctree-l2"><a class="reference internal" href="statepoint.html#revision-4">5.7. Revision 4</a></li>
<li class="toctree-l2"><a class="reference internal" href="statepoint.html#revision-3">5.8. Revision 3</a></li>
<li class="toctree-l2"><a class="reference internal" href="statepoint.html#revision-2">5.9. Revision 2</a></li>
<li class="toctree-l2"><a class="reference internal" href="statepoint.html#revision-1">5.10. Revision 1</a></li>
</ul>
</li>
<li class="toctree-l1"><a class="reference internal" href="voxel.html">6. Voxel Plot Binary File Specifications</a><ul>

View file

@ -17,7 +17,7 @@
<script type="text/javascript">
var DOCUMENTATION_OPTIONS = {
URL_ROOT: '../',
VERSION: '0.5.2',
VERSION: '0.5.3',
COLLAPSE_INDEX: false,
FILE_SUFFIX: '.html',
HAS_SOURCE: true
@ -54,8 +54,461 @@
<div class="section" id="state-point-binary-file-specifications">
<span id="devguide-statepoint"></span><h1>5. State Point Binary File Specifications<a class="headerlink" href="#state-point-binary-file-specifications" title="Permalink to this headline"></a></h1>
<div class="section" id="revision-10">
<h2>5.1. Revision 10<a class="headerlink" href="#revision-10" title="Permalink to this headline"></a></h2>
<p><strong>integer(4) FILETYPE_STATEPOINT</strong></p>
<blockquote>
<div>Flags whether this file is a statepoint file or a particle restart file.</div></blockquote>
<p><strong>integer(4) REVISION_STATEPOINT</strong></p>
<blockquote>
<div>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.</div></blockquote>
<p><strong>integer(4) VERSION_MAJOR</strong></p>
<blockquote>
<div>Major version number for OpenMC</div></blockquote>
<p><strong>integer(4) VERSION_MINOR</strong></p>
<blockquote>
<div>Minor version number for OpenMC</div></blockquote>
<p><strong>integer(4) VERSION_RELEASE</strong></p>
<blockquote>
<div>Release version number for OpenMC</div></blockquote>
<p><strong>character(19) time_stamp</strong></p>
<blockquote>
<div>Date and time the state point was written.</div></blockquote>
<p><strong>character(255) path</strong></p>
<blockquote>
<div>Absolute path to directory containing input files.</div></blockquote>
<p><strong>integer(8) seed</strong></p>
<blockquote>
<div>Pseudo-random number generator seed.</div></blockquote>
<p><strong>integer(4) run_mode</strong></p>
<blockquote>
<div>run mode used. The modes are described in constants.F90.</div></blockquote>
<p><strong>integer(8) n_particles</strong></p>
<blockquote>
<div>Number of particles used per generation.</div></blockquote>
<p><strong>integer(4) n_batches</strong></p>
<blockquote>
<div>Total number of batches (active + inactive).</div></blockquote>
<p><strong>integer(4) current_batch</strong></p>
<blockquote>
<div>The number of batches already simulated.</div></blockquote>
<p>if (run_mode == MODE_EIGENVALUE)</p>
<blockquote>
<div><p><strong>integer(4) n_inactive</strong></p>
<blockquote>
<div>Number of inactive batches</div></blockquote>
<p><strong>integer(4) gen_per_batch</strong></p>
<blockquote>
<div>Number of generations per batch for criticality calculations</div></blockquote>
<p><em>do i = 1, current_batch * gen_per_batch</em></p>
<blockquote>
<div><p><strong>real(8) k_generation(i)</strong></p>
<blockquote>
<div>k-effective for the i-th total generation</div></blockquote>
</div></blockquote>
<p><em>do i = 1, current_batch * gen_per_batch</em></p>
<blockquote>
<div><p><strong>real(8) entropy(i)</strong></p>
<blockquote>
<div>Shannon entropy for the i-th total generation</div></blockquote>
</div></blockquote>
<p><strong>real(8) k_col_abs</strong></p>
<blockquote>
<div>Sum of product of collision/absorption estimates of k-effective</div></blockquote>
<p><strong>real(8) k_col_tra</strong></p>
<blockquote>
<div>Sum of product of collision/track-length estimates of k-effective</div></blockquote>
<p><strong>real(8) k_abs_tra</strong></p>
<blockquote>
<div>Sum of product of absorption/track-length estimates of k-effective</div></blockquote>
<p><strong>real(8) k_combined(2)</strong></p>
<blockquote>
<div>Mean and standard deviation of a combined estimate of k-effective</div></blockquote>
<p><strong>integer(4) cmfd_on</strong></p>
<blockquote>
<div>Flag that cmfd is on</div></blockquote>
<p>if (cmfd_on)</p>
<blockquote>
<div><p><strong>integer(4) cmfd % indices</strong></p>
<blockquote>
<div>Indices for cmfd mesh (i,j,k,g)</div></blockquote>
<p><strong>real(8) cmfd % k_cmfd(1:current_batch)</strong></p>
<blockquote>
<div>CMFD eigenvalues</div></blockquote>
<p><strong>real(8) cmfd % src(1:I,1:J,1:K,1:G)</strong></p>
<blockquote>
<div>CMFD fission source</div></blockquote>
<p><strong>real(8) cmfd % entropy(1:current_batch)</strong></p>
<blockquote>
<div>CMFD estimate of Shannon entropy</div></blockquote>
<p><strong>real(8) cmfd % balance(1:current_batch)</strong></p>
<blockquote>
<div>RMS of the residual neutron balance equation on CMFD mesh</div></blockquote>
<p><strong>real(8) cmfd % dom(1:current_batch)</strong></p>
<blockquote>
<div>CMFD estimate of dominance ratio</div></blockquote>
<p><strong>real(8) cmfd % scr_cmp(1:current_batch)</strong></p>
<blockquote>
<div>RMS comparison of difference between OpenMC and CMFD fission source</div></blockquote>
</div></blockquote>
</div></blockquote>
<p><strong>integer(4) n_meshes</strong></p>
<blockquote>
<div>Number of meshes in tallies.xml file</div></blockquote>
<p><em>do i = 1, n_meshes</em></p>
<blockquote>
<div><p><strong>integer(4) meshes(i) % id</strong></p>
<blockquote>
<div>Unique ID of mesh.</div></blockquote>
<p><strong>integer(4) meshes(i) % type</strong></p>
<blockquote>
<div>Type of mesh.</div></blockquote>
<p><strong>integer(4) meshes(i) % n_dimension</strong></p>
<blockquote>
<div>Number of dimensions for mesh (2 or 3).</div></blockquote>
<p><strong>integer(4) meshes(i) % dimension(:)</strong></p>
<blockquote>
<div>Number of mesh cells in each dimension.</div></blockquote>
<p><strong>real(8) meshes(i) % lower_left(:)</strong></p>
<blockquote>
<div>Coordinates of lower-left corner of mesh.</div></blockquote>
<p><strong>real(8) meshes(i) % upper_right(:)</strong></p>
<blockquote>
<div>Coordinates of upper-right corner of mesh.</div></blockquote>
<p><strong>real(8) meshes(i) % width(:)</strong></p>
<blockquote>
<div>Width of each mesh cell in each dimension.</div></blockquote>
</div></blockquote>
<p><strong>integer(4) n_tallies</strong></p>
<p><em>do i = 1, n_tallies</em></p>
<blockquote>
<div><p><strong>integer(4) tallies(i) % id</strong></p>
<blockquote>
<div>Unique ID of tally.</div></blockquote>
<p><strong>integer(4) tallies(i) % n_realizations</strong></p>
<blockquote>
<div>Number of realizations for the i-th tally.</div></blockquote>
<p><strong>integer(4) size(tallies(i) % scores, 1)</strong></p>
<blockquote>
<div>Total number of score bins for the i-th tally</div></blockquote>
<p><strong>integer(4) size(tallies(i) % scores, 2)</strong></p>
<blockquote>
<div>Total number of filter bins for the i-th tally</div></blockquote>
<p><strong>integer(4) tallies(i) % n_filters</strong></p>
<p><em>do j = 1, tallies(i) % n_filters</em></p>
<blockquote>
<div><p><strong>integer(4) tallies(i) % filter(j) % type</strong></p>
<blockquote>
<div>Type of tally filter.</div></blockquote>
<p><strong>integer(4) tallies(i) % filter(j) % n_bins</strong></p>
<blockquote>
<div>Number of bins for filter.</div></blockquote>
<p><strong>integer(4)/real(8) tallies(i) % filter(j) % bins(:)</strong></p>
<blockquote>
<div>Value for each filter bin of this type.</div></blockquote>
</div></blockquote>
<p><strong>integer(4) tallies(i) % n_nuclide_bins</strong></p>
<blockquote>
<div>Number of nuclide bins. If none are specified, this is just one.</div></blockquote>
<p><em>do j = 1, tallies(i) % n_nuclide_bins</em></p>
<blockquote>
<div><p><strong>integer(4) tallies(i) % nuclide_bins(j)</strong></p>
<blockquote>
<div>Values of specified nuclide bins</div></blockquote>
</div></blockquote>
<p><strong>integer(4) tallies(i) % n_score_bins</strong></p>
<blockquote>
<div>Number of scoring bins.</div></blockquote>
<p><em>do j = 1, tallies(i) % n_score_bins</em></p>
<blockquote>
<div><p><strong>integer(4) tallies(i) % score_bins(j)</strong></p>
<blockquote>
<div>Values of specified scoring bins (e.g. SCORE_FLUX).</div></blockquote>
</div></blockquote>
<p><em>do j = 1, tallies(i) % n_score_bins</em></p>
<blockquote>
<div><p><strong>integer(4) tallies(i) % scatt_order(j)</strong></p>
<blockquote>
<div>Scattering Order specified scoring bins.</div></blockquote>
</div></blockquote>
<p><strong>integer(4) tallies(i) % n_score_bins</strong></p>
<blockquote>
<div>Number of scoring bins without accounting for those added by
the scatter-pn command.</div></blockquote>
</div></blockquote>
<p><strong>integer(4) n_realizations</strong></p>
<blockquote>
<div>Number of realizations for global tallies.</div></blockquote>
<p><strong>integer(4) N_GLOBAL_TALLIES</strong></p>
<blockquote>
<div>Number of global tally scores</div></blockquote>
<p><em>do i = 1, N_GLOBAL_TALLIES</em></p>
<blockquote>
<div><p><strong>real(8) global_tallies(i) % sum</strong></p>
<blockquote>
<div>Accumulated sum for the i-th global tally</div></blockquote>
<p><strong>real(8) global_tallies(i) % sum_sq</strong></p>
<blockquote>
<div>Accumulated sum of squares for the i-th global tally</div></blockquote>
</div></blockquote>
<p><strong>integer(4) tallies_on</strong></p>
<blockquote>
<div>Flag indicated if tallies are present in the file.</div></blockquote>
<p>if (tallies_on &gt; 0)</p>
<blockquote>
<div><p><em>do i = 1, n_tallies</em></p>
<blockquote>
<div><p><em>do k = 1, size(tallies(i) % scores, 2)</em></p>
<blockquote>
<div><p><em>do j = 1, size(tallies(i) % scores, 1)</em></p>
<blockquote>
<div><p><strong>real(8) tallies(i) % scores(j,k) % sum</strong></p>
<blockquote>
<div>Accumulated sum for the j-th score and k-th filter of the
i-th tally</div></blockquote>
<p><strong>real(8) tallies(i) % scores(j,k) % sum_sq</strong></p>
<blockquote>
<div>Accumulated sum of squares for the j-th score and k-th
filter of the i-th tally</div></blockquote>
</div></blockquote>
</div></blockquote>
</div></blockquote>
</div></blockquote>
<p>if (run_mode == MODE_EIGENVALUE)</p>
<blockquote>
<div><p><em>do i = 1, n_particles</em></p>
<blockquote>
<div><p><strong>real(8) source_bank(i) % wgt</strong></p>
<blockquote>
<div>Weight of the i-th source particle</div></blockquote>
<p><strong>real(8) source_bank(i) % xyz(1:3)</strong></p>
<blockquote>
<div>Coordinates of the i-th source particle.</div></blockquote>
<p><strong>real(8) source_bank(i) % uvw(1:3)</strong></p>
<blockquote>
<div>Direction of the i-th source particle</div></blockquote>
<p><strong>real(8) source_bank(i) % E</strong></p>
<blockquote>
<div>Energy of the i-th source particle.</div></blockquote>
</div></blockquote>
</div></blockquote>
</div>
<div class="section" id="revision-9">
<h2>5.2. Revision 9<a class="headerlink" href="#revision-9" title="Permalink to this headline"></a></h2>
<p><strong>integer(4) FILETYPE_STATEPOINT</strong></p>
<blockquote>
<div>Flags whether this file is a statepoint file or a particle restart file.</div></blockquote>
<p><strong>integer(4) REVISION_STATEPOINT</strong></p>
<blockquote>
<div>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.</div></blockquote>
<p><strong>integer(4) VERSION_MAJOR</strong></p>
<blockquote>
<div>Major version number for OpenMC</div></blockquote>
<p><strong>integer(4) VERSION_MINOR</strong></p>
<blockquote>
<div>Minor version number for OpenMC</div></blockquote>
<p><strong>integer(4) VERSION_RELEASE</strong></p>
<blockquote>
<div>Release version number for OpenMC</div></blockquote>
<p><strong>character(19) time_stamp</strong></p>
<blockquote>
<div>Date and time the state point was written.</div></blockquote>
<p><strong>character(255) path</strong></p>
<blockquote>
<div>Absolute path to directory containing input files.</div></blockquote>
<p><strong>integer(8) seed</strong></p>
<blockquote>
<div>Pseudo-random number generator seed.</div></blockquote>
<p><strong>integer(4) run_mode</strong></p>
<blockquote>
<div>run mode used. The modes are described in constants.F90.</div></blockquote>
<p><strong>integer(8) n_particles</strong></p>
<blockquote>
<div>Number of particles used per generation.</div></blockquote>
<p><strong>integer(4) n_batches</strong></p>
<blockquote>
<div>Total number of batches (active + inactive).</div></blockquote>
<p><strong>integer(4) current_batch</strong></p>
<blockquote>
<div>The number of batches already simulated.</div></blockquote>
<p>if (run_mode == MODE_EIGENVALUE)</p>
<blockquote>
<div><p><strong>integer(4) n_inactive</strong></p>
<blockquote>
<div>Number of inactive batches</div></blockquote>
<p><strong>integer(4) gen_per_batch</strong></p>
<blockquote>
<div>Number of generations per batch for criticality calculations</div></blockquote>
<p><em>do i = 1, current_batch * gen_per_batch</em></p>
<blockquote>
<div><p><strong>real(8) k_generation(i)</strong></p>
<blockquote>
<div>k-effective for the i-th total generation</div></blockquote>
</div></blockquote>
<p><em>do i = 1, current_batch * gen_per_batch</em></p>
<blockquote>
<div><p><strong>real(8) entropy(i)</strong></p>
<blockquote>
<div>Shannon entropy for the i-th total generation</div></blockquote>
</div></blockquote>
<p><strong>real(8) k_col_abs</strong></p>
<blockquote>
<div>Sum of product of collision/absorption estimates of k-effective</div></blockquote>
<p><strong>real(8) k_col_tra</strong></p>
<blockquote>
<div>Sum of product of collision/track-length estimates of k-effective</div></blockquote>
<p><strong>real(8) k_abs_tra</strong></p>
<blockquote>
<div>Sum of product of absorption/track-length estimates of k-effective</div></blockquote>
<p><strong>real(8) k_combined(2)</strong></p>
<blockquote>
<div>Mean and standard deviation of a combined estimate of k-effective</div></blockquote>
</div></blockquote>
<p><strong>integer(4) n_meshes</strong></p>
<blockquote>
<div>Number of meshes in tallies.xml file</div></blockquote>
<p><em>do i = 1, n_meshes</em></p>
<blockquote>
<div><p><strong>integer(4) meshes(i) % id</strong></p>
<blockquote>
<div>Unique ID of mesh.</div></blockquote>
<p><strong>integer(4) meshes(i) % type</strong></p>
<blockquote>
<div>Type of mesh.</div></blockquote>
<p><strong>integer(4) meshes(i) % n_dimension</strong></p>
<blockquote>
<div>Number of dimensions for mesh (2 or 3).</div></blockquote>
<p><strong>integer(4) meshes(i) % dimension(:)</strong></p>
<blockquote>
<div>Number of mesh cells in each dimension.</div></blockquote>
<p><strong>real(8) meshes(i) % lower_left(:)</strong></p>
<blockquote>
<div>Coordinates of lower-left corner of mesh.</div></blockquote>
<p><strong>real(8) meshes(i) % upper_right(:)</strong></p>
<blockquote>
<div>Coordinates of upper-right corner of mesh.</div></blockquote>
<p><strong>real(8) meshes(i) % width(:)</strong></p>
<blockquote>
<div>Width of each mesh cell in each dimension.</div></blockquote>
</div></blockquote>
<p><strong>integer(4) n_tallies</strong></p>
<p><em>do i = 1, n_tallies</em></p>
<blockquote>
<div><p><strong>integer(4) tallies(i) % id</strong></p>
<blockquote>
<div>Unique ID of tally.</div></blockquote>
<p><strong>integer(4) tallies(i) % n_realizations</strong></p>
<blockquote>
<div>Number of realizations for the i-th tally.</div></blockquote>
<p><strong>integer(4) size(tallies(i) % scores, 1)</strong></p>
<blockquote>
<div>Total number of score bins for the i-th tally</div></blockquote>
<p><strong>integer(4) size(tallies(i) % scores, 2)</strong></p>
<blockquote>
<div>Total number of filter bins for the i-th tally</div></blockquote>
<p><strong>integer(4) tallies(i) % n_filters</strong></p>
<p><em>do j = 1, tallies(i) % n_filters</em></p>
<blockquote>
<div><p><strong>integer(4) tallies(i) % filter(j) % type</strong></p>
<blockquote>
<div>Type of tally filter.</div></blockquote>
<p><strong>integer(4) tallies(i) % filter(j) % n_bins</strong></p>
<blockquote>
<div>Number of bins for filter.</div></blockquote>
<p><strong>integer(4)/real(8) tallies(i) % filter(j) % bins(:)</strong></p>
<blockquote>
<div>Value for each filter bin of this type.</div></blockquote>
</div></blockquote>
<p><strong>integer(4) tallies(i) % n_nuclide_bins</strong></p>
<blockquote>
<div>Number of nuclide bins. If none are specified, this is just one.</div></blockquote>
<p><em>do j = 1, tallies(i) % n_nuclide_bins</em></p>
<blockquote>
<div><p><strong>integer(4) tallies(i) % nuclide_bins(j)</strong></p>
<blockquote>
<div>Values of specified nuclide bins</div></blockquote>
</div></blockquote>
<p><strong>integer(4) tallies(i) % n_score_bins</strong></p>
<blockquote>
<div>Number of scoring bins.</div></blockquote>
<p><em>do j = 1, tallies(i) % n_score_bins</em></p>
<blockquote>
<div><p><strong>integer(4) tallies(i) % score_bins(j)</strong></p>
<blockquote>
<div>Values of specified scoring bins (e.g. SCORE_FLUX).</div></blockquote>
</div></blockquote>
<p><em>do j = 1, tallies(i) % n_score_bins</em></p>
<blockquote>
<div><p><strong>integer(4) tallies(i) % scatt_order(j)</strong></p>
<blockquote>
<div>Scattering Order specified scoring bins.</div></blockquote>
</div></blockquote>
<p><strong>integer(4) tallies(i) % n_score_bins</strong></p>
<blockquote>
<div>Number of scoring bins without accounting for those added by
the scatter-pn command.</div></blockquote>
</div></blockquote>
<p><strong>integer(4) n_realizations</strong></p>
<blockquote>
<div>Number of realizations for global tallies.</div></blockquote>
<p><strong>integer(4) N_GLOBAL_TALLIES</strong></p>
<blockquote>
<div>Number of global tally scores</div></blockquote>
<p><em>do i = 1, N_GLOBAL_TALLIES</em></p>
<blockquote>
<div><p><strong>real(8) global_tallies(i) % sum</strong></p>
<blockquote>
<div>Accumulated sum for the i-th global tally</div></blockquote>
<p><strong>real(8) global_tallies(i) % sum_sq</strong></p>
<blockquote>
<div>Accumulated sum of squares for the i-th global tally</div></blockquote>
</div></blockquote>
<p><strong>integer(4) tallies_on</strong></p>
<blockquote>
<div>Flag indicated if tallies are present in the file.</div></blockquote>
<p>if (tallies_on &gt; 0)</p>
<blockquote>
<div><p><em>do i = 1, n_tallies</em></p>
<blockquote>
<div><p><em>do k = 1, size(tallies(i) % scores, 2)</em></p>
<blockquote>
<div><p><em>do j = 1, size(tallies(i) % scores, 1)</em></p>
<blockquote>
<div><p><strong>real(8) tallies(i) % scores(j,k) % sum</strong></p>
<blockquote>
<div>Accumulated sum for the j-th score and k-th filter of the
i-th tally</div></blockquote>
<p><strong>real(8) tallies(i) % scores(j,k) % sum_sq</strong></p>
<blockquote>
<div>Accumulated sum of squares for the j-th score and k-th
filter of the i-th tally</div></blockquote>
</div></blockquote>
</div></blockquote>
</div></blockquote>
</div></blockquote>
<p>if (run_mode == MODE_EIGENVALUE)</p>
<blockquote>
<div><p><em>do i = 1, n_particles</em></p>
<blockquote>
<div><p><strong>real(8) source_bank(i) % wgt</strong></p>
<blockquote>
<div>Weight of the i-th source particle</div></blockquote>
<p><strong>real(8) source_bank(i) % xyz(1:3)</strong></p>
<blockquote>
<div>Coordinates of the i-th source particle.</div></blockquote>
<p><strong>real(8) source_bank(i) % uvw(1:3)</strong></p>
<blockquote>
<div>Direction of the i-th source particle</div></blockquote>
<p><strong>real(8) source_bank(i) % E</strong></p>
<blockquote>
<div>Energy of the i-th source particle.</div></blockquote>
</div></blockquote>
</div></blockquote>
</div>
<div class="section" id="revision-8">
<h2>5.1. Revision 8<a class="headerlink" href="#revision-8" title="Permalink to this headline"></a></h2>
<h2>5.3. Revision 8<a class="headerlink" href="#revision-8" title="Permalink to this headline"></a></h2>
<p><strong>integer(4) REVISION_STATEPOINT</strong></p>
<blockquote>
<div>Revision of the binary state point file. Any time a change is made in the
@ -265,7 +718,7 @@ filter of the i-th tally</div></blockquote>
</div></blockquote>
</div>
<div class="section" id="revision-7">
<h2>5.2. Revision 7<a class="headerlink" href="#revision-7" title="Permalink to this headline"></a></h2>
<h2>5.4. Revision 7<a class="headerlink" href="#revision-7" title="Permalink to this headline"></a></h2>
<p><strong>integer(4) REVISION_STATEPOINT</strong></p>
<blockquote>
<div>Revision of the binary state point file. Any time a change is made in the
@ -463,7 +916,7 @@ filter of the i-th tally</div></blockquote>
</div></blockquote>
</div>
<div class="section" id="revision-6">
<h2>5.3. Revision 6<a class="headerlink" href="#revision-6" title="Permalink to this headline"></a></h2>
<h2>5.5. Revision 6<a class="headerlink" href="#revision-6" title="Permalink to this headline"></a></h2>
<p><strong>integer(4) REVISION_STATEPOINT</strong></p>
<blockquote>
<div>Revision of the binary state point file. Any time a change is made in the
@ -651,7 +1104,7 @@ filter of the i-th tally</div></blockquote>
</div></blockquote>
</div>
<div class="section" id="revision-5">
<h2>5.4. Revision 5<a class="headerlink" href="#revision-5" title="Permalink to this headline"></a></h2>
<h2>5.6. Revision 5<a class="headerlink" href="#revision-5" title="Permalink to this headline"></a></h2>
<p><strong>integer(4) REVISION_STATEPOINT</strong></p>
<blockquote>
<div>Revision of the binary state point file. Any time a change is made in the
@ -830,7 +1283,7 @@ filter of the i-th tally</div></blockquote>
</div></blockquote>
</div>
<div class="section" id="revision-4">
<h2>5.5. Revision 4<a class="headerlink" href="#revision-4" title="Permalink to this headline"></a></h2>
<h2>5.7. Revision 4<a class="headerlink" href="#revision-4" title="Permalink to this headline"></a></h2>
<p><strong>integer(4) REVISION_STATEPOINT</strong></p>
<blockquote>
<div>Revision of the binary state point file. Any time a change is made in the
@ -1006,7 +1459,7 @@ filter of the i-th tally</div></blockquote>
</div></blockquote>
</div>
<div class="section" id="revision-3">
<h2>5.6. Revision 3<a class="headerlink" href="#revision-3" title="Permalink to this headline"></a></h2>
<h2>5.8. Revision 3<a class="headerlink" href="#revision-3" title="Permalink to this headline"></a></h2>
<p><strong>integer(4) REVISION_STATEPOINT</strong></p>
<blockquote>
<div>Revision of the binary state point file. Any time a change is made in the
@ -1179,7 +1632,7 @@ filter of the i-th tally</div></blockquote>
</div></blockquote>
</div>
<div class="section" id="revision-2">
<h2>5.7. Revision 2<a class="headerlink" href="#revision-2" title="Permalink to this headline"></a></h2>
<h2>5.9. Revision 2<a class="headerlink" href="#revision-2" title="Permalink to this headline"></a></h2>
<p><strong>integer(4) REVISION_STATEPOINT</strong></p>
<blockquote>
<div>Revision of the binary state point file. Any time a change is made in the
@ -1267,7 +1720,7 @@ the i-th tally</div></blockquote>
</div></blockquote>
</div>
<div class="section" id="revision-1">
<h2>5.8. Revision 1<a class="headerlink" href="#revision-1" title="Permalink to this headline"></a></h2>
<h2>5.10. Revision 1<a class="headerlink" href="#revision-1" title="Permalink to this headline"></a></h2>
<p><strong>integer(4) REVISION_STATEPOINT</strong></p>
<blockquote>
<div>Revision of the binary state point file. Any time a change is made in the

View file

@ -17,7 +17,7 @@
<script type="text/javascript">
var DOCUMENTATION_OPTIONS = {
URL_ROOT: '../',
VERSION: '0.5.2',
VERSION: '0.5.3',
COLLAPSE_INDEX: false,
FILE_SUFFIX: '.html',
HAS_SOURCE: true

View file

@ -17,7 +17,7 @@
<script type="text/javascript">
var DOCUMENTATION_OPTIONS = {
URL_ROOT: '../',
VERSION: '0.5.2',
VERSION: '0.5.3',
COLLAPSE_INDEX: false,
FILE_SUFFIX: '.html',
HAS_SOURCE: true
@ -75,13 +75,13 @@ using copious amounts of comments.</p>
unit. Writing to standard output or standard error should be handled by the
<tt class="docutils literal"><span class="pre">write_message</span></tt> subroutine or functionality in the error module.</p>
</div>
<div class="section" id="subroutines-and-functions">
<h2>2.2. Subroutines and Functions<a class="headerlink" href="#subroutines-and-functions" title="Permalink to this headline"></a></h2>
<p>Above each subroutine/function, include a comment block giving a brief
description of what the subroutine or function does.</p>
<p>Arguments to subroutines/functions should be explicitly specified as intent(in),
intent(out), or intent(inout).</p>
<p>Include a comment describing what each argument to a subroutine/function is.</p>
<div class="section" id="procedures">
<h2>2.2. Procedures<a class="headerlink" href="#procedures" title="Permalink to this headline"></a></h2>
<p>Above each procedure, include a comment block giving a brief description of what
the procedure does.</p>
<p>Nonpointer dummy arguments to procedures should be explicitly specified as
intent(in), intent(out), or intent(inout).</p>
<p>Include a comment describing what each argument to a procedure is.</p>
</div>
<div class="section" id="variables">
<h2>2.3. Variables<a class="headerlink" href="#variables" title="Permalink to this headline"></a></h2>
@ -143,9 +143,10 @@ value of f90-continuation-indent in Emacs.</p>
</div>
<div class="section" id="whitespace-in-expressions">
<h2>2.6. Whitespace in Expressions<a class="headerlink" href="#whitespace-in-expressions" title="Permalink to this headline"></a></h2>
<p>Use a single space between arguments to procedures.</p>
<p>Avoid extraneous whitespace in the following situations:</p>
<ul>
<li><p class="first">In subroutine/function calls:</p>
<li><p class="first">In procedure calls:</p>
<div class="highlight-python"><pre>Yes: call somesub(x, y(2), z)
No: call somesub( x, y( 2 ), z )</pre>
</div>

View file

@ -17,7 +17,7 @@
<script type="text/javascript">
var DOCUMENTATION_OPTIONS = {
URL_ROOT: '../',
VERSION: '0.5.2',
VERSION: '0.5.3',
COLLAPSE_INDEX: false,
FILE_SUFFIX: '.html',
HAS_SOURCE: true

View file

@ -17,7 +17,7 @@
<script type="text/javascript">
var DOCUMENTATION_OPTIONS = {
URL_ROOT: '../',
VERSION: '0.5.2',
VERSION: '0.5.3',
COLLAPSE_INDEX: false,
FILE_SUFFIX: '.html',
HAS_SOURCE: true
@ -55,34 +55,99 @@
<div class="section" id="development-workflow">
<span id="devguide-workflow"></span><h1>3. Development Workflow<a class="headerlink" href="#development-workflow" title="Permalink to this headline"></a></h1>
<p>Anyone wishing to make contributions to OpenMC should be fully acquianted and
comfortable working with <a class="reference external" href="http://git-scm.com/">git</a> and <a class="reference external" href="https://github.com/">GitHub</a>. The primary means of modifying and
making contributions to OpenMC is through GitHub <a class="reference external" href="https://help.github.com/articles/using-pull-requests">pull requests</a>. This is
what&#8217;s known as a fork and pull development model. The steps for this are as
follows:</p>
<p>1. Fork the main openmc repository from <a class="reference external" href="https://github.com/mit-crpg/openmc">mit-crpg/openmc</a>. This will create a
comfortable working with <a class="reference external" href="http://git-scm.com/">git</a> and <a class="reference external" href="https://github.com/">GitHub</a>. We assume here that you have git
installed on your system, have a GitHub account, and have setup SSH keys to be
able to create/push to repositories on GitHub.</p>
<div class="section" id="overview">
<h2>3.1. Overview<a class="headerlink" href="#overview" title="Permalink to this headline"></a></h2>
<p>Development of OpenMC relies heavily on branching; specifically, we use a
branching model sometimes referred to as <a class="reference external" href="http://nvie.com/git-model">git flow</a>. If you plan to contribute
to OpenMC development, we highly recommend that you read the linked blog post to
get a sense of how the branching model works. There are two main branches that
always exist: <em>master</em> and <em>develop</em>. The <em>master</em> branch is a stable branch
that contains the latest release of the code. The <em>develop</em> branch is where any
ongoing development takes place prior to a release and is not guaranteed to be
stable. When the development team decides that a release should occur, the
<em>develop</em> branch is merged into <em>master</em>.</p>
<p>Trivial changes to the code may be committed directly to the <em>develop</em> branch by
a trusted developer. However, most new features should be developed on a branch
that branches off of <em>develop</em>. When the feature is completed, a <a class="reference external" href="https://help.github.com/articles/using-pull-requests">pull request</a>
is initiated on GitHub that is then reviewed by a trusted developer. If the pull
request is satisfactory, it is then merged into <em>develop</em>. Note that a trusted
developer may not review their own pull request (i.e., an independent code
review is required).</p>
</div>
<div class="section" id="code-review-criteria">
<h2>3.2. Code Review Criteria<a class="headerlink" href="#code-review-criteria" title="Permalink to this headline"></a></h2>
<p>In order to be considered suitable for inclusion in the <em>develop</em> branch, the
following criteria must be satisfied for all proposed changes:</p>
<ul class="simple">
<li>Changes have a clear purpose and are useful.</li>
<li>Compiles under all conditions (MPI, OpenMP, HDF5, etc.). This is checked as
part of the test suite (see <a class="reference external" href="https://github.com/mit-crpg/openmc/blob/develop/tests/test_compile/test_compile.py">test_compile.py</a>).</li>
<li>Passes the regression suite.</li>
<li>If appropriate, test cases are added to regression suite.</li>
<li>No memory leaks (checked with <a class="reference external" href="http://valgrind.org/">valgrind</a>).</li>
<li>Conforms to the OpenMC <a class="reference external" href="http://mit-crpg.github.io/openmc/devguide/styleguide.html">style guide</a>.</li>
<li>No degradation of performance or greatly increased memory usage. This is not a
hard rule &#8211; in certain circumstances, a performance loss might be acceptable
if there are compelling reasons.</li>
<li>New features/input are documented.</li>
<li>No unnecessary external software dependencies are introduced.</li>
</ul>
</div>
<div class="section" id="contributing">
<h2>3.3. Contributing<a class="headerlink" href="#contributing" title="Permalink to this headline"></a></h2>
<p>Now that you understand the basic development workflow, let&#8217;s discuss how an
individual to contribute to development. Note that this would apply to both new
features and bug fixes. The general steps for contributing are as follows:</p>
<ol class="arabic">
<li><p class="first">Fork the main openmc repository from <a class="reference external" href="https://github.com/mit-crpg/openmc">mit-crpg/openmc</a>. This will create a
repository with the same name under your personal account. As such, you can
commit to it as you please without disrupting other developers.</p>
<p>2. Create a branch that you want merged back to <a class="reference external" href="https://github.com/mit-crpg/openmc">mit-crpg/openmc</a> and make
commits that you intend to go back. If you have made other changes that should
not be merged back, those changes should be on another branch.</p>
<ol class="arabic simple" start="3">
<li>Issue a pull request from GitHub and select the branch you want merged.</li>
<img alt="../_images/fork.png" src="../_images/fork.png" />
</li>
<li><p class="first">Clone your fork of OpenMC and create a branch that branches off of <em>develop</em>:</p>
<div class="highlight-sh"><div class="highlight"><pre>git clone git@github.com:yourusername/openmc.git
<span class="nb">cd </span>openmc
git checkout -b newbranch develop
</pre></div>
</div>
</li>
<li><p class="first">Make your changes on the new branch that you intend to have included in
<em>develop</em>. If you have made other changes that should not be merged back,
ensure that those changes are made on a different branch.</p>
</li>
<li><p class="first">Issue a pull request from GitHub and select the <em>develop</em> branch of
mit-crpg/openmc as the target.</p>
<img alt="../_images/pullrequest.png" src="../_images/pullrequest.png" />
<p>At a minimum, you should describe what the changes you&#8217;ve made are and why
you are making them. If the changes are related to an oustanding issue, make
sure it is cross-referenced. A wise developer would also check whether their
changes do indeed pass the regression test suite.</p>
</li>
<li><p class="first">A trusted developer will review your pull request based on the criteria
above. Any issues with the pull request can be discussed directly on the pull
request page itself.</p>
</li>
<li><p class="first">After the pull request has been thoroughly vetted, it is merged back into the
<em>develop</em> branch of mit-crpg/openmc.</p>
</li>
</ol>
<p>4. The OpenMC integration manager will review your pull request and make sure it
conforms to the <a class="reference internal" href="styleguide.html#devguide-styleguide"><em>Style Guide for OpenMC</em></a>, compiles correctly, runs in parallel
correctly, does not break other features in the code, etc. Any issues with the
pull request can be discussed directly on the pull request page itself.</p>
<p>5. After the pull request has been thoroughly vetted, it is merged back into
<a class="reference external" href="https://github.com/mit-crpg/openmc">mit-crpg/openmc</a>.</p>
</div>
<div class="section" id="private-development">
<h2>3.4. Private Development<a class="headerlink" href="#private-development" title="Permalink to this headline"></a></h2>
<p>While the process above depends on the fork of the OpenMC repository being
publicly available on GitHub, you may also wish to do development on a private
repository for research or commercial purposes. The proper way to do this is to
create a complete copy of the OpenMC repository (not a fork from GitHub). The
private repository can then either be stored just locally or in conjunction with
a private repository on Github (this requires a <a class="reference external" href="https://github.com/plans">paid plan</a>). If you want to
merge some changes you&#8217;ve made in your private repository back to
<a class="reference external" href="https://github.com/mit-crpg/openmc">mit-crpg/openmc</a> repository, simply follow the steps above with an extra step
of pulling a branch from your private repository into your public fork.</p>
a private repository on Github (this requires a <a class="reference external" href="https://github.com/plans">paid plan</a>). Alternatively,
<a class="reference external" href="https://bitbucket.org">Bitbucket</a> offers private repositories for free. If you want to merge some
changes you&#8217;ve made in your private repository back to mit-crpg/openmc
repository, simply follow the steps above with an extra step of pulling a branch
from your private repository into a public fork.</p>
</div>
</div>

View file

@ -17,7 +17,7 @@
<script type="text/javascript">
var DOCUMENTATION_OPTIONS = {
URL_ROOT: '../',
VERSION: '0.5.2',
VERSION: '0.5.3',
COLLAPSE_INDEX: false,
FILE_SUFFIX: '.html',
HAS_SOURCE: true

View file

@ -19,7 +19,7 @@
<script type="text/javascript">
var DOCUMENTATION_OPTIONS = {
URL_ROOT: '',
VERSION: '0.5.2',
VERSION: '0.5.3',
COLLAPSE_INDEX: false,
FILE_SUFFIX: '.html',
HAS_SOURCE: true
@ -53,6 +53,7 @@
<div class="genindex-jumpbox">
<a href="#C"><strong>C</strong></a>
| <a href="#E"><strong>E</strong></a>
| <a href="#O"><strong>O</strong></a>
| <a href="#P"><strong>P</strong></a>
</div>
@ -80,6 +81,10 @@
</dt>
<dt><a href="usersguide/input.html#index-1">OMP_NUM_THREADS</a>
</dt>
<dt><a href="usersguide/troubleshoot.html#index-0">PATH</a>, <a href="usersguide/troubleshoot.html#index-1">[1]</a>
</dt>
@ -87,6 +92,16 @@
</dl></td>
</tr></table>
<h2 id="O">O</h2>
<table style="width: 100%" class="indextable genindextable"><tr>
<td style="width: 33%" valign="top"><dl>
<dt><a href="usersguide/input.html#index-1">OMP_NUM_THREADS</a>
</dt>
</dl></td>
</tr></table>
<h2 id="P">P</h2>
<table style="width: 100%" class="indextable genindextable"><tr>
<td style="width: 33%" valign="top"><dl>

View file

@ -17,7 +17,7 @@
<script type="text/javascript">
var DOCUMENTATION_OPTIONS = {
URL_ROOT: '',
VERSION: '0.5.2',
VERSION: '0.5.3',
COLLAPSE_INDEX: false,
FILE_SUFFIX: '.html',
HAS_SOURCE: true

View file

@ -17,7 +17,7 @@
<script type="text/javascript">
var DOCUMENTATION_OPTIONS = {
URL_ROOT: '',
VERSION: '0.5.2',
VERSION: '0.5.3',
COLLAPSE_INDEX: false,
FILE_SUFFIX: '.html',
HAS_SOURCE: true

View file

@ -17,7 +17,7 @@
<script type="text/javascript">
var DOCUMENTATION_OPTIONS = {
URL_ROOT: '../',
VERSION: '0.5.2',
VERSION: '0.5.3',
COLLAPSE_INDEX: false,
FILE_SUFFIX: '.html',
HAS_SOURCE: true

View file

@ -17,7 +17,7 @@
<script type="text/javascript">
var DOCUMENTATION_OPTIONS = {
URL_ROOT: '../',
VERSION: '0.5.2',
VERSION: '0.5.3',
COLLAPSE_INDEX: false,
FILE_SUFFIX: '.html',
HAS_SOURCE: true

View file

@ -17,7 +17,7 @@
<script type="text/javascript">
var DOCUMENTATION_OPTIONS = {
URL_ROOT: '../',
VERSION: '0.5.2',
VERSION: '0.5.3',
COLLAPSE_INDEX: false,
FILE_SUFFIX: '.html',
HAS_SOURCE: true

View file

@ -17,7 +17,7 @@
<script type="text/javascript">
var DOCUMENTATION_OPTIONS = {
URL_ROOT: '../',
VERSION: '0.5.2',
VERSION: '0.5.3',
COLLAPSE_INDEX: false,
FILE_SUFFIX: '.html',
HAS_SOURCE: true

View file

@ -17,7 +17,7 @@
<script type="text/javascript">
var DOCUMENTATION_OPTIONS = {
URL_ROOT: '../',
VERSION: '0.5.2',
VERSION: '0.5.3',
COLLAPSE_INDEX: false,
FILE_SUFFIX: '.html',
HAS_SOURCE: true

View file

@ -17,7 +17,7 @@
<script type="text/javascript">
var DOCUMENTATION_OPTIONS = {
URL_ROOT: '../',
VERSION: '0.5.2',
VERSION: '0.5.3',
COLLAPSE_INDEX: false,
FILE_SUFFIX: '.html',
HAS_SOURCE: true

View file

@ -17,7 +17,7 @@
<script type="text/javascript">
var DOCUMENTATION_OPTIONS = {
URL_ROOT: '../',
VERSION: '0.5.2',
VERSION: '0.5.3',
COLLAPSE_INDEX: false,
FILE_SUFFIX: '.html',
HAS_SOURCE: true

View file

@ -17,7 +17,7 @@
<script type="text/javascript">
var DOCUMENTATION_OPTIONS = {
URL_ROOT: '../',
VERSION: '0.5.2',
VERSION: '0.5.3',
COLLAPSE_INDEX: false,
FILE_SUFFIX: '.html',
HAS_SOURCE: true

View file

@ -17,7 +17,7 @@
<script type="text/javascript">
var DOCUMENTATION_OPTIONS = {
URL_ROOT: '../',
VERSION: '0.5.2',
VERSION: '0.5.3',
COLLAPSE_INDEX: false,
FILE_SUFFIX: '.html',
HAS_SOURCE: true

Binary file not shown.

View file

@ -17,7 +17,7 @@
<script type="text/javascript">
var DOCUMENTATION_OPTIONS = {
URL_ROOT: '',
VERSION: '0.5.2',
VERSION: '0.5.3',
COLLAPSE_INDEX: false,
FILE_SUFFIX: '.html',
HAS_SOURCE: true
@ -54,6 +54,47 @@
<div class="section" id="publications">
<span id="id1"></span><h1>Publications<a class="headerlink" href="#publications" title="Permalink to this headline"></a></h1>
<ul class="simple">
<li>Benoit Forget, Sheng Xu, and Kord Smith, &#8220;Direct Doppler broadening in Monte
Carlo simulations using the multipole representation,&#8221; <em>Ann. Nucl. Energy</em>,
<strong>64</strong>, 78&#8211;85 (2014). <a class="reference external" href="http://dx.doi.org/10.1016/j.anucene.2013.09.043">http://dx.doi.org/10.1016/j.anucene.2013.09.043</a></li>
<li>Andrew Siegel, Kord Smith, Kyle Felker, Paul Romano, Benoit Forget, and Peter
Beckman, &#8220;Improved cache performance in Monte Carlo transport calculations
using energy banding,&#8221; <em>Comput. Phys. Commun.</em>
(2013). <a class="reference external" href="http://dx.doi.org/10.1016/j.cpc.2013.10.008">http://dx.doi.org/10.1016/j.cpc.2013.10.008</a></li>
<li>Jonathan A. Walsh, Benoit Forget, and Kord S. Smith, &#8220;Validation of OpenMC
Reactor Physics Simulations with the B&amp;W 1810 Series Benchmarks,&#8221;
<em>Trans. Am. Nucl. Soc.</em>, <strong>109</strong>, 1301&#8211;1304 (2013).</li>
<li>Bryan R. Herman, Benoit Forget, and Kord Smith, &#8220;Utilizing CMFD in OpenMC to
Estimate Dominance Ratio and Adjoint,&#8221; <em>Trans. Am. Nucl. Soc.</em>, <strong>109</strong>,
1389-1392 (2013).</li>
<li>Timothy P. Burke, Brian C. Kiedrowski, and William R. Martin, &#8220;Flux and
Reaction Rate Kernel Density Estimators in OpenMC,&#8221; <em>Trans. Am. Nucl. Soc.</em>,
<strong>109</strong>, 683-686 (2013).</li>
<li>Paul K. Romano, Benoit Forget, Kord Smith, and Andrew Siegel, &#8220;On the user of
tally servers in Monte Carlo simulations of light-water reactors,&#8221;
<em>Proc. Joint International Conference on Supercomputing in Nuclear
Applications and Monte Carlo</em>, Paris, France, Oct. 27&#8211;31 (2013).</li>
<li>Paul K. Romano, Nicholas E. Horelik, Bryan R. Herman, Adam G. Nelson, Benoit
Forget, and Kord Smith, &#8220;OpenMC: A State-of-the-Art Monte Carlo Code for
Research and Development,&#8221; <em>Proc. Joint International Conference on
Supercomputing in Nuclear Applications and Monte Carlo</em>, Paris, France,
Oct. 27&#8211;31 (2013).</li>
<li>Kyle G. Felker, Andrew R. Siegel, Kord S. Smith, Paul K. Romano, and Benoit
Forget, &#8220;The energy band memory server algorithm for parallel Monte Carlo
calculations,&#8221; <em>Proc. Joint International Conference on Supercomputing in
Nuclear Applications and Monte Carlo</em>, Paris, France, Oct. 27&#8211;31 (2013).</li>
<li>John R. Tramm and Andrew R. Siegel, &#8220;Memory Bottlenecks and Memory Contention
in Multi-Core Monte Carlo Transport Codes,&#8221; <em>Proc. Joint International
Conference on Supercomputing in Nuclear Applications and Monte Carlo</em>, Paris,
France, Oct. 27&#8211;31 (2013).</li>
<li>Andrew R. Siegel, Kord Smith, Paul K. Romano, Benoit Forget, and Kyle Felker,
&#8220;Multi-core performance studies of a Monte Carlo neutron transport code,&#8221;
<em>Int. J. High Perform. Comput. Appl.</em>
(2013). <a class="reference external" href="http://dx.doi.org/10.1177/1094342013492179">http://dx.doi.org/10.1177/1094342013492179</a></li>
<li>Paul K. Romano, Andrew R. Siegel, Benoit Forget, and Kord Smith, &#8220;Data
decomposition of Monte Carlo particle transport simulations via tally
servers,&#8221; <em>J. Comput. Phys.</em>, <strong>252</strong>, 20&#8211;36
(2013). <a class="reference external" href="http://dx.doi.org/10.1016/j.jcp.2013.06.011">http://dx.doi.org/10.1016/j.jcp.2013.06.011</a></li>
<li>Paul K. Romano, Bryan R. Herman, Nicholas E. Horelik, Benoit Forget, Kord
Smith, and Andrew R. Siegel, &#8220;Progress and Status of the OpenMC Monte Carlo
Code,&#8221; <em>Proc. Int. Conf. Mathematics and Computational Methods Applied to

View file

@ -17,7 +17,7 @@
<script type="text/javascript">
var DOCUMENTATION_OPTIONS = {
URL_ROOT: '',
VERSION: '0.5.2',
VERSION: '0.5.3',
COLLAPSE_INDEX: false,
FILE_SUFFIX: '.html',
HAS_SOURCE: true
@ -77,6 +77,7 @@ compiler installed, you can download and install OpenMC be entering the
following commands in a terminal:</p>
<div class="highlight-sh"><div class="highlight"><pre>git clone git://github.com/mit-crpg/openmc.git
<span class="nb">cd </span>openmc/src
git checkout master
make
sudo make install
</pre></div>

View file

@ -17,7 +17,7 @@
<script type="text/javascript">
var DOCUMENTATION_OPTIONS = {
URL_ROOT: '../',
VERSION: '0.5.2',
VERSION: '0.5.3',
COLLAPSE_INDEX: false,
FILE_SUFFIX: '.html',
HAS_SOURCE: true
@ -28,7 +28,7 @@
<script type="text/javascript" src="../_static/doctools.js"></script>
<script type="text/javascript" src="../_static/theme_extras.js"></script>
<link rel="top" title="OpenMC Documentation" href="../index.html" />
<link rel="next" title="Release Notes for OpenMC 0.5.2" href="notes_0.5.2.html" />
<link rel="next" title="Release Notes for OpenMC 0.5.3" href="notes_0.5.3.html" />
<link rel="prev" title="Quick Install Guide" href="../quickinstall.html" />
</head>
<body>
@ -44,7 +44,7 @@
&#160;&#160;::&#160;&#160;
<a class="uplink" href="../index.html">Contents</a>
&#160;&#160;::&#160;&#160;
<a href="notes_0.5.2.html">Release Notes for OpenMC 0.5.2</a>&#160;&#160;»
<a href="notes_0.5.3.html">Release Notes for OpenMC 0.5.3</a>&#160;&#160;»
</p>
</div>
@ -57,6 +57,7 @@
bugs fixed, and known issues for each successive release.</p>
<div class="toctree-wrapper compound">
<ul>
<li class="toctree-l1"><a class="reference internal" href="notes_0.5.3.html">Release Notes for OpenMC 0.5.3</a></li>
<li class="toctree-l1"><a class="reference internal" href="notes_0.5.2.html">Release Notes for OpenMC 0.5.2</a></li>
<li class="toctree-l1"><a class="reference internal" href="notes_0.5.1.html">Release Notes for OpenMC 0.5.1</a></li>
<li class="toctree-l1"><a class="reference internal" href="notes_0.5.0.html">Release Notes for OpenMC 0.5.0</a></li>
@ -78,7 +79,7 @@ bugs fixed, and known issues for each successive release.</p>
&#160;&#160;::&#160;&#160;
<a class="uplink" href="../index.html">Contents</a>
&#160;&#160;::&#160;&#160;
<a href="notes_0.5.2.html">Release Notes for OpenMC 0.5.2</a>&#160;&#160;»
<a href="notes_0.5.3.html">Release Notes for OpenMC 0.5.3</a>&#160;&#160;»
</p>
</div>

View file

@ -17,7 +17,7 @@
<script type="text/javascript">
var DOCUMENTATION_OPTIONS = {
URL_ROOT: '../',
VERSION: '0.5.2',
VERSION: '0.5.3',
COLLAPSE_INDEX: false,
FILE_SUFFIX: '.html',
HAS_SOURCE: true

View file

@ -17,7 +17,7 @@
<script type="text/javascript">
var DOCUMENTATION_OPTIONS = {
URL_ROOT: '../',
VERSION: '0.5.2',
VERSION: '0.5.3',
COLLAPSE_INDEX: false,
FILE_SUFFIX: '.html',
HAS_SOURCE: true

View file

@ -17,7 +17,7 @@
<script type="text/javascript">
var DOCUMENTATION_OPTIONS = {
URL_ROOT: '../',
VERSION: '0.5.2',
VERSION: '0.5.3',
COLLAPSE_INDEX: false,
FILE_SUFFIX: '.html',
HAS_SOURCE: true

View file

@ -17,7 +17,7 @@
<script type="text/javascript">
var DOCUMENTATION_OPTIONS = {
URL_ROOT: '../',
VERSION: '0.5.2',
VERSION: '0.5.3',
COLLAPSE_INDEX: false,
FILE_SUFFIX: '.html',
HAS_SOURCE: true

View file

@ -17,7 +17,7 @@
<script type="text/javascript">
var DOCUMENTATION_OPTIONS = {
URL_ROOT: '../',
VERSION: '0.5.2',
VERSION: '0.5.3',
COLLAPSE_INDEX: false,
FILE_SUFFIX: '.html',
HAS_SOURCE: true

View file

@ -17,7 +17,7 @@
<script type="text/javascript">
var DOCUMENTATION_OPTIONS = {
URL_ROOT: '../',
VERSION: '0.5.2',
VERSION: '0.5.3',
COLLAPSE_INDEX: false,
FILE_SUFFIX: '.html',
HAS_SOURCE: true

View file

@ -17,7 +17,7 @@
<script type="text/javascript">
var DOCUMENTATION_OPTIONS = {
URL_ROOT: '../',
VERSION: '0.5.2',
VERSION: '0.5.3',
COLLAPSE_INDEX: false,
FILE_SUFFIX: '.html',
HAS_SOURCE: true

View file

@ -17,7 +17,7 @@
<script type="text/javascript">
var DOCUMENTATION_OPTIONS = {
URL_ROOT: '../',
VERSION: '0.5.2',
VERSION: '0.5.3',
COLLAPSE_INDEX: false,
FILE_SUFFIX: '.html',
HAS_SOURCE: true
@ -30,7 +30,7 @@
<link rel="top" title="OpenMC Documentation" href="../index.html" />
<link rel="up" title="Release Notes" href="index.html" />
<link rel="next" title="Release Notes for OpenMC 0.5.1" href="notes_0.5.1.html" />
<link rel="prev" title="Release Notes" href="index.html" />
<link rel="prev" title="Release Notes for OpenMC 0.5.3" href="notes_0.5.3.html" />
</head>
<body>
<div class="header">
@ -41,7 +41,7 @@
<div class="topnav">
<p>
«&#160;&#160;<a href="index.html">Release Notes</a>
«&#160;&#160;<a href="notes_0.5.3.html">Release Notes for OpenMC 0.5.3</a>
&#160;&#160;::&#160;&#160;
<a class="uplink" href="../index.html">Contents</a>
&#160;&#160;::&#160;&#160;
@ -98,7 +98,7 @@ the problem at hand (mostly on the number of nuclides in the problem).</p>
<div class="bottomnav">
<p>
«&#160;&#160;<a href="index.html">Release Notes</a>
«&#160;&#160;<a href="notes_0.5.3.html">Release Notes for OpenMC 0.5.3</a>
&#160;&#160;::&#160;&#160;
<a class="uplink" href="../index.html">Contents</a>
&#160;&#160;::&#160;&#160;

View file

@ -0,0 +1,129 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Release Notes for OpenMC 0.5.3 &mdash; OpenMC Documentation</title>
<link rel="stylesheet" href="../_static/haiku.css" type="text/css" />
<link rel="stylesheet" href="../_static/pygments.css" type="text/css" />
<link rel="stylesheet" href="../_static/print.css" type="text/css" />
<script type="text/javascript">
var DOCUMENTATION_OPTIONS = {
URL_ROOT: '../',
VERSION: '0.5.3',
COLLAPSE_INDEX: false,
FILE_SUFFIX: '.html',
HAS_SOURCE: true
};
</script>
<script type="text/javascript" src="../_static/jquery.js"></script>
<script type="text/javascript" src="../_static/underscore.js"></script>
<script type="text/javascript" src="../_static/doctools.js"></script>
<script type="text/javascript" src="../_static/theme_extras.js"></script>
<link rel="top" title="OpenMC Documentation" href="../index.html" />
<link rel="up" title="Release Notes" href="index.html" />
<link rel="next" title="Release Notes for OpenMC 0.5.2" href="notes_0.5.2.html" />
<link rel="prev" title="Release Notes" href="index.html" />
</head>
<body>
<div class="header">
<a href="../index.html">
<img class="logo" src="../_static/openmc.png" alt="Logo"/>
</a>
</div>
<div class="topnav">
<p>
«&#160;&#160;<a href="index.html">Release Notes</a>
&#160;&#160;::&#160;&#160;
<a class="uplink" href="../index.html">Contents</a>
&#160;&#160;::&#160;&#160;
<a href="notes_0.5.2.html">Release Notes for OpenMC 0.5.2</a>&#160;&#160;»
</p>
</div>
<div class="content">
<div class="section" id="release-notes-for-openmc-0-5-3">
<span id="notes-0-5-3"></span><h1>Release Notes for OpenMC 0.5.3<a class="headerlink" href="#release-notes-for-openmc-0-5-3" title="Permalink to this headline"></a></h1>
<div class="section" id="system-requirements">
<h2>System Requirements<a class="headerlink" href="#system-requirements" title="Permalink to this headline"></a></h2>
<p>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).</p>
</div>
<div class="section" id="new-features">
<h2>New Features<a class="headerlink" href="#new-features" title="Permalink to this headline"></a></h2>
<ul class="simple">
<li>Output interface enhanced to allow multiple files handles to be opened</li>
<li>Particle restart file linked to output interface</li>
<li>Particle restarts and state point restarts are both identified with the -r
command line flag.</li>
<li>Particle instance no longer global, passed to all physics routines</li>
<li>Physics routines refactored to rely less on global memory, more arguments
passed in</li>
<li>CMFD routines refactored and now can compute dominance ratio on the fly</li>
<li>PETSc 3.4.2 or higher must be used and compiled with fortran datatype support</li>
<li>Memory leaks fixed except for ones from xml-fortran package</li>
<li>Test suite enhanced to test output with different compiler options</li>
<li>Description of OpenMC development workflow added</li>
<li>OpenMP shared-memory parallelism added</li>
<li>Special run mode &#8211;tallies removed.</li>
</ul>
</div>
<div class="section" id="bug-fixes">
<h2>Bug Fixes<a class="headerlink" href="#bug-fixes" title="Permalink to this headline"></a></h2>
<ul class="simple">
<li><a class="reference external" href="https://github.com/mit-crpg/openmc/commit/2b1e8a">2b1e8a</a>: Normalize direction vector after reflecting particle.</li>
<li><a class="reference external" href="https://github.com/mit-crpg/openmc/commit/5853d2">5853d2</a>: Set blank default for cross section listing alias.</li>
<li><a class="reference external" href="https://github.com/mit-crpg/openmc/commit/e178c7">e178c7</a>: Fix infinite loop with words greater than 80 characters in write_message.</li>
<li><a class="reference external" href="https://github.com/mit-crpg/openmc/commit/c18a6e">c18a6e</a>: Check for valid secondary mode on S(a,b) tables.</li>
<li><a class="reference external" href="https://github.com/mit-crpg/openmc/commit/82c456">82c456</a>: Fix bug where last process could have zero particles.</li>
</ul>
</div>
</div>
</div>
<div class="bottomnav">
<p>
«&#160;&#160;<a href="index.html">Release Notes</a>
&#160;&#160;::&#160;&#160;
<a class="uplink" href="../index.html">Contents</a>
&#160;&#160;::&#160;&#160;
<a href="notes_0.5.2.html">Release Notes for OpenMC 0.5.2</a>&#160;&#160;»
</p>
</div>
<div class="footer">
&copy; Copyright 2011-2013, Massachusetts Institute of Technology.
Created using <a href="http://sphinx.pocoo.org/">Sphinx</a> 1.1.3.
</div>
<script type="text/javascript">
var _gaq = _gaq || [];
_gaq.push(['_setAccount', 'UA-30411614-1']);
_gaq.push(['_trackPageview']);
(function() {
var ga = document.createElement('script'); ga.type = 'text/javascript'; ga.async = true;
ga.src = ('https:' == document.location.protocol ? 'https://ssl' : 'http://www') + '.google-analytics.com/ga.js';
var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(ga, s);
})();
</script>
</body>
</html>

View file

@ -17,7 +17,7 @@
<script type="text/javascript">
var DOCUMENTATION_OPTIONS = {
URL_ROOT: '',
VERSION: '0.5.2',
VERSION: '0.5.3',
COLLAPSE_INDEX: false,
FILE_SUFFIX: '.html',
HAS_SOURCE: true

File diff suppressed because one or more lines are too long

View file

@ -17,7 +17,7 @@
<script type="text/javascript">
var DOCUMENTATION_OPTIONS = {
URL_ROOT: '../',
VERSION: '0.5.2',
VERSION: '0.5.3',
COLLAPSE_INDEX: false,
FILE_SUFFIX: '.html',
HAS_SOURCE: true

View file

@ -17,7 +17,7 @@
<script type="text/javascript">
var DOCUMENTATION_OPTIONS = {
URL_ROOT: '../',
VERSION: '0.5.2',
VERSION: '0.5.3',
COLLAPSE_INDEX: false,
FILE_SUFFIX: '.html',
HAS_SOURCE: true
@ -79,7 +79,10 @@ essential aspects of using OpenMC to perform neutronic simulations.</p>
<li class="toctree-l3"><a class="reference internal" href="install.html#using-cross-sections-from-serpent">2.3.3. Using Cross Sections from Serpent</a></li>
</ul>
</li>
<li class="toctree-l2"><a class="reference internal" href="install.html#running-openmc">2.4. Running OpenMC</a></li>
<li class="toctree-l2"><a class="reference internal" href="install.html#running-openmc">2.4. Running OpenMC</a><ul>
<li class="toctree-l3"><a class="reference internal" href="install.html#command-line-flags">2.4.1. Command-Line Flags</a></li>
</ul>
</li>
<li class="toctree-l2"><a class="reference internal" href="install.html#configuring-input-validation-with-gnu-emacs-nxml-mode">2.5. Configuring Input Validation with GNU Emacs nXML mode</a></li>
</ul>
</li>
@ -102,9 +105,11 @@ essential aspects of using OpenMC to perform neutronic simulations.</p>
<li class="toctree-l3"><a class="reference internal" href="input.html#source-element">3.2.14. <tt class="docutils literal"><span class="pre">&lt;source&gt;</span></tt> Element</a></li>
<li class="toctree-l3"><a class="reference internal" href="input.html#state-point-element">3.2.15. <tt class="docutils literal"><span class="pre">&lt;state_point&gt;</span></tt> Element</a></li>
<li class="toctree-l3"><a class="reference internal" href="input.html#survival-biasing-element">3.2.16. <tt class="docutils literal"><span class="pre">&lt;survival_biasing&gt;</span></tt> Element</a></li>
<li class="toctree-l3"><a class="reference internal" href="input.html#trace-element">3.2.17. <tt class="docutils literal"><span class="pre">&lt;trace&gt;</span></tt> Element</a></li>
<li class="toctree-l3"><a class="reference internal" href="input.html#uniform-fs-element">3.2.18. <tt class="docutils literal"><span class="pre">&lt;uniform_fs&gt;</span></tt> Element</a></li>
<li class="toctree-l3"><a class="reference internal" href="input.html#verbosity-element">3.2.19. <tt class="docutils literal"><span class="pre">&lt;verbosity&gt;</span></tt> Element</a></li>
<li class="toctree-l3"><a class="reference internal" href="input.html#threads-element">3.2.17. <tt class="docutils literal"><span class="pre">&lt;threads&gt;</span></tt> Element</a></li>
<li class="toctree-l3"><a class="reference internal" href="input.html#trace-element">3.2.18. <tt class="docutils literal"><span class="pre">&lt;trace&gt;</span></tt> Element</a></li>
<li class="toctree-l3"><a class="reference internal" href="input.html#track-element">3.2.19. <tt class="docutils literal"><span class="pre">&lt;track&gt;</span></tt> Element</a></li>
<li class="toctree-l3"><a class="reference internal" href="input.html#uniform-fs-element">3.2.20. <tt class="docutils literal"><span class="pre">&lt;uniform_fs&gt;</span></tt> Element</a></li>
<li class="toctree-l3"><a class="reference internal" href="input.html#verbosity-element">3.2.21. <tt class="docutils literal"><span class="pre">&lt;verbosity&gt;</span></tt> Element</a></li>
</ul>
</li>
<li class="toctree-l2"><a class="reference internal" href="input.html#geometry-specification-geometry-xml">3.3. Geometry Specification &#8211; geometry.xml</a><ul>
@ -131,17 +136,19 @@ essential aspects of using OpenMC to perform neutronic simulations.</p>
<li class="toctree-l2"><a class="reference internal" href="input.html#cmfd-specification-cmfd-xml">3.7. CMFD Specification &#8211; cmfd.xml</a><ul>
<li class="toctree-l3"><a class="reference internal" href="input.html#active-flush-element">3.7.1. <tt class="docutils literal"><span class="pre">&lt;active_flush&gt;</span></tt> Element</a></li>
<li class="toctree-l3"><a class="reference internal" href="input.html#begin-element">3.7.2. <tt class="docutils literal"><span class="pre">&lt;begin&gt;</span></tt> Element</a></li>
<li class="toctree-l3"><a class="reference internal" href="input.html#feedback-element">3.7.3. <tt class="docutils literal"><span class="pre">&lt;feedback&gt;</span></tt> Element</a></li>
<li class="toctree-l3"><a class="reference internal" href="input.html#inactive-element">3.7.4. <tt class="docutils literal"><span class="pre">&lt;inactive&gt;</span></tt> Element</a></li>
<li class="toctree-l3"><a class="reference internal" href="input.html#keff-tol-element">3.7.5. <tt class="docutils literal"><span class="pre">&lt;keff_tol&gt;</span></tt> Element</a></li>
<li class="toctree-l3"><a class="reference internal" href="input.html#ksp-monitor-element">3.7.6. <tt class="docutils literal"><span class="pre">&lt;ksp_monitor&gt;</span></tt> Element</a></li>
<li class="toctree-l3"><a class="reference internal" href="input.html#id2">3.7.7. <tt class="docutils literal"><span class="pre">&lt;mesh&gt;</span></tt> Element</a></li>
<li class="toctree-l3"><a class="reference internal" href="input.html#norm-element">3.7.8. <tt class="docutils literal"><span class="pre">&lt;norm&gt;</span></tt> Element</a></li>
<li class="toctree-l3"><a class="reference internal" href="input.html#n-procs-cmfd-element">3.7.9. <tt class="docutils literal"><span class="pre">&lt;n_procs_cmfd&gt;</span></tt> Element</a></li>
<li class="toctree-l3"><a class="reference internal" href="input.html#power-monitor-element">3.7.10. <tt class="docutils literal"><span class="pre">&lt;power_monitor&gt;</span></tt> Element</a></li>
<li class="toctree-l3"><a class="reference internal" href="input.html#write-balance-element">3.7.11. <tt class="docutils literal"><span class="pre">&lt;write_balance&gt;</span></tt> Element</a></li>
<li class="toctree-l3"><a class="reference internal" href="input.html#write-hdf5-element">3.7.12. <tt class="docutils literal"><span class="pre">&lt;write_hdf5&gt;</span></tt> Element</a></li>
<li class="toctree-l3"><a class="reference internal" href="input.html#write-matrices-element">3.7.13. <tt class="docutils literal"><span class="pre">&lt;write_matrices&gt;</span></tt> Element</a></li>
<li class="toctree-l3"><a class="reference internal" href="input.html#display-element">3.7.3. <tt class="docutils literal"><span class="pre">&lt;display&gt;</span></tt> Element</a></li>
<li class="toctree-l3"><a class="reference internal" href="input.html#feedback-element">3.7.4. <tt class="docutils literal"><span class="pre">&lt;feedback&gt;</span></tt> Element</a></li>
<li class="toctree-l3"><a class="reference internal" href="input.html#inactive-element">3.7.5. <tt class="docutils literal"><span class="pre">&lt;inactive&gt;</span></tt> Element</a></li>
<li class="toctree-l3"><a class="reference internal" href="input.html#inactive-flush-element">3.7.6. <tt class="docutils literal"><span class="pre">&lt;inactive_flush&gt;</span></tt> Element</a></li>
<li class="toctree-l3"><a class="reference internal" href="input.html#ksp-monitor-element">3.7.7. <tt class="docutils literal"><span class="pre">&lt;ksp_monitor&gt;</span></tt> Element</a></li>
<li class="toctree-l3"><a class="reference internal" href="input.html#id2">3.7.8. <tt class="docutils literal"><span class="pre">&lt;mesh&gt;</span></tt> Element</a></li>
<li class="toctree-l3"><a class="reference internal" href="input.html#norm-element">3.7.9. <tt class="docutils literal"><span class="pre">&lt;norm&gt;</span></tt> Element</a></li>
<li class="toctree-l3"><a class="reference internal" href="input.html#num-flushes-element">3.7.10. <tt class="docutils literal"><span class="pre">&lt;num_flushes&gt;</span></tt> Element</a></li>
<li class="toctree-l3"><a class="reference internal" href="input.html#power-monitor-element">3.7.11. <tt class="docutils literal"><span class="pre">&lt;power_monitor&gt;</span></tt> Element</a></li>
<li class="toctree-l3"><a class="reference internal" href="input.html#run-adjoint-element">3.7.12. <tt class="docutils literal"><span class="pre">&lt;run_adjoint&gt;</span></tt> Element</a></li>
<li class="toctree-l3"><a class="reference internal" href="input.html#snes-monitor-element">3.7.13. <tt class="docutils literal"><span class="pre">&lt;snes_monitor&gt;</span></tt> Element</a></li>
<li class="toctree-l3"><a class="reference internal" href="input.html#solver-element">3.7.14. <tt class="docutils literal"><span class="pre">&lt;solver&gt;</span></tt> Element</a></li>
<li class="toctree-l3"><a class="reference internal" href="input.html#write-matrices-element">3.7.15. <tt class="docutils literal"><span class="pre">&lt;write_matrices&gt;</span></tt> Element</a></li>
</ul>
</li>
</ul>
@ -159,6 +166,7 @@ essential aspects of using OpenMC to perform neutronic simulations.</p>
<li class="toctree-l3"><a class="reference internal" href="processing.html#getting-data-into-matlab">4.2.4. Getting Data into MATLAB</a></li>
</ul>
</li>
<li class="toctree-l2"><a class="reference internal" href="processing.html#particle-track-visualization">4.3. Particle Track Visualization</a></li>
</ul>
</li>
<li class="toctree-l1"><a class="reference internal" href="troubleshoot.html">5. Troubleshooting</a><ul>

View file

@ -17,7 +17,7 @@
<script type="text/javascript">
var DOCUMENTATION_OPTIONS = {
URL_ROOT: '../',
VERSION: '0.5.2',
VERSION: '0.5.3',
COLLAPSE_INDEX: false,
FILE_SUFFIX: '.html',
HAS_SOURCE: true
@ -447,16 +447,29 @@ survival biasing, otherwise known as implicit capture or absorption.</p>
<blockquote>
<div><em>Default</em>: false</div></blockquote>
</div>
<div class="section" id="threads-element">
<span id="trace"></span><h3>3.2.17. <tt class="docutils literal"><span class="pre">&lt;threads&gt;</span></tt> Element<a class="headerlink" href="#threads-element" title="Permalink to this headline"></a></h3>
<p>The <tt class="docutils literal"><span class="pre">&lt;threads&gt;</span></tt> element indicates the number of OpenMP threads to be used for
a simulation. It has no attributes and accepts a positive integer value.</p>
<blockquote>
<div><em>Default</em>: None (Determined by environment variable <span class="target" id="index-1"></span><tt class="xref std std-envvar docutils literal"><span class="pre">OMP_NUM_THREADS</span></tt>)</div></blockquote>
</div>
<div class="section" id="trace-element">
<span id="trace"></span><h3>3.2.17. <tt class="docutils literal"><span class="pre">&lt;trace&gt;</span></tt> Element<a class="headerlink" href="#trace-element" title="Permalink to this headline"></a></h3>
<h3>3.2.18. <tt class="docutils literal"><span class="pre">&lt;trace&gt;</span></tt> Element<a class="headerlink" href="#trace-element" title="Permalink to this headline"></a></h3>
<p>The <tt class="docutils literal"><span class="pre">&lt;trace&gt;</span></tt> element can be used to print out detailed information about a
single particle during a simulation. This element should be followed by three
integers: the batch number, generation number, and particle number.</p>
<blockquote>
<div><em>Default</em>: None</div></blockquote>
</div>
<div class="section" id="track-element">
<span id="track"></span><h3>3.2.19. <tt class="docutils literal"><span class="pre">&lt;track&gt;</span></tt> Element<a class="headerlink" href="#track-element" title="Permalink to this headline"></a></h3>
<p>The <tt class="docutils literal"><span class="pre">&lt;track&gt;</span></tt> element specifies particles for which OpenMC will output binary files describing particle position at every step of its transport. This element should be followed by triplets of integers. Each triplet describes one particle. The integers in each triplet specify the batch number, generation number, and particle number, respectively.</p>
<blockquote>
<div><em>Default</em>: None</div></blockquote>
</div>
<div class="section" id="uniform-fs-element">
<h3>3.2.18. <tt class="docutils literal"><span class="pre">&lt;uniform_fs&gt;</span></tt> Element<a class="headerlink" href="#uniform-fs-element" title="Permalink to this headline"></a></h3>
<h3>3.2.20. <tt class="docutils literal"><span class="pre">&lt;uniform_fs&gt;</span></tt> Element<a class="headerlink" href="#uniform-fs-element" title="Permalink to this headline"></a></h3>
<p>The <tt class="docutils literal"><span class="pre">&lt;uniform_fs&gt;</span></tt> element describes a mesh that is used for re-weighting
source sites at every generation based on the uniform fission site methodology
described in Kelly et al., &#8220;MC21 Analysis of the Nuclear Energy Agency Monte
@ -485,7 +498,7 @@ problem. It has the following attributes/sub-elements:</p>
</div></blockquote>
</div>
<div class="section" id="verbosity-element">
<h3>3.2.19. <tt class="docutils literal"><span class="pre">&lt;verbosity&gt;</span></tt> Element<a class="headerlink" href="#verbosity-element" title="Permalink to this headline"></a></h3>
<h3>3.2.21. <tt class="docutils literal"><span class="pre">&lt;verbosity&gt;</span></tt> Element<a class="headerlink" href="#verbosity-element" title="Permalink to this headline"></a></h3>
<p>The <tt class="docutils literal"><span class="pre">&lt;verbosity&gt;</span></tt> element tells the code how much information to display to
the standard output. A higher verbosity corresponds to more information being
displayed. This element takes the following attributes:</p>
@ -697,9 +710,10 @@ specified.</p>
<div class="section" id="lattice-element">
<h3>3.3.3. <tt class="docutils literal"><span class="pre">&lt;lattice&gt;</span></tt> Element<a class="headerlink" href="#lattice-element" title="Permalink to this headline"></a></h3>
<p>The <tt class="docutils literal"><span class="pre">&lt;lattice&gt;</span></tt> can be used to represent repeating structures (e.g. fuel pins
in an assembly) or other geometry which naturally fits into a two-dimensional
structured mesh. Each cell within the lattice is filled with a specified
universe. A <tt class="docutils literal"><span class="pre">&lt;lattice&gt;</span></tt> accepts the following attributes or sub-elements:</p>
in an assembly) or other geometry which naturally fits into a two- or
three-dimensional structured mesh. Each cell within the lattice is filled with a
specified universe. A <tt class="docutils literal"><span class="pre">&lt;lattice&gt;</span></tt> accepts the following attributes or
sub-elements:</p>
<blockquote>
<div><table class="docutils field-list" frame="void" rules="none">
<col class="field-name" />
@ -713,16 +727,17 @@ accepted option is &#8220;rectangular&#8221;.</p>
<p><em>Default</em>: rectangular</p>
</td>
</tr>
<tr class="field-odd field"><th class="field-name">dimension:</th><td class="field-body"><p class="first">Two integers representing the number of lattice cells in the x- and y-
directions, respectively.</p>
<tr class="field-odd field"><th class="field-name">dimension:</th><td class="field-body"><p class="first">Two or three integers representing the number of lattice cells in the x- and
y- (and z-) directions, respectively.</p>
<p><em>Default</em>: None</p>
</td>
</tr>
<tr class="field-even field"><th class="field-name">lower_left:</th><td class="field-body"><p class="first">The coordinates of the lower-left corner of the lattice.</p>
<tr class="field-even field"><th class="field-name">lower_left:</th><td class="field-body"><p class="first">The coordinates of the lower-left corner of the lattice. If the lattice is
two-dimensional, only the x- and y-coordinates are specified.</p>
<p><em>Default</em>: None</p>
</td>
</tr>
<tr class="field-odd field"><th class="field-name">width:</th><td class="field-body"><p class="first">The width of the lattice cell in the x- and y- directions.</p>
<tr class="field-odd field"><th class="field-name">width:</th><td class="field-body"><p class="first">The width of the lattice cell in the x- and y- (and z-) directions.</p>
<p><em>Default</em>: None</p>
</td>
</tr>
@ -1232,8 +1247,27 @@ without bias.</p>
<blockquote>
<div><em>Default</em>: 1</div></blockquote>
</div>
<div class="section" id="display-element">
<h3>3.7.3. <tt class="docutils literal"><span class="pre">&lt;display&gt;</span></tt> Element<a class="headerlink" href="#display-element" title="Permalink to this headline"></a></h3>
<p>The <tt class="docutils literal"><span class="pre">&lt;display&gt;</span></tt> element sets one additional CMFD output column. Options are:</p>
<ul>
<li><p class="first">&#8220;balance&#8221; - prints the RMS [%] of the resdiual from the neutron balance equation
on CMFD tallies.</p>
</li>
<li><p class="first">&#8220;dominance&#8221; - prints the estimated dominance ratio from the CMFD iterations.
<strong>This will only work for power iteration eigensolver</strong>.</p>
</li>
<li><p class="first">&#8220;entropy&#8221; - prints the <em>entropy</em> of the CMFD predicted fission source.
<strong>Can only be used if OpenMC entropy is active as well</strong>.</p>
</li>
<li><p class="first">&#8220;source&#8221; - prints the RMS [%] between the OpenMC fission source and CMFD
fission source.</p>
<p><em>Default</em>: None</p>
</li>
</ul>
</div>
<div class="section" id="feedback-element">
<h3>3.7.3. <tt class="docutils literal"><span class="pre">&lt;feedback&gt;</span></tt> Element<a class="headerlink" href="#feedback-element" title="Permalink to this headline"></a></h3>
<h3>3.7.4. <tt class="docutils literal"><span class="pre">&lt;feedback&gt;</span></tt> Element<a class="headerlink" href="#feedback-element" title="Permalink to this headline"></a></h3>
<p>The <tt class="docutils literal"><span class="pre">&lt;feedback&gt;</span></tt> element controls whether or not the CMFD diffusion result is
used to adjust the weight of fission source neutrons on the next OpenMC batch.
It can be turned on with &#8220;true&#8221; and off with &#8220;false&#8221;.</p>
@ -1241,7 +1275,7 @@ It can be turned on with &#8220;true&#8221; and off with &#8220;false&#8221;.</p
<div><em>Default</em>: false</div></blockquote>
</div>
<div class="section" id="inactive-element">
<h3>3.7.4. <tt class="docutils literal"><span class="pre">&lt;inactive&gt;</span></tt> Element<a class="headerlink" href="#inactive-element" title="Permalink to this headline"></a></h3>
<h3>3.7.5. <tt class="docutils literal"><span class="pre">&lt;inactive&gt;</span></tt> Element<a class="headerlink" href="#inactive-element" title="Permalink to this headline"></a></h3>
<p>The <tt class="docutils literal"><span class="pre">&lt;inactive&gt;</span></tt> element controls if cmfd tallies should be accumulated
during inactive batches. For some applications, CMFD tallies may not be
needed until the start of active batches. This option can be turned on
@ -1249,16 +1283,16 @@ with &#8220;true&#8221; and off with &#8220;false&#8221;</p>
<blockquote>
<div><em>Default</em>: true</div></blockquote>
</div>
<div class="section" id="keff-tol-element">
<h3>3.7.5. <tt class="docutils literal"><span class="pre">&lt;keff_tol&gt;</span></tt> Element<a class="headerlink" href="#keff-tol-element" title="Permalink to this headline"></a></h3>
<p>The <tt class="docutils literal"><span class="pre">&lt;keff_tol&gt;</span></tt> element specifies acceptance criteria of a CMFD eigenvalue.
If the CMFD eigenvalue and OpenMC batch eigenvalue are within this tolerance,
CMFD is allowed to modify source neutron weights.</p>
<div class="section" id="inactive-flush-element">
<h3>3.7.6. <tt class="docutils literal"><span class="pre">&lt;inactive_flush&gt;</span></tt> Element<a class="headerlink" href="#inactive-flush-element" title="Permalink to this headline"></a></h3>
<p>The <tt class="docutils literal"><span class="pre">&lt;inactive_flush&gt;</span></tt> element controls when CMFD tallies are reset during
inactive batches. The integer set here is the interval at which this reset
occurs. The amout of resets is controlled with the <tt class="docutils literal"><span class="pre">&lt;num_flushes&gt;</span></tt> element.</p>
<blockquote>
<div><em>Default</em>: 0.005</div></blockquote>
<div><em>Defualt</em>: 9999</div></blockquote>
</div>
<div class="section" id="ksp-monitor-element">
<h3>3.7.6. <tt class="docutils literal"><span class="pre">&lt;ksp_monitor&gt;</span></tt> Element<a class="headerlink" href="#ksp-monitor-element" title="Permalink to this headline"></a></h3>
<h3>3.7.7. <tt class="docutils literal"><span class="pre">&lt;ksp_monitor&gt;</span></tt> Element<a class="headerlink" href="#ksp-monitor-element" title="Permalink to this headline"></a></h3>
<p>The <tt class="docutils literal"><span class="pre">&lt;ksp_monitor&gt;</span></tt> element is used to view the convergence of linear GMRES
iterations in PETSc. This option can be turned on with &#8220;true&#8221; and turned off
with &#8220;false&#8221;.</p>
@ -1266,44 +1300,40 @@ with &#8220;false&#8221;.</p>
<div><em>Default</em>: false</div></blockquote>
</div>
<div class="section" id="id2">
<h3>3.7.7. <tt class="docutils literal"><span class="pre">&lt;mesh&gt;</span></tt> Element<a class="headerlink" href="#id2" title="Permalink to this headline"></a></h3>
<p>If a structured mesh is desired as a filter for a tally, it must be specified in
a separate element with the tag name <tt class="docutils literal"><span class="pre">&lt;mesh&gt;</span></tt>. This element has the following
<h3>3.7.8. <tt class="docutils literal"><span class="pre">&lt;mesh&gt;</span></tt> Element<a class="headerlink" href="#id2" title="Permalink to this headline"></a></h3>
<p>The CMFD mesh is a structured Cartesian mesh. This element has the following
attributes/sub-elements:</p>
<blockquote>
<div><table class="docutils field-list" frame="void" rules="none">
<col class="field-name" />
<col class="field-body" />
<tbody valign="top">
<tr class="field-odd field"><th class="field-name">type:</th><td class="field-body"><p class="first">The type of structured mesh. Only &#8220;rectangular&#8221; is currently supported.</p>
</td>
</tr>
<tr class="field-even field"><th class="field-name">lower_left:</th><td class="field-body"><p class="first">The lower-left corner of the structured mesh. If only two coordinate are
<tr class="field-odd field"><th class="field-name">lower_left:</th><td class="field-body"><p class="first">The lower-left corner of the structured mesh. If only two coordinate are
given, it is assumed that the mesh is an x-y mesh.</p>
</td>
</tr>
<tr class="field-odd field"><th class="field-name">upper_right:</th><td class="field-body"><p class="first">The upper-right corner of the structrued mesh. If only two coordinate are
<tr class="field-even field"><th class="field-name">upper_right:</th><td class="field-body"><p class="first">The upper-right corner of the structrued mesh. If only two coordinate are
given, it is assumed that the mesh is an x-y mesh.</p>
</td>
</tr>
<tr class="field-even field"><th class="field-name">dimension:</th><td class="field-body"><p class="first">The number of mesh cells in each direction.</p>
<tr class="field-odd field"><th class="field-name">dimension:</th><td class="field-body"><p class="first">The number of mesh cells in each direction.</p>
</td>
</tr>
<tr class="field-odd field"><th class="field-name">width:</th><td class="field-body"><p class="first">The width of mesh cells in each direction.</p>
<tr class="field-even field"><th class="field-name">width:</th><td class="field-body"><p class="first">The width of mesh cells in each direction.</p>
</td>
</tr>
<tr class="field-even field"><th class="field-name">energy:</th><td class="field-body"><p class="first">Energy bins [in MeV], listed in ascending order (e.g. 0.0 0.625e-7 20.0)
<tr class="field-odd field"><th class="field-name">energy:</th><td class="field-body"><p class="first">Energy bins [in MeV], listed in ascending order (e.g. 0.0 0.625e-7 20.0)
for CMFD tallies and acceleration. If no energy bins are listed, OpenMC
automatically assumes a one energy group calculation over the entire
energy range.</p>
</td>
</tr>
<tr class="field-odd field"><th class="field-name">albedo:</th><td class="field-body"><p class="first">Surface ratio of incoming to outgoing partial currents on global boundary
<tr class="field-even field"><th class="field-name">albedo:</th><td class="field-body"><p class="first">Surface ratio of incoming to outgoing partial currents on global boundary
conditions. They are listed in the following order: -x +x -y +y -z +z.</p>
<p><em>Default</em>: 1.0 1.0 1.0 1.0 1.0 1.0</p>
</td>
</tr>
<tr class="field-even field"><th class="field-name">map:</th><td class="field-body"><p class="first">An optional acceleration map can be specified to overlay on the coarse
<tr class="field-odd field"><th class="field-name">map:</th><td class="field-body"><p class="first">An optional acceleration map can be specified to overlay on the coarse
mesh spatial grid. If this option is used a <tt class="docutils literal"><span class="pre">1</span></tt> is used for a
non-accelerated region and a <tt class="docutils literal"><span class="pre">2</span></tt> is used for an accelerated region.
For a simple 4x4 coarse mesh with a 2x2 fuel lattice surrounded by
@ -1331,7 +1361,7 @@ of two of these will yield the third.</p>
</div></blockquote>
</div>
<div class="section" id="norm-element">
<h3>3.7.8. <tt class="docutils literal"><span class="pre">&lt;norm&gt;</span></tt> Element<a class="headerlink" href="#norm-element" title="Permalink to this headline"></a></h3>
<h3>3.7.9. <tt class="docutils literal"><span class="pre">&lt;norm&gt;</span></tt> Element<a class="headerlink" href="#norm-element" title="Permalink to this headline"></a></h3>
<p>The <tt class="docutils literal"><span class="pre">&lt;norm&gt;</span></tt> element is used to normalize the CMFD fission source distribution
to a particular value. For example, if a fission source is calculated for a
17 x 17 lattice of pins, the fission source may be normalized to the number of
@ -1341,38 +1371,44 @@ not impact the calculation.</p>
<blockquote>
<div><em>Default</em>: 1.0</div></blockquote>
</div>
<div class="section" id="n-procs-cmfd-element">
<h3>3.7.9. <tt class="docutils literal"><span class="pre">&lt;n_procs_cmfd&gt;</span></tt> Element<a class="headerlink" href="#n-procs-cmfd-element" title="Permalink to this headline"></a></h3>
<p>The <tt class="docutils literal"><span class="pre">&lt;n_procs_cmfd&gt;</span></tt> element is used to set the number of processors used
for CMFD calculation. It should be less than or equal to the number of
processors used during OpenMC.</p>
<div class="section" id="num-flushes-element">
<h3>3.7.10. <tt class="docutils literal"><span class="pre">&lt;num_flushes&gt;</span></tt> Element<a class="headerlink" href="#num-flushes-element" title="Permalink to this headline"></a></h3>
<p>The <tt class="docutils literal"><span class="pre">&lt;num_flushes&gt;</span></tt> element controls the number of CMFD tally resets that
occur during inactive CMFD batches.</p>
<blockquote>
<div><em>Default</em>: 1</div></blockquote>
<div><em>Default</em>: 9999</div></blockquote>
</div>
<div class="section" id="power-monitor-element">
<h3>3.7.10. <tt class="docutils literal"><span class="pre">&lt;power_monitor&gt;</span></tt> Element<a class="headerlink" href="#power-monitor-element" title="Permalink to this headline"></a></h3>
<h3>3.7.11. <tt class="docutils literal"><span class="pre">&lt;power_monitor&gt;</span></tt> Element<a class="headerlink" href="#power-monitor-element" title="Permalink to this headline"></a></h3>
<p>The <tt class="docutils literal"><span class="pre">&lt;power_monitor&gt;</span></tt> element is used to view the convergence of power iteration.
This option can be turned on with &#8220;true&#8221; and turned off with &#8220;false&#8221;.</p>
<blockquote>
<div><em>Default</em>: false</div></blockquote>
</div>
<div class="section" id="write-balance-element">
<h3>3.7.11. <tt class="docutils literal"><span class="pre">&lt;write_balance&gt;</span></tt> Element<a class="headerlink" href="#write-balance-element" title="Permalink to this headline"></a></h3>
<p>The <tt class="docutils literal"><span class="pre">&lt;write_balance&gt;</span></tt> element is used to view the balance of OpenMC tally
residuals for every coarse mesh region and energy group. This option can be
turned on with &#8220;true&#8221; and off with &#8220;false&#8221;.</p>
<div class="section" id="run-adjoint-element">
<h3>3.7.12. <tt class="docutils literal"><span class="pre">&lt;run_adjoint&gt;</span></tt> Element<a class="headerlink" href="#run-adjoint-element" title="Permalink to this headline"></a></h3>
<p>The <tt class="docutils literal"><span class="pre">&lt;run_adjoint&gt;</span></tt> element can be turned on with &#8220;true&#8221; to have an adjoint
calculation be performed on the last batch when CMFD is active.</p>
<blockquote>
<div><em>Default</em>: false</div></blockquote>
</div>
<div class="section" id="write-hdf5-element">
<h3>3.7.12. <tt class="docutils literal"><span class="pre">&lt;write_hdf5&gt;</span></tt> Element<a class="headerlink" href="#write-hdf5-element" title="Permalink to this headline"></a></h3>
<p>The <tt class="docutils literal"><span class="pre">&lt;write_hdf5&gt;</span></tt> element can be turned on with &#8220;true&#8221; to get an
HDF5 output file of CMFD results.</p>
<div class="section" id="snes-monitor-element">
<h3>3.7.13. <tt class="docutils literal"><span class="pre">&lt;snes_monitor&gt;</span></tt> Element<a class="headerlink" href="#snes-monitor-element" title="Permalink to this headline"></a></h3>
<p>The <tt class="docutils literal"><span class="pre">&lt;snes_monitor&gt;</span></tt> element is used to view the convergence of the nonlinear SNES
function in PETSc. This option can be turned on with &#8220;true&#8221; and turned off with &#8220;false&#8221;.</p>
<blockquote>
<div><em>Default</em>: false</div></blockquote>
</div>
<div class="section" id="solver-element">
<h3>3.7.14. <tt class="docutils literal"><span class="pre">&lt;solver&gt;</span></tt> Element<a class="headerlink" href="#solver-element" title="Permalink to this headline"></a></h3>
<p>The <tt class="docutils literal"><span class="pre">&lt;solver&gt;</span></tt> element controls whether the CMFD eigenproblem is solved with
standard power iteration or nonlinear Jacobian-free Newton Krylov (JFNK).
By setting &#8220;power&#8221;, power iteration is used and by setting &#8220;jfnk&#8221;, JFNK is used.</p>
<blockquote>
<div><em>Default</em>: power</div></blockquote>
</div>
<div class="section" id="write-matrices-element">
<h3>3.7.13. <tt class="docutils literal"><span class="pre">&lt;write_matrices&gt;</span></tt> Element<a class="headerlink" href="#write-matrices-element" title="Permalink to this headline"></a></h3>
<h3>3.7.15. <tt class="docutils literal"><span class="pre">&lt;write_matrices&gt;</span></tt> Element<a class="headerlink" href="#write-matrices-element" title="Permalink to this headline"></a></h3>
<p>The <tt class="docutils literal"><span class="pre">&lt;write_matrices&gt;</span></tt> element is used to view the PETSc sparse matrices
created when solving CMFD equations. These binary output files can be imported
into MATLAB using PETSc-MATLAB utilities. This option can be

View file

@ -17,7 +17,7 @@
<script type="text/javascript">
var DOCUMENTATION_OPTIONS = {
URL_ROOT: '../',
VERSION: '0.5.2',
VERSION: '0.5.3',
COLLAPSE_INDEX: false,
FILE_SUFFIX: '.html',
HAS_SOURCE: true
@ -111,12 +111,26 @@ sudo apt-get install openmpi1.6-bin libopenmpi1.6-dev</pre>
<p>To compile with support for <a class="reference external" href="http://www.hdfgroup.org/HDF5/">HDF5</a> output (highly recommended), you will
need to have HDF5 installed on your computer. The installed version will
need to have been compiled with the same compiler you intend to compile
OpenMC with.</p>
OpenMC with. <a class="reference external" href="http://www.hdfgroup.org/HDF5/">HDF5</a> must be built with parallel I/O features if you intend
to use <a class="reference external" href="http://www.hdfgroup.org/HDF5/">HDF5</a> with MPI. An example of configuring <a class="reference external" href="http://www.hdfgroup.org/HDF5/">HDF5</a> is listed below:</p>
<div class="highlight-python"><pre>FC=/opt/mpich/3.0.4-gnu/bin/mpif90 CC=/opt/mpich/3.0.4-gnu/bin/mpicc \
./configure --prefix=/opt/hdf5/1.8.11-gnu --enable-fortran \
--enable-fortran2003 --enable-parallel</pre>
</div>
<p>You may omit &#8216;&#8211;enable-parallel&#8217; if you want to compile <a class="reference external" href="http://www.hdfgroup.org/HDF5/">HDF5</a> in serial.</p>
</li>
<li><p class="first"><a class="reference external" href="http://www.mcs.anl.gov/petsc/">PETSc</a> for CMFD acceleration</p>
<p>To enable CMFD acceleration, you will need to have <a class="reference external" href="http://www.mcs.anl.gov/petsc/">PETSc</a> installed on
your computer. The installed version will need to have been compiled with
the same compiler you intend to compile OpenMC with.</p>
<p>To enable CMFD acceleration, you will need to have <a class="reference external" href="http://www.mcs.anl.gov/petsc/">PETSc</a> (3.4.2 or higher)
installed on your computer. The installed version will need to have been
compiled with the same compiler you intend to compile OpenMC with. OpenMC
requires <a class="reference external" href="http://www.mcs.anl.gov/petsc/">PETSc</a> to be configured with Fortran datatypes. An example of
configuring <a class="reference external" href="http://www.mcs.anl.gov/petsc/">PETSc</a> is listed below:</p>
<div class="highlight-python"><pre>./configure --prefix=/opt/petsc/3.4.2-gnu --download-f-blas-lapack \
--with-mpi-dir=/opt/mpich/3.0.4-gnu/ --with-shared-libraries=0 \
--with-fortran-datatypes</pre>
</div>
<p>The BLAS/LAPACK library is not required to be downloaded and can be linked
explicitly (e.g., Intel MLK library).</p>
</li>
<li><p class="first"><a class="reference external" href="http://git-scm.com">git</a> version control software for obtaining source code</p>
</li>
@ -135,6 +149,11 @@ setup, the following command will download the full source code from the GitHub
repository:</p>
<div class="highlight-python"><pre>git clone git://github.com/mit-crpg/openmc.git</pre>
</div>
<p>By default, the cloned repository will be set to the development branch. To
switch to the source of the latest stable release, run the following commands:</p>
<div class="highlight-python"><pre>cd openmc/src
git checkout master</pre>
</div>
</div>
<div class="section" id="build-configuration">
<h3>2.2.3. Build Configuration<a class="headerlink" href="#build-configuration" title="Permalink to this headline"></a></h3>
@ -159,6 +178,9 @@ Intel Fortran, this compiles with -O3.</dd>
<dt>MPI</dt>
<dd>Enables parallel runs using the Message Passing Interface. The MPI_DIR
variable should be set to the base directory of the MPI implementation.</dd>
<dt>OPENMP</dt>
<dd>Enables shared-memory parallelism using the OpenMP API. The Fortran compiler
being used must support OpenMP.</dd>
<dt>HDF5</dt>
<dd>Enables HDF5 output in addition to normal screen and text file output. The
HDF5_DIR variable should be set to the base directory of the HDF5
@ -314,6 +336,43 @@ openmc
</div>
<p>Note that in the latter case, any output files will be placed in the present
working directory which may be different from <tt class="docutils literal"><span class="pre">/home/username/somemodel</span></tt>.</p>
<div class="section" id="command-line-flags">
<h3>2.4.1. Command-Line Flags<a class="headerlink" href="#command-line-flags" title="Permalink to this headline"></a></h3>
<p>OpenMC accepts the following command line flags:</p>
<table class="docutils option-list" frame="void" rules="none">
<col class="option" />
<col class="description" />
<tbody valign="top">
<tr><td class="option-group" colspan="2">
<kbd><span class="option">-g</span>, <span class="option">--geometry-debug</span></kbd></td>
</tr>
<tr><td>&nbsp;</td><td>Run in geometry debugging mode, where cell overlaps are
checked for after each move of a particle</td></tr>
<tr><td class="option-group" colspan="2">
<kbd><span class="option">-n</span>, <span class="option">--particles <var>N</var></span></kbd></td>
</tr>
<tr><td>&nbsp;</td><td>Use <em>N</em> particles per generation or batch</td></tr>
<tr><td class="option-group">
<kbd><span class="option">-p</span>, <span class="option">--plot</span></kbd></td>
<td>Run in plotting mode</td></tr>
<tr><td class="option-group" colspan="2">
<kbd><span class="option">-r</span>, <span class="option">--restart <var>file</var></span></kbd></td>
</tr>
<tr><td>&nbsp;</td><td>Restart a previous run from a state point or a particle
restart file</td></tr>
<tr><td class="option-group" colspan="2">
<kbd><span class="option">-s</span>, <span class="option">--threads <var>N</var></span></kbd></td>
</tr>
<tr><td>&nbsp;</td><td>Run with <em>N</em> OpenMP threads</td></tr>
<tr><td class="option-group">
<kbd><span class="option">-t</span>, <span class="option">--track</span></kbd></td>
<td>Write tracks for all particles</td></tr>
<tr><td class="option-group">
<kbd><span class="option">-v</span>, <span class="option">--version</span></kbd></td>
<td>Show version information</td></tr>
</tbody>
</table>
</div>
</div>
<div class="section" id="configuring-input-validation-with-gnu-emacs-nxml-mode">
<h2>2.5. Configuring Input Validation with GNU Emacs nXML mode<a class="headerlink" href="#configuring-input-validation-with-gnu-emacs-nxml-mode" title="Permalink to this headline"></a></h2>

View file

@ -17,7 +17,7 @@
<script type="text/javascript">
var DOCUMENTATION_OPTIONS = {
URL_ROOT: '../',
VERSION: '0.5.2',
VERSION: '0.5.3',
COLLAPSE_INDEX: false,
FILE_SUFFIX: '.html',
HAS_SOURCE: true
@ -380,6 +380,37 @@ file. Note that the data contained in the output from
and dumped to MATLAB in one step.</p>
</div>
</div>
<div class="section" id="particle-track-visualization">
<h2>4.3. Particle Track Visualization<a class="headerlink" href="#particle-track-visualization" title="Permalink to this headline"></a></h2>
<img alt="../_images/Tracks.png" src="../_images/Tracks.png" style="height: 200px;" />
<p>OpenMC can dump particle tracks—the position of particles as they are
transported through the geometry. There are two ways to make OpenMC output
tracks: all particle tracks through a commandline argument or specific particle
tracks through settings.xml.</p>
<p>Running OpenMC with the argument &#8220;-t&#8221;, &#8220;-track&#8221;, or &#8220;&#8211;track&#8221; will cause a track
file to be created for every particle transported in the code.</p>
<p>The settings.xml file can dictate that specific particle tracks are output.
These particles are specified withen a &#8216;&#8217;track&#8217;&#8217; element. The &#8216;&#8217;track&#8217;&#8217; element
should contain triplets of integers specifying the batch, generation, and
particle numbers, respectively. For example, to output the tracks for particles
3 and 4 of batch 1 and generation 2 the settings.xml file should contain:</p>
<div class="highlight-xml"><div class="highlight"><pre><span class="nt">&lt;track&gt;</span>
1 2 3
1 2 4
<span class="nt">&lt;/track&gt;</span>
</pre></div>
</div>
<p>After running OpenMC, the directory should contain a file of the form
&#8220;track_(batch #)_(generation #)_(particle #).(binary or h5)&#8221; for each particle
tracked. These track files can be converted into VTK poly data files with the
&#8220;track.py&#8221; utility. The usage of track.py is of the form &#8220;track.py [-o OUT] IN&#8221;
where OUT is the optional output filename and IN is one or more filenames
describing track files. The default output name is &#8220;track.pvtp&#8221;. A common
usage of track.py is &#8220;track.py track*.binary&#8221; which will use the data from all
binary track files in the directory to write a &#8220;track.pvtp&#8221; VTK output file.
The .pvtp file can then be read and plotted by 3d visualization programs such as
Paraview.</p>
</div>
</div>

View file

@ -17,7 +17,7 @@
<script type="text/javascript">
var DOCUMENTATION_OPTIONS = {
URL_ROOT: '../',
VERSION: '0.5.2',
VERSION: '0.5.3',
COLLAPSE_INDEX: false,
FILE_SUFFIX: '.html',
HAS_SOURCE: true
@ -169,7 +169,7 @@ and you still receive this error, it means that a surface/cell/lattice in your
geometry has been specified incorrectly or is missing.</p>
<p>The best way to debug this error is to turn on a trace for the particle getting
lost. After the error message, the code will display what batch, generation, and
particle number caused the error. In your settings.xml, add a <a class="reference internal" href="input.html#trace"><em>&lt;trace&gt; Element</em></a>
particle number caused the error. In your settings.xml, add a <a class="reference internal" href="input.html#trace"><em>&lt;threads&gt; Element</em></a>
followed by the batch, generation, and particle number. This will give you
detailed output every time that particle enters a cell, crosses a boundary, or
has a collision. For example, if you received this error at cycle 5, generation