This code allows to numerically integrate the time evolution of the neutron diffusion in a 2D nuclear reactor. There are three main parts:
- the first just integrates numerically the neutron dynamics of a 1 speed reactor,
- the second integrates numerically the neutron dynamics of a 1 speed reactor with dynamical control rods insertion,
- the second evaluate the fudge factor of a given geometry.
For this code it has also been created a package Reactpy
, that manages the numerical integration of the system. The documentation for this package can be found in the directory Documentation
. The Reactpy.html file allows to navigate the whole documentation.
The folder Source
contains the code that runs the integration, while the directory Output examples
contains some examples of the simulation.
The project is written in python and requires the following packages:
- Numpy
- Numba
- Scipy
- Matplotlib
- tqdm
To use this code it is necessary to first input the data that describes the reactor geometry and material characteristics, this can be done through 5 .dat
files.
-
Parameters.dat
specifies all the scalar (space-indiependent) variables, -
grid.dat
contains the geometrical information of the discretization of the reactor: each cell of the discretization is represented by an entry of a matrix, if it is inserted a number this will be used as initial condition of for the neutron flux, while the letter E is used to represent an empty cell (which flux is always zero). -
Sigma_absorption.dat
contains the spacial values of$\Sigma_a$ (which quantifies how many neutrons are absorbed by the moderator) in each cell. -
Sigma_fuel.dat
contains the spacial values of$\Sigma_f$ (which quantifies how many neutrons are produced by each external neutron-atom scattering) in each cell. -
Control_rods.dat
specifies where the control rods are placed and their absorption value.
The code of 1SpeedReactor.py
and of 1SpeedReactor.py
then allow to numerically integrate the following equation:
After the integration the code produces an animation that shows the time evolution of the reactor: e.g.
The code of CriticalityFudgeFactor.py
instead allows to evaluate the value of .dat
files.