This is sort of a pointless post. It’s just an update on how I’ve been spending this lazy Saturday. This morning I started working on a model of nuclear fission as a useful tool to help political science students understand it. It is hugely unfinished and very unattractive (I’ll work on that). Still, I thought it was interesting enough to post about here.
Before I introduce my in-progress model, let me get the personal stuff out of the way. I wrote my MA thesis on self-immolation as an act of revolutionary protest. From there, I became profoundly interested in the “spontaneous genesis” of violent protest movements. Is there a way to predict how and when a single revolutionary actor, such as Tunisia’s Muhammad Bouazizi, will inspire a movement to topple a system, regime, or state? That’s not what this post is about. Rather, my revolution model plays into the issues below.
I was planning on writing my dissertation on this topic. And I was building a model in NetLogo to explore various societies and to see if I could inspire revolutionary violence by creating a single violent actor. As soon as I passed my comprehensive exams to begin dissertating, one of my professors pulled me aside and said, “Ryan, I think you should build a model of an exploration in nuclear disarmament.” Needless to say, when a professor tells you what you should do your dissertation on, you follow their advice! Even if you thought you’d already had a topic in mind. Leave that for your post-doc or that book you really want to write. So I left the model behind and began working on this other problem.
This was a blessing as well as a curse. It was a blessing because the problem was smaller. I didn’t have to model potentially millions of people with varying behaviors and degrees of aptitude for violence. The nuclear disarmament problem boiled down to a about 200 parts, a single equation to show changes over time, and a sigmoid transfer function. It took me two years to finish, much faster than it takes most people to write a dissertation.
It was a curse because I was hoping to get into international nuclear work. And the current president deeply distrusts the International Atomic Energy Agency and the Preparatory Commission for the Comprehensive Nuclear-Test-Ban Treaty Organization. I interviewed with the latter group, after which they informed me they couldn’t hire me at the moment due to United States funding issues. I was effectively barred from working my field of study due to the political whims of the president.
Anyway, yesterday, I came across my model of violent rebellion, and I thought to myself, What if I create an agent-based model of nuclear fission? So I got to work. This model is what this post is about.
Back when I was teaching international political theory to undergraduates, I’d spend an entire week teaching them about various states’ choices to adopt, eschew, or even give up nuclear weapons. The first hour is a crash course on the fission of Uranium-235. Usually, I’d grab something like the image below from Google to illustrate what happens when an atom of U-235 captures an additional neutron.
But I always wanted to show them a slow-motion animation of U-235 absorbing a neutron, oscillating until it tears itself apart into two smaller and more stable atoms. In the above illustration, this is Ba-144 and Kr-89. In my model below, which is unfinished and doesn’t name which isotopes are produced, I use Ba-141 and Kr-92. The exact fission process, intensely generalized, is below.
Modeling this proved fairly simple.
The Working Model
On the other hand, the model isn’t finished. There are a lot of things I’d like to do to make it more illustrative. I’ll upload it here when I have a better working version of it.
As I mention earlier, I used NetLogo. When I share the model, you’ll either have to download and install the software or upload the .nlogo file into NetLogo’s web-based version.
The model is fairly straightforward. In the image below, there are two circles on the screen—a large blue circle (representing the U-235 isotope) and a small white circle on the left-hand side (representing a free neutron). There are two buttons. Pressing setup creates the image you see. And once you’ve done that, you press the Fire Neutron button, which causes the small white circle—the neutron—to travel straight into the U-235’s core.
Inside the U-235 are 143 neutrons and 92 protons, which gives us the approximate isotopic mass (~235). U-235 is fairly stable, but Uranium with an isotopic mass of 236, after absorbing an additional neutron for a total of 144, is wildly unstable. In the model, the U-236 breaks down instantaneously into the above-mentioned isotopes of Barium and Krypton.
Below: The heavier of the two isotopes, Ba-141, is shown as a red circle towards the top. The green circle at the bottom is the lighter Kr-92.
The new isotopes’ combined mass, however, is 233, so the model shows two additional things happening. In the image below, we can see three small white circles, which represent neutrons that have been released. In reactors or atomic bombs, these released neutrons cause the chain reactions necessary to produce heat or to cause an explosion. Uri Wilensky has already modeled fission inside a nuclear reactor. Perhaps one day, I’ll create a model of the bomb, but that day isn’t today.
Finally, there are 100 yellow lightning bolts. Each bolt represents about 2 MeVs of energy for a total of 200 MeVs.
This model is fairly primitive, and, again, I plan to work on it a lot in my spare time.
First, at the center of the screen is an unsightly green box, which relays some information to both the captured neutron as well as the U-235. I’d like to code a different way to communicate this information.
Second, I’d like to transform the giant blue, red, and green blobs representing isotopes into a collection of visible neutrons and protons. Having hundreds of agents (or “turtles,” as NetLogo calls them) all doing different things caused my computer to lag when I pressed “Fire Neutron.” To solve this, I created single atoms, which “own” neutrons and protons, but most of the protons and neutrons don’t actually exist as turtles. Therefore, I’d like to go back to the original format I had this morning. It’s much more aesthetically pleasing.
Third, as I stated earlier, as soon as the electron touches the U-235’s center, the U-235 instantaneously splits into two smaller atoms. I’d like to show “animation” of the neutrons and protons oscillating until the atom is torn in two. This is going to require more coding.
Fourth, because the combined mass of the Barium and Krypton produced during the fission process is less than the original Uranium’s mass, we can follow Einstein’s famous mass-energy equivalence ( e=mc2) to determine how much energy I’m producing with each fission. Like I did with the atom “owning” protons and neutrons, I can ask the atom or each individual proton/neutron (depending on whether or not the second point above is operationalized), to “own” energy. As I add additional U-235 isotopes, I can setup chain reactions to plot the energy produced during the process. Also, any chain reaction is going to need a some kind of neutron reflector, which will require additional coding (Note to self: It might be cool to model the famous criticality experiment with the cursed “Demon Core” that killed Louis Slotin).
Finally, fission isn’t guaranteed just because U-235 captures an additional neutron. Earlier this morning, I had a fission-probability slider, but it seemed pointless at the moment, so I removed it. I might want to play around with that in the future, especially if I do the fourth point above.
Mainly, I just wanted to model nuclear fission. It seems like a fun way to practice coding. Plus I already have an elementary understanding of it, so I didn’t have to read up on fission prior to pumping out this code.
But also, this might be the first step towards a more dynamic model of nuclear fission for atomic weaponry. And it could be a potentially-invaluable tool to help undergraduate political science students understand how you can take a few dozen kilos of fissile material and make it go boom—or take that same material and safely use it to produce commercial or propulsion energy. Especially allowing students to dissect the code, they will see each “moving part” of the fission process—once my model is complete, especially using the second point in the above section.
Are you a physics student or physicist, a NetLogo enthusiast, or an imaginative person with ideas for how I can refine or expand my model? If so, please, by all means, comment your suggestions, criticisms, or other comments.