Simulating Electrons with Python

By Green Code


Category: Coding, Physics

This is an atom.

Image by the author of an atom.

As you observe, it has a central core formed of neutrons and protons. But they are also surrounded by tiny particles called electrons. These particles are arranged in different electron layers called shells.

Most textbox images of atoms are static, so there’s a common subconscious misconception that atoms are static.

That’s far from reality. Both in the nucleus and especially in the electrons shells. The atoms that form us are in constant movement 24/7. They don’t stop.

So, in an attempt to help visualize this constant movement of electrons I decided to simulate them in Python.

Coulomb’s law

As you might know, while protons have a positive charge, electrons have a negative charge. 

Therefore, they attract each other.

Image by the author of Coulomb’s Law.

The opposite happens if you bring two electrons together; they repel each other.

There is also something to take into account here. In both cases, electrons and protons affect each other in proportion to the distance between each other. In other words, the force they exert on each other is proportional to their distance.

So, if two electrons are far away from each other, they will barely notice the presence of the other. 

But, if there’s another electron close enough, things change. Remember electrons disgust each other, so when one sees that an electron is close by, he’ll go “Yuck this disgusting electron is really close to me, let’s get the hell out of here”. And so they go in completely opposite directions.

Image by the author of electrons disgusting each other.

All of these rules were gracefully summarized in 1785 by Charles-Augustin de Coulomb. So this became known as Coulomb’s law:

Image by the author of Coulomb’s Mathematical Formula.

So simple, right?

(sorry if that was a bit boring, but now comes the fun part)

Using Python to simulate electrons

You can do a ton of things using python, but one of my favourite ones is drawing. Using some libraries (Turtle, for example) you can do a lot of cool stuff. Like this for example:

Animation by the author of cool bouncing balls. 🙂

Or this:

Image created by Geeks for Geeks.

Pretty cool, eh?

Well, why don’t we use that to simulate electrons?

I started off trying to simulate two electrons. This is how it went.

Animation by the author of two boring electrons being simulated.

You might be thinking “that’s pretty boring” and that’s because it is.

I decided to spice things up a bit and give initial velocity to each electron. This way the two electrons might bump more into each other and produce more exciting patterns.

I also coded it so that electrons would bump into imaginary walls since that would contain them in a confined space.

More exciting electrons are being simulated. GIF by the author.

But there’s a problem with this; it’s not realistic at all. Although electrons change their paths when they encounter a fellow electron, they pretty much continue as if nothing.

This is really because we need more electrons! Only when more electrons are present do more complex patterns start to form.

More electrons!

The problem with adding more electrons is the number of calculations you need to perform.

When we had only two electrons, there was only one interaction between electrons. When you have 7 electrons, there are 21 interactions. And when you have 50 electrons, there are 1225 interactions. You get the gist, right?

Image by the author of the number of electrons interactions as the number of electrons increases.

So, at every point of the script, I calculate the interactions between a particular electron and all of the others. And then calculate how that electron should move next.

And volià! This is what I got!

I lied to you

Although the results are very cool (in my opinion, let me know what you think), there are obviously not realistic. In fact, basic textbook images of atoms don’t really make justice to their real chaotic nature.

This is what an atom truly looks like.

This is because nothing is certain in the quantum world. For example, it is physically impossible to know the position and the velocity of an electron at the same time. Think about how crazy that is.

That’s why in the photo above, electrons are represented by areas where they could be. 

Electrons can be at two places at the same time. So, there’s also that.

Last updated: March 12, 2022

twitter image
facebook image
whatsapp image
pocket image
email image

Other Posts

Terms and Privacy


Copyright 2022 ©

| Random Post
rocket icon