openmc-dev/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: 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: space = openmc.stats.Box(lower_left, upper_right, only_fissionable=True) source = openmc.IndependentSource(space=space) You should now provide the constraint as: 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 GeometryState class in C++ to better separate particle and geometry data. (#2744)) A new openmc.MaterialFromFilter class allows filtering tallies by which material a particle came from. (#2750) Implemented a openmc.deplete.MicroXS.from_multigroup_flux method that generates microscopic cross sections for depletion from a predetermined multigroup flux. (#2755) A new openmc.MeshSource class 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_coords method that provides the mesh element index corresponding to a given point in space. (#2782) Added a path argument to the openmc.deplete.Integrator.integrate method. (#2784) Added a openmc.Geometry.get_all_nuclides method. (#2796) A new capability to compute material volume fractions over mesh elements was added in the openmc.lib.Mesh.material_volumes method. (#2802) A new transport solver was added based on the random ray method. (#2823, #2988) Added a openmc.lib.Material.depletable attribute. (#2843) Added a openmc.lib.Mesh.get_plot_bins method and corresponding openmc_mesh_get_plot_bins C API function that can be utilized to generate mesh tally visualizations in the plotter application. (#2854) Introduced a openmc.read_source_file function that enables reading a source file from the Python API. (#2858) Added a bounding_box property on the openmc.RectilinearMesh and openmc.UnstructuredMesh classes. (#2861) Added a openmc_mesh_get_volumes C API function. (#2869) The openmc.Settings.surf_source_write dictionary now accepts cell, cellfrom, or cellto keys that limit surface source sites to those entering or leaving specific cells. (#2888) Added a openmc.Region.plot method that allows regions to be plotted directly. (#2895) Implemented "contains" operator for the openmc.BoundingBox class. (#2906) Generalized source rejection via a new constraints argument to all source classes. (#2916) Added a new openmc.MeshBornFilter class that filters tally events based on which mesh element a particle was born in. (#2925) The openmc.Trigger class now has a ignore_zeros argument that results in any bins with zero score to be ignored when checking the trigger. (#2928) Introduced a openmc.Settings.max_events attribute that controls the maximum number of events a particle can undergo. (#2945) Added support for openmc.UnstructuredMesh in the openmc.MeshSource class. (#2949) Added a openmc.MeshBase.get_homogenized_materials method that computes homogenized materials over mesh elements. (#2971) Add an options argument to openmc.UnstructuredMesh that allows configuring underlying data structures in MOAB. (#2976) Type hints were added to several classes in the :mod:openmc.deplete module. (#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::get_contained_cells() utility function (#2873) Adding energy axis units to plot xs (#2876) Set OpenMCOperator materials when diff_burnable_mats = 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 get_microxs_and_flux to use OPENMC_CHAIN_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 get_all_universes (#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



