Collapsing a Milk Jug: Atmopheric Pressure and the Ideal Gas Law

Collapsed milk jug.

Place a little hot water (400 ml at 94-100°C) into a plastic, gallon-sized, milk jug. Give it a moment to warm the air in the jug, then put the cap on and seal tightly (hopefully airtightly).

As the air in the jug cools the gas inside with shrink, reducing its pressure, and causing the atmospheric pressure to push in the sides of the jug.

Admittedly, this experiment is a little more dramatic if you use a metal tin, but it works well enough with the milk jug to surprise and impress.

Heat and Hurricanes

What could possibly go wrong?

— Kai Ryssdal (2011) in Freakonomics: Preventing a hurricane on Marketplace by American Public Radio.

In what one can only hope is an extremely tongue-in-cheek article, Marketplace discusses how we might geoengineer a solution to stop hurricanes forming.

Hurricanes get their energy from the warm surface waters in the tropics. The warm water evaporates, transferring heat from the oceans to the atmosphere as latent heat in the form of water vapor. As the air rises, the water vapor condenses to form water droplets (clouds) releasing the stored heat into the air, causing the air to rise faster, sucking up more moisture, and setting up a positive feedback loop that turns storms and hurricanes.

But they need a constant supply of warm water.

Between 100 and 200 m below the ocean's surface, the temperature drops rapidly. This is called the thermocline. You will notice that the deepest, coldest water is at 4 °C, the temperature at which water is most dense. (Image adapted from the Woods Hole Oceanographic Institute, via Wikipedia).

Unfortunately for the storms, the warm water in the tropics is only a thin layer, a couple of hundred meters deep, that sits above about 3,000 meters of colder deep-water. As the storms suck up the heat and moisture, they stir the oceans, cooling down the surface water, and leaving cooler water in their wakes. The cooler water means that subsequent storms have access to less energy.

The energy in the atmosphere and oceans “wants” to distribute itself evenly over the surface of the Earth. Hurricanes are just one violent means of moving heat from the tropics to the poles, and from the surface to the depths of the oceans.

Cool water from the deep Atlantic is stirred up to the surface by hurricanes. This image shows the cool wake of Hurricane Igor. (Image from

NOAA’s National Hurricane Center monitors sea-surface temperatures closely: it’s one of the key factors that go into their predictions of how bad the hurricane season is going to be, and what path a storm might take.

A Salter Sink for mixing the warm shallow water with the deeper cold water. Image from Intellectual Venture via NewScientist.

The suggestion in the Marketplace article is that we could build about 10,000 long tubes (called Salter Sinks) to connect the warm shallow surface water to the colder water below the thermocline. Wave energy at the surface would drive the warm water downward, causing mixing that would reduce the temperature of the surface water the storms feed off.

The devices might cost tens of millions of dollars per year, but that would be a lot less than the cost in property damage alone of a large storm like Irene, not to mention the loss of life it would prevent.

Apart from the “benign” environmental impact (according to Stephen Dubner) the only real question left is:

What could possibly go wrong?

Kai Ryssdal (2011)

Algebra in Programming, and a First Box

One of the first things you learn in algebra is to use variables to represent numbers. Variables are at the heart of computer programming, and in Python you can use them for more than just numbers. So open the IDLE text editor and get to work.

But first we’ll start with numbers. To assign a number to a variable you just write an equation. Here are a couple (you can copy and paste the code into the IDLE window, but usually typing it in yourself tends to be more meaningful and help you remember):

a = 2
b = 3

Now we can add these two variables together and create a new variable c.

a = 2
b = 3
c = a + b

Which is all very nice, but now we want our program to actually tell us what the result is so we print it to the screen.

a = 2
b = 3
c = a + b
print c

Run this program (F5 or select “Run Module” in the “Run” menu) to get:

Output from the first program: 2+3=5.

Basic Operations and Types of Numbers

Now try some other basic operations:

+ and – are easy as you’ve seen above.

× : for multiplication use *, as in:

a = 2
b = 3
c = a * b
print c

÷ : to divide use a /, as in:

a = 2
b = 3
c = a / b
print c

Now as you know, 2 divided by 3 should give you two thirds, but the running this program outputs 0:

2 divided by 3 to gives 0 because Python thinks we're working with integers.

This is because the Python thinks you’re using integers (a whole number), so it gives you an integer result. If you want a fraction in your result, you need to indicate that you’re using real numbers, or more specifically, rational numbers, which can be integers or fractions, but usually show up as a decimal (these are usually referred to as floating point numbers in programming).

The easiest way to indicate that you don’t just want integers is to make one of your original numbers a decimal:

a = 2.0
b = 3
c = a / b
print c

which produces:

Use a = 2.0 to indicate that we're using rational numbers.

Other Things Can Be Variables

In object oriented programming languages like Python you can assign all sorts of things to variables, not just numbers.

To create a box and give it a variable name you can use the program:

from visual import *
c = box()

which produces:

A box created with VPython. It looks much more interesting if you rotate it to see it in perspective.

A rotated, zoomed-out view of a box.

To rotate the view, hold down and drag the right mouse button. To zoom in or out, hold down the right and left buttons together and drag in and out. Mac users will probably have to use the “option” button to zoom, and the “command” button to rotate.

The line from visual import * tells the computer that it needs to use all the stuff in the module called “visual”, which has all the commands to make 3d objects (the “*” indicates all).

The c = box() line creates the box and assigns it a variable name of c. You don’t just have to use letters as variable names. In programming you want to use variable names that will remind you of what it’s supposed to represent. So you could just as well have named your variable “mybox” and gotten the same result:

from visual import *
mybox = box()

Now objects like this box have properties, like color. To make the box red you set the color property in one of two ways. The first method is to set the color as you create the object:

from visual import *
mybox = box(color = color.red)

The second is to set the property using the variable you’ve created and “dot” (.) notation.

from visual import *
mybox = box()
mybox.color = color.red

In both of these color.red is a variable name that the computer already knows because it was imported when you imported the “visual” module. There are a few other named colors like color.green and color.blue that you can find out more about in the VPython documentation (specifically here).

You can also find out about the other properties boxes have, like length, width and position (pos), as well as all the other objects you can create, such as springs, arrows and spheres.

At this point, its probably worth spending a little time creating new objects, and varying their properties.

Overview

We’ve just covered:

  • Assigning values to variables
  • Basic operations (+,-,×, and ÷)
  • Types of Numbers: Integers versus floating point
  • Assigning 3d objects to variables
  • Setting properties of 3d objects

Next we’ll try to make things move.

References

For how to install and run VPython, check here.

Infrared Cloak

Image adapted from Wired.

In an interesting application of thermodynamics, BAE Systems has developed panels that can be placed on a tank to mask what it looks like to infra-red goggles, or help it fade into the background.

The panels measure the temperature around them and then warm up or cool so they’re the same temperature and therefore emitting the same wavelength of infrared light. So someone looking at the tank with infra-red goggles would have a harder time distinguishing the tank from the background.

The panels are thermoelectric, which means they use electricity to raise or lower their temperatures, probably using a Peltier device.

Peltier devices, also known as thermoelectric (TE) modules, are small solid-state devices that function as heat pumps. A “typical” unit is a few millimeters thick by a few millimeters to a few centimeters square. It is a sandwich formed by two ceramic plates with an array of small Bismuth Telluride cubes (“couples”) in between. When a DC current is applied heat is moved from one side of the device to the other – where it must be removed with a heatsink. The “cold” side is commonly used to cool an electronic device such as a microprocessor or a photodetector. If the current is reversed the device makes an excellent heater.

— Peltier-info.com: Peltier Device Information Directory

A Peltier element - it cools on one side and heats on the other. Image via Wikipedia.

Supernova Viewing this Week

The green arrow points to the exploding star. (Image via LBL).

During the next week or so, you should be able to see this supernova in the Pinwheel Galaxy with a good pair of binoculars, or a small telescope, as it waxes to its maximum brightness on September 9th.

The supernova was discovered just hours after the explosion. Astronomers are pointing every telescope they can manage at it, so this is going to be very well studied over the next decade, something high-schoolers interested in astronomy might consider.

It’s worth reiterating that since the supernova is occurring 21 million light years away, this star exploded 21 million years ago.

The video below explains where to look to find it in the night sky.

Algebra and Programming with VPython

Computer programming is the place where algebra comes to life. Students seem to get really excited when they write even the simplest instructions and see the output on the screen. I’m not sure exactly why this is the case, but I suspect it has something to do with being able to see the transition from abstract programming instructions to “concrete” results.

So I’ve decided to supplement my Algebra classes with an introduction to programming. I’m using the Python programming language, or, more specifically, the VPython variant of the language.

Why VPython? Because it’s free, it’s an easy-to-use high-level language, and it’s designed for 3d output, which seems to be somewhat popular these days. The oohs and aahs of seeing the computer print the result of a+b turn into wows when they create their first box. I’ve used the language quite a bit myself, and there are a lot of other interesting applications available if you search the web.

VPython was created to help with undergraduate physics classes, but since it was made to be usable by non-science majors, it’s really easy for middle and high school students to pick up. In fact, NCSU also has a distance education course for high school physics teachers. They also have some instructional videos available on YouTube that provide a basic introduction.

Image from a game created by middle school student Ryan W.

I use VPython models for demonstrations in my science classes, I’ve had middle school students use it for science projects, and I’ve just started my middle school algebra/pre-algebra students learning it as a programming language and they’re doing very well so far.

What I hope to document here is the series of lessons I’m putting together to tie, primarily, into my middle school algebra class, but should be useful as a general introduction to programming using VPython.

Getting VPython

You’ll need to install Python and VPython on your system. They can be directly downloaded from the VPython website’s download page for Windows, Macintosh or LINUX.

Running a Python program.

Once they’re installed, you’ll have the IDLE (or VIDLE) program somewhere on your system; a short-cut is usually put on the desktop of your Windows system. Run (double-click) this program and the VPython programming editor will pop up any you’re ready to go. You can test it by typing in something simple like:

a = 1
b = 2
c = a + b
print c

Then you run the program by going through the Run–>Run Module in the menu bar.

Which should cause a new window to pop up with:

Python 2.7.1 (r271:86882M, Nov 30 2010, 09:39:13) 
[GCC 4.0.1 (Apple Inc. build 5494)] on darwin
Type "copyright", "credits" or "license()" for more information.
>>> ================================ RESTART ================================
>>> 
3
>>> 

Even better might be to test the 3d rendering, which you can do with the following program:

from visual import *

box()

which creates the following exciting image:

A box created with VPython. It looks much more interesting if you rotate it to see it in perspective.

To rotate the view, hold down and drag the right mouse button. To zoom in or out, hold down the right and left buttons together and drag in and out.

A rotated, zoomed-out view of a box.

Lessons

Lesson 1: Variables, Basic Operations, Real and Integer Numbers and the First Box.

Lesson 2: Creating a graphical calculator: Coordinates, lists, loops and arrays: A Study in Linear Equations

Zipline to School

Nine year old Daisy Mora takes the zipline to school every day. Her five year old brother is in the bag. Image by Christoph Otto via the Daily Mail.

Photographer Christoph Otto has a few utterly amazing photographs of the kids of Rio Negro in Columbia, who have to take a zipline to get across the valley to school.

This video gives more details.

It might also be useful if students need some incentive to try the zipline at the challenge course.

The CoolMath Website

A colleague recommended the Cool Math website as something she uses as a supplement for her students. There are some games for the younger kids, and lessons in pre-algebra through algebra for secondary students. I’ve glanced through a few of the pre-algebra lessons, and like them. They’re short, fairly clearly written, and have good diagrams.

Algebra lessons at Coolmath.com

The site is also friendly to homeschoolers and their parents, with a decent teacher’s area that outlines the author’s perspective on teaching math.

Their Survivor Algebra is an interesting approach to encouraging peer teaching by breaking the class into “tribes” and giving bonus points on tests if all members of the tribe do well. I’m not sure I like the extrinsic motivation of the prizes and test score bonuses but I think there might be some good aspects of this type of classroom organization in very large classes.

It’s a very interesting site that’s worth investigating.