FFDD — Fission Fragments Decay for Dummies
It is often said that the discovery of nuclear fission, in 1939, changed the course of human history [1]. But the true breakthrough was the realization that fission releases neutrons, unlocking the possibility of self-sustaining chain reactions and nuclear reactors [2]. This raises a fundamental question: Why does nuclear fission release neutrons at all?
Scope and disclaimer
FFDD is a lightweight and educational Python toolbox designed to simulate neutron emission in fission. Its purpose is pedagogical: it aims to help physics students understand the basic mechanisms behind neutron emissions in nuclear fission, and to perform simple but reasonably accurate predictions of neutron multiplicity.
While the toolbox captures key features of fission fragment decay, many advanced phenomena are intentionally omitted. These simplifications were made to keep the physics accessible without significantly impacting the first-order behavior. For advanced users interested in high-accuracy modeling, the "To go further" section of the documentation points to some missing physical processes in FFDD and indicates more comprehensive codes used by nuclear physicists.
Disclaimer: FFDD is not meant to compete with or replace high-fidelity simulation tools. It is not intended for precision nuclear data work or safety-critical applications.
Project layout
ffdd/
data/ # data from the literature
decay.py # decay modules
energy.py # energy balance modules
mass.py # nuclear mass reader
sepn.py # separation energy reader
tke.py # kinetic energy modules
utils.py # global variables
yields.py # fission yields reader
tests/ # unitary tests
visual_tests/
plot_mass.py # visual test: nuclear mass map
plot_sepn.py # visual test: separation energy map
plot_tke.py # visual test: kinetic energy plot
plot_yields.py # visual test: yields plots
examples/
example1.py # example: study of deformation
Main modules
FFDD is composed of a few main modules (detailed in the "API" section):
sepn
: reads neutron separation energies.nuclear_mass
: reads nuclear masses.fission_fragments_coupled
: reads independent fission yields.tke
: estimates the total kinetic energy of fragments.q_value
: estimates the available energy from mass default.txe_sharing
: shares the excitation energy between the two fragments.decay
: simulates the decay of a fragment by neutron emissions.nubar
: averages the number of emitted neutrons over all the fragments.
Modules are designed as plug-ins that can be easily modified or replaced. This modular structure allows users to perform physics studies or extend the simulation with new features beyond those originally implemented.
References
[1] L. Meitner and O. R. Frisch, Nature 143, 239–240 (1939)
[2] W. H. Zinn and L. Szilard, Phys. Rev. 56, 619 (1939)