A Monte Carlo Simulation of Neutron Transport (Chain Reaction)


A basic simulation of a Neutron Transport System for a sphrical bulk (medium) containing U235 and U238 nuclei.

 Thermal neutrons are relased from the center of a shperical bulk of radius m_radius and mass m_mass
 containing only two nuclei U235 and U238. Using Monte Carlo methods, program simulates 
 the trajectories (i.e. the positions) of the secondary neutrons propagating in the bulk.
 The secondaries can be prompt neutrons (from fission reaction) or scattered neutrons.

 Transport algorithm is as follows:

 0. Determine initial number of thermal neutrons(m_evtMax), the radius(m_radius) of the bulk and 
    purity(m_purity) of U235 in the medium.
 1. Take a thermal neutron at the center of the sphere, and send it a isotropically random direction.
    DO FOLLOWING FOR EACH NEUTRON IN THE MEDIUM
 2. Using cross-section data for U235 and U238, calculate mean free path for the neutron
 3. Determine the reaction type
    IF   
           the neutron is out of bulk the stop the event go to next event
    ELSE 
           IF the neutron is absorbed
              * check if the reaction is fission, then determine number of prompt neutrons, their energies and directions.
                    else remove this neutron from the bulk.
              * check if the neutron is out of bulk
           ELSE the neutron is scattered
              * using cross-sections, determine the scttering type (elastic or in elastic)
              * determine the energy and direction of the scattered neutron
              * check if the neutron is out of bulk
    END IF
 4. Calculate number of neutrons for each generation
 5. Calculate <keff>
 5. End

 At the and, program gives the average neutron multiplication factor (<keff>) of the 
 system defined as the ratio:

   keff = (# neutrons generated in one generation) / (# neutrons generated in preceding generation)

   keff < 1 ==> results in sub-critial mass   (means no chain reaction occurs)
   keff = 1 ==> results in critial mass       (means a chain reaction can start)
   keff > 1 ==> results in super-critial mass (means a chain reaction definitely starts)


The computer implementations: fission.cpp
See also: fission.h | fission-cross-section.data