Summary
This release adds support for OpenMC
in SaltProc
via the addition of the DepcodeOpenMC
class
Dependency Changes
SaltProc
now requires the following packages:- (new) → openmc
- (new) → serpentTools
- (formality) → pytables
pyne>=0.5.11
→ (removed)pydotplus
→pydot
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. 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
- 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
andSERPENT_ACELIB
variables to.bashrc
- Control flow check for an
- 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 bydownload_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 newmpi_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
forSerpent2
dict
ofstr
tostr
foropenmc
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']
- Removed the
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 aDepcode
subclass that interfaces withopenmc
. This class implements the following functionsrun_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
The following people contributed code to this release of SaltProc:
Reviewers
The following people reviewed code for this release of SaltProc: