Release notes for v0.5.0

Note

These release notes are currently in production.

Summary

This release adds support for OpenMC in SaltProc via the addition of the DepcodeOpenMC class

Dependency Changes

  • SaltProc now optionally requires the following package:

  • pyne>=0.5.11pyne>=0.5.11=nomoab_noopenmc*

New Features

  • openmc support via DepcodeOpenMC

  • OpenMC compatible MSBR model.

Bug Fixes

  • Fix bug where Serpent2 material temperatures are hardcoded to 900K in the JEFF 3.1.2 library format. <https://github.com/arfc/saltproc/pull/178>

  • Fix bug where using MCNP-style ZAID codes results in an error in various SerpentDepcode functions <https://github.com/arfc/saltproc/issues/187>

Script Changes

  • 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

  • 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

    • Chaged the -d command line argument to -s/--threads.

    • (new) → mpi_args

    • Added default values for certain input parameters

    • Adds a zaid_convention input parameter

    • Added depletion settings for OpenMC

    • num_depstepsn_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

      • Add output_path parameter.

      • template_inputfile_pathtemplate_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_infostep_metadata

      • read_depcode_step_param()read_neutronics_parameters()

      • paramneutronics_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_inputfileruntime_inputfile

      • iter_matfileruntime_matfile

      • geo_filesgeo_file_paths

    • DepcodeSerpentSerpentDepcode

      • Add output_path parameter.

      • template_inputfile_pathtemplate_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_infostep_metadata

      • read_depcode_step_param()read_neutronics_parameters()

      • paramneutronics_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_inputfileruntime_inputfile

      • iter_matfileruntime_matfile

      • geo_filesgeo_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 parameter) → zaid_convention

    • OpenMCDepcode is a Depcode subclass that interfaces with openmc. This class implements the following functions - run_depletion_step() - 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_inputget_feeds()

      • read_processes_from_inputget_extraction_processes()

      • read_dot()get_extraction_process_paths()

    • Process

      • calc_rem_efficiency()calculate_removal_efficiency

    • Reactor

      • dep_step_length_cumulativedepletion_timesteps

      • (new) → timestep_units

      • (new) → timestep_type

    • Simulation

      • core_number → (removed)

      • node_number → (removed)

    • Sparger

      • calc_rem_efficiency()calculate_removal_efficiency

    • Separator

      • calc_rem_efficiency()calculate_removal_efficiency

Contributors

The following people contributed code to this release of SaltProc:

Reviewers

The following people reviewed code for this release of SaltProc: