Define functions that return the characteristic path length between scatters and the time till diffusion to a distance distance_cm.



In [1]:
def avgPath_cm(density_percc, scattering_crossSection_sqc):
    return 1/(density_percc*scattering_crossSection_sqc);

def diffTime_s(distance_cm, speed_cmpers, density_percc, scattering_crossSection_sqc):
    L = avgPath_cm(density_percc, scattering_crossSection_sqc);
    return (distance_cm/L)**2 / (density_percc * scattering_crossSection_sqc * speed_cmpers);

Define constants: density of the material, velocity of the neutron, etc.



In [2]:
# lead has a density of 11.4 g/cc
# and an atomic mass of 207
# and avagadro's number is 6.022 * 10^23
den_lead = 11.4;
amu_lead = 207;
n_a = 6.022 * 10**23;

n_percc = den_lead*amu_lead*n_a;
print n_percc


1.42107156e+27

In [6]:
# the neutron's speed
# and its cross section with lead at that speed
speed_cmpers = 1.2 * 10**10;
sig_sqc = 4 * 10**(-24);

In [7]:
# how far away from the neutron's origin
# are we sitting?
dist_cm = 3;

Calculate the characteristic path length and the diffusion time



In [8]:
print 'The characteristic path length between collisions is ', avgPath_cm(n_percc, sig_sqc)*10, 'mm.'
print 'The time scale for diffusion to distance ', dist_cm, 'cm is ', diffTime_s(dist_cm, speed_cmpers, n_percc, sig_sqc), 's.'


The characteristic path length between collisions is  0.00175923582624 mm.
The time scale for diffusion to distance  3 cm is  4.26321468e-06 s.

In [ ]: