When you use a computer to solve a problem (I would call this a numerical calculation), is it an experiment or theory? Or is it something else?

It's a very common question. One that comes up often---usually when drinking beer with scientists from a variety of fields. I think it's an important topic to discuss in order to help everyone understand the nature of science.

The Nature of Science

If we agree on the fundamental ideas of science, then we can have a discussion on the role of computational science. Let me give the following (very brief) overview of science:

The Nature of Science: Science is all about models. We look at something in real life and try to make a model of it. We can use this model to predict future (or new) events in real life. If the model doesn't agree with real data, we change the model. Repeat forever.

OK, but now I need to define a model. That's not too hard. A model can really be anything used to represent real life (but not real life). Here are some examples of scientific models:

A lump of clay in the shape of an amoeba.

A chart showing the transfers of energy as a block slides along a table.

The idea that forces change the velocity of objects.

The equation for the gravitational force between two objects.

A differential equation describing the motion of a mass on a spring.

Oh, and a computer program that calculates the motion of a baseball with air resistance, this is a model too.

So, a model can be many different things. It doesn't have to be a mathematical model---but that's often what we see in science. Hopefully these are all the things we already agree on.

One final note on the nature of science. The process of making a model would be theoretical physics. Comparing a model to real world stuff would be experimental physics. A scientist can do both theoretical and experimental physics---but for big projects (like High Energy Physics) humans tend to focus on either model building or model testing.

The Computational Physicist

Now let's have a pretend meeting. We are going to meet a physics professor that specializes in creating computational models of different things (it really could be for anything). This professor will be in a "lab" that consists of lots of computers. There will probably be some pretty powerful computer clusters in that lab.

Now for a conversation with this computational physicist. Here are some key points that will be brought up.

Computers are very important in science.

We create some code and then run it. It produces data which is then analyzed.

Since a computer program produces data, it is very much like an experiment that produces data.

Oh, but the computer program is also theoretical because we created it.

Computational science bridges both theory and experiment. It's sort of like the third kind of science (with the other two being theoretical and experimental).

Just about every computational scientist says the same thing (but not all of them).

A Computer Program Is a Model

When you write a computer program, it does indeed give you some numbers in the end. Also, it is true that you don't always know what these values will look like until you actually run the program. This doesn't mean it's like a real experiment. In the end, the program was made by a human and not real life. Oh, when you solve a differential equation (which everyone would agree would fall under "theoretical science") you also don't know what you are going to get for the solution until you do it. No one calls that an experiment.

OK, now for my favorite model. What happens when you put a mass on the end of a spring and displace it a little bit. Yes, it will oscillate back and forth. Here is a bit more detail in the development of a numerical model for this mass on a spring, but let me just skip to the end. This is plot of two solutions to a mass on a spring---one by solving a differential equation and one from a numerical model (with just a few points).

Yes, that looks like data---but it's not data. If I make smaller steps in the numerical calculation, you can't even tell a difference between these two theoretical solutions. Here is another plot with a better numerical model. I have shifted one of the plots so that they aren't right on top of each other.

Those two models pretty much give identical results.

Where Do We Put Computational Physics?

Ask yourself, is a computer program something that is experimental or is it theoretical? Is it something in between or something completely different? If you agree with my definition of the nature of science then we have:

Theoretical: building models.

Experimental: testing models.

Is a computer program building or testing a model? Yes, the correct answer is that a computer program is the "building a model" part of science. You still have to test this model by comparing it with an experiment. If you don't test it with real world data, it might as well just be a video game.

Please don't think that I am suggesting we stop calling people computational physicists. Creating numerical models is fairly difficult and requires a unique set of skills. It's OK for a group of people to specialize in the process of numerical model building. We also have people that specialize in experimental high energy physics as well as theoretical solid state physics. But science is still about building and testing models.

In fact, I think that in the past scientists that focused on computational techniques had a difficult battle. Other scientists claimed that they weren't really doing "science," they were just computer programmers. It took some time to legitimize these computational techniques. But now we are in a place where every field uses numerical calculations in some way. No one thinks they are silly. Along with that, I make the claim that we should all be including numerical calculations in our introductory classes---the tools are very accessible now and there are no more excuses to keep it out of the curriculum. Keeping coding out of a physics class would be like saying "we aren't going to do any problems that involve fractions." Yes, I really think that.

Rhett Allain is an associate professor of physics at Southeastern Louisiana University. He enjoys teaching and talking about physics. Sometimes he takes things apart and can't put them back together.