REACTOR_SIMULATION is a MATLAB program which simulates the shielding effect of a slab intended to absorb or reflect most of the radiation from a neutron source. This program is intended as a simple demonstration of Monte Carlo simulation as applied to the analysis of complicated probabilistic systems.
REACTOR_SIMULATION is an example program that was developed in the book "Numerical Methods and Software".
REACTOR_SIMULATION is a Monte Carlo simulation, using uniform random numbers, which investigates the effectiveness of a shield intended to absorb the neutrons emitted from a nuclear reactor.
The reactor is modeled as a point source, located at (0,0,0).
A particle emitted from the reactor has a random initial direction, and an energy selected from [Emin,Emax] with a 1/Sqrt(E) distribution.
The shield is modeled as a wall of thickness THICK, extending from 0 to THICK in the X direction, and extending forever in the Y and Z directions.
Based on the particle energy, a distance D is computed which measures how far the particle could travel through the shield before colliding.
Based on the particle direction, the position is updated by D units.
If the particle is now to the left of the shield, it is counted as being REFLECTED.
If the particle is to the right of the shield, it is counted as being ABSORBED.
If the particle is inside the shield, it has COLLIDED. A particle that collides is either absorbed (end of story) or SCATTERED with a new random direction and a new (lower) energy.
Every particle is followed from origin to its final fate, which is reflection, transmission, or absorption. At the end, a summary is printed, giving the number of particles with each fate, and the average energy of each group of particles.
Increasing NTOT, the number of particles used, will improve the expected reliability of the results.
Increasing THICK, the thickness of the shield, should result in more absorptions and reflections.
The computer code and data files described and made available on this web page are distributed under the GNU LGPL license.
REACTOR_SIMULATION is available in a C version and a C++ version and a FORTRAN77 version and a FORTRAN90 version and a MATLAB version.
DUEL_SIMULATION, a MATLAB program which simulates N repetitions of a duel between two players, each of whom has a known firing accuracy.
FOREST_FIRE_SIMULATION, a C program which models the occurrence of fires in a forest, and displays the status of the forest using X Windows.
GAMBLERS_RUIN_SIMULATION, a MATLAB program which simulates the game of gambler's ruin.
ISING_2D_SIMULATION, a MATLAB library which carries out a Monte Carlo simulation of a 2D Ising model.
LIFE_OPENGL, a C program which uses OpenGL to display the evolution of John Conway's "Game of Life", by Simon Green.
LORENZ_SIMULATION, a MATLAB program which solves the Lorenz equations and displays the solution, for various starting conditions.
MD1, a FORTRAN90 program which carries out a simple molecular dynamics simulation;
MD2, a FORTRAN90 program which carries out a simple molecular dynamics simulation;
MD3, a FORTRAN90 program which carries out a simple molecular dynamics simulation;
MD3GLUE, a FORTRAN90 program which carries out a simple molecular dynamics simulation;
NMS, a FORTRAN90 library which accompanies the book "Numerical Methods and Software", from which the REACTOR_SIMULATION program was extracted.
RANDOM_WALK_1D_SIMULATION, a MATLAB program which simulates a random walk in a 1-dimensional region.
RANDOM_WALK_2D_AVOID_SIMULATION, a MATLAB program which simulates a self-avoiding random walk in a 2-dimensional region.
RANDOM_WALK_2D_SIMULATION, a MATLAB program which simulates a random walk in a 2-dimensional region.
RANDOM_WALK_3D_SIMULATION, a MATLAB program which simulates a random walk in a 3-dimensional region.
SIR_SIMULATION, a MATLAB program which simulates the spread of a disease through a hospital room of M by N beds, using the SIR (Susceptible/Infected/Recovered) model.
TRAFFIC_SIMULATION, a MATLAB program which simulates the cars waiting to get through a traffic light.
TRUEL_SIMULATION, a MATLAB program which simulates N repetitions of a duel between three players, each of whom has a known firing accuracy.
UNIFORM, a MATLAB library which generates pseudorandom uniform numbers.
XISING, a C program which models the variations in ferromagnetism in a material, displaying the results using X Windows.
XWAVES, a C program which simulates the behavior of solutions of certain forms of the wave equation, displaying the results using X Windows.
You can go up one level to the MATLAB source codes.