======================== Release notes for v0.5.0 ======================== .. When documenting a bug fix or feature, please do so in the following format .. - `Fixed typo in depcode.py `_ by @pr_author_username .. Links to packages/issues/bug fixes/contributors/reviewers .. _openmc: https://github.com/openmc-dev/openmc .. _serpentTools: https://github.com/CORE-GATECH-GROUP/serpent-tools .. _pytables: https://github.com/PyTables/PyTables .. _@yardasol: https://github.com/yardasol Summary ======= .. Describe generally the features of this release This release adds support for ``OpenMC`` in ``SaltProc`` via the addition of the ``DepcodeOpenMC`` class Dependency Changes ================== .. Describe any new/removed/modified package dependencies - ``SaltProc`` now requires the following packages: - (new) → `openmc`_ - (new) → `serpentTools`_ - (formality) → `pytables`_ - ``pyne>=0.5.11`` → (removed) - ``pydotplus`` → ``pydot`` New Features ============ .. Describe any new features to the code. - ``openmc`` support via `DepcodeOpenMC` - OpenMC compatible MSBR model. Bug Fixes ========= .. Describe any bug fixes. - `Fix bug where Serpent2 material temperatures are hardcoded to 900K in the JEFF 3.1.2 library format. `_ by `@yardasol`_ - `Fix bug where using MCNP-style ZAID codes results in an error in various SerpentDepcode functions `_ by `@yardasol`_ - `Fix bug where only one array of OpenMC Materials are stored in results `_ by `@yardasol`_ Script Changes ============== .. Describe any script additions/modifications/removals - Added convenience features to ``process_j312.bash`` - Control flow check for an ``XSDIR`` environment variable set by the user. This variable should point to the location where the user would like the library to be installed - Commands to download and run the ``xsdirconvert.pl`` script (found on the Serpent wiki) to convert the MCNP ``.dir`` style file to the Serpent ``.xsdata`` style file - Add ``SERPENT_DATA`` and ``SERPENT_ACELIB`` variables to ``.bashrc`` - A new script, ``scripts/ci/openmc-xs.bash``, that downloads the OpenMC HDF5 cross section library. - A new script, ``download_endfb71.bash``, that downloads the ENDF/B 7.1 cross section library -- including thermal scattering, decay, and fission yield data -- in ACE format. - A new script, ``process_endfb71_to_openmc.bash``, that converts the library created by ``download_endfb71.bash`` into an OpenMC-usable HDF5 format. Requires OpenMC to be installed from source to use. - A new script ``openmc_msbr_model.py``, that creates an OpenMC-usable MSBR model based on the Serpent MSBR model. Python API Changes ================== .. Describe any changes to the API - The test suite has been overhauled and moved to the `tests/` directory. The test suite is no longer part of the `saltproc` package. - Input file format changes: - Removed the ``-n`` command line argument in favor of the new ``mpi_args`` input parameter - Changed the ``-d`` command line argument to ``-s``/``--threads``. - (new) → ``mpi_args`` - Added default values for certain input parameters - Added a ``zaid_convention`` input parameter - Added depletion settings for OpenMC - ``num_depsteps`` → ``n_depletion_steps`` - ``depcode['template_inputfile_path']`` → ``depcode['template_input_file_path']`` - The ``depcode['template_input_file_path']`` input variable now has the following depletion-code-depentent types: - ``str`` for ``Serpent2`` - ``dict`` of ``str`` to ``str`` for ``openmc`` - ``depcode['iter_inputfile']`` → (removed) - ``depcode['iter_matfile']`` → (removed) - ``depcode['npop']`` → (removed) - ``depcode['active_cycles']`` → (removed) - ``depcode['inactive_cycles']`` → (removed) - ``reactor['dep_step_length_cumulative']`` → ``depletion_timesteps`` - (new) → ``reactor['timestep_type']`` - (new) → ``reactor['timestep_units']`` .. note:: Variables that have been removed from the saltproc input file remain part of the ``Depcode`` classes as attributes. Their use is unchanged, save for the fact they can no longer be initialized by the user from the SaltProc input file. - New/changed classes, methods, and attributes: - ``Depcode`` - Added `output_path` parameter. - ``template_inputfile_path`` → ``template_input_file_path`` - Removed default values for `geo_files` - Changed `iter_inputfile`, `iter_matfile` to be attributes instead of parameters - Changed `npop`, `active_cycles`, `inactive_cycles` to be attributes instead of parameters - ``read_depcode_info()`` → ``read_step_metadata()`` - ``sim_info`` → ``step_metadata`` - ``read_depcode_step_param()`` → ``read_neutronics_parameters()`` - ``param`` → ``neutronics_parameters`` - ``read_dep_comp()`` → ``read_depleted_materials()`` - ``run_depcode()`` → ``run_depletion_step()`` - ``write_mat_file()`` → ``update_depletable_materials()`` - ``write_depcode_input()`` → ``write_runtime_input()`` - ``iter_inputfile`` → ``runtime_inputfile`` - ``iter_matfile`` → ``runtime_matfile`` - ``geo_files`` → ``geo_file_paths`` - ``DepcodeSerpent`` → ``SerpentDepcode`` - Added `output_path` parameter. - ``template_inputfile_path`` → ``template_input_file_path`` - Removed default values for `exec_path`, `template_input_file_path`, `geo_files` - Changed `iter_inputfile`, `iter_matfile` to be attributes instead of parameters - Changed `npop`, `active_cycles`, `inactive_cycles` to be attributes instead of parameters - ``read_depcode_info()`` → ``read_depletion_step_metadata()`` - ``sim_info`` → ``step_metadata`` - ``read_depcode_step_param()`` → ``read_neutronics_parameters()`` - ``param`` → ``neutronics_parameters`` - ``read_dep_comp()`` → ``read_depleted_materials()`` - ``create_nuclide_name_map_zam_to_serpent()`` → ``map_nuclide_code_zam_to_serpent()`` - ``run_depcode()`` → ``run_depletion_step()`` - ``write_mat_file()`` → ``update_depletable_materials()`` - ``get_nuc_name()`` → ``convert_nuclide_code_to_name()`` - ``convert_nuclide_name_serpent_to_zam()`` → ``convert_nuclide_code_to_zam()`` - ``create_iter_matfile()`` → ``create_runtime_matfile()`` - ``replace_burnup_parameters()`` → ``set_power_load()`` - ``write_depcode_input()`` → ``write_runtime_input()`` - ``iter_inputfile`` → ``runtime_inputfile`` - ``iter_matfile`` → ``runtime_matfile`` - ``geo_files`` → ``geo_file_paths`` - ``change_sim_par()`` → (deleted) - (new function) → ``get_neutron_settings()`` - (new function) → ``_get_burnable_materials_file()`` - (new function) → ``_get_burnable_material_card_data()`` - (new function) → ``resolve_include_paths()`` - (new function) → ``_convert_name_to_nuccode()`` - (new parameter) → ``zaid_convention`` - ``OpenMCDepcode`` is a ``Depcode`` subclass that interfaces with ``openmc``. This class implements the following functions - ``run_depletion_step()`` - ``write_saltproc_openmc_tallies()`` - ``convert_nuclide_code_to_name()`` - ``switch_to_next_geometry()`` - ``write_runtime_input()`` - ``write_depletion_settings()`` - ``write_saltproc_openmc_tallies()`` - ``app.py`` - ``reprocessing()`` → ``reprocess_materials()`` - ``refill()`` → ``refill_materials()`` - ``read_feeds_from_input()`` → ``get_feeds()`` - ``read_processes_from_input()`` → ``get_extraction_processes()`` - ``read_dot()`` → ``get_extraction_process_paths()`` - ``Process`` - ``calc_rem_efficiency()`` → ``calculate_removal_efficiency()`` - ``Reactor`` - ``dep_step_length_cumulative`` → ``depletion_timesteps`` - (new) → ``timestep_units`` - (new) → ``timestep_type`` - (new) → ``Results`` - New class for reading the `saltproc_results.h5` file - ``Simulation`` - ``core_number`` → (removed) - ``node_number`` → (removed) - (new function) → ``_add_missing_nuclides()`` - ``Sparger`` - ``calc_rem_efficiency()`` → ``calculate_removal_efficiency()`` - ``Separator`` - ``calc_rem_efficiency()`` → ``calculate_removal_efficiency()`` Contributors ============ .. List of people who contributed features and fixes to this release The following people contributed code to this release of SaltProc: .. `@gh_username `_ - `@yardasol`_ Reviewers ========= .. List of people who reviewed PRs for this release The following people reviewed code for this release of SaltProc: .. `@gh_username `_ - `@smpark7 `_ - `@LukeSeifert `_ - `@munkm `_ - `@abachma2 `_ - `@samgdotson `_ - `@ZoeRichter `_