Recent Releases of saltproc

saltproc - 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 iterinputfile, itermatfile to be attributes instead of parameters
    • Changed npop, activecycles, inactivecycles 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 execpath, templateinputfilepath, geo_files
    • Changed iterinputfile, itermatfile to be attributes instead of parameters
    • Changed npop, activecycles, inactivecycles 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:

- MATLAB
Published by yardasol about 2 years ago

saltproc - v0.5.0-pre

Summary

This prerelease adds support for OpenMC in SaltProc via the addition of the DepcodeOpenMC class. There are a few QoL issues I'm still working on for the full release, but all the critical OpenMC functionality is here in the prerelease! Enjoy!

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 iterinputfile, itermatfile to be attributes instead of parameters
    • Changed npop, activecycles, inactivecycles 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 execpath, templateinputfilepath, geo_files
    • Changed iterinputfile, itermatfile to be attributes instead of parameters
    • Changed npop, activecycles, inactivecycles 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_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)
    • (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:

  • @abachma2
  • @ZoeRichter
  • @LukeSeifert
  • @samgdotson
  • @munkm

- MATLAB
Published by github-actions[bot] almost 3 years ago

saltproc - v0.4.0

Summary

This version of SaltProc refactors the code in preparation for supporting OpenMC.

Dependency Changes

  • Saltproc now requires the following packages

New Features

Bug Fixes

Script Changes

  • The following scripts have been renamed:
    • process_j312.shprocess_j312.bash

Python API Changes

  • New tests for previously untested functions in simulation.py:
    • test_check_switch_geo_trigger
    • test_store_after_repr
    • test_store_mat_data
    • test_store_run_init_info
    • test_store_run_step_info
  • The following class methods have been added/(re)moved:
    • App.check_restart()Simulation.check_restart()
    • Simulation.switch_to_next_geometryDepcodeSerpent.switch_to_next_geometry
    • Simulation.runsim_no_reproctest/integration_tests/test_no_reproc_run.py::runsim_no_reproc
    • Simulation.store_run_step_info
    • Simulation.store_run_init_info
    • (new) → Depcode.switch_to_next_geometry
    • (new) → Depcode.read_depcode_info
    • (new) → Depcode.read_repcode_step_param
    • DepcodeSerpent.sss_meta_zzzDepcodeSerpent.convert_nuclide_name_serpent_to_zam
    • DepcodeSerpent.get_tra_or_decDepcodeSerpent.create_nuclide_name_map_zam_to_serpent
    • DepcodeSerpent.read_depcode_templateDepcodeSerpent.read_plaintext_file
  • Updated input file structure:
    • App.depcode_inp dictionary
      • (new) → App.depcode_inp['codename']
      • App.exec_path
      • App.template_file
      • App.neutron_popApp.depcode_inp['npop']
      • App.active_cycles
      • App.inactive_cycles
      • App.geo_fileApp.depcode_inp['geo_file_paths']
    • App.simulation_inp dictionary:
      • (new) → App.simulation['sim_name']
      • App.db_fileApp.simulation['db_name']
      • App.restart_flag
      • App.adjust_geo
    • App.reactor_inp dictionary
      • (new) → App.reactor_inp['volume']
      • (new) → App.reactor_inp['mass_flowrate']
      • App.power_levels
      • App.depl_histApp.reactor_inp['dep_step_length_cumulative']
  • The following class attributes have been added/(re)moved:
    • Depcode class:
      • template_pathtemplate_inputfile_path
      • input_pathiter_inputfile
      • geo_filegeo_files
    • Simulation class:
      • h5_filedb_path
      • (new) → restart_flag
      • (new) → adjust_geo
      • iter_matfile → (removed)
  • The signatures for the following class methods have changed to better make use of object data encapsulation:
    • Depcode.read_dep_comp
    • Depcode.write_depcode_input
    • Depcode.write_mat_file
    • DepcodeSerpent.read_depcode_template
    • DepcodeSerpent.create_nuclide_map_serpent_to_zam

Contributors

The following people contributed code to this release of SaltProc:

Reviewers

The following people reviewed code for this release of SaltProc:

- MATLAB
Published by github-actions[bot] about 4 years ago

saltproc - 0.3.0

This release of SaltProc adds several new features, including a refactor of depcode, updated documentation, and installation guides. Make sure you apply this bug fix in your Serpent2 code if you haven't already.

New Features

  • Complete refactor of the code into object-oriented python.
  • Adds a Sparging system package -- contained in the sparger and separator modules -- that calculates removal efficiencies for various target isotopes (i.e. Xe, Kr, H).
  • Adds a script for creating a Serpent2 compatible cross section library
  • Refactors the depcode module by making Depcode a purley abstract class; add the DepcodeSerpent class which is an instance of Depcode

Bug Fixes

Commit list

  • Isotope find by @jbae11 in https://github.com/arfc/saltproc/pull/23
  • Saltproc capability addition and UI improvement by @jbae11 in https://github.com/arfc/saltproc/pull/29
  • Completely refactored and changed after latest Teddy's release (0.2.0) by @andrewryh in https://github.com/arfc/saltproc/pull/37
  • Update README.md only to address #41 by @andrewryh in https://github.com/arfc/saltproc/pull/45
  • Bringing SaltProc repository up to date by @andrewryh in https://github.com/arfc/saltproc/pull/47
  • Scripts and input files for sensitivity analysis of msbr design by @mehmeturkmen in https://github.com/arfc/saltproc/pull/48
  • Saltproc multiple run flexibility by @mehmeturkmen in https://github.com/arfc/saltproc/pull/49
  • Adding sparging system to saltproc by @mehmeturkmen in https://github.com/arfc/saltproc/pull/50
  • The updated "overview.rst" file for the latest change in Saltproc by @mehmeturkmen in https://github.com/arfc/saltproc/pull/53
  • Improved separator using Jiaqi's new correlation by @mehmeturkmen in https://github.com/arfc/saltproc/pull/54
  • Create ci.yml by @yardasol in https://github.com/arfc/saltproc/pull/61
  • Call name instead of __string__ to assign mat_name by @yardasol in https://github.com/arfc/saltproc/pull/63
  • Add issue + PR templates by @yardasol in https://github.com/arfc/saltproc/pull/66
  • Update README and Contributing by @yardasol in https://github.com/arfc/saltproc/pull/71
  • Refactor depcode by @yardasol in https://github.com/arfc/saltproc/pull/64
  • 2nd attempt: Update issue template formatting. by @yardasol in https://github.com/arfc/saltproc/pull/75
  • Update example and integration test input files to serpent 2 syntax by @yardasol in https://github.com/arfc/saltproc/pull/89
  • Remove cruft files from master branch by @yardasol in https://github.com/arfc/saltproc/pull/86
  • doc additions, docstring typo fixes, cross section processing scripts by @yardasol in https://github.com/arfc/saltproc/pull/90
  • Patch #90 (pep8 issues, docstring consistency) by @yardasol in https://github.com/arfc/saltproc/pull/92

Contributors

  • @yardasol
  • @mehmeturkmen
  • @andrewryh
  • @jbae11

Full Changelog: https://github.com/arfc/saltproc/compare/v0.2.0...v0.3.0

- MATLAB
Published by yardasol about 4 years ago

saltproc - Tests, classes, documentation added

- MATLAB
Published by andrewryh over 7 years ago

saltproc - First release

The script is able to rerun SERPENT 2 burnup simulation, remove target isotopes with specific efficiency, keep number density of target isotopes constant and keep track of Pa-233 --> U-233 decaying in the separate tank.

- MATLAB
Published by andrewryh almost 8 years ago