Basics of Using SaltProc

Running a Model

SaltProc is built in Python, so rather than calling an executable to run SaltProc, you call Python and invoke the SaltProc module. You use the -i flag to specify a path to the SaltProc Input File:

python -m saltproc -i saltproc_input.json

The first thing SaltProc does when running a simulation is read this input file and validate that it is correct. At a minium, the input file requires six parameters to be filled by the user:

Required

proc_input_file

This file describes the properties of each processing system component.

dot_input_file

This file describes the strucutre of the processing system as a graph

n_depletion_steps

Specifies the number of depletion steps to run.

depcode

This parameter contains runtime options for the transport code as a dictionary. The parameters expected change depending on which transport code is used, but at a minimum there will be parameters to specify geometry and material files for all transport codes. See depcode Properties for a full listing of these options.

simulation

This parameter contains the name of the simulation, as well as options to restart the simulation from when it stopped (in the case of a runtime error), as well as an option to turn on geometry switching. See simulation Properties for a full listing of these options

reactor

This parameter contains setttings for the depletion simulation (number of timesteps, power level, timestep units). See reactor Properties for a full listing of these options.

Optional

mpi_args

Users running a simulation on a computer with multiple cores, sockets, or nodes will benefit from utilizing all available hardware resources on the transport simulation. This parameter holds commands to execute a simulation using MPI for distribtued memory parallelism. Note that the user must include the executable in this parameter (mpiexec, mpirun, etc.). We discuss this in greater detail in Running in Parallel.

JavaScript Object Notation (JSON)

SaltProc uses JSON to structure its input files. JSON is used as it has all the capabilities of stuctured markup language like XML, but intead of using tags, it is structured more or less like a dictionary data structure. This has the benefit of being extremely easy and quick to write by hand.

Creating input files

SaltProc input files are written by hand. We cover how to do this in detail in the next section of the User Guide.

Note

The majority of work preparing for a SaltProc simulation is not writing the SaltProc input file, but creating the model for the transport code. The steps and syntax for this vary from code to code. See the list of supported codes for links to documentation.

Viewing and Analyzing Results

After a simulation is completed by running saltproc, all of the transport code results and input files are stored in the saltproc_runtime directory (unless you provided a path for output_path in the input file, in which case the results are stored in a directory with that path):

saltproc_results.h5

An HDF5 file containing material compositions for all depletable materials, including compositions before and after reprocessing, as well as delayed neutron data. See HDF5 Output File for a full listing of parameters.

step_i_data

A directory storing input and output files for the transport simulation(s) for the \(i\)-th depletion step.

Note

Users must use PyTables to load and read results directly from the HDF5 file. An API for doing this is in development.

Physical Units

SaltProc results use the following units unless otherwise specified.

Measure

Default unit

Symbol

mass

kilogram

kg

power

watt

W

time

days

d