What’s New in 0.15.1¶
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
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 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 Tally
objects with openmc.Model.run()
,
bypassing boilerplate code for collecting tally results from statepoint files.
Finally, a new 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
openmc.WireframeRayTracePlot
to be in better alignment with the newly
introduced 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: -
openmc.model.OrthogonalBox
(#3118) -openmc.model.ConicalFrustum
(#3151) -openmc.model.Vessel
(#3168)The
openmc.Model.plot()
method now supports plotting source sites (#2863)The
openmc.stats.delta_function()
convenience function can be used for specifying distributions with a single point (#3090)Added a
openmc,Material.get_element_atom_densities()
method (#3103)Added a new
openmc.MuSurfaceFilter
class that filters tally events by the cosine of angle of a surface crossing (#2768)Introduced a
openmc.ParticleList
class for manipulating a list of source particles (#3148)Support dose coefficients from ICRP 74 in
openmc.data.dose_coefficients()
(#3020)Introduced a new
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
openmc.SolidRayTracePlot
class that can produce a 3D visualization based on Phong shading (#2655)The
openmc.UnstructuredMesh.write_data_to_vtk()
method now supports writing a VTU file (#3290)Composite surfaces now have a
component_surfaces
attribute that provides the underlying primitive surfaces (#3167)A new
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
andModel.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)