reactor_simulation, a MATLAB code which simulates the shielding effect of a slab intended to absorb or reflect most of the radiation from a neutron source. This code is intended as a simple demonstration of Monte Carlo simulation as applied to the analysis of complicated probabilistic systems.
REACTOR_SIMULATION is an example code 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 FORTRAN90 version and a MATLAB version.
brownian_motion_simulation, a MATLAB code which simulates Brownian motion in an M-dimensional region.
chuckaluck_simulation, a MATLAB code which simulates the Chuck-a-Luck gambling game.
coin_simulation, a MATLAB code which looks at ways of simulating or visualizing the results of many tosses of a fair or biased coin.
dice_simulation, a MATLAB code which simulates N tosses of M dice, making a histogram of the results.
duel_simulation, a MATLAB code which simulates N repetitions of a duel between two players, each of whom has a known firing accuracy.
fair_dice_simulation, a MATLAB code which simulates N tosses of 2 dice, making a histogram of the results.
fire_simulation, a MATLAB code which simulates a forest fire over a rectangular array of trees, starting at a single random location.
gamblers_ruin_simulation, a MATLAB code which simulates the game of gambler's ruin.
high_card_simulation, a MATLAB code which simulates a situation in which you see the cards in a deck one by one, and must select the one you think is the highest and stop.
ising_2d_simulation, a MATLAB code which carries out a Monte Carlo simulation of an Ising model, a 2D array of positive and negative charges, each of which is likely to "flip" to be in agreement with neighbors.
jai_alai_simulation, a MATLAB code which simulates matches of jai alai.
poisson_simulation, a MATLAB code which simulates a Poisson process in which events randomly occur with an average waiting time of Lambda.
random_walk_1d_simulation, a MATLAB code which simulates a random walk in a 1-dimensional region.
random_walk_2d_avoid_simulation, a MATLAB code which simulates a self-avoiding random walk in a 2-dimensional region.
random_walk_2d_simulation, a MATLAB code which simulates a random walk in a 2-dimensional region.
random_walk_3d_simulation, a MATLAB code which simulates a random walk in a 3-dimensional region.
roulette_simulation, a MATLAB code which simulates the spinning of a roulette wheel and the evaluation of certain common roulette bets.
sir_simulation, a MATLAB code 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 code which simulates the cars waiting to get through a traffic light.
truel_simulation, a MATLAB code which simulates N repetitions of a duel between three players, each of whom has a known firing accuracy.
urn_simulation a MATLAB code which simulates an experiment in which k colored marbles are drawn from an urn containing a total of n marbles. The quantity of interest is the number of marbles of each color.