Recent Releases of openmc
openmc - OpenMC 0.15.2
This is a hotfix release to fix an MPI-related bug that was inadvertently introduced in the prior release.
Bug Fixes and Small Changes
- Remove errant
openmc.Settings.random_raycheck and removed of not useful warning in MG mode (#3344) - Throw an error if a spherical harmonics order larger than 10 is provided. (#3354)
- Correcting the size of the displacement list in the SourceSite MPI interface object (#3356)
- Python
Published by paulromano 11 months ago
openmc - OpenMC 0.15.1
This release of OpenMC includes many bug fixes, performance improvements, and several notable new features. The random ray solver continues to receives many updates and improvements, which are listed below in more detail. A new 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 openmcmcnpadapter). 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 openmc.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.plotmethod now supports plotting source sites (#2863) - The
openmc.stats.delta_functionconvenience function can be used for specifying distributions with a single point (#3090) - Added a
openmc,Material.get_element_atom_densitiesmethod (#3103) - Several third-party dependencies have been removed:
- Cython (#3111)
- gsl-lite (#3225)
- Added a new
openmc.MuSurfaceFilterclass that filters tally events by the cosine of angle of a surface crossing (#2768) - Introduced a
openmc.ParticleListclass 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_samplingoption (#3195) - Ability to differentiate materials in DAGMC universes (#3056)
- Added methods to automatically apply results to existing Tally objects. (#2671)
- Implemented a new
openmc.SolidRayTracePlotclass that can produce a 3D visualization based on Phong shading (#2655) - The
openmc.UnstructuredMesh.write_data_to_vtkmethod now supports writing a VTU file (#3290) - Composite surfaces now have a
openmc.CompositeSurface.component_surfacesattribute that provides the underlying primitive surfaces (#3167) - A new
openmc.deplete.d1ssubmodule 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 -DCMAKEBUILDTYPE=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_ROOTand 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
fmtFormatters 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 exportmodelxml arguments to Model.plotgeometry and Model.calculatevolumes (#3190)
- Fixes in MicroXS.frommultigroupflux (#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 _USEMATHDEFINES' 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
Zernikedocumentation 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.fromxmlelement 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.fromxmlelement 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 nuclidestoignore 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 CMAKEBUILDTYPE 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)
- Python
Published by paulromano 12 months ago
openmc - OpenMC 0.15.0
This release of OpenMC includes many bug fixes, performance improvements, and several notable new features. The major highlight of this release is the introduction of a new transport solver based on the random ray method, which is fully described in the user's guide. Other notable additions include a mesh-based source class (openmc.MeshSource), a generalization of source domain rejection through the notion of "constraints", and new methods on mesh-based classes for computing material volume fractions and homogenized materials.
Compatibility Notes and Deprecations
Previously, specifying domain rejection for a source was only possible on the openmc.IndependentSoure class and worked by specifying a domains argument. This capability has been generalized to all source classes and expanded as well; specifying a domain to reject on should now be done with the constraints argument as follows:
python
source = openmc.IndependentSource(..., constraints={'domains': [cell]})
The domains argument is deprecated and will be removed in a future version of OpenMC. Similarly, the only_fissionable argument to openmc.stats.Box has been replaced by a 'fissionable' constraint. That is, instead of specifying:
python
space = openmc.stats.Box(lower_left, upper_right, only_fissionable=True)
source = openmc.IndependentSource(space=space)
You should now provide the constraint as:
python
space = openmc.stats.Box(lower_left, upper_right)
source = openmc.IndependentSource(space=space, constraints={'fissionable': True})
The openmc.Settings.max_splits attribute was renamed to max_history_splits and its default value has been changed to 1e7 (#2954).
New Features
- When running OpenMC in volume calculation mode, only atomic weight ratio data is loaded from data files which reduces initialization time. (#2741)
- Introduced a
GeometryStateclass in C++ to better separate particle and geometry data. (#2744)) - A new
openmc.MaterialFromFilterclass allows filtering tallies by which material a particle came from. (#2750) - Implemented a
openmc.deplete.MicroXS.from_multigroup_fluxmethod that generates microscopic cross sections for depletion from a predetermined multigroup flux. (#2755) - A new
openmc.MeshSourceclass enables the specification of a source distribution over a mesh, where each mesh element has a different energy/angle/time distribution. (#2759) - Improve performance of depletion solver by utilizing CSR sparse matrix representation. (#2764, #2771)
- Added a
openmc.CylindricalMesh.get_indices_at_coordsmethod that provides the mesh element index corresponding to a given point in space. (#2782) - Added a
pathargument to theopenmc.deplete.Integrator.integratemethod. (#2784) - Added a
openmc.Geometry.get_all_nuclidesmethod. (#2796) - A new capability to compute material volume fractions over mesh elements was added in the
openmc.lib.Mesh.material_volumesmethod. (#2802) - A new transport solver was added based on the random ray method. (#2823, #2988)
- Added a
openmc.lib.Material.depletableattribute. (#2843) - Added a
openmc.lib.Mesh.get_plot_binsmethod and correspondingopenmc_mesh_get_plot_binsC API function that can be utilized to generate mesh tally visualizations in the plotter application. (#2854) - Introduced a
openmc.read_source_filefunction that enables reading a source file from the Python API. (#2858) - Added a
bounding_boxproperty on theopenmc.RectilinearMeshandopenmc.UnstructuredMeshclasses. (#2861) - Added a
openmc_mesh_get_volumesC API function. (#2869) - The
openmc.Settings.surf_source_writedictionary now acceptscell,cellfrom, orcelltokeys that limit surface source sites to those entering or leaving specific cells. (#2888) - Added a
openmc.Region.plotmethod that allows regions to be plotted directly. (#2895) - Implemented "contains" operator for the
openmc.BoundingBoxclass. (#2906) - Generalized source rejection via a new
constraintsargument to all source classes. (#2916) - Added a new
openmc.MeshBornFilterclass that filters tally events based on which mesh element a particle was born in. (#2925) - The
openmc.Triggerclass now has aignore_zerosargument that results in any bins with zero score to be ignored when checking the trigger. (#2928) - Introduced a
openmc.Settings.max_eventsattribute that controls the maximum number of events a particle can undergo. (#2945) - Added support for
openmc.UnstructuredMeshin theopenmc.MeshSourceclass. (#2949) - Added a
openmc.MeshBase.get_homogenized_materialsmethod that computes homogenized materials over mesh elements. (#2971) - Add an
optionsargument toopenmc.UnstructuredMeshthat allows configuring underlying data structures in MOAB. (#2976) - Type hints were added to several classes in the :mod:
openmc.depletemodule. (#2866)
Bug Fixes
- Fix unit conversion in openmc.deplete.Results.get_mass (#2761)
- Fix Lagrangian interpolation (#2775)
- Depletion restart with MPI (#2778)
- Modify depletion transfer rates test to be more robust (#2779)
- Call simulation_finalize if needed when finalizing OpenMC (#2790)
- F90_NONE Removal (MGMC tallying optimization) (#2785)
- Correctly apply volumes to materials when using DAGMC geometries (#2787)
- Add inline to openmc::interpolate (#2789)
- Use huge_tree=True in lxml parsing (#2791)
- OpenMPMutex "Copying" (#2794)
- Do not link against several transitive dependencies of HDF5 (#2797)
- Added check to length of input arguments for IndependantOperator (#2799)
- Pytest Update Documentation (#2801)
- Move 'import lxml' to third-party block of imports (#2803)
- Fix creation of meshes when from loading settings from XML (#2805)
- Avoid high memory use when writing unstructured mesh VTK files (#2806)
- Consolidating thread information into the openmp interface header (#2809)
- Prevent underflow in calculation of speed (#2811)
- Provide error message if a cell path can't be determined (#2812)
- Fix distribcell labels for lattices used as fill in multiple cells (#2813)
- Make creation of spatial trees based on usage for unstructured mesh. (#2815)
- Ensure particle direction is normalized for plotting / volume calculations (#2816)
- Added missing meshes to documentation (#2820)
- Reset timers at correct place in deplete (#2821)
- Fix config change not propagating through to decay energies (#2825)
- Ensure that implicit complement cells appear last in DAGMC universes (#2838)
- Export model.tallies to XML in CoupledOperator (#2840)
- Fix locating h5m files references in DAGMC universes (#2842)
- Prepare for NumPy 2.0 (#2845)
- Added missing functions and classes to openmc.lib docs (#2847)
- Fix compilation on CentOS 7 (missing link to libdl) (#2849)
- Adding resulting nuclide to cross section plot legend (#2851)
- Updating file extension for Excel files when exporting MGXS data (#2852)
- Removed error raising when calling warn (#2853)
- Setting
surf_source_attribute for DAGMC surfaces. (#2857) - Changing y axis label for heating plots (#2859)
- Removed unused step_index arg from restart (#2867)
- Fix issue with Cell::getcontainedcells() utility function (#2873)
- Adding energy axis units to plot xs (#2876)
- Set OpenMCOperator materials when diffburnablemats = True (#2877)
- Fix expansion filter merging (#2882)
- Added checks that tolerance value is between 0 and 1 (#2884)
- Statepoint file loading refactor and CAPI function (#2886)
- Added check for length of value passed into EnergyFilter (#2887)
- Ensure that Model.run() works when specifying a custom XML path (#2889)
- Updating docker file base to bookworm (#2890)
- Clarifying documentation for cones (#2892)
- Abort on cmake config if openmp requested but not found (#2893)
- Tiny updates from experience building on Mac (#2894)
- Added damage-energy as optional reaction for micro (#2903)
- docs: add missing max_splits in settings specification (#2910)
- Changed CI to use latest actions to get away from the Node 16 deprecation. (#2912)
- Mkdir to always allow parents and exist ok (#2914)
- Fixed small sphinx typo (#2915)
- Hexagonal lattice iterators (#2921)
- Fix Chain.form_matrix to work with scipy 1.12 (#2922)
- Allow getmicroxsandflux to use OPENMCCHAIN_FILE environment variable (#2934)
- Polygon fix to better handle colinear points (#2935)
- Fix CMFD to work with scipy 1.13 (#2936)
- Print warning if no natural isotopes when using add_element (#2938)
- Update xtl and xtensor submodules (#2941)
- Ensure two surfaces with different boundary type are not considered redundant (#2942)
- Updated package versions in Dockerfile (#2946)
- Add MPI calls to DAGMC external test (#2948)
- Eliminate deprecation warnings from scipy and pandas (#2951)
- Update math function unit test with catch2 (#2955)
- Support track file writing for particle restart runs. (#2957)
- Make UWUW optional (#2965)
- Allow pure decay IndependentOperator (#2966)
- Added fix to cfloat_endf for length 11 endf floats (#2967)
- Moved apt get to optional CI parts (#2970)
- Update bounding_box docstrings (#2972)
- Added extra error checking on spherical mesh creation (#2973)
- Update CODEOWNERS file (#2974)
- Added error checking on cylindrical mesh (#2977)
- Correction for histogram interpolation of Tabular distributions (#2981)
- Enforce lower_left in lattice geometry (#2982)
- Update random_dist.h comment to be less specific (#2991)
- Apply memoization in getalluniverses (#2995)
- Make sure skewed dataset is cast to bool properly (#3001)
- Hexagonal lattice roundtrip (#3003)
- Fix CylinderSector and IsogonalOctagon translations (#3018)
- Sets used instead of lists when membership testing (#3021)
- Fixing plot xs for when plotting element string reaction (#3029)
- Fix shannon entropy broken link (#3034)
- Only add png or h5 extension if not present in plots.py (#3036)
- Fix non-existent path causing segmentation fault when saving plot (#3038)
- Resolve warnings related to numpy 2.0 (#3044)
- Update IsogonalOctagon to use xz basis (#3045)
- Determine whether nuclides are fissionable in volume calc mode (#3047)
- Avoiding more numpy 2.0 deprecation warnings (#3049)
- Set DAGMC cell instances on surface crossing (#3052)
Contributors
- @aidancrilly
- @aprilnovak
- @arekfu
- @bam241
- @chrwagne
- @church89
- @cxtherineyu
- @ebknudsen
- @eepeterson
- @gridley
- @hsameer481
- @HunterBelanger
- @icmeyer
- @jbae11
- @JoffreyDorville
- @jtramm
- @kingyue737
- @Kladdy
- @kmeag
- @lhchg
- @LukeLabrie
- @MicahGale
- @nplinden
- @pitkajuh
- @rlbarker
- @paulromano
- @pshriwise
- @Shimwell
- @tjlaboss
- @vanessalulla
- @yardasol
- @yrrepy
- Python
Published by paulromano over 1 year ago
openmc - OpenMC 0.14.0
This release of OpenMC includes many bug fixes, performance improvements, and several notable new features. Some of the highlights include projection plots, pulse height tallies for photons, weight window generation, and an ability to specify continuous removal or feed of nuclides/elements during depletion. Additionally, one of the longstanding annoyances of depletion calculations, namely the need to include initial "dilute" nuclides, has been eliminated. There are also a wide array of general improvements in the Python API.
Compatibility Notes and Deprecations
- The
openmc.deplete.MicroXSclass has been completely redesigned and improved. See further comments below under "New Features". (#2572, #2579, #2595, #2700) - The
rectangular_prismfunction has been replaced by theopenmc.model.RectangularPrismclass and thehexagonal_prismfunction has been replaced by theopenmc.model.HexagonalPrismclass. Note that whereas therectangular_prismandhexagonal_prismfunctions returned a region representing the interior of the prism, the newopenmc.model.RectangularPrismandopenmc.model.HexagonalPrismclasses return composite surfaces, so you need to use the unary-or+operators to obtain a region that can be assigned to a cell. (#2739) - The
Sourceclass has been refactored and split up into three separate classes:openmc.IndependentSource,openmc.FileSource, andopenmc.CompiledSource. (#2524) - The
verticesandcentroidsattributes on mesh classes now always return Cartesian coordinates and the shape of the returned arrays has changed to allowijkindexing using a tuple (i.e.,xyz = vertices[i, j, k]). (#2711) - The
openmc.Material.decay_photon_energyattribute has been replaced by theopenmc.Material.get_decay_photon_energymethod. (#2715)
New Features
- A new
openmc.ProjectionPlotclass enables the generation of orthographic or perspective projection plots. (#1926) - The
openmc.model.RightCircularCylinderclass now supports optional filleted edges. (#2309) - Continuous removal or feed of nuclides/elements between materials can now be modeled during depletion via the
openmc.deplete.abc.Integrator.add_transfer_ratemethod. (#2358, #2564, #2626) - The MAGIC method for global weight window generation has been implemented as part of the C++ API. (#2359)
- A new capability for pulse height tallies (currently limited to photons) has been added and can be used via the "pulse-height" tally score. (#2452)
- A
openmc.model.CruciformPrismclass has been added that provides a generalized cruciform prism composite surface. (#2457) - Type hints have been added in various places throughout the Python API. (#2462 , #2467, #2468, #2470, #2471, #2601)
- Voxel plots can now be generated through the
openmc.Plot.to_vtkmethod. (#2464) - The
openmc.mgxs.EnergyGroupsclass now allows you to alternatively pass a string of the group structure name (e.g., "CCFE-709") instead of the energy group boundaries. (#2466) - Several enhancements have been made to the
openmc.Universe.plotmethod (addition of axis labels with units, ability to show legend and/or outlines, automatic determination of origin/width, ability to pass total number of pixels). (#2472 , #2482, #2483, #2492, #2513, #2575) - Functionality in the Python API dealing with bounding boxes now relies on a new
openmc.BoundingBoxclass. (#2475) - Users now have more flexibility in specifying nuclides and reactions in the
openmc.plot_xsfunction. (#2478) - The import time of the
openmcPython module has been improved by deferring the import of matplotlib. (#2488) - Mesh clases in the Python API now support a
bounding_boxproperty. (#2507, #2620, #2621) - The
Sourceclass has been refactored and split up into three separate classes:openmc.IndependentSource,openmc.FileSource, andopenmc.CompiledSource. (#2524) - Support was added for curvilinear elements when exporting cylindrical and spherical meshes to VTK. (#2533)
- The
openmc.Tallyclass now has aopenmc.Tally.multiply_densityattribute that indicates whether reaction rate tallies should include the number density of the nuclide of interest. (#2539) - The
openmc.wwinp_to_wwsfunction now supportswwinpfiles with cylindrical or spherical meshes. (#2556) - Depletion no longer relies on adding initial "dilute" nuclides to each depletable material in order to compute reaction rates. (#2559, #2568)
- The
openmc.deplete.Resultsclass now hasopenmc.deplete.Results.get_mass(#2565),openmc.deplete.Results.get_activity(#2617), andopenmc.deplete.Results.get_decay_heat(#2625) methods. - The
openmc.deplete.StepResult.savemethod now supports apathargument. (#2567) - The
openmc.deplete.MicroXShas been completely redesigned and improved. First, it no longer relies on theopenmc.mgxsmodule, no longer subclassespandas.DataFrame, and doesn't require adding initial "dilute" nuclides into material compositions. It now enables users to specify an energy group structure to collect multigroup cross sections, specify nuclides/reactions, and works with mesh domains in addition to the existing domains. A newopenmc.deplete.get_microxs_and_fluxfunction was added that improves the workflow for calculating microscopic cross sections along with fluxes. Altogether, these changes make it straightforward to switch between coupled and independent operators for depletion/activation calculations. (#2572, #2579 , #2595, #2700) - The
openmc.Geometryclass now hasmerge_surfacesandsurface_precisionarguments. (#2602) - Several predefined energy group structures have been added ("MPACT-51", "MPACT-60", "MPACT-69", "SCALE-252"). (#2614)
- When running a depletion calculation, you are now allowed to include nuclides in the initial material compositions that do not have neutron cross sections (decay-only nuclides). (#2616)
- The
openmc.CylindricalMeshandopenmc.SphericalMeshclasses can now be fully formed using the constructor. (#2619) - A time cutoff can now be specified in the
openmc.Settings.cutoffattribute. (#2631) - The
openmc.Material.add_elementmethod now supports across_sectionsargument that allows a cross section data source to be specified. (#2633 ) - The
openmc.Cellclass now has aplotmethod. (#2648) - The
openmc.Geometryclass now has aplotmethod. (#2661) - When weight window checks are performed can now be explicitly specified with the
openmc.Settings.weight_window_checkpointsattribute. (#2670) - The
openmc.Settingsclass now has amax_write_lost_particlesattribute that can limit the number of lost particle files written. (#2688) - The
openmc.deplete.CoupledOperatorclass now has adiff_volume_methodargument that specifies how the volume of new materials should be determined. (#2691) - The
openmc.DAGMCUniverse.bounding_regionmethod now has apadding_distanceargument. (#2701) - A new
openmc.Material.get_decay_photon_energymethod replaces thedecay_photon_energyattribute and includes an ability to eliminate low-importance points. This is facilitated by a newopenmc.stats.Discrete.clipmethod. (#2715) - The
openmc.model.Model.differentiate_depletable_matsmethod allows depletable materials to be differentiated independent of the depletion calculation itself. (#2718) - Albedos can now be specified on surface boundary conditions. (#2724)
Bug Fixes
- Enable use of NCrystal materials in plot_xs (#2435)
- Avoid segfault from extern "C" std::string (#2455)
- Fix several issues with the Model class (#2465)
- Provide alternative batch estimation message (#2479)
- Correct index check for remove_tally (#2494)
- Support for NCrystal material in fromxmlelement (#2496)
- Fix compilation with gcc 5 (#2498)
- Fixed in the Tally::add_filter method (#2501)
- Fix meaning of "masking" for plots (#2510)
- Fix description of statepoint.batches in Settings class (#2514)
- Reorder list initialization of Plot constructor (#2519)
- Added mkdir to cwd argument in Model.run (#2523)
- Fix export of spherical coordinates in SphericalMesh (#2538)
- Add virtual destructor on PlottableInterface (#2541)
- Ensure parent directory is created during depletion (#2543)
- Fix potential out-of-bounds access in TimeFilter (#2532)
- Remove use of sscanf for reading surface coefficients (#2574)
- Fix torus intersection bug (#2589)
- Multigroup per-thread cache fixes (#2591)
- Bank surface source particles in all active cycles (#2592)
- Fix for muir standard deviation (#2598)
- Check for zero fission cross section (#2600)
- XML read fixes in Plot classes (#2623)
- Added infinity check in VolumeCalculation (#2634)
- Fix sampling issue in Mixture distributions (#2658)
- Prevent segfault in distance to boundary calculation (#2659)
- Several CylindricalMesh fixes (#2676, #2680, #2684, #2710)
- Add type checks on Intersection, Union, Complement (#2685)
- Fixed typo in CF4Integrator docstring (#2704)
- Ensure property setters are used in CylindricalMesh and SphericalMesh (#2709)
- Fix sampleexternalsource bug (#2713)
- Fix localization issue affecting openmc-plotter (#2723)
- Correct openmc.lib wrapper for evaluate_legendre (#2729)
- Bug fix in Region.from_expression during tokenization (#2733)
- Fix bug in temperature interpolation (#2734)
- Check for invalid domain IDs in volume calculations (#2742)
- Skip boundary condition check for volume calculations (#2743)
- Fix loop over coordinates for source domain rejection (#2751)
Contributors
- @aprilnovak
- @bam241
- @bscollin
- @caderache2014
- @cfichtlscherer
- @christinacai123
- @church89
- @dubway420
- @ecasglez
- @ebknudsen
- @eepeterson
- @egor1abs
- @gonuke
- @gridley
- @HunterBelanger
- @j-fletcher
- @johvincau
- @joshmay1
- @jtramm
- @kevinm387
- @kingyue737
- @lewisgross1296
- @LukeLabrie
- @myerspat
- @nicriz
- @nutcasev15
- @paulromano
- @pshriwise
- @rlbarker
- @Shimwell
- @stchaker
- @tjlaboss
- @XinyanBradley
- @yardasol
- @zoeprieto
- Python
Published by paulromano over 2 years ago
openmc - OpenMC 0.13.3
This release of OpenMC includes many bug fixes, performance improvements, and several notable new features. Some of the highlights include support for MCPL source files, NCrystal thermal scattering materials, and a new openmc.stats.MeshSpatial class that allows a source distribution to be specified over a mesh. Additionally, OpenMC now allows you to export your model as a single XML file rather than separate XML files for geometry, materials, settings, and tallies.
Compatability Notes and Deprecations
- Atomic mass data used in
openmc.data.atomic_masshas been updated to AME 2020, which results in slightly different masses.
New Features
- Support was added for MCPL files to be used as external sources. Additionally, source points and surfaces sources can be written as MCPL files instead of HDF5 files. (#2116)
- Support was added for NCrystal thermal scattering materials. (#2222)
- The
openmc.CylindricalMeshandopenmc.SphericalMeshclasses now have anoriginattribute that changes the center of the mesh. (#2256) - A new
openmc.model.Polygonclass allows defining generalized 2D polygons. (#2266) - A new
openmc.data.decay_energyfunction andopenmc.Material.get_decay_heatmethod enable determination of decay heat from a single nuclide or material. (#2287) - Full models can now be written as a single XML file rather than separate geometry, materials, settings, and tallies XML files. (#2291)
- Discrete distributions are now sampled using alias sampling, which is O(1) in time. (#2329)
- The new
openmc.stats.MeshSpatialallows a spatial source distribution to be specified with source strengths for each mesh element. (#2334) - The new
openmc.Geometry.get_surfaces_by_namemethod returns a list of matching surfaces in a geometry. (#2347) - A new
openmc.Settings.create_delayed_neutronsattribute controls whether delayed neutrons are created during a simulation. (#2348) - The
openmc.deplete.Results.export_to_materialsmethod now takes apathargument. (#2364) - A new
openmc.EnergyFilter.get_tabularmethod allows one to create a tabular distribution based on tally results using an energy filter. (#2371) - Several methods in the
openmc.Materialclass that require a volume to be set (e.g.,openmc.Material.get_mass) now accept avolumeargument. (#2412)
Bug Fixes
- Fix for finding redundant surfaces (#2263)
- Adds tolerance for temperatures slightly out of bounds (#2265)
- Fix getter/setter for weight window bounds (#2275)
- Make sure Chain.reduce preserves decay source (#2283)
- Fix array shape for weight window bounds (#2284)
- Fix for non-zero CDF start points in TSL data (#2290)
- Fix a case where inelastic scattering yield is zero (#2295)
- Prevent Compton profile out-of-bounds memory access (#2297)
- Produce light particles from decay (#2301)
- Fix zero runtime attributes in depletion statepoints (#2302)
- Fix bug in openmc.Universe.getnuclidedensities (#2310)
- Only show print output from depletion on rank 0 (#2311)
- Fix photon transport with no atomic relaxation data (#2312)
- Fix for precedence in region expressions (#2318)
- Allow source particles with energy below cutoff (#2319)
- Fix IncidentNeutron.from_njoy for high temperatures (#2320)
- Add capability to unset cell temperatures (#2323)
- Fix in plot_xs when S(a,b) tables are present (#2335)
- Various fixes for tally triggers (#2344)
- Raise error when mesh is flat (#2363)
- Don't call normalize inside Tabular.mean (#2375)
- Avoid out-of-bounds access in inelastic scatter sampling (#2378)
- Use correct direction for anisotropic fission (#2381)
- Fix several thermal scattering nuclide assignments (#2382)
- Fix materialsby_id attribute in Model (#2385)
- Updates to batch checks for simulation restarts (#2390)
- writedatato_vtk volume normalization correction (#2397)
- Enable generation of JEFF 3.3 depletion chain (#2410)
- Fix spherical to Cartesian coordinate conversion (#2417)
- Handle zero photon cross sections in IncidentPhoton.from_ace (#2433)
- Fix hybrid depletion when nuclides are not present (#2436)
- Fix bug in cylindrical and spherical meshes (#2439)
- Improvements to mesh radial boundary coincidence (#2443)
Contributors
- @HunterBelanger
- @RemDelaporteMathurin
- @cfichtlscherer
- @valeriogiusti
- @keckler
- @kkiesling
- @tkittel
- @ebknudsen
- @colinelarmier
- @amandalund
- @marquezj
- @joshmay1
- @myerspat
- @bam241
- @aprilnovak
- @NybergWISC
- @eepeterson
- @gridley
- @paulromano
- @pshriwise
- @Shimwell
- @gonuke
- @yardasol
- @rockfool
- Python
Published by paulromano almost 3 years ago
openmc - OpenMC 0.13.2
This release of OpenMC includes several bug fixes, performance improvements for complex geometries and depletion simulations, and other general enhancements. Notably, a capability has been added to compute the photon spectra from decay of unstable nuclides. Alongside that, a new openmc.config configuration variable has been introduced that allows easier configuration of data sources. Additionally, users can now perform cell or material rejection when sampling external source distributions.
Compatability Notes and Deprecations
- If you are building against libMesh for unstructured mesh tally support, version 1.6 or higher is now required.
- The
openmc.stats.Muirclass has been replaced by aopenmc.stats.muirfunction that returns an instance ofopenmc.stats.Normal.
New Features
- The
openmc.Material.get_nuclide_atom_densitiesmethod now takes an optionalnuclideargument. - Functions/methods in the
openmc.depletemodule now accept times in Julian years ('a'). - The
openmc.Universe.plotmethod now allows a pre-existing axes object to be passed in. - Performance optimization for geometries with many complex regions.
- Performance optimization for depletion by avoiding deepcopies and caching reaction rates.
- The
openmc.RegularMeshclass now has afrom_domainclassmethod. - The
openmc.CylindricalMeshclass now has afrom_domainclassmethod. - Improved method to condense diffusion coefficients from the
openmc.mgxsmodule. - A new :data:
openmc.configconfiguration variable has been introduced that allows data sources to be specified at runtime or via environment variables. - The
openmc.EnergyFunctionFilterclass now supports multiple interpolation schemes, not just linear-linear interpolation. - The
openmc.DAGMCUniverseclass now hasmaterial_names,n_cells, andn_surfacesattributes. - A new
openmc.data.decay_photon_energyfunction has been added that returns the energy spectrum of photons emitted from the decay of an unstable nuclide. - The
openmc.Materialclass also has a newdecay_photon_energyattribute that gives the decay photon energy spectrum from the material based on its constituent nuclides. - The
openmc.deplete.StepResultnow has aget_materialmethod. - The
openmc.Sourceclass now takes adomainsargument that specifies a list of cells, materials, or universes that is used to reject source sites (i.e., if the sampled sites are not within the specified domain, they are rejected).
Bug Fixes
- Delay call to Tally::set_strides
- Fix reading reference direction from XML for angular distributions
- Fix erroneous behavior in Material.add_components
- Fix reading thermal elastic data from ACE
- Fix reading source file with time attribute
- Fix conversion of multiple thermal scattering data files from ACE
- Fix reading values from wwinp file
- Handle possibility of .ppm file in Universe.plot
- Update volume calc types to mitigate overflow issues
Contributors
- @lewisgross1296
- @drewejohnson
- @mkreher13
- @jlogan03
- @marquezj
- @joshmay1
- @myerspat
- @nelsonag
- @aprilnovak
- @eepeterson
- @gridley
- @paulromano
- @pshriwise
- @Shimwell
- @yardasol
- Python
Published by paulromano over 3 years ago
openmc - OpenMC 0.13.1
This release of OpenMC includes many bug fixes as well as improvements in geometry modeling, mesh functionality, source specification, depletion capabilities, and other general enhancements. The depletion module features a new transport operator, openmc.deplete.IndependentOperator, that allows a depletion calculation to be performed using arbitrary one-group cross sections (e.g., generated by an external solver) along with a openmc.deplete.MicroXS class for managing one-group cross sections. The track file generation capability has been significantly overhauled and a new openmc.Tracks class was introduced to allow access to information in track files from the Python API. Support has been added for new ENDF thermal scattering evaluations that use mixed coherent/incoherent elastic scattering.
Compatibility Notes and Deprecations
- The
openmc.deplete.Operatorclass has been renamedopenmc.deplete.CoupledOperator. - The
openmc.deplete.ResultsListclass has been renamed toopenmc.deplete.Resultsand no longer requires you to call thefrom_hdf5()method in order to create it; instead, you can directly instantiate it. A few methods that represent k-effective have been renamed for the sake of consistency:
openmc.StatePoint.k_combinedis nowopenmc.StatePoint.keffopenmc.deplete.ResultsList.get_eigenvalueis nowopenmc.deplete.Results.get_keff
The
openmc.stats.SphericalIndependentclass, which used to accept a distribution forthetanow accepts a distribution forcos_thetainstead in order to more easily handle the common case of specifying a uniform spatial distribution over a sphere (also see the newopenmc.stats.spherical_uniformfunction).If you are building OpenMC from source, note that several of our CMake options have been changed:
| Old option | New option |
| --- | --- |
| debug | --- |
| optimize | --- |
| profile | OPENMC_ENABLE_PROFILE |
| coverage | OPENMC_ENABLE_COVERAGE |
| openmp | OPENMC_USE_OPENMP |
| --- | OPENMC_USE_MPI |
| dagmc | OPENMC_USE_DAGMC |
| libmesh | OPENMC_USE_LIBMESH |
The debug and optimize options have been removed; instead, use the standard CMAKEBUILDTYPE variable.
New Features
- Two new composite surfaces:
openmc.model.IsogonalOctagonandopenmc.model.CylinderSector. - The
DAGMCUniverseclass now has abounding_boxattribute and abounding_regionmethod. - When translating a
Regionusing thetranslatemethod, there is now aninplaceargument. The
Materialclass has several new methods and attributes:- The
add_componentsmethods allows you to add multiple nuclides/elements to a material with a single call by passing a dictionary. - The
get_activitymethod returns the activity of a material in Bq, Bq/g, or Bq/cm³. - The
remove_elementmethod removes an element from a material - The
get_nuclide_atomsmethod gives the number of atoms of each nuclide in a material
- The
All mesh classes now have a
volumesproperty that provides the volume of each mesh element as well aswrite_data_to_vtkmethods.Support for externally managed MOAB meshes or libMesh meshes.
Multiple discrete distributions can be merged with the new
openmc.stats.Discrete.mergemethod.The
openmc.stats.spherical_uniformfunction creates a uniform distribution over a sphere using theSphericalIndependentclass.Univariate distributions in the
openmc.statsmodule now havesample()methods.An
openmc_sample_external_sourcefunction has been added to the C API with a corresponding Python bindingopenmc.lib.sample_external_source.The track file generation capability has been completely overhauled. Track files now include much more information, and a new
openmc.Tracksclass allows access to track file information from the Python API and has awrite_to_vtkmethod for writing a VTK file. Multiple tracks are now written to a single file (one per MPI rank).A new
openmc.wwinp_to_wwsfunction that converts weight windows from awwinpfile to a list ofWeightWindowsobjects.The new
openmc.EnergyFilter.from_group_structuremethod provides a way of creating an energy filter with a group structure identified by name.The
openmc.data.Decayclass now has asourcesproperty that provides radioactive decay source distributions.A
openmc.mgxs.ReducedAbsorptionXSclass produces a multigroup cross section representing "reduced" absorption (absorption less neutron production from (n,xn) reactions).Added support in the Python API and HDF5 nuclear data format for new ENDF thermal neutron scattering evaluations with mixed coherent elastic and incoherent elastic.
CMake now relies on
find_package(MPI)for a more standard means of identifying an MPI compiler configuration.
Bug Fixes
- Fix bug when a rotation matrix is passed to Halfspace.rotate
- Fix bug for spherical mesh string repr
- Fix package_data specification to include pyx files
- Allow meshes with same ID to appear in multiple files
- Fix overwritten variable in getlibrariesfrom_xsdata
- Write output files to correct directory
- Allow CMake to properly find third-party packages
- Fix Region.from_expression when ")(" appears in specification
- Move lost particle reset from finalize() to reset()
- Minor typo fixes in test_lattice.py
- Fix color assignment in Universe.plot
- Several depletion-related fixes
- Allow control of C++ standard used by compiler
- Fix IO format documentation for surface source read/write
- Make sure basis gets set in Plot.from_geometry
- Improve robustness of torus distance calculation
- Allow use of redundant fission when adjusting KERMA in from_njoy
- Disable GNU extensions for CMake target
- Two from_xml fixes
- Fix for rare infinite loop when finding cell
- Allow photon heating to be tallied by nuclide
- Use UTF-8 encoding when reading dose coefficients
- Fix a corner case in Region.from_expression
- Fix bug in spherical and cylindrical meshes
- Ensure weight window bounds are flattened when writing to XML
- Fix for std::cout sync bug in output.cpp
- Allow compiling against fmt v9
- Fix TimeFilter for small time intervals
Contributors
- @andrsd
- @HunterBelanger
- @helen-brooks
- @RemDelaporteMathurin
- @JoffreyDorville
- @cfichtlscherer
- @lewisgross1296
- @drewejohnson
- @kkiesling
- @amandalund
- @richmorrison
- @myerspat
- @nelsonag
- @aprilnovak
- @eepeterson
- @gridley
- @paulromano
- @Shimwell
- @pshriwise
- @ameliajo
- @jtramm
- @burberger
- @yardasol
- Python
Published by paulromano over 3 years ago
openmc - OpenMC 0.13.0
This release of OpenMC includes several noteworthy and unique features. Most importantly, mesh-based weight windows have been added and work with all supported mesh types (regular, rectilinear, cylindrical, spherical, and unstructured). Other additions include torus surfaces, an ability to place CAD-based geometries in universes, a feature to export/import physical properties, and a filter for particle time.
There is one breaking changing in the Python API. The openmc.deplete.Operator class used to accept Geometry and Settings objects as its first two arguments; users now need to pass a Model class instead.
The minimum supported Python version is now 3.6.
New Features
- Variance reduction using mesh-based weight windows is now possible with the
WeightWindowsclass. - Users can now model axis-aligned tori using the
XTorus,YTorus, andZTorusclasses. - DAGMC CAD-based geometries can now be placed in a universe using
DAGMCUniverse, allowing users to combine CSG and CAD-based geometry in a single model. - The C/C++ API has two new functions
openmc_properties_exportandopenmc_properties_importwith corresponding Python API bindings,openmc.lib.export_propertiesandopenmc.lib.import_properties. These functions allow physical properties (temperatures, densities, material compositions) to be written to an HDF5 file and re-used for subsequent simulations. - A new
openmc.stats.PowerLawunivariate distribution - The capabilities of the
Modelclass have been substantially expanded (e.g., theModel.deplete,Model.plot_geometry, andModel.rotate_cellsmethods). - A new
TimeFilterclass that allows tallies to be filtered by the particle's time, which is now tracked. - The
Sourceclass now allows you to specify a time distribution. - The new
CylindricalMeshandSphericalMeshclasses can be used for mesh tallies over cylidrical and spherical meshes, respectively. - Geometry plotting, which used to produce the files in the unusual .ppm format, now produces .png files by default.
Bug Fixes
- Fix for shared fission bank memory errors
- Make sure properties export only happens from root process
- Fix pathlib use error in openmc-ace-to-hdf5
- Fix DAGMC and libMesh variable in CMake config
- Fix bug associated with volume calc in MG mode
- Add missing Settings.writeinitialsource property
- Bug fixes for specifying Materials.cross_sections
- Removing Legendre filter in diffusion coefficient results
- Ensure particles lost during eventcalculatexs are terminated
- Fixed parsing of xsdir entries with a continuation line
- openmc.RegularMesh attribute consistency
- Ensure secondary particles below energy cutoff are not created
- Allow compilation with g++ 11
- Depletion-related bug fixes
- Miscellaneous bug fixes
- Fixes for various bugs
- Reset triggers in openmc_reset
Contributors
This release contains new contributions from the following people:
- @HunterBelanger
- @helen-brooks
- @makeclean
- @valeriogiusti
- @jeffhammond
- @YuanHu-PKU-KIT
- @drewejohnson
- @mkreher13
- @amandalund
- @nelsonag
- @aprilnovak
- @AI-Pranto
- @gridley
- @paulromano
- @ojschumann
- @Shimwell
- @pshriwise
- @jtramm
- Python
Published by paulromano about 4 years ago
openmc - OpenMC 0.12.2
This release of OpenMC is primarily a hotfix release with numerous important bug fixes. Several tally-related enhancements have also been added.
New Features
Three tally-related enhancements were added to the code in this release:
- A new
CollisionFilterclass that allows tallies to be filtered by the number of collisions a particle has undergone. - A
translationattribute has been added toMeshFilterthat allows a mesh to be translated from its original position before location checks are performed. - The
UnstructuredMeshclass now supports libMesh unstructured meshes to enable better ingration with MOOSE-based applications.
Bug Fixes
- Reset particle coordinates during find cell operation
- Cover quadric edge case
- Prevent divide-by-zero in bins_crossed methods for meshes
- Fix for translational periodic boundary conditions
- Fix angle sampling in CorrelatedAngleEnergy
- Fix typo in fmt string for a lattice error
- Nu-fission tally and stochastic volume bug fixes
- Make sure failed neighbor list triggers exhaustic search
- Change element to element.title to catch lowercase entries
- Disallow non-current scores with a surface filter
- Depletion operator obeys Materials.cross_sections
- Fix for surfacebinscrossed override
Contributors
This release contains new contributions from the following people:
- @HunterBelanger
- @isaac-gs
- @drewejohnson
- @gridley
- @paulromano
- @pshriwise
- @Shimwell
- @ameliajo
- Python
Published by paulromano over 4 years ago
openmc - OpenMC 0.12.1
This release of OpenMC includes an assortment of new features and many bug fixes. The openmc.deplete module incorporates a number of improvements in usability, accuracy, and performance. Other enhancements include generalized rotational periodic boundary conditions, expanded source modeling capabilities, and a capability to generate windowed multipole library files from ENDF files.
New Features
- Boundary conditions have been refactored and generalized. Rotational periodic boundary conditions can now be applied to any N-fold symmetric geometry.
External source distributions have been refactored and extended. Users writing their own C++ custom sources need to write a class that derives from
openmc::Source. These changes have enabled new functionality, such as:- Mixing more than one custom source library together
- Mixing a normal source with a custom source
- Using a file-based source for fixed source simulations
- Using a file-based source for eigenvalue simulations even when the number of particles doesn't match
New capability to read and write a source file based on particles that cross a surface (known as a "surface source").
Various improvements related to depletion:
- Reactions used in a depletion chain can now be configured through the
reactionsargument toopenmc.deplete.Chain.from_endf. - Specifying a power of zero during a depletion simulation no longer results in an unnecessary transport solve.
- Reaction rates can be computed either directly or using multigroup flux tallies that are used to collapse reaction rates afterward. This is enabled through the
reaction_rate_modeandreaction_rate_optstoopenmc.deplete.Operator. - Depletion results can be used to create a new
openmc.Materialsobject using theopenmc.deplete.ResultsList.export_to_materialsmethod.
- Reactions used in a depletion chain can now be configured through the
Multigroup current and diffusion cross sections can be generated through the
openmc.mgxs.Currentandopenmc.mgxs.DiffusionCoefficientclasses.Added
openmc.data.isotopesfunction that returns a list of naturally occurring isotopes for a given element.Windowed multipole libraries can now be generated directly from the Python API using
openmc.data.WindowedMultipole.from_endf.The new
openmc.write_source_filefunction allows source files to be generated programmatically.
Bug fixes
- Proper detection of MPI wrappers
- Fix related to declaration order of maps/vectors
- Check for existence of decay rate attribute
- Small updates to deal with JEFF 3.3 data
- Fix for depletion chain generation
- Fix call to superclass constructor in MeshPlotter
- Fix for data crossover in VTK files
- Make sure reaction names are recognized as valid tally scores
- Fix bug related to logging of particle restarts
- Examine if region exists before removing redundant surfaces
- Fix plotting of individual universe levels
- Mixed materials should inherit depletable attribute
- Fix typo in energy units in dose coefficients
- Fixes for large tally cases
- Fix verification of volume calculation results
- Fix calculation of decay energy for depletion chains
- Fix pointers in CartesianIndependent
- Ensure correct initialization of members for RegularMesh
- Add missing import in depletion module
- Fixed several bugs related to decay-rate
- Fix how depletion operator distributes burnable materials
- Fix assignment of elemental carbon in JEFF 3.3
- Fix typo in
RectangularParallelepiped.__pos__ - Fix temperature tolerance with S(a,b) data
- Fix sampling or normal distribution
- Fix for SharedArray relaxed memory ordering
- Check for proper format of source files
- Ensure (n,gamma) reaction rate tally uses sampled cross section
- Fix for temperature range behavior
Contributors
This release contains new contributions from the following people:
- @makeclean
- @GiudGiud
- @smharper
- @bryanherman
- @kingyue737
- @drewejohnson
- @mkreher13
- @shikhar413
- @liangjg
- @amandalund
- @nelsonag
- @aprilnovak
- @ypark234
- @Pranto
- @RonRahaman
- @gridley
- @paulromano
- @Shimwell
- @DanShort12
- @pshriwise
- @roystgnr
- @jtramm
- @cjwyett
- @rockfool
- Python
Published by paulromano almost 5 years ago
openmc - OpenMC 0.12.0
This release of OpenMC includes an assortment of new features and many bug fixes. In particular, the openmc.deplete module has been heavily tested which has resulted in a number of usability improvements, bug fixes, and other enhancements. Energy deposition calculations, particularly for coupled neutron-photon simulations, have been improved as well.
Improvements in modeling capabilities continue to be added to the code, including the ability to rotate surfaces in the Python API, several new "composite" surfaces, a variety of new methods on openmc.Material, unstructured mesh tallies that leverage the existing DAGMC infrastructure, effective dose coefficients from ICRP-116, and a new cell instance tally filter.
New Features
- All surfaces now have a
rotatemethod that allows them to be rotated. Several "composite" surfaces, which are actually composed of multiple surfaces but can be treated as a normal surface through the -/+ unary operators, have been added. These include:
openmc.model.RightCircularCylinderopenmc.model.RectangularParallelepipedopenmc.model.XConeOneSided(and equivalent versions for y- and z-axes)
Various improvements related to depletion:
- The matrix exponential solver can now be configured through the
solverargument on depletion integrator classes. - The
openmc.deplete.Chain.reducemethod can automatically reduce the number of nuclides in a depletion chain. - Depletion integrator classes now allow a user to specify timesteps in several units (s, min, h, d, MWd/kg).
openmc.deplete.ResultsList.get_atomsnow allows a user to obtain depleted material compositions in atom/b-cm.
- The matrix exponential solver can now be configured through the
Several new methods on
openmc.Material:- The
add_elements_from_formulamethod allows a user to create a material based on a chemical formula. add_elementnow supports theenrichmentargument for non-uranium elements when only two isotopes are naturally occurring.add_elementnow supports adding elements by name rather than by symbol.- The
get_elementsmethod returns a list of elements within a material. - The
mix_materialsmethod allows multiple materials to be mixed together based on atom, weight, or volume fractions.
- The
The acceptable number of lost particles can now be configured through
openmc.Settings.max_lost_particlesandopenmc.Settings.rel_max_lost_particles.Delayed photons produced from fission are now accounted for by default by scaling the yield of prompt fission photons. This behavior can be modified through the
openmc.Settings.delayed_photon_scalingattribute.A trigger can now be specified for a volume calculation via the
openmc.VolumeCalculation.set_triggermethod.The
openmc.stats.SphericalIndependentandopenmc.stats.CylindricalIndependentclasses allow a user to specify source distributions based on spherical or cylindrical coordinates.Custom external source distributions can be used via the
openmc.Source.libraryattribute.Unstructured mesh class,
openmc.UnstructuredMesh, that can be used in tallies.The
openmc.CellInstanceFilterclass allows one or more instances of a repeated cell to be tallied. This is effectively a more flexible version of the existingopenmc.DistribcellFilterclass.The
openmc.data.dose_coefficientsfunction provides effective dose coefficients from ICRP-116 and can be used in conjunction withopenmc.EnergyFunctionFilterin a tally.
Bug fixes
- Keep user-supplied prev_results on operator
- Fix bug when S(a,b) tables appear in depletable material
- DAGMC fix for implicit complement material assignment
- Bug fix for tallying reaction rates in coupled n-p runs
- Corrected issue with multiplicity matrix
- Fix depletion with photon transport
- Fix secondary photon creation
- Bug fix for total xs plotting
- Account for light nuclide production in depletion
- Reset timer in depletion calculations
- Fix for Model.run
- Ensure NJOY output goes to specified directory
- Fix bug preventing creating photon data
- Fix bug when surface ID > 999999
- Fix bug for reading output settings in Settings.from_xml
- Fix improve energy deposition for coupled neutron-photon
- Use number of particles for tally normalization
- Fix a number of problems related to photoatomic data
- Fix cosine smearing for S(a,b)
- Use relative distances for coincidence test in hex lattice
- Fix RPATH for non-Debian linux systems
- Fix mesh plotter energy filter bins
- Fix memory leak
- Fix volume allocation related to burnable materials
- Fix tally mesh bug for short tracks
- DAGMC void material assignment fix
- Fix for Mesh
__repr__methods
Contributors
This release contains new contributions from the following people:
- @ChasingNeutrons
- @stevendargaville
- @makeclean
- @dryuri92
- @GiudGiud
- @awgolas
- @NuclearEngideer
- @smharper
- @YuanHu-PKU-KIT
- @kingyue737
- @drewejohnson
- @Mikolaj-A-Kowalski
- @shikhar413
- @liangjg
- @davidjohnlong
- @amandalund
- @alex-lyons
- @nelsonag
- @eepeterson
- @sampug
- @AI-Pranto
- @simondrichards
- @gridley
- @paulromano
- @Shimwell
- @pshriwise
- @jtramm
- @gonuke
- @rockfool
- Python
Published by paulromano over 5 years ago
openmc - OpenMC 0.11.0
This release of OpenMC adds several major new features: depletion, photon transport, and support for CAD geometries through DAGMC. In addition, the core codebase has been rewritten in C++14 (it was previously written in Fortran 2008). This makes compiling the code considerably simpler as no Fortran compiler is needed.
Functional expansion tallies are now supported through several new tally filters that can be arbitrarily combined:
openmc.LegendreFilteropenmc.SpatialLegendreFilteropenmc.SphericalHarmonicsFilteropenmc.ZernikeFilteropenmc.ZernikeRadialFilter
Note that these filters replace the use expansion scores like scatter-P1. Instead, a normal scatter score should be used along with a openmc.LegendreFilter.
The interface for random sphere packing has been significantly improved. A new openmc.model.pack_spheres function takes a region and generates a random, non-overlapping configuration of spheres within the region.
New Features
- White boundary conditions can be applied to surfaces
- Support for rectilinear meshes through
openmc.RectilinearMesh. - The
Geometry,Materials, andSettingsclasses now have afrom_xmlmethod that will build an instance from an existing XML file. - Predefined energy group structures can be found in
openmc.mgxs.GROUP_STRUCTURES. - New tally scores:
H1-production,H2-production,H3-production,He3-production,He4-production,heating,heating-local, anddamage-energy. - Switched to cell-based neighor lists (PR 1140)
- Two new probability distributions that can be used for source distributions:
openmc.stats.Normalandopenmc.stats.Muir - The
openmc.datamodule now supports reading and sampling from ENDF File 32 resonance covariance data (PR 1024). Several new convenience functions/methods have been added:
- The
openmc.model.cylinder_from_pointsfunction creates a cylinder given two points passing through its center and a radius. - The
openmc.Plane.from_pointsfunction creates a plane given three points that pass through it. - The
openmc.model.pinfunction creates a pin cell universe given a sequence of concentric cylinders and materials.
- The
Python API Changes
- All surface classes now have coefficient arguments given as lowercase names.
The order of arguments in surface classes has been changed so that coefficients are the first arguments (rather than the optional surface ID). This means you can now write:: ```python x = openmc.XPlane(5.0, 'reflective') zc = openmc.ZCylinder(0., 0., 10.)
The
Meshclass has been renamedopenmc.RegularMesh.The
get_rectangular_prismfunction has been renamedopenmc.model.rectangular_prism.The
get_hexagonal_prismfunction has been renamedopenmc.model.hexagonal_prism.Python bindings to the C/C++ API have been move from
openmc.capitoopenmc.lib.
Bug fixes
- Rotate azimuthal distributions correctly for source sampling
- Fix reading ASCII ACE tables in Python 3
- Fix bug for distributed temperatures
- Fix bug for distance to boundary in complex cells
- Bug fixes for precursor decay rate tallies
- Check for invalid surface IDs in region expression
- Support for 32-bit operating systems
- Avoid segfault from unused nuclides
- Avoid overflow when broadcasting tally results
Contributors
This release contains new contributions from the following people:
- @brbass
- @wbinventor
- @makeclean
- @dryuri92
- @GiudGiud
- @graybri3
- @hanzhuoran
- @smharper
- @drewejohnson
- @cjosey
- @shikhar413
- @tjlaboss
- @matiaslavista
- @liangjg
- @lindsayad
- @johnnyliu27
- @amandalund
- @janmalec
- @icmeyer
- @aprilnovak
- @nelsonag
- @gridley
- @salcedop
- @paulromano
- @samuelshaner
- @Shimwell
- @pshriwise
- @jtramm
- @rockfool
- @zxkjack123
- Python
Published by paulromano over 6 years ago
openmc - OpenMC 0.10.0
This release of OpenMC includes several new features, performance improvements, and bug fixes compared to version 0.9.0. Notably, a C API has been added that enables in-memory coupling of neutronics to other physics fields, e.g., burnup calculations and thermal-hydraulics. The C API is also backed by Python bindings in a new openmc.capi package. Users should be forewarned that the C API is still in an experimental state and the interface is likely to undergo changes in future versions.
The Python API continues to improve over time; several backwards incompatible changes were made in the API which users of previous versions should take note of:
To indicate that nuclides in a material should be treated such that elastic scattering is isotropic in the laboratory system, there is a new
Material.isotropicproperty:mat = openmc.Material() mat.add_nuclide('H1', 1.0) mat.isotropic = ['H1']To treat all nuclides in a material this way, theMaterial.make_isotropic_in_labmethod can still be used.The initializers for
openmc.Intersectionandopenmc.Unionnow expect an iterable.Auto-generated unique IDs for classes now start from 1 rather than 10000.
NOTE: This is the last release of OpenMC that will support Python 2.7. Future releases of OpenMC will require Python 3.4 or later.
New Features
- Rotationally-periodic boundary conditions
- C API (with Python bindings) for in-memory coupling
- Improved correlation for Uranium enrichment
- Support for partial S(a,b) tables
- Improved handling of autogenerated IDs
- Many performance/memory improvements
Bug Fixes
- 93746953ccd8d422b096dbef3c21d359e7424f0e Fix energy group sampling for multi-group simulations
- a149ef42a0b895d4014d43c82f680c55f6ae0db6 Ensure mutable objects are not hashable
- 2c9b210440b9b69b3b3009e2ae9f782b6eb7df26 Preserve backwards compatibility for generated HDF5 libraries
- 8047f6c1343451d6a466d77555bdff0bb228b422 Handle units of division for tally arithmetic correctly
- 0beb4cb937b453696db933f69ec9400d5e579515 Compatibility with newer versions of Pandas
- f124becba69ba60a9e2b70ad855b3b2d16e6902e Fix generating 0K data with openmc.data.njoy module
- 0c69153628c9aaf6a0370acbe9db4fbbbac2e07b Bugfix for generating thermal scattering data
- 61ecb4757e3b162ef4aba3e7c12ddc84ace0a9ea Fix bugs in Python multipole objects
Contributors
This release contains new contributions from the following people:
- @brbass
- @wbinventor
- @GiudGiud
- @graybri3
- @smharper
- @cjosey
- @tjlaboss
- @liangjg
- @lindsayad
- @johnnyliu27
- @amandalund
- @aprilnovak
- @nelsonag
- @salcedop
- @paulromano
- @samuelshaner
- Python
Published by paulromano about 8 years ago
openmc - OpenMC 0.9.0
This release of OpenMC is the first release to use a new native HDF5 cross section format rather than ACE format cross sections. Other significant new features include a nuclear data interface in the Python API (openmc.data) a stochastic volume calculation capability, a random sphere packing algorithm that can handle packing fractions up to 60%, and a new XML parser with significantly better performance than the parser used previously.
CAUTION: With the new cross section format, the default energy units are now electronvolts (eV) rather than megaelectronvolts (MeV)! If you are specifying an energy filter for a tally, make sure you use units of eV now.
The Python API continues to improve over time; several backwards incompatible changes were made in the API which users of previous versions should take note of:
Each type of tally filter is now specified with a separate class. For example:
Python energy_filter = openmc.EnergyFilter([0.0, 0.625, 4.0, 1.0e6, 20.0e6])Several attributes of the
Plotclass have changed (color->color_byandcol_spec>colors).Plot.colorsnow accepts a dictionary mappingCellorMaterialinstances to RGB 3-tuples or string colors names, e.g.:plot.colors = { fuel: 'yellow', water: 'blue' }make_hexagon_regionis nowget_hexagonal_prismSeveral changes in
Settingsattributes:weightis now set asSettings.cutoff['weight']- Shannon entropy is now specified by passing a
MeshtoSettings.entropy_mesh - Uniform fission site method is now specified by passing a
MeshtoSettings.ufs_mesh - All
sourcepoint_*options are now specified in aSettings.sourcepointdictionary - Resonance scattering method is now specified as a dictionary in
Settings.resonance_scattering - Multipole is now turned on by setting
Settings.temperature['multipole'] = True - The
output_pathattribute is nowSettings.output['path']
All the
openmc.mgxs.Nu*classes are gone. Instead, anuargument was added to the constructor of the corresponding classes.
New Features
- Stochastic volume calculations
- Multi-delayed group cross section generation
- Ability to calculate multi-group cross sections over meshes
- Temperature interpolation on cross section data
- Nuclear data interface in Python API,
openmc.data - Allow cutoff energy via
Settings.cutoff - Ability to define fuel by enrichment (see
Material.add_element) - Random sphere packing for TRISO particle generation,
openmc.model.pack_trisos - Critical eigenvalue search,
openmc.search_for_keff - Model container,
openmc.model.Model - In-line plotting in Jupyter,
openmc.plot_inline - Energy function tally filters,
openmc.EnergyFunctionFilter - Replaced FoX XML parser with pugixml
- Cell/material instance counting,
Geometry.determine_paths - Differential tallies (see
openmc.TallyDerivative) - Consistent multi-group scattering matrices
- Improved documentation and new Jupyter notebooks
- OpenMOC compatibility module,
openmc.openmoc_compatible
Bug Fixes
- c5df6ce146abeee0d83447aa7a1deccf354b9ade Fix mesh filter max iterator check
- 1cfa392bb0580b584643927fb3e57f43f28b9f12 Reject external source only if 95% of sites are rejected
- 3353592cb6092f9d0341e1a0393cedca778aefaf Fix bug in plotting meshlines
- 17c678d9f8f797a2d558162107c8eb49dded714f Make sure system_clock uses high-resolution timer
- 23ec0b89bb58a10017d56e651415886ac35a1c6b Fix use of S(a,b) with multipole data
- 7eefb7306ff0f8745af1447789d8cddc9778617f Fix several bugs in tally module
- 7880d4f2461a945a99ffd4fb5a88a92191a06f5c Allow plotting calculation with no boundary conditions
- ad2d9fff55860625f576b9589bd334b80acee337 Fix filter weight missing when scoring all nuclides
- 59fdcac2a91887cf5ce3960980d79f086ab51ae0 Fix use of source files for fixed source calculations
- 9eff5b8a2ead933a6d9839b8c473fd5c82922f59 Fix thermal scattering bugs
- 7848a97edcdb05bee7b8424568c75a6900b068ab Fix combined k-eff estimator producing NaN
- f139ce8dc12ae036e73ddf46c9ed5ba1a563be1c Fix printing bug for tallies with AggregateNuclide
- b8ddfacaf34aedf689cfef26ae954cf6025e1dda Bugfix for short tracks near tally mesh edges
- ec3cfb5bab75b67f0a86ab63cf08073305cd9663 Fix inconsistency in filter weights
- 5e9b06a861d4f596314eff490ad63c051f833f3a Fix XML representation for verbosity
- c39990accb6d0377fc05f004b0809d08e7a7f384 Fix bug tallying reaction rates with multipole on
- c6b67e64434c15483a26733eadbb7335b10be7ea Fix fissionable source sampling bug
- 48954027704d1413f62addf11bfdd072b33713fc Check for void materials in tracklength tallies
- f0214f4c12450c82788ed0546379d9bcae3174f2 Fixes/improvements to the ARES algorithm
Contributors
This release contains new contributions from the following people:
- @wbinventor
- @smharper
- @QingmingHe
- @cjosey
- @tjlaboss
- @liangjg
- @amandalund
- @nelsonag
- @paulromano
- @samuelshaner
- @walshjon
- Python
Published by paulromano almost 9 years ago
openmc - OpenMC 0.8.0
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.
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:
- 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 exporttoxml()method.
- Source distributions are defined using the [Source](http://openmc.readthedocs.io/en/latest/pythonapi/generated/openmc.Source.html#openmc.Source) class and assigned to theSettings.sourceproperty.
- TheExecutorclass no longer exists and is replaced byopenmc.run()andopenmc.plot_geometry()` functions.
The Python API documentation has also been significantly expanded.
New Features
- 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
- 70daa76e0e9d0bd8163e5c9d306788dbd7cf30c6 Make sure MT=3 cross section is not used
- 40b05fe94e16731703ca758a55953d62f353fc7a Ensure source bank is resampled for fixed source runs
- 9586ed3c0718ce5fbfdacc551966a4de9e64fb42 Fix two hexagonal lattice bugs
- a855e8f1b04f3983b699422c9d938d21f2f3315c Make sure graphite models don't error out on max events
- 7294a1363485c64b4ee7cb1a5a8e4f0bb67d8ec7 Fix incorrect check on cmfd.xml
- 12f2467d6e3f529dba3ad8f88f11fb04588246bd Ensure number of realizations is written to statepoint
- 0227f4823080a686e8130df065762d8d855d6f3d Fix bug when sampling multiple energy distributions
- 51deaa7cbf4a5bc06bb9ddc0dd2beef830115333 Prevent segfault when user specifies '18' on tally scores
- fed74b8d761b5baca0f776cdb61fef15a8f8bdf8 Prevent duplicate tally scores
- 8467aea4e3e019d13ca8127c2dd84de7858348dc Better threshold for allowable lost particles
- 493c6fd9ccb9d1e23516ba83b24249fb1d4ccba7 Fix type of return argument for h5pgetdriverf
Contributors
This release contains new contributions from the following people: - @wbinventor - @friedmud - @smharper - @cjosey - @liangjg - @nelsonag - @paulromano - @kellyrowland - @samuelshaner
- Python
Published by paulromano over 9 years ago
openmc - OpenMC 0.7.1
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.
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.
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.
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.mgxsPython 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
Bug Fixes
- 2993228a12db933da376c0d8b9c63b9f99d60359 Bug with material filter when void material present
- d748406f20e52d74df5ae5c567d3cf7ce19bfeb6 Fix triggers on tallies with multiple filters
- c29a811f3e7dc8fe62e0341ab3df4d86696649a0 Correctly handle maximum transport energy
- 3edc2389e588f4f2348c00105a4fb067dbb54364 Fixes in the nu-scatter score
- 629e3b21569d990e00f76ca93a79366ab511816a Assume unspecified surface coefficients are zero in Python API
- 5dbe8b75db638b28b1d1714a47cc16b879061b36 Fix energy filters for openmc-plot-mesh-tally
- ff66f41d89fcb5dcd4b9c523bdfcc741d6bd4025 Fixes in the openmc-plot-mesh-tally script
- 441fd4f00dfb3cd6f79abc0ad2887b04dd5dbfd8 Fix bug in kappa-fission score
- 7e5974a23356c4c9fc547a64ee483acda1fc34ea Allow fixed source simulations from Python API
Contributors
This release contains new contributions from the following people: - @bhermanmit - @cjosey - @kellyrowland - @nelsonag - @paulromano - @samuelshaner - @smharper - @walshjon - @wbinventor
- Python
Published by paulromano about 10 years ago
openmc - OpenMC 0.7.0
New Features
- Complete Python API
- Python 3 compatability for all scripts
- All scripts consistently named openmc-* and installed together
- New 'distribcell' tally filter for repeated cells
- Ability to specify outer lattice universe
- XML input validation utility (openmc-validate-xml)
- Support for hexagonal lattices
- Material union energy grid method
- Tally triggers
- Remove dependence on PETSc
- Significant OpenMP performance improvements
- Support for Fortran 2008 MPI interface
- Use of Travis CI for continuous integration
- Simplifications and improvements to test suite
Bug Fixes
- b5f71255a3d4f8aef14809ad99ce6a9182a93409 Fix bug in spherical harmonics tallies
- e6675b7d1e7b8d9b2d749443b2fd21d02e34bd4a Ensure all constants are double precision
- 04e2c1960b76ca6151402f22eb28ff0f446efa31 Fix potential bug in sample_nuclide routine
- 6121d97975d7aaafb06f5c77906049ecb211c6c6 Fix bugs related to particle track files
- 2f0e89508a1ebe13d46c1f43e445533a6e6fb791 Fixes for nuclide specification in tallies
Contributors
This release contains new contributions from the following people: - @bhermanmit - @cjosey - @mellis13 - @nelsonag - @nhorelik - @PaleNeutron - @paulromano - @scopatz - @smharper - @walshjon - @wbinventor
- Python
Published by paulromano over 10 years ago
openmc - OpenMC 0.6.2
New Features
- Meshline plotting capability
- Support for plotting cells/materials on middle universe levels
- Ability to model cells with no surfaces
- Compatibility with PETSc 3.5
- Compatability with OpenMPI 1.7/1.8
- Improved overall performance via logarithmic-mapped energy grid search
- Improved multi-threaded performance with atomic operations
- Support for fixed source problems with fissionable materials
Bug Fixes
- 26fb936f2a086ec0a6157a9eedb2d6adfbb15936 Fix problem with -t, --track command-line flag
- 2f07c0371eaa0a12fca28da9cf49120c19c61e49 Improved evaporation spectrum algorithm
- e6abb9d57341951754e912f8137257350bf3cca8 Fix segfault when tallying in a void material
- 291b45a6469389db3c38e78e0c6c0d3886c5c312 Handle metastable nuclides in NNDC data and multiplicities in MT=5 data
Contributors
This release contains new contributions from the following people: - @bhermanmit - @bunder - @jdangerx - @mellis13 - @nelsonag - @nhorelik - @paulromano - @smharper - @walshjon - @wbinventor
- Python
Published by paulromano about 11 years ago
openmc - OpenMC 0.6.1
New Features
- Coarse mesh finite difference (CMFD) acceleration no longer requires PETSc
- Statepoint file numbering is now zero-padded
- Python scripts now compatible with Python 2 or 3
- Ability to run particle restarts in fixed source calculations
- Capability to filter box source by fissionable materials
- Nuclide/element names are now case insensitive in input files
- Improved treatment of resonance scattering for heavy nuclides
Bug Fixes
- 03e890313dc9129954c78f77efca0214b7680d9f Check for energy-dependent multiplicities in ACE files
- 4439de571fe30fc26211018f94535e17b610c9f8 Fix distance-to-surface calculation for general plane surface
- 5808ed4c2df9ca8dfbcb8dcb8fd2982d99d2bf8a Account for differences in URR band probabilities at different energies
- 2e60c0ea6162a3961b4009a49ba67f1ed0bc0371 Allow zero atom/weight percents in materials
- 3e0870ac96988e5408741f05a356f1648de62f9d Don't use PWD environment variable when setting path to input files
- dc47763f66d7bc9373e385935199efe03fef13cc Handle probability table resampling correctly
- 01178bf08a3667a83c0b073ef63f41907ac2dd28 Fix metastables nuclides in NNDC cross_sections.xml file
- 62ec431e3be5e77b1ba9343935110190d7bc6358 Don't read tallies.xml when OpenMC is run in plotting mode
- 2a95ef7a425af3b498fd95afe3ef7917efea33fe Prevent segmentation fault on "current" score without mesh filter
- 93e4823641e12b880a3b9bda7301c72254f165a3 Check for negative values in probability tables
- 9d32299e4dec2cb9649b53de5eb5c64c223674f4 Ensure installation of Python modules goes into correct directory
Contributors
This release contains new contributions from the following people: - @bhermanmit - @nelsonag - @paulromano - @smharper - @walshjon - @wbinventor
- Python
Published by paulromano over 11 years ago
openmc - OpenMC 0.6.0
New Features
- Legendre and spherical harmonic expansion tally scores
- CMake is now default build system
- Regression test suite based on CTests and NNDC cross sections
- FoX is now a git submodule
- Support for older cross sections (e.g. MCNP 66c)
- Progress bar for plots
- Expanded support for natural elements via
in settings.xml
Bug Fixes
- 41f7cabe848ac46b0ac8ba108300c195679f8d66 Fixed erroneous results from survival biasing
- 038736f695d3318164866b4f910b154867f2ccb9 Fix tallies over void materials
- 46f9e85ce3feca51f53203672b6c2e72998c8b57 Check for negative values in probability tables
- d1ca3519f2c56e400311ed9d6fde91f62512da0b Fixed sampling of angular distribution
- 0291c0f047861629eaefb02a98d4ac9ee4471f38 Fixed indexing error in plotting
- d7a7d0f45c26d41dd772de204490b47bec2e27c5 Fix bug with
specifying xs attribute - 85b3cbd82a8c72c426cfba489026a66a4d442531 Fix out-of-bounds error with OpenMP threading
Contributors
This release contains new contributions from the following people: - @bhermanmit - @nelsonag - @nhorelik - @paulromano - @smharper - @walshjon
- Python
Published by paulromano over 11 years ago
openmc - v0.5.4
New Features
- Source sites outside geometry are resampled
- XML-Fortran backed replaced by FoX XML
- Ability to write particle track files
- Handle lost particles more gracefully (via particle track files)
- Multiple random number generator streams
- Mesh tally plotting utility converted to use Tkinter rather than PyQt
- Script added to download ACE data from NNDC
- Mixed ASCII/binary cross_sections.xml now allowed
- Expanded options for writing source bank
- Re-enabled ability to use source file as starting source
- S(a,b) recalculation avoided when same nuclide and S(a,b) table are accessed
Bug Fixes
- 32c03c44ae666702f4252c82249771763f1d6551 Check for valid data in cross_sections.xml
- c71ef57ddc4bf0dc5632fb259ccee8e56caa8855 Fix bug in statepoint.py
- 8884fb9e3f1657b2b5e0c5b4e8e4a3af5adfbe68 Check for all ZAIDs for S(a,b) tables
- b38af09b8201e982d77c9ce51b057f78c182d157 Fix XML reading on multiple levels of input
- d28750c34fdec59b3ce955865299eafe980cba16 Fix bug in convert_xsdir.py
- cf567cae7d2f8c5325f4696201c5574058cd7393 ENDF/B-VI data checked for compatibility
- 6b94613c24b127ad31fedf60e9a647e459223636 Fix pvalid sampling inside of sampleenergy
Contributors
This release contains new contributions from the following people: - @bhermanmit - @nelsonag - @nhorelik - @paulromano - @smharper - @tpviitan - @walshjon
- Python
Published by bhermanmit almost 12 years ago
openmc - v0.5.3
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
- Normalize direction vector after reflecting particle.
- Set blank default for cross section listing alias.
- Fix infinite loop with words greater than 80 characters in write_message.
- Check for valid secondary mode on S(a,b) tables.
- Fix bug where last process could have zero particles.
- Python
Published by bhermanmit over 12 years ago