Skip to content

Numerical simulation of the neutron diffiusion in a nuclear reactor.

Notifications You must be signed in to change notification settings

MorelliLuca/Neutron-diffusion

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

13 Commits
 
 
 
 
 
 
 
 

Repository files navigation

Numerical neutron diffusion in nuclear reactors

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.

Requirements

The project is written in python and requires the following packages:

  1. Numpy
  2. Numba
  3. Scipy
  4. Matplotlib
  5. tqdm

Usage

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:

$$\frac{1}{v}\frac{\partial \phi}{\partial t}=D\nabla^2\phi-\Sigma_a\phi+v\frac{\Sigma_f}{k_{fudge}}\phi.$$

After the integration the code produces an animation that shows the time evolution of the reactor: e.g.

Alt Text

The code of CriticalityFudgeFactor.py instead allows to evaluate the value of $k_{fudge}$ that makes critical the reactor described in the above .dat files.

About

Numerical simulation of the neutron diffiusion in a nuclear reactor.

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages