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
SaltProcnow requires the following packages:- (new) → openmc
- (new) → serpentTools
- (formality) → pytables
pyne>=0.5.11→ (removed)pydotplus→pydot
New Features
openmcsupport 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
XSDIRenvironment 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.plscript (found on the Serpent wiki) to convert the MCNP.dirstyle file to the Serpent.xsdatastyle file - Add
SERPENT_DATAandSERPENT_ACELIBvariables 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.bashinto 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
-ncommand line argument in favor of the newmpi_argsinput parameter - Changed the
-dcommand line argument to-s/--threads. - (new) →
mpi_args - Added default values for certain input parameters
- Added a
zaid_conventioninput parameter - Added depletion settings for OpenMC
num_depsteps→n_depletion_stepsdepcode['template_inputfile_path']→depcode['template_input_file_path']- The
depcode['template_input_file_path']input variable now has the following depletion-code-depentent types: strforSerpent2dictofstrtostrforopenmcdepcode['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
Depcodeclasses 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 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_info→step_metadataread_depcode_step_param()→read_neutronics_parameters()param→neutronics_parametersread_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_inputfileiter_matfile→runtime_matfilegeo_files→geo_file_pathsDepcodeSerpent→SerpentDepcode- Added output_path parameter.
template_inputfile_path→template_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_info→step_metadataread_depcode_step_param()→read_neutronics_parameters()param→neutronics_parametersread_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_inputfileiter_matfile→runtime_matfilegeo_files→geo_file_pathschange_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 OpenMCDepcodeis aDepcodesubclass 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.pyreprocessing()→reprocess_materials()refill()→refill_materials()read_feeds_from_input()→get_feeds()read_processes_from_input()→get_extraction_processes()read_dot()→get_extraction_process_paths()Processcalc_rem_efficiency()→calculate_removal_efficiency()Reactordep_step_length_cumulative→depletion_timesteps- (new) →
timestep_units - (new) →
timestep_type - (new) →
Results - New class for reading the saltproc_results.h5 file
Simulationcore_number→ (removed)node_number→ (removed)- (new function) →
_add_missing_nuclides() Spargercalc_rem_efficiency()→calculate_removal_efficiency()Separatorcalc_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
SaltProcnow optionally requires the following package:- (new) → openmc
pyne>=0.5.11→pyne>=0.5.11=nomoab_noopenmc*
New Features
openmcsupport 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
XSDIRenvironment 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.plscript (found on the Serpent wiki) to convert the MCNP.dirstyle file to the Serpent.xsdatastyle file - Add
SERPENT_DATAandSERPENT_ACELIBvariables 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.bashinto 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
-ncommand line argument in favor of the newmpi_argsinput parameter - Chaged the
-dcommand line argument to-s/--threads. - (new) →
mpi_args - Added default values for certain input parameters
- Adds a
zaid_conventioninput parameter - Added depletion settings for OpenMC
num_depsteps→n_depletion_stepsdepcode['template_inputfile_path']→depcode['template_input_file_path']- The
depcode['template_input_file_path']input variable now has the following depletion-code-depentent types: strforSerpent2dictofstrtostrforopenmcdepcode['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
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_path→template_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_info→step_metadataread_depcode_step_param()→read_neutronics_parameters()param→neutronics_parametersread_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_inputfileiter_matfile→runtime_matfilegeo_files→geo_file_pathsDepcodeSerpent→SerpentDepcode- Add output_path parameter.
template_inputfile_path→template_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_info→step_metadataread_depcode_step_param()→read_neutronics_parameters()param→neutronics_parametersread_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_inputfileiter_matfile→runtime_matfilegeo_files→geo_file_pathschange_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 OpenMCDepcodeis aDepcodesubclass 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.pyreprocessing()→reprocess_materials()refill()→refill_materials()read_feeds_from_input→get_feeds()read_processes_from_input→get_extraction_processes()read_dot()→get_extraction_process_paths()Processcalc_rem_efficiency()→calculate_removal_efficiencyReactordep_step_length_cumulative→depletion_timesteps- (new) →
timestep_units - (new) →
timestep_type Simulationcore_number→ (removed)node_number→ (removed)- (new function) →
_add_missing_nuclides() Spargercalc_rem_efficiency()→calculate_removal_efficiencySeparatorcalc_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) → jsonschema
New Features
- Refactor app.py and simulation.py to prepare for OpenMC support by @yardasol
- New input file format that is checked against a verifiable JSON Schema by @yardasol
- Release notes in the online docs by @yardasol
Bug Fixes
Script Changes
- The following scripts have been renamed:
-
process_j312.sh→process_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_geometry→DepcodeSerpent.switch_to_next_geometry -
Simulation.runsim_no_reproc→test/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_zzz→DepcodeSerpent.convert_nuclide_name_serpent_to_zam -
DepcodeSerpent.get_tra_or_dec→DepcodeSerpent.create_nuclide_name_map_zam_to_serpent -
DepcodeSerpent.read_depcode_template→DepcodeSerpent.read_plaintext_file
-
- Updated input file structure:
-
App.depcode_inpdictionary- (new) →
App.depcode_inp['codename'] -
App.exec_path -
App.template_file -
App.neutron_pop→App.depcode_inp['npop'] -
App.active_cycles -
App.inactive_cycles -
App.geo_file→App.depcode_inp['geo_file_paths']
- (new) →
-
App.simulation_inpdictionary:- (new) →
App.simulation['sim_name'] -
App.db_file→App.simulation['db_name'] -
App.restart_flag -
App.adjust_geo
- (new) →
-
App.reactor_inpdictionary- (new) →
App.reactor_inp['volume'] - (new) →
App.reactor_inp['mass_flowrate'] -
App.power_levels -
App.depl_hist→App.reactor_inp['dep_step_length_cumulative']
- (new) →
-
- The following class attributes have been added/(re)moved:
-
Depcodeclass:-
template_path→template_inputfile_path -
input_path→iter_inputfile -
geo_file→geo_files
-
-
Simulationclass:-
h5_file→db_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
spargerandseparatormodules -- 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
depcodemodule by makingDepcodea purley abstract class; add theDepcodeSerpentclass which is an instance ofDepcode
Bug Fixes
- Remove cruft in master
- Update Geometry file syntax to Serpent 2 standards
- Update issue and PR templates
- Fix incorrect variable call in
app.read_dot - Fix typos in documentation
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
nameinstead of__string__to assignmat_nameby @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
masterbranch by @yardasol in https://github.com/arfc/saltproc/pull/86 docadditions, 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 - 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