Fuel Cycles Package
This package contains the implementation of the fuel cycle simulation process, which is the primary framework of MINTS. The implementation is structured as a base SimulationRun, which contains the code for running the simulation, loading the configuration of the desired fuel cycle, and writing outputs if desired. In addition to the base SimulationRun class, there are also implementations of specific fuel cycles object for PHWR, LWR, and Prismatic HTR fuel cycles. These subclasses simply wrap the base init method and load the default fuel cycle configurations included with this package if no custom configuration is specified.
Fuel Cycle Configuration Files
Each fuel cycle is defined in a json configuration file which defines which facilities are in the simulation, how they interact with each other, and other variables such as inventory capacities and throughput quantities for different processes. This is broken up into two primary categories:
simulation_parameters, which defines variables related to the overall simulation process, and
facilities, which is a list of facilities in the fuel cycle and their associated parameters.
For example, in the PHWR fuel cycle the full specification for the fuel fabrication facility looks like:
{
"type": "Fuel_Fab",
"name": "fuel_fabrication_1",
"parameters": {
"priority": 1,
"pellet_batch_size": 600,
"shipping_facility": "conversion_1",
"receiving_drum_throughput": 7,
"receiving_max_inventory": 40,
"throughput_pellets": 124320,
"pellet_press_input_material": "UO2",
"pellet_weight_mean_kg": 0.02,
"pellet_weight_std_kg": 0.0005,
"throughput_rods": 4144,
"pellets_per_rod":30,
"throughput_assemblies": 112,
"rods_per_assembly": 37
}
}
In this example, we specify the type of facility as a fuel fabrication facility, and give it a name (fuel_fabrication_1) for record keeping and for linking to other facilities. We then specify a list called parameters, which contains things such as throughput variables for each facility process as well as weight distribution parameters and material types. Here we also specify the priority of the facility, which determines how much priority the facility will be given relative to other faciltiies when placing requests for items from other facilities. Here we also specify which facilities it receives material from. In this case, the fuel fab facility is receiving input material from conversion_1. but this could be any conversion faciltity or also a list of facility names.
Fuel Cycle Module
- class mints.fuel_cycles.base.HTRPrismatic(config_path=None, log_file=None)
Bases:
SimulationRunFuel Cycle simulation for High Temperature Prismatic Reactor fuel cycles
The default parameters of the HTRPrismatic fuel cycle are specified in the HTRPrismatic_default.json file in this same folder. This file can be copied and modified to allow for simulation of additional configurations of the HTR Prismatic Fuel Cycle.
- class mints.fuel_cycles.base.LWR(config_path=None, log_file=None)
Bases:
SimulationRunFuel Cycle simulation for Light Water Reactor fuel cycles
The default parameters of the LWR fuel cycle are specified in the LWR_default.json file in this same folder. This file can be copied and modified to allow for simulation of additional configurations of a Light Water Reactor fuel cycle.
- class mints.fuel_cycles.base.PHWR(config_path=None, log_file=None)
Bases:
SimulationRunFuel Cycle simulation for Pressurized Heavy Water Reactor fuel cycles
The default parameters of the PHWR fuel cycle are specified in the PHWR_default.json file in this same folder. This file can be copied and modified to allow for simulation of additional configurations of the PHWR Fuel cycle.
- class mints.fuel_cycles.base.SimulationRun(log_file=None)
Bases:
objectThe SimulationRun class is a generic implementation of a fuel cycle implementation. This class implements the functionality for loading the configuration file for the fuel cycle, executing the simulation, and writing simulation results to an output file.
- load_config(config_path)
Load the configuration file which defines the fuel cycle.
The details of each fuel cycle implementation are outlined in a config file which is unique to each fuel cycle. The fuel cycle configuration file must specify each of the facilities in the fuel cycle in addition to any process parameters associated with each of the facilities.
- Parameters:
config_path (str | Path) – Path to the config file to use
- Raises:
NotImplementedError – If facility mentioned in configuration file is not yet impeplemented in the MINTS package.
- run_simulation(final_time)
Run the fuel cycl simulation.
- Parameters:
final_time (int) – Number of timesteps to run the simulation.
- write_results(fpath)
Save all simulation history/inventories to a hdf5 store at fpath
NOTE: Depending on speed/storage restrictions, we may eventually make this use parquet or feather, but for now this is more readable.
- Parameters:
fpath (str | Path) – Path of output store location