Release notes for v0.5.0

Summary

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

Dependency Changes

  • SaltProc now requires the following packages:

  • pyne>=0.5.11 → (removed)

  • pydotpluspydot

New Features

  • openmc support via DepcodeOpenMC

  • OpenMC compatible MSBR model.

Bug Fixes

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

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

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

      • Added 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 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_cumulativedepletion_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

The following people contributed code to this release of SaltProc:

Reviewers

The following people reviewed code for this release of SaltProc: