Merge branch 'develop' into pyapi-data

This commit is contained in:
Paul Romano 2016-07-25 10:12:42 -05:00
commit a141ea9715
12 changed files with 90 additions and 77 deletions

View file

@ -126,7 +126,7 @@ if(CMAKE_Fortran_COMPILER_ID STREQUAL GNU)
list(APPEND ldflags -pg)
endif()
if(optimize)
list(APPEND f90flags -O3 -flto -fuse-linker-plugin)
list(APPEND f90flags -O3)
list(APPEND cflags -O3)
endif()
if(openmp)
@ -147,8 +147,7 @@ elseif(CMAKE_Fortran_COMPILER_ID STREQUAL Intel)
if(debug)
list(APPEND f90flags -g -warn -ftrapuv -fp-stack-check
"-check all" -fpe0)
list(APPEND cflags -g -warn -ftrapuv -fp-stack-check
"-check all" -fpe0)
list(APPEND cflags -g -w3 -ftrapuv -fp-stack-check)
list(APPEND ldflags -g)
endif()
if(profile)
@ -161,9 +160,9 @@ elseif(CMAKE_Fortran_COMPILER_ID STREQUAL Intel)
list(APPEND cflags -O3)
endif()
if(openmp)
list(APPEND f90flags -openmp)
list(APPEND cflags -openmp)
list(APPEND ldflags -openmp)
list(APPEND f90flags -qopenmp)
list(APPEND cflags -qopenmp)
list(APPEND ldflags -qopenmp)
endif()
elseif(CMAKE_Fortran_COMPILER_ID STREQUAL PGI)
@ -318,6 +317,7 @@ if(PYTHONINTERP_FOUND)
--root=debian/openmc --install-layout=deb
WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR})")
else()
install(CODE "set(ENV{PYTHONPATH} \"${CMAKE_INSTALL_PREFIX}/lib/python${PYTHON_VERSION_MAJOR}.${PYTHON_VERSION_MINOR}/site-packages\")")
install(CODE "execute_process(
COMMAND ${PYTHON_EXECUTABLE} setup.py install
--prefix=${CMAKE_INSTALL_PREFIX}

View file

@ -1,4 +1,4 @@
Copyright (c) 2011-2015 Massachusetts Institute of Technology
Copyright (c) 2011-2016 Massachusetts Institute of Technology
Permission is hereby granted, free of charge, to any person obtaining a copy of
this software and associated documentation files (the "Software"), to deal in

View file

@ -70,9 +70,9 @@ copyright = u'2011-2016, Massachusetts Institute of Technology'
# built documents.
#
# The short X.Y version.
version = "0.7"
version = "0.8"
# The full version, including alpha/beta/rc tags.
release = "0.7.1"
release = "0.8.0"
# The language for content autogenerated by Sphinx. Refer to documentation
# for a list of supported languages.

View file

@ -205,7 +205,7 @@ traveling in its current direction, it will not hit the surface. The complete
derivation for different types of surfaces used in OpenMC will be presented in
the following sections.
Since :math:f(x,y,z)` in general is quadratic in :math:`x`, :math:`y`, and
Since :math:`f(x,y,z)` in general is quadratic in :math:`x`, :math:`y`, and
:math:`z`, this implies that :math:`f(x_0 + du_0, y + dv_0, z + dw_0)` is
quadratic in :math:`d`. Thus we expect at most two real solutions to
:eq:`dist-to-boundary-1`. If no solutions to :eq:`dist-to-boundary-1` exist or

View file

@ -1,78 +1,83 @@
.. _releasenotes:
==============================
Release Notes for OpenMC 0.7.1
Release Notes for OpenMC 0.8.0
==============================
This release of OpenMC provides some substantial improvements over version
0.7.0. Non-simple cell regions can now be defined through the ``|`` (union) and
``~`` (complement) operators. Similar changes in the Python API also allow
complex cell regions to be defined. A true secondary particle bank now exists;
this is crucial for photon transport (to be added in the next minor release). A
rich API for multi-group cross section generation has been added via the
``openmc.mgxs`` Python module.
This release of OpenMC includes a few new major features including the
capability to perform neutron transport with multi-group cross section data as
well as experimental support for the windowed multipole method being developed
at MIT. Source sampling options have also been expanded significantly, with the
option to supply arbitrary tabular and discrete distributions for energy, angle,
and spatial coordinates.
Various improvements to tallies have also been made. It is now possible to
explicitly specify that a collision estimator be used in a tally. A new
``delayedgroup`` filter and ``delayed-nu-fission`` score allow a user to obtain
delayed fission neutron production rates filtered by delayed group. Finally, the
new ``inverse-velocity`` score may be useful for calculating kinetics
parameters.
The Python API has been significantly restructured in this release compared to
version 0.7.1. Any scripts written based on the version 0.7.1 API will likely
need to be rewritten. Some of the most visible changes include the following:
.. caution:: In previous versions, depending on how OpenMC was compiled binary
output was either given in HDF5 or a flat binary format. With this
version, all binary output is now HDF5 which means you **must**
have HDF5 in order to install OpenMC. Please consult the user's
guide for instructions on how to compile with HDF5.
- ``SettingsFile`` is now ``Settings``, ``MaterialsFile`` is now ``Materials``,
and ``TalliesFile`` is now ``Tallies``.
- The ``GeometryFile`` class no longer exists and is replaced by the
``Geometry`` class which now has an ``export_to_xml()`` method.
- Source distributions are defined using the ``Source`` class and assigned to
the ``Settings.source`` property.
- The ``Executor`` class no longer exists and is replaced by ``openmc.run()``
and ``openmc.plot_geometry()`` functions.
The Python API documentation has also been significantly expanded.
-------------------
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).
release, OpenMC has been tested on a variety of Linux distributions and Mac
OS X. Numerous users have reported working builds on Microsoft Windows, but your
mileage may vary. Memory requirements will vary depending on the size of the
problem at hand (mostly on the number of nuclides and tallies in the problem).
------------
New Features
------------
- Support for complex cell regions (union and complement operators)
- Generic quadric surface type
- Improved handling of secondary particles
- Binary output is now solely HDF5
- ``openmc.mgxs`` Python module enabling multi-group cross section generation
- Collision estimator for tallies
- Delayed fission neutron production tallies with ability to filter by delayed
group
- Inverse velocity tally score
- Performance improvements for binary search
- Performance improvements for reaction rate tallies
- Multi-group mode
- Vast improvements to the Python API
- Experimental windowed multipole capability
- Periodic boundary conditions
- Expanded source sampling options
- Distributed materials
- Subcritical multiplication support
- Improved method for reproducible URR table sampling
- Refactor of continuous-energy reaction data
- Improved documentation and new Jupyter notebooks
---------
Bug Fixes
---------
- 299322_: Bug with material filter when void material present
- d74840_: Fix triggers on tallies with multiple filters
- c29a81_: Correctly handle maximum transport energy
- 3edc23_: Fixes in the nu-scatter score
- 629e3b_: Assume unspecified surface coefficients are zero in Python API
- 5dbe8b_: Fix energy filters for openmc-plot-mesh-tally
- ff66f4_: Fixes in the openmc-plot-mesh-tally script
- 441fd4_: Fix bug in kappa-fission score
- 7e5974_: Allow fixed source simulations from Python API
- 70daa7_: Make sure MT=3 cross section is not used
- 40b05f_: Ensure source bank is resampled for fixed source runs
- 9586ed_: Fix two hexagonal lattice bugs
- a855e8_: Make sure graphite models don't error out on max events
- 7294a1_: Fix incorrect check on cmfd.xml
- 12f246_: Ensure number of realizations is written to statepoint
- 0227f4_: Fix bug when sampling multiple energy distributions
- 51deaa_: Prevent segfault when user specifies '18' on tally scores
- fed74b_: Prevent duplicate tally scores
- 8467ae_: Better threshold for allowable lost particles
- 493c6f_: Fix type of return argument for h5pget_driver_f
.. _299322: https://github.com/mit-crpg/openmc/commit/299322
.. _d74840: https://github.com/mit-crpg/openmc/commit/d74840
.. _c29a81: https://github.com/mit-crpg/openmc/commit/c29a81
.. _3edc23: https://github.com/mit-crpg/openmc/commit/3edc23
.. _629e3b: https://github.com/mit-crpg/openmc/commit/629e3b
.. _5dbe8b: https://github.com/mit-crpg/openmc/commit/5dbe8b
.. _ff66f4: https://github.com/mit-crpg/openmc/commit/ff66f4
.. _441fd4: https://github.com/mit-crpg/openmc/commit/441fd4
.. _7e5974: https://github.com/mit-crpg/openmc/commit/7e5974
.. _70daa7: https://github.com/mit-crpg/openmc/commit/70daa7
.. _40b05f: https://github.com/mit-crpg/openmc/commit/40b05f
.. _9586ed: https://github.com/mit-crpg/openmc/commit/9586ed
.. _a855e8: https://github.com/mit-crpg/openmc/commit/a855e8
.. _7294a1: https://github.com/mit-crpg/openmc/commit/7294a1
.. _12f246: https://github.com/mit-crpg/openmc/commit/12f246
.. _0227f4: https://github.com/mit-crpg/openmc/commit/0227f4
.. _51deaa: https://github.com/mit-crpg/openmc/commit/51deaa
.. _fed74b: https://github.com/mit-crpg/openmc/commit/fed74b
.. _8467ae: https://github.com/mit-crpg/openmc/commit/8467ae
.. _493c6f: https://github.com/mit-crpg/openmc/commit/493c6f
------------
Contributors
@ -81,11 +86,11 @@ Contributors
This release contains new contributions from the following people:
- `Will Boyd <wbinventor@gmail.com>`_
- `Sterling Harper <sterlingmharper@mit.edu>`_
- `Bryan Herman <hermab53@gmail.com>`_
- `Derek Gaston <friedmud@gmail.com>`_
- `Sterling Harper <sterlingmharper@gmail.com>`_
- `Colin Josey <cjosey@mit.edu>`_
- `Jingang Liang <liangjg2008@gmail.com>`_
- `Adam Nelson <nelsonag@umich.edu>`_
- `Paul Romano <paul.k.romano@gmail.com>`_
- `Kelly Rowland <kellylynnerowland@gmail.com>`_
- `Sam Shaner <samuelshaner@gmail.com>`_
- `Jon Walsh <walshjon@mit.edu>`_

View file

@ -46,7 +46,7 @@ to locate ACE format cross section libraries if the user has not specified the
<cross_sections> tag in
.I settings.xml\fP.
.SH LICENSE
Copyright \(co 2011-2015 Massachusetts Institute of Technology.
Copyright \(co 2011-2016 Massachusetts Institute of Technology.
.PP
Permission is hereby granted, free of charge, to any person obtaining a copy of
this software and associated documentation files (the "Software"), to deal in

View file

@ -10,9 +10,9 @@ transport code based on modern methods. It is a constructive solid geometry,
continuous-energy transport code that uses ACE format cross sections. The
project started under the Computational Reactor Physics Group at MIT.
Complete documentation on the usage of OpenMC is hosted on GitHub at
http://mit-crpg.github.io/openmc/. If you are interested in the project or would
like to help and contribute, please send a message to the OpenMC User's Group
Complete documentation on the usage of OpenMC is hosted on Read the Docs at
http://openmc.readthedocs.io. If you are interested in the project or would like
to help and contribute, please send a message to the OpenMC User's Group
`mailing list`_.
------------
@ -49,7 +49,7 @@ License
OpenMC is distributed under the MIT/X license_.
.. _mailing list: https://groups.google.com/forum/?fromgroups=#!forum/openmc-users
.. _installation instructions: http://mit-crpg.github.io/openmc/usersguide/install.html
.. _Troubleshooting section: http://mit-crpg.github.io/openmc/usersguide/troubleshoot.html
.. _installation instructions: http://openmc.readthedocs.io/en/latest/usersguide/install.html
.. _Troubleshooting section: http://openmc.readthedocs.io/en/latest/usersguide/troubleshoot.html
.. _Issues: https://github.com/mit-crpg/openmc/issues
.. _license: http://mit-crpg.github.io/openmc/license.html
.. _license: http://openmc.readthedocs.io/en/latest/license.html

View file

@ -9,7 +9,7 @@ except ImportError:
have_setuptools = False
kwargs = {'name': 'openmc',
'version': '0.7.1',
'version': '0.8.0',
'packages': ['openmc', 'openmc.data', 'openmc.mgxs', 'openmc.model',
'openmc.stats'],
'scripts': glob.glob('scripts/openmc-*'),

View file

@ -7,8 +7,8 @@ module constants
! OpenMC major, minor, and release numbers
integer, parameter :: VERSION_MAJOR = 0
integer, parameter :: VERSION_MINOR = 7
integer, parameter :: VERSION_RELEASE = 1
integer, parameter :: VERSION_MINOR = 8
integer, parameter :: VERSION_RELEASE = 0
! Revision numbers for binary files
integer, parameter :: REVISION_STATEPOINT = 15

View file

@ -2383,8 +2383,8 @@ contains
! Insert the 'r' and 'i' identifiers
call h5tcreate_f(H5T_COMPOUND_F, size_double, dtype_real, hdf5_err)
call h5tcreate_f(H5T_COMPOUND_F, size_double, dtype_imag, hdf5_err)
call h5tinsert_f(dtype_real, "r", 0_8, H5T_NATIVE_DOUBLE, hdf5_err)
call h5tinsert_f(dtype_imag, "i", 0_8, H5T_NATIVE_DOUBLE, hdf5_err)
call h5tinsert_f(dtype_real, "r", 0_SIZE_T, H5T_NATIVE_DOUBLE, hdf5_err)
call h5tinsert_f(dtype_imag, "i", 0_SIZE_T, H5T_NATIVE_DOUBLE, hdf5_err)
! Set up collective vs. independent I/O
data_xfer_mode = H5FD_MPIO_COLLECTIVE_F

View file

@ -45,7 +45,8 @@ module multipole_header
logical :: fissionable = .false. ! Is this isotope fissionable?
integer :: length ! Number of poles
integer, allocatable :: l_value(:) ! The l index of the pole
real(8), allocatable :: pseudo_k0RS(:) ! The value (sqrt(2*mass neutron)/reduced planck constant) * AWR/(AWR + 1) * scattering radius for each l
real(8), allocatable :: pseudo_k0RS(:) ! The value (sqrt(2*mass neutron)/reduced planck constant)
! * AWR/(AWR + 1) * scattering radius for each l
complex(8), allocatable :: data(:,:) ! Contains all of the pole-residue data
real(8) :: sqrtAWR ! Square root of the atomic weight ratio

View file

@ -42,6 +42,7 @@ parser.add_option("-s", "--script", action="store_true", dest="script",
# Default compiler paths
FC='gfortran'
CC='gcc'
MPI_DIR='/opt/mpich/3.2-gnu'
HDF5_DIR='/opt/hdf5/1.8.16-gnu'
PHDF5_DIR='/opt/phdf5/1.8.16-gnu'
@ -52,6 +53,8 @@ script_mode = False
# Override default compiler paths if environmental vars are found
if 'FC' in os.environ:
FC = os.environ['FC']
if 'CC' in os.environ:
CC = os.environ['CC']
if 'MPI_DIR' in os.environ:
MPI_DIR = os.environ['MPI_DIR']
if 'HDF5_DIR' in os.environ:
@ -158,8 +161,10 @@ class Test(object):
self.fc = os.path.join(MPI_DIR, 'bin', 'mpifort')
else:
self.fc = os.path.join(MPI_DIR, 'bin', 'mpif90')
self.cc = os.path.join(MPI_DIR, 'bin', 'mpicc')
else:
self.fc = FC
self.cc = CC
# Sets the build name that will show up on the CDash
def get_build_name(self):
@ -189,6 +194,7 @@ class Test(object):
# Runs the ctest script which performs all the cmake/ctest/cdash
def run_ctest_script(self):
os.environ['FC'] = self.fc
os.environ['CC'] = self.cc
if self.mpi:
os.environ['MPI_DIR'] = MPI_DIR
if self.phdf5:
@ -203,6 +209,7 @@ class Test(object):
# Runs cmake when in non-script mode
def run_cmake(self):
os.environ['FC'] = self.fc
os.environ['CC'] = self.cc
if self.mpi:
os.environ['MPI_DIR'] = MPI_DIR
if self.phdf5: