diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index 378ca346a85..184c522d438 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -13,7 +13,7 @@ openmc@anl.gov. ## Resources - [GitHub Repository](https://github.com/openmc-dev/openmc) -- [Documentation](http://docs.openmc.org/en/latest) +- [Documentation](https://docs.openmc.org/en/latest) - [Discussion Forum](https://openmc.discourse.group) - [Slack Community](https://openmc.slack.com/signup) (If you don't see your domain listed, contact openmc@anl.gov) diff --git a/docs/source/devguide/docker.rst b/docs/source/devguide/docker.rst index 0b21911686b..50ff29bd227 100644 --- a/docs/source/devguide/docker.rst +++ b/docs/source/devguide/docker.rst @@ -45,12 +45,11 @@ Now you can run the following to create a `Docker container`_ called This command will open an interactive shell running from within the Docker container where you have access to use OpenMC. -.. note:: The ``docker run`` command supports many - `options `_ +.. note:: The ``docker run`` command supports many options_ for spawning containers -- including `mounting volumes`_ from the host filesystem -- which many users will find useful. -.. _Docker image: https://docs.docker.com/engine/reference/commandline/images/ +.. _Docker image: https://docs.docker.com/get-started/docker-concepts/the-basics/what-is-an-image/ .. _Docker container: https://www.docker.com/resources/what-container -.. _options: https://docs.docker.com/engine/reference/commandline/run/ -.. _mounting volumes: https://docs.docker.com/storage/volumes/ +.. _options: https://docs.docker.com/reference/cli/docker/container/run/ +.. _mounting volumes: https://docs.docker.com/engine/storage/volumes/ diff --git a/docs/source/devguide/styleguide.rst b/docs/source/devguide/styleguide.rst index b8ec2d40f84..2c882b0341f 100644 --- a/docs/source/devguide/styleguide.rst +++ b/docs/source/devguide/styleguide.rst @@ -47,7 +47,8 @@ is more difficult to comment out a large section of code that uses C-style comments.) Do not use C-style casting. Always use the C++-style casts ``static_cast``, -``const_cast``, or ``reinterpret_cast``. (See `ES.49 `_) +``const_cast``, or ``reinterpret_cast``. (See `ES.49 +`_) Source Files ------------ @@ -156,11 +157,11 @@ Prefer pathlib_ when working with filesystem paths over functions in the os_ module or other standard-library modules. Functions that accept arguments that represent a filesystem path should work with both strings and Path_ objects. -.. _C++ Core Guidelines: http://isocpp.github.io/CppCoreGuidelines/CppCoreGuidelines -.. _PEP8: https://www.python.org/dev/peps/pep-0008/ +.. _C++ Core Guidelines: https://isocpp.github.io/CppCoreGuidelines/CppCoreGuidelines +.. _PEP8: https://peps.python.org/pep-0008/ .. _numpydoc: https://numpydoc.readthedocs.io/en/latest/format.html .. _numpy: https://numpy.org/ -.. _scipy: https://www.scipy.org/ +.. _scipy: https://scipy.org/ .. _matplotlib: https://matplotlib.org/ .. _pandas: https://pandas.pydata.org/ .. _h5py: https://www.h5py.org/ diff --git a/docs/source/devguide/user-input.rst b/docs/source/devguide/user-input.rst index a26f98b1979..bbae3b7158c 100644 --- a/docs/source/devguide/user-input.rst +++ b/docs/source/devguide/user-input.rst @@ -55,6 +55,6 @@ developer or send a message to the `developers mailing list`_. .. _property attribute: https://docs.python.org/3.6/library/functions.html#property -.. _XML Schema Part 2: http://www.w3.org/TR/xmlschema-2/ -.. _boolean: http://www.w3.org/TR/xmlschema-2/#boolean +.. _XML Schema Part 2: https://www.w3.org/TR/xmlschema-2/ +.. _boolean: https://www.w3.org/TR/xmlschema-2/#boolean .. _developers mailing list: https://groups.google.com/forum/?fromgroups=#!forum/openmc-dev diff --git a/docs/source/devguide/workflow.rst b/docs/source/devguide/workflow.rst index d9d36c161c2..d600c236f13 100644 --- a/docs/source/devguide/workflow.rst +++ b/docs/source/devguide/workflow.rst @@ -129,7 +129,7 @@ can interfere with virtual environments. .. _git: https://git-scm.com/ .. _GitHub: https://github.com/ .. _git flow: https://nvie.com/git-model -.. _valgrind: https://www.valgrind.org/ +.. _valgrind: https://valgrind.org/ .. _style guide: https://docs.openmc.org/en/latest/devguide/styleguide.html .. _pull request: https://docs.github.com/en/github/collaborating-with-issues-and-pull-requests/about-pull-requests .. _openmc-dev/openmc: https://github.com/openmc-dev/openmc diff --git a/docs/source/methods/cross_sections.rst b/docs/source/methods/cross_sections.rst index ad64b0e38ed..a66abb3ed40 100644 --- a/docs/source/methods/cross_sections.rst +++ b/docs/source/methods/cross_sections.rst @@ -295,8 +295,8 @@ or even isotropic scattering. .. _Josey: https://doi.org/10.1016/j.jcp.2015.08.013 .. _WMP Library: https://github.com/mit-crpg/WMP_Library .. _MCNP: https://mcnp.lanl.gov -.. _Serpent: https://serpent.vtt.fi/serpent/ -.. _NJOY: https://www.njoy21.io/NJOY21/ +.. _Serpent: https://serpent.vtt.fi +.. _NJOY: https://www.njoy21.io/ .. _ENDF/B data: https://www.nndc.bnl.gov/endf-b8.0/ .. _Leppanen: https://doi.org/10.1016/j.anucene.2009.03.019 .. _algorithms: http://ab-initio.mit.edu/faddeeva/ diff --git a/docs/source/methods/depletion.rst b/docs/source/methods/depletion.rst index 87a9976dd0a..edcf2c3f534 100644 --- a/docs/source/methods/depletion.rst +++ b/docs/source/methods/depletion.rst @@ -114,7 +114,7 @@ The predictor method only requires one evaluation and its error converges as twice as expensive as the predictor method, but achieves an error of :math:`\mathcal{O}(h^2)`. An exhaustive description of time integration methods and their merits can be found in the `thesis of Colin Josey -`_. +`_. OpenMC does not rely on a single time integration method but rather has several classes that implement different algorithms. For example, the diff --git a/docs/source/methods/geometry.rst b/docs/source/methods/geometry.rst index fa8bb3cf75e..05cda4b6423 100644 --- a/docs/source/methods/geometry.rst +++ b/docs/source/methods/geometry.rst @@ -1066,5 +1066,5 @@ surface is known as in :ref:`reflection`. .. _constructive solid geometry: https://en.wikipedia.org/wiki/Constructive_solid_geometry .. _surfaces: https://en.wikipedia.org/wiki/Surface .. _MCNP: https://mcnp.lanl.gov -.. _Serpent: https://serpent.vtt.fi/serpent/ +.. _Serpent: https://serpent.vtt.fi .. _Monte Carlo Performance benchmark: https://github.com/mit-crpg/benchmarks/tree/master/mc-performance/openmc diff --git a/docs/source/methods/neutron_physics.rst b/docs/source/methods/neutron_physics.rst index 70ace4a3532..fe8b8ad8500 100644 --- a/docs/source/methods/neutron_physics.rst +++ b/docs/source/methods/neutron_physics.rst @@ -1743,19 +1743,19 @@ types. .. _Watt fission spectrum: https://doi.org/10.1103/PhysRev.87.1037 -.. _Foderaro: http://hdl.handle.net/1721.1/1716 +.. _Foderaro: https://dspace.mit.edu/handle/1721.1/1716 .. _OECD: https://www.oecd-nea.org/tools/abstract/detail/NEA-1792 .. _NJOY: https://www.njoy21.io/NJOY2016/ -.. _PREPRO: https://www-nds.iaea.org/ndspub/endf/prepro/ +.. _PREPRO: https://www-nds.iaea.org/public/endf/prepro/ .. _ENDF-6 Format: https://www.oecd-nea.org/dbdata/data/manual-endf/endf102.pdf -.. _Monte Carlo Sampler: https://permalink.lanl.gov/object/tr?what=info:lanl-repo/lareport/LA-09721-MS +.. _Monte Carlo Sampler: https://mcnp.lanl.gov/pdf_files/TechReport_1983_LANL_LA-9721-MS_EverettCashwell.pdf -.. _LA-UR-14-27694: https://permalink.lanl.gov/object/tr?what=info:lanl-repo/lareport/LA-UR-14-27694 +.. _LA-UR-14-27694: https://www.osti.gov/biblio/1159204 .. _MC21: https://www.osti.gov/biblio/903083 @@ -1763,6 +1763,4 @@ types. .. _Sutton and Brown: https://www.osti.gov/biblio/307911 -.. _lectures: https://laws.lanl.gov/vhosts/mcnp.lanl.gov/pdf_files/la-ur-05-4983.pdf - -.. _MCNP Manual: https://laws.lanl.gov/vhosts/mcnp.lanl.gov/pdf_files/la-ur-03-1987.pdf +.. _lectures: https://mcnp.lanl.gov/pdf_files/TechReport_2005_LANL_LA-UR-05-4983_Brown.pdf diff --git a/docs/source/methods/parallelization.rst b/docs/source/methods/parallelization.rst index d9fc15c9fab..87ac4859037 100644 --- a/docs/source/methods/parallelization.rst +++ b/docs/source/methods/parallelization.rst @@ -609,17 +609,17 @@ is actually independent of the number of nodes: .. _first paper: https://doi.org/10.2307/2280232 -.. _work of Forrest Brown: http://hdl.handle.net/2027.42/24996 +.. _work of Forrest Brown: https://deepblue.lib.umich.edu/handle/2027.42/24996 .. _Brissenden and Garlick: https://doi.org/10.1016/0306-4549(86)90095-2 -.. _MPICH: http://www.mpich.org +.. _MPICH: https://www.mpich.org .. _binomial tree: https://www.mcs.anl.gov/~thakur/papers/ijhpca-coll.pdf .. _Geary: https://doi.org/10.2307/2342070 -.. _Barnett: http://citeseerx.ist.psu.edu/viewdoc/summary?doi=10.1.1.51.7772 +.. _Barnett: https://citeseerx.ist.psu.edu/viewdoc/summary?doi=10.1.1.51.7772 .. _single-instruction multiple-data: https://en.wikipedia.org/wiki/SIMD diff --git a/docs/source/methods/photon_physics.rst b/docs/source/methods/photon_physics.rst index 42c68431a18..22d2c7f26a0 100644 --- a/docs/source/methods/photon_physics.rst +++ b/docs/source/methods/photon_physics.rst @@ -1059,7 +1059,7 @@ emitted photon. .. _anomalous scattering: http://pd.chem.ucl.ac.uk/pdnn/diff1/anomscat.htm -.. _Kahn's rejection method: https://mcnp.lanl.gov/pdf_files/TechReport_1956_RC_AECU-3259RM-1237-AEC_Kahn.pdf +.. _Kahn's rejection method: https://doi.org/10.2172/4353680 .. _Klein-Nishina: https://en.wikipedia.org/wiki/Klein%E2%80%93Nishina_formula diff --git a/docs/source/methods/tallies.rst b/docs/source/methods/tallies.rst index 4b56d39559a..57e05d84f85 100644 --- a/docs/source/methods/tallies.rst +++ b/docs/source/methods/tallies.rst @@ -522,4 +522,4 @@ improve the estimate of the percentile. .. _unpublished rational approximation: https://stackedboxes.org/2017/05/01/acklams-normal-quantile-function/ -.. _MC21: http://www.osti.gov/bridge/servlets/purl/903083-HT5p1o/903083.pdf +.. _MC21: https://www.osti.gov/servlets/purl/903083 diff --git a/docs/source/publications.rst b/docs/source/publications.rst index 88d0a97b977..a2d60d5af16 100644 --- a/docs/source/publications.rst +++ b/docs/source/publications.rst @@ -138,8 +138,8 @@ Geometry and Visualization *Trans. Am. Nucl. Soc.*, **114**, 391-394 (2016). - Derek M. Lax, "`Memory efficient indexing algorithm for physical properties in - OpenMC `_," S. M. Thesis, Massachusetts - Institute of Technology (2015). + OpenMC `_," S. M. Thesis, + Massachusetts Institute of Technology (2015). - Derek Lax, William Boyd, Nicholas Horelik, Benoit Forget, and Kord Smith, "A memory efficient algorithm for classifying unique regions in constructive @@ -399,7 +399,8 @@ Doppler Broadening - Jonathan A. Walsh, Benoit Forget, Kord S. Smith, Brian C. Kiedrowski, and Forrest B. Brown, "`Direct, on-the-fly calculation of unresolved resonance region cross sections in Monte Carlo simulations - `_," *Proc. Joint Int. Conf. M&C+SNA+MC*, + `_," *Proc. Joint Int. Conf. + M&C+SNA+MC*, Nashville, Tennessee, Apr. 19--23 (2015). - Colin Josey, Benoit Forget, and Kord Smith, "`Windowed multipole sensitivity @@ -596,7 +597,8 @@ Depletion - Matthew S. Ellis, Colin Josey, Benoit Forget, and Kord Smith, "`Spatially Continuous Depletion Algorithm for Monte Carlo Simulations - `_," *Trans. Am. Nucl. Soc.*, **115**, + `_," *Trans. Am. Nucl. Soc.*, + **115**, 1221-1224 (2016). - Anas Gul, K. S. Chaudri, R. Khan, and M. Azeen, "`Development and verification diff --git a/docs/source/pythonapi/deplete.rst b/docs/source/pythonapi/deplete.rst index d7a779b1298..5d02fa6b980 100644 --- a/docs/source/pythonapi/deplete.rst +++ b/docs/source/pythonapi/deplete.rst @@ -26,7 +26,7 @@ provided to obtain reaction rates from cross-section data. Several classes are provided that implement different time-integration algorithms for depletion calculations, which are described in detail in Colin Josey's thesis, `Development and analysis of high order neutron transport-depletion coupling -algorithms `_. +algorithms `_. .. autosummary:: :toctree: generated diff --git a/docs/source/quickinstall.rst b/docs/source/quickinstall.rst index 323cd7fd48d..21526242f18 100644 --- a/docs/source/quickinstall.rst +++ b/docs/source/quickinstall.rst @@ -8,56 +8,35 @@ This quick install guide outlines the basic steps needed to install OpenMC on your computer. For more detailed instructions on configuring and installing OpenMC, see :ref:`usersguide_install` in the User's Manual. --------------------------------------------------- -Installing on Linux/Mac with Mamba and conda-forge --------------------------------------------------- +---------------------------------- +Installing on Linux/Mac with Conda +---------------------------------- -`Conda `_ is an open source package management +`Conda `_ is an open source package management system and environments management system for installing multiple versions of software packages and their dependencies and switching easily between them. -`Mamba `_ is a cross-platform package -manager and is compatible with `conda` packages. -OpenMC can be installed in a `conda` environment with `mamba`. -First, `conda` should be installed with one of the following installers: -`Miniconda `_, -`Anaconda `_, or `Miniforge `_. -Once you have `conda` installed on your system, OpenMC can be installed via the -`conda-forge` channel with `mamba`. +OpenMC can be installed in a `conda` environment. First, `conda` should be +`installed `_ +with either Anaconda Distribution or Miniconda. Once you have `conda` installed +on your system, OpenMC can be installed via the `conda-forge` channel. First, add the `conda-forge` channel with: .. code-block:: sh conda config --add channels conda-forge + conda config --set channel_priority strict -Then create and activate a new conda enviroment called `openmc-env` in -which to install OpenMC. +Then create and activate a new conda enviroment called `openmc-env` (or whatever +you wish) with OpenMC installed. .. code-block:: sh - conda create -n openmc-env + conda create --name openmc-env openmc conda activate openmc-env -Then install `mamba`, which will be used to install OpenMC. - -.. code-block:: sh - - conda install mamba - -To list the versions of OpenMC that are available on the `conda-forge` channel, -in your terminal window or an Anaconda Prompt run: - -.. code-block:: sh - - mamba search openmc - -OpenMC can then be installed with: - -.. code-block:: sh - - mamba install openmc - -You are now in a conda environment called `openmc-env` that has OpenMC installed. +You are now in a conda environment called `openmc-env` that has OpenMC +installed. ------------------------------------------- Installing on Linux/Mac/Windows with Docker diff --git a/docs/source/releasenotes/0.15.1.rst b/docs/source/releasenotes/0.15.1.rst new file mode 100644 index 00000000000..d879b50edd5 --- /dev/null +++ b/docs/source/releasenotes/0.15.1.rst @@ -0,0 +1,224 @@ +==================== +What's New in 0.15.1 +==================== + +.. currentmodule:: openmc + +------- +Summary +------- + +This release of OpenMC includes many bug fixes, performance improvements, and +several notable new features. The random ray solver continues to receive many +updates and improvements, which are listed below in more detail. A new +:class:`~openmc.SolidRayTracePlot` class has been added that enables attractive +3D visualization using Phong shading. Several composite surfaces have been +introduced (which help to further expand the capabilities of the +`openmc_mcnp_adapter `_). +The :meth:`openmc.Mesh.material_volumes` method has been completely +reimplemented with a new approach based on ray tracing that greatly improves +performance and can be executed in parallel. Tally results can be automatically +applied to input :class:`~openmc.Tally` objects with :meth:`openmc.Model.run`, +bypassing boilerplate code for collecting tally results from statepoint files. +Finally, a new :mod:`openmc.deplete.d1s` submodule has been added that enables +Direct 1-Step (D1S) calculations of shutdown dose rate for fusion applications. + +------------------------------------ +Compatibility Notes and Deprecations +------------------------------------ + +The ``openmc.ProjectionPlot`` class has been renamed to +:class:`openmc.WireframeRayTracePlot` to be in better alignment with the newly +introduced :class:`openmc.SolidRayTracePlot` class. + +NCrystal has been moved from a build-time dependency to a runtime dependency, +which means there is no longer a ``OPENMC_USE_NCRYSTAL`` CMake option. Instead, +OpenMC will look for an installed version of NCrystal using the +``ncrystal-config`` command. + +------------ +New Features +------------ + +- Numerous improvements have been made in the random ray solver: + - Calculation of Shannon entropy now works with random ray (`#3030 `_) + - Support for linear sources (`#3072 `_) + - Ability to slove for adjoint flux (`#3191 `_) + - Support randomized Quasi-Monte Carlo sampling (`#3268 `_) + - FW-CADIS weight window generation (`#3273 `_) + - Source region mesh subdivision(`#3333 `_) +- Several new composite surfaces have been added: + - :class:`openmc.model.OrthogonalBox` (`#3118 `_) + - :class:`openmc.model.ConicalFrustum` (`#3151 `_) + - :class:`openmc.model.Vessel` (`#3168 `_) +- The :meth:`openmc.Model.plot` method now supports plotting source sites + (`#2863 `_) +- The :func:`openmc.stats.delta_function` convenience function can be used for + specifying distributions with a single point (`#3090 + `_) +- Added a :meth:`openmc,Material.get_element_atom_densities` method (`#3103 + `_) +- Several third-party dependencies have been removed: + - Cython (`#3111 `_) + - gsl-lite (`#3225 `_) +- Added a new :class:`openmc.MuSurfaceFilter` class that filters tally events by + the cosine of angle of a surface crossing (`#2768 + `_) +- Introduced a :class:`openmc.ParticleList` class for manipulating a list of + source particles (`#3148 `_) +- Support dose coefficients from ICRP 74 in + :func:`openmc.data.dose_coefficients` (`#3020 + `_) +- Introduced a new :attr:`openmc.Settings.uniform_source_sampling` option + (`#3195 `_) +- Ability to differentiate materials in DAGMC universes (`#3056 + `_) +- Added methods to automatically apply results to existing Tally objects. + (`#2671 `_) +- Implemented a new :class:`openmc.SolidRayTracePlot` class that can produce a + 3D visualization based on Phong shading (`#2655 + `_) +- The :meth:`openmc.UnstructuredMesh.write_data_to_vtk` method now supports + writing a VTU file (`#3290 `_) +- Composite surfaces now have a + :attr:`~openmc.CompositeSurface.component_surfaces` attribute that provides + the underlying primitive surfaces (`#3167 + `_) +- A new :mod:`openmc.deplete.d1s` submodule has been added that enables Direct + 1-Step (D1S) calculations of shutdown dose rate for fusion applications + (`#3235 `_) + +--------------------------- +Bug Fixes and Small Changes +--------------------------- + +- run microxs with mpi (`#3028 `_) +- Rely on std::filesystem for file_utils (`#3042 `_) +- Random Ray Normalization Improvements (`#3051 `_) +- Alternative Random Ray Volume Estimators (`#3060 `_) +- Random Ray Testing Simplification (`#3061 `_) +- Fix hyperlinks in `random_ray.rst` (`#3064 `_) +- Add missing show_overlaps option to plots.xml input file documentation (`#3068 `_) +- Remove use of pkg_resources package (`#3069 `_) +- Add option for survival biasing source normalization (`#3070 `_) +- Enforce sequence type when setting ``Setting.track`` (`#3071 `_) +- Moving most of setup.py to pyproject.toml (`#3074 `_) +- Enforce non-negative percents for ``material.add_nuclide`` to prevent unintended ao/wo flipping (`#3075 `_) +- Include batch statistics discussion in methodology introduction (`#3076 `_) +- Add -DCMAKE_BUILD_TYPE=Release flag for MOAB in Dockerfile (`#3077 `_) +- Adjust decay data reader to better handle non-normalized branching ratios (`#3080 `_) +- Correct openmc.Geometry initializer to accept iterables of ``openmc.Cell`` (`#3081 `_) +- Replace all deprecated Python typing imports and syntax with updated forms (`#3085 `_) +- Fix ParticleFilter to work with set inputs (`#3092 `_) +- packages used for testing moved to tests section of pyprojects.toml (`#3094 `_) +- removed unused which function in CI scripts (`#3095 `_) +- Improve description of probabilities for ``openmc.stats.Tabular`` class (`#3099 `_) +- Ensure RegularMesh repr shows value for width of the mesh (`#3100 `_) +- Replacing endf c functions with package (`#3101 `_) +- Fix random ray solver to correctly simulate fixed source problems with fissionable materials (`#3106 `_) +- Improve error for nuclide temperature not found (`#3110 `_) +- Added error if cross sections path is a folder (`#3115 `_) +- Implement bounding_box operation for meshes (`#3119 `_) +- allowing varible offsets for ``polygon.offset`` (`#3120 `_) +- Write surface source files per batch (`#3124 `_) +- Mat ids reset (`#3125 `_) +- Tweaking title of feature issue template (`#3127 `_) +- Fix a typo in feature request template (`#3128 `_) +- Update quickinstall instructions for macOS (`#3130 `_) +- adapt the openmc-update-inputs script for surfaces (`#3131 `_) +- Theory documentation on PCG random number generator (`#3134 `_) +- Adding tmate action to CI for debugging (`#3138 `_) +- Add Versioning Support from `version.txt` (`#3140 `_) +- Correct failure due to progress bar values (`#3143 `_) +- Avoid writing subnormal nuclide densities to XML (`#3144 `_) +- Immediately resolve complement operators for regions (`#3145 `_) +- Improve Detection of libMesh Installation via `LIBMESH_ROOT` and CMake's PkgConfig (`#3149 `_) +- Fix for UWUW Macro Conflict (`#3150 `_) +- Consistency in treatment of paths for files specified within the Model class (`#3153 `_) +- Improve clipping of Mixture distributions (`#3154 `_) +- Fix check for trigger score name (`#3155 `_) +- Prepare point query data structures on meshes when applying Weight Windows (`#3157 `_) +- Add PointCloud spatial distribution (`#3161 `_) +- Update fmt submodule to version 11.0.2 (`#3162 `_) +- Move to support python 3.13 (`#3165 `_) +- avoid zero division if source rate of previous result is zero (`#3169 `_) +- Fix path handling for thermal ACE generation (`#3171 `_) +- Update `fmt` Formatters for Compatibility with Versions below 11 (`#3172 `_) +- added subfolders to txt search command in pyproject (`#3174 `_) +- added list to doc string arg for plot_xs (`#3178 `_) +- enable polymorphism for mix_materials (`#3180 `_) +- Fix plot_xs type hint (`#3184 `_) +- Enable adaptive mesh support on libMesh tallies (`#3185 `_) +- Reset values of lattice offset tables when allocated (`#3188 `_) +- Update surface_composite.py (`#3189 `_) +- add export_model_xml arguments to ``Model.plot_geometry`` and ``Model.calculate_volumes`` (`#3190 `_) +- Fixes in MicroXS.from_multigroup_flux (`#3192 `_) +- Fix documentation typo in ``boundary_type`` (`#3196 `_) +- Fix docstring for ``Model.plot`` (`#3198 `_) +- Apply weight windows at collisions in multigroup transport mode. (`#3199 `_) +- External sources alias sampler (`#3201 `_) +- Add test for flux bias with weight windows in multigroup mode (`#3202 `_) +- Fix bin index to DoF ID mapping bug in adaptive libMesh meshes (`#3206 `_) +- Ensure ``libMesh::ReplicatedMesh`` is used for LibMesh tallies (`#3208 `_) +- Set Model attributes only if needed (`#3209 `_) +- adding unstrucutred mesh file suffix to docstring (`#3211 `_) +- Write and read mesh name attribute (`#3221 `_) +- Adjust for secondary particle energy directly in heating scores (`#3227 `_) +- Correct normalization of thermal elastic in non standard ENDF-6 files (`#3234 `_) +- Adding '#define _USE_MATH_DEFINES' to make M_PI declared in Intel and MSVC compilers (`#3238 `_) +- updated link to log mapping technique (`#3241 `_) +- Fix for erroneously non-zero tally results of photon threshold reactions (`#3242 `_) +- Fix type comparison (`#3244 `_) +- Enable the LegendreFilter filter to be used in photon tallies for orders greater than P0. (`#3245 `_) +- Enable UWUW library when building with DAGMC in CI (`#3246 `_) +- Remove top-level import of ``openmc.lib`` (`#3250 `_) +- updated docker file to latest DAGMC (`#3251 `_) +- Write mesh type as a dataset always (`#3253 `_) +- Update to a consistent definition of the r2 parameter for cones (`#3254 `_) +- Add Patrick Shriwise to technical committee (`#3255 `_) +- Change `Zernike` documentation in polynomial.py (`#3258 `_) +- Bug fix for Polygon 'yz' basis (`#3259 `_) +- Add constant for invalid surface tokens. (`#3260 `_) +- Update plots.py for PathLike to string handling error (`#3261 `_) +- Fix bug in WeightWindowGenerator for empty energy bounds (`#3263 `_) +- Update recognized thermal scattering materials for ENDF/B-VIII.1 (`#3267 `_) +- simplify mechanism to detect if geometry entity is DAG (`#3269 `_) +- Fix bug in ``Surface.normalize`` (`#3270 `_) +- Tweak To Sphinx Install Documentation (`#3271 `_) +- add continue feature for depletion (`#3272 `_) +- Updates for building with NCrystal support (and fix CI) (`#3274 `_) +- Added missing documentation (`#3275 `_) +- fix the bug in function differentiate_mats() (`#3277 `_) +- Fix the bug in the ``Material.from_xml_element`` function (`#3278 `_) +- Doc typo fix for rand ray mgxs (`#3280 `_) +- Consolidate plotting capabilities in Model.plot (`#3282 `_) +- adding non elastic MT number (`#3285 `_) +- Fix ``Tabular.from_xml_element`` for histogram case (`#3287 `_) +- Random Ray Source Region Refactor (`#3288 `_) +- added terminal output showing compile options selected (`#3291 `_) +- Random ray consistency changes (`#3298 `_) +- Random Ray Explicit Void Treatment (`#3299 `_) +- removed old command line scripts (`#3300 `_) +- Avoid end of life ubuntu 20.04 in ReadTheDocs runner (`#3301 `_) +- Avoid error in CI from newlines in commit message (`#3302 `_) +- Handle reflex angles in CylinderSector (`#3303 `_) +- Relax requirement on polar/azimuthal axis for wwinp conversion (`#3307 `_) +- Add nuclides_to_ignore argument on Model export methods (`#3309 `_) +- Enable overlap plotting from Python API (`#3310 `_) +- Fix access order issues after applying tally results from `Model.run` (`#3313 `_) +- Random Ray Void Accuracy Fix (`#3316 `_) +- Fixes for problems encountered with version determination (`#3320 `_) +- Clarify effect of CMAKE_BUILD_TYPE in docs (`#3321 `_) +- Random Ray Linear Source Stability Improvement (`#3322 `_) +- Mark a canonical URL for docs (`#3324 `_) +- Random Ray Adjoint Source Logic Improvement (`#3325 `_) +- Reflect multigroup MicroXS in IndependentOperator docstrings (`#3327 `_) +- NCrystal becomes runtime rather than buildtime dependency (`#3328 `_) +- Adding per kg as unit option on material functions (`#3329 `_) +- Fix reading of horizontal field of view for ray-traced plots (`#3330 `_) +- Manually fix broken links (`#3331 `_) +- Update pugixml to v1.15 (`#3332 `_) +- Determine nuclides correctly for DAGMC models in d1s.get_radionuclides (`#3335 `_) +- openmc.Material.mix_materials() allows for keyword arguments (`#3336 `_) +- Fix bug in ``Mesh::material_volumes`` for void materials (`#3337 `_) +- added stable and unstable nuclides to the Chain object (`#3338 `_) diff --git a/docs/source/releasenotes/index.rst b/docs/source/releasenotes/index.rst index bde1205891e..2927cc458e2 100644 --- a/docs/source/releasenotes/index.rst +++ b/docs/source/releasenotes/index.rst @@ -7,6 +7,7 @@ Release Notes .. toctree:: :maxdepth: 1 + 0.15.1 0.15.0 0.14.0 0.13.3 diff --git a/docs/source/usersguide/basics.rst b/docs/source/usersguide/basics.rst index 60b599588eb..c0bc2f976f4 100644 --- a/docs/source/usersguide/basics.rst +++ b/docs/source/usersguide/basics.rst @@ -53,7 +53,7 @@ eXtensible Markup Language (XML) Unlike many other Monte Carlo codes which use an arbitrary-format ASCII file with "cards" to specify a particular geometry, materials, and associated run settings, the input files for OpenMC are structured in a set of `XML -`_ files. XML, which stands for eXtensible Markup +`_ files. XML, which stands for eXtensible Markup Language, is a simple format that allows data to be exchanged efficiently between different programs and interfaces. diff --git a/docs/source/usersguide/beginners.rst b/docs/source/usersguide/beginners.rst index eef927b846c..6876a33240a 100644 --- a/docs/source/usersguide/beginners.rst +++ b/docs/source/usersguide/beginners.rst @@ -109,8 +109,8 @@ familiar with. Whether you plan on working in Linux, macOS, or Windows, you should be comfortable working in a command line environment. There are many resources online for learning command line environments. If you are using Linux or Mac OS X (also Unix-derived), `this tutorial -`_ will help you get acquainted with -commonly-used commands. +`_ will help you get acquainted +with commonly-used commands. To reap the full benefits of OpenMC, you should also have basic proficiency in the use of `Python `_, as OpenMC includes a rich Python @@ -127,8 +127,8 @@ are hosted at `GitHub`_. In order to receive updates to the code directly, submit `bug reports`_, and perform other development tasks, you may want to sign up for a free account on GitHub. Once you have an account, you can follow `these instructions -`_ on -how to set up your computer for using GitHub. +`_ +on how to set up your computer for using GitHub. If you are new to nuclear engineering, you may want to review the NRC's `Reactor Concepts Manual`_. This manual describes the basics of nuclear power for @@ -149,9 +149,9 @@ and `Volume II`_. You may also find it helpful to review the following terms: .. _neutron transport: https://en.wikipedia.org/wiki/Neutron_transport .. _discretization: https://en.wikipedia.org/wiki/Discretization .. _constructive solid geometry: https://en.wikipedia.org/wiki/Constructive_solid_geometry -.. _git: http://git-scm.com/ +.. _git: https://git-scm.com/ .. _git tutorials: https://git-scm.com/doc -.. _Reactor Concepts Manual: http://www.tayloredge.com/periodic/trivia/ReactorConcepts.pdf +.. _Reactor Concepts Manual: https://www.tayloredge.com/periodic/trivia/ReactorConcepts.pdf .. _Volume I: https://www.standards.doe.gov/standards-documents/1000/1019-bhdbk-1993-v1 .. _Volume II: https://www.standards.doe.gov/standards-documents/1000/1019-bhdbk-1993-v2 .. _OpenMC source code: https://github.com/openmc-dev/openmc diff --git a/docs/source/usersguide/data.rst b/docs/source/usersguide/data.rst index a1611de6352..2a9cd36dbb4 100644 --- a/docs/source/usersguide/data.rst +++ b/docs/source/usersguide/data.rst @@ -12,9 +12,9 @@ responsible for specifying one or more of the following: file (commonly named ``cross_sections.xml``) contains a listing of other data files, in particular neutron cross sections, photon cross sections, and windowed multipole data. Each of those files, in turn, uses a `HDF5 - `_ format (see :ref:`io_nuclear_data`). In - order to run transport simulations with continuous-energy cross sections, you - need to specify this file. + `_ format (see + :ref:`io_nuclear_data`). In order to run transport simulations with + continuous-energy cross sections, you need to specify this file. - **Depletion chain (XML)** -- A :ref:`depletion chain XML ` file contains decay data, fission product yields, and information on what @@ -69,7 +69,7 @@ If you want to persistently set the environment variables used to initialized the configuration, export them from your shell profile (``.profile`` or ``.bashrc`` in bash_). -.. _bash: http://www.linuxfromscratch.org/blfs/view/6.3/postlfs/profile.html +.. _bash: https://www.linuxfromscratch.org/blfs/view/6.3/postlfs/profile.html -------------------------------- Continuous-Energy Cross Sections @@ -290,16 +290,16 @@ calculation to be performed. Therefore, at this point in time, OpenMC is not distributed with any pre-existing multigroup cross section libraries. However, if a multigroup library file is downloaded or generated, the path to the file needs to be specified as described in :ref:`usersguide_data_runtime`. For an -example of how to create a multigroup library, see the `example notebook -`_. +example of how to create a multigroup library, see this `MG mode notebook +`_. -.. _NJOY: http://www.njoy21.io/ +.. _NJOY: https://www.njoy21.io/ .. _NNDC: https://www.nndc.bnl.gov/endf .. _MCNP: https://mcnp.lanl.gov -.. _Serpent: https://serpent.vtt.fi/serpent/ +.. _Serpent: https://serpent.vtt.fi .. _ENDF/B: https://www.nndc.bnl.gov/endf-b7.1/acefiles.html .. _JEFF: https://www.oecd-nea.org/dbdata/jeff/jeff33/ -.. _TENDL: https://tendl.web.psi.ch/tendl_2017/tendl2017.html +.. _TENDL: https://tendl.web.psi.ch/tendl_2023/tendl2023.html .. _Seltzer and Berger: https://doi.org/10.1016/0092-640X(86)90014-8 .. _NIST ESTAR database: https://physics.nist.gov/PhysRefData/Star/Text/ESTAR.html .. _Biggs et al.: https://doi.org/10.1016/0092-640X(75)90030-3 diff --git a/docs/source/usersguide/decay_sources.rst b/docs/source/usersguide/decay_sources.rst index e612206969c..a228f8e66bb 100644 --- a/docs/source/usersguide/decay_sources.rst +++ b/docs/source/usersguide/decay_sources.rst @@ -47,14 +47,14 @@ Direct 1-Step (D1S) Calculations ================================ OpenMC also includes built-in capability for performing shutdown dose rate -calculations using the `direct 1-step `_ -(D1S) method. In this method, a single coupled neutron--photon transport -calculation is used where the prompt photon production is replaced with photons -produced from the decay of radionuclides in an activated material. To obtain -properly scaled results, it is also necessary to apply time correction factors. -A normal neutron transport calculation can be extended to a D1S calculation with -a few helper functions. First, import the ``d1s`` submodule, which is part of -:mod:`openmc.deplete`:: +calculations using the `direct 1-step +`_ (D1S) method. In this method, +a single coupled neutron--photon transport calculation is used where the prompt +photon production is replaced with photons produced from the decay of +radionuclides in an activated material. To obtain properly scaled results, it is +also necessary to apply time correction factors. A normal neutron transport +calculation can be extended to a D1S calculation with a few helper functions. +First, import the ``d1s`` submodule, which is part of :mod:`openmc.deplete`:: from openmc.deplete import d1s diff --git a/docs/source/usersguide/install.rst b/docs/source/usersguide/install.rst index 0aa561ee3d7..d294770e0e0 100644 --- a/docs/source/usersguide/install.rst +++ b/docs/source/usersguide/install.rst @@ -8,56 +8,35 @@ Installation and Configuration .. _install_conda: --------------------------------------------------- -Installing on Linux/Mac with Mamba and conda-forge --------------------------------------------------- +---------------------------------- +Installing on Linux/Mac with Conda +---------------------------------- -`Conda `_ is an open source package management -systems and environments management system for installing multiple versions of +`Conda`_ is an open source package management +system and environments management system for installing multiple versions of software packages and their dependencies and switching easily between them. -`Mamba `_ is a cross-platform package -manager and is compatible with `conda` packages. -OpenMC can be installed in a `conda` environment with `mamba`. -First, `conda` should be installed with one of the following installers: -`Miniconda `_, -`Anaconda `_, or `Miniforge `_. -Once you have `conda` installed on your system, OpenMC can be installed via the -`conda-forge` channel with `mamba`. +OpenMC can be installed in a `conda` environment. First, `conda` should be +`installed `_ +with either Anaconda Distribution or Miniconda. Once you have `conda` installed +on your system, OpenMC can be installed via the `conda-forge` channel. First, add the `conda-forge` channel with: .. code-block:: sh conda config --add channels conda-forge + conda config --set channel_priority strict -Then create and activate a new conda enviroment called `openmc-env` in -which to install OpenMC. +Then create and activate a new conda enviroment called `openmc-env` (or whatever +you wish) with OpenMC installed. .. code-block:: sh - conda create -n openmc-env + conda create --name openmc-env openmc conda activate openmc-env -Then install `mamba`, which will be used to install OpenMC. - -.. code-block:: sh - - conda install mamba - -To list the versions of OpenMC that are available on the `conda-forge` channel, -in your terminal window or an Anaconda Prompt run: - -.. code-block:: sh - - mamba search openmc - -OpenMC can then be installed with: - -.. code-block:: sh - - mamba install openmc - -You are now in a conda environment called `openmc-env` that has OpenMC installed. +You are now in a conda environment called `openmc-env` that has OpenMC +installed. ------------------------------------------- Installing on Linux/Mac/Windows with Docker @@ -557,7 +536,7 @@ distributions. notebook `_. - `h5py `_ + `h5py `_ h5py provides Python bindings to the HDF5 library. Since OpenMC outputs various HDF5 files, h5py is needed to provide access to data within these files from Python. @@ -610,5 +589,6 @@ wrapper is used when installing h5py: CC= HDF5_MPI=ON HDF5_DIR= python -m pip install --no-binary=h5py h5py +.. _Mamba: https://mamba.readthedocs.io/en/latest/ .. _Conda: https://conda.io/en/latest/ .. _pip: https://pip.pypa.io/en/stable/ diff --git a/docs/source/usersguide/parallel.rst b/docs/source/usersguide/parallel.rst index e00ed5e97ba..ecbdd20b626 100644 --- a/docs/source/usersguide/parallel.rst +++ b/docs/source/usersguide/parallel.rst @@ -101,5 +101,5 @@ performance on a machine when running in parallel: settings = openmc.Settings() settings.output = {'tallies': False} -.. _Haswell-EP: http://www.anandtech.com/show/8423/intel-xeon-e5-version-3-up-to-18-haswell-ep-cores-/4 +.. _Haswell-EP: https://www.anandtech.com/show/8423/intel-xeon-e5-version-3-up-to-18-haswell-ep-cores-/4 .. _bound: https://github.com/pmodels/mpich/blob/main/doc/wiki/how_to/Using_the_Hydra_Process_Manager.md#process-core-binding diff --git a/include/openmc/random_dist.h b/include/openmc/random_dist.h index 11e88ab8cce..32f055b53d3 100644 --- a/include/openmc/random_dist.h +++ b/include/openmc/random_dist.h @@ -64,8 +64,8 @@ extern "C" double watt_spectrum(double a, double b, uint64_t* seed); //! Samples from a normal distribution with a given mean and standard deviation //! The PDF is defined as s(x) = (1/2*sigma*sqrt(2) * e-((mu-x)/2*sigma)^2 //! Its sampled according to -//! http://www-pdg.lbl.gov/2009/reviews/rpp2009-rev-monte-carlo-techniques.pdf -//! section 33.4.4 +//! https://pdg.lbl.gov/2023/reviews/rpp2023-rev-monte-carlo-techniques.pdf +//! section 42.4.4 //! //! \param mean mean of the Gaussian distribution //! \param std_dev standard deviation of the Gaussian distribution diff --git a/openmc/data/ace.py b/openmc/data/ace.py index 1247593a806..6ccb76c9223 100644 --- a/openmc/data/ace.py +++ b/openmc/data/ace.py @@ -9,9 +9,9 @@ ENDF data has been reconstructed and Doppler-broadened, the ACER module generates ACE-format cross sections. -.. _MCNP: https://laws.lanl.gov/vhosts/mcnp.lanl.gov/ -.. _NJOY: http://t2.lanl.gov/codes.shtml -.. _ENDF: http://www.nndc.bnl.gov/endf +.. _MCNP: https://mcnp.lanl.gov/ +.. _NJOY: https://www.njoy21.io/ +.. _ENDF: https://www.nndc.bnl.gov/endf-library/ """ diff --git a/openmc/data/endf.py b/openmc/data/endf.py index 63cd092ebb1..eca37446933 100644 --- a/openmc/data/endf.py +++ b/openmc/data/endf.py @@ -1,9 +1,9 @@ """Module for parsing and manipulating data from ENDF evaluations. -All the classes and functions in this module are based on document -ENDF-102 titled "Data Formats and Procedures for the Evaluated Nuclear -Data File ENDF-6". The latest version from June 2009 can be found at -http://www-nds.iaea.org/ndspub/documents/endf/endf102/endf102.pdf +All the classes and functions in this module are based on document ENDF-102 +titled "Data Formats and Procedures for the Evaluated Nuclear Data File ENDF-6". +The version from September 2023 can be found at +https://www.nndc.bnl.gov/endfdocs/ENDF-102-2023.pdf """ import io diff --git a/openmc/data/fission_energy.py b/openmc/data/fission_energy.py index 870881dbaf7..3c7998ee214 100644 --- a/openmc/data/fission_energy.py +++ b/openmc/data/fission_energy.py @@ -44,7 +44,7 @@ class from the usual OpenMC HDF5 data files. ---------- [1] D. G. Madland, "Total prompt energy release in the neutron-induced fission of ^235U, ^238U, and ^239Pu", Nuclear Physics A 772:113--137 (2006). - + Attributes ---------- diff --git a/openmc/deplete/integrators.py b/openmc/deplete/integrators.py index a877c4900f6..50810c88a36 100644 --- a/openmc/deplete/integrators.py +++ b/openmc/deplete/integrators.py @@ -446,7 +446,7 @@ class SICELIIntegrator(SIIntegrator): `_. Detailed algorithm can be found in section 3.2 in `Colin Josey's thesis - `_. + `_. """ _num_stages = 2 @@ -512,7 +512,7 @@ class SILEQIIntegrator(SIIntegrator): `_. Detailed algorithm can be found in Section 3.2 in `Colin Josey's thesis - `_. + `_. """ _num_stages = 2 diff --git a/openmc/examples.py b/openmc/examples.py index 8d4bd1f04c3..5578d513ead 100644 --- a/openmc/examples.py +++ b/openmc/examples.py @@ -11,8 +11,9 @@ def pwr_pin_cell() -> openmc.Model: This model is a single fuel pin with 2.4 w/o enriched UO2 corresponding to a beginning-of-cycle condition and borated water. The specifications are from - the `BEAVRS `_ benchmark. Note that the - number of particles/batches is initially set very low for testing purposes. + the `BEAVRS `_ benchmark. Note that + the number of particles/batches is initially set very low for testing + purposes. Returns ------- diff --git a/openmc/mgxs/__init__.py b/openmc/mgxs/__init__.py index 6a29a8383ca..901c1eabb6b 100644 --- a/openmc/mgxs/__init__.py +++ b/openmc/mgxs/__init__.py @@ -14,7 +14,7 @@ - "SHEM-361_" designed for LWR analysis to eliminate self-shielding calculations of thermal resonances ([HFA2005]_, [SAN2007]_, [HEB2008]_) - "SCALE-X" (where X is 44 which is designed for criticality analysis - and 252 is designed for thermal reactors) for the SCALE code suite + and 252 is designed for thermal reactors) for the SCALE code suite ([ZAL1999]_ and [REARDEN2013]_) - "MPACT-X" (where X is 51 (PWR), 60 (BWR), 69 (Magnox)) from the MPACT_ reactor physics code ([KIM2019]_ and [KIM2020]_) @@ -28,12 +28,12 @@ .. _SCALE252: https://oecd-nea.org/science/wpncs/amct/workingarea/meeting2013/EGAMCT2013_08.pdf .. _MPACT: https://vera.ornl.gov/mpact/ .. _XMAS-172: https://www-nds.iaea.org/wimsd/energy.htm -.. _SHEM-361: https://www.polymtl.ca/merlin/downloads/FP214.pdf +.. _SHEM-361: http://merlin.polymtl.ca/downloads/FP214.pdf .. _activation: https://fispact.ukaea.uk/wiki/Keyword:GETXS .. _VITAMIN-J-42: https://www.oecd-nea.org/dbdata/nds_jefreports/jefreport-10.pdf .. _CCFE-709: https://fispact.ukaea.uk/wiki/CCFE-709_group_structure .. _UKAEA-1102: https://fispact.ukaea.uk/wiki/UKAEA-1102_group_structure -.. _ECCO-1968: http://serpent.vtt.fi/mediawiki/index.php/ECCO_1968-group_structure +.. _ECCO-1968: https://serpent.vtt.fi/mediawiki/index.php/ECCO_1968-group_structure .. [SAR1990] Sartori, E., OECD/NEA Data Bank: Standard Energy Group Structures of Cross Section Libraries for Reactor Shielding, Reactor Cell and Fusion Neutronics Applications: VITAMIN-J, ECCO-33, ECCO-2000 and XMAS JEF/DOC-315 diff --git a/openmc/tallies.py b/openmc/tallies.py index 585e54a7ef3..ebb313551ab 100644 --- a/openmc/tallies.py +++ b/openmc/tallies.py @@ -1502,7 +1502,7 @@ def get_pandas_dataframe(self, filters=True, nuclides=True, scores=True, df.columns = pd.MultiIndex.from_tuples(columns) # Modify the df.to_string method so that it prints formatted strings. - # Credit to http://stackoverflow.com/users/3657742/chrisb for this trick + # Credit to https://stackoverflow.com/users/3657742/chrisb for this trick df.to_string = partial(df.to_string, float_format=float_format.format) return df diff --git a/src/math_functions.cpp b/src/math_functions.cpp index ba1c6c3db14..5469b56c87c 100644 --- a/src/math_functions.cpp +++ b/src/math_functions.cpp @@ -650,7 +650,7 @@ void calc_zn(int n, double rho, double phi, double zn[]) // =========================================================================== // Determine vector of sin(n*phi) and cos(n*phi). This takes advantage of the // following recurrence relations so that only a single sin/cos have to be - // evaluated (http://mathworld.wolfram.com/Multiple-AngleFormulas.html) + // evaluated (https://mathworld.wolfram.com/Multiple-AngleFormulas.html) // // sin(nx) = 2 cos(x) sin((n-1)x) - sin((n-2)x) // cos(nx) = 2 cos(x) cos((n-1)x) - cos((n-2)x) diff --git a/tools/dev/generate_release_notes.py b/tools/dev/generate_release_notes.py new file mode 100644 index 00000000000..dee46ac49e5 --- /dev/null +++ b/tools/dev/generate_release_notes.py @@ -0,0 +1,17 @@ +import argparse +import re +import subprocess + +parser = argparse.ArgumentParser() +parser.add_argument('tag') +args = parser.parse_args() + +proc = subprocess.run(["git", "log", "--format=%s", f"{args.tag}.."], capture_output=True, text=True) +data = [] +for line in proc.stdout.rstrip().split('\n'): + m = re.match(r'(.*) \(\#(\d+)\)', line) + if m is not None: + data.append(m.groups()) + +for comment, num in sorted(data, key=lambda x: int(x[1])): + print(f'- {comment} (`#{num} `_)')