The preservation of momentum after a circulation is controlled by the ke_fraction parameter. By default, this parameter is 0.0, and the simulation will run exactly as before, with the entire impetus for convection being transformed into viscous friction. But with ke_fraction set to 0.9, 90% of the impetus for convection will turn into kinetic energy.
In version 7.0, we have have no graphical illustration of the cell kinetic energy. Perhaps we can use short lines within the cells to indicate momentum in the future. But we can always can stop the simulation and save the array to a text file. The text file tells us the state of each cell. Text files written by 7.0 have a new format, as shown below. But please note that 7.0 can read in text files written by previous versions of the simulation.
row column marking temperature vertical_ke horizontal_keIn the future, we will add moisture content and cloud concentration to this list of properties. For now, the cells remain dry. The kinetic energy is in units of J/kg, so if we want to know how fast the cell is moving, we take the absolute value of the kinetic energy, double it, and take the square root. If the energy is 32 J/kg, the speed is 8 m/s. The direction is given by the sign of the kinetic energy: positive is up or right.
We have been playing around with CC7, using the Left-Only and Planetary Greenhouse. We set ke_fraction to 0.9 and looked to see if a breeze developed along the lowest row of cells, from right to left. After several hundred thousand iterations, we saved the array to disk and find that all the cells along the bottom row are moving to the left, while all the cells along the top row are moving to the right. By marking cells, we can observe these movements as the simulation runs. We don't see a simple clockwise rotation: there is a lot of random movement on top of the rotation. In the middle rows, the cell movements are as random as they were in our original Left-Side Only simulation with no accounting for momentum. But along the surface and along the tropopause, we appear to have the prevailing breeze we were looking for.
What we have yet to determine is what value of ke_fraction is required to establish a steady breeze, and what fraction is realistic. We invite you to download the code and play with it yourself. We hope the implementation of kinetic energy is correct, but if not we hope you will point out any problems.
UPDATE: There is a flaw in the way we combine cell kinetic energy with impetus for circulation. When we subtract the kinetic energy of a cell from the impetus, this kinetic energy ends up disappearing from the array. We observed a similar program-induced loss of energy in Work by Circulation. Given that the effect of preserving cell momentum was not dramatic, we resolve to remove the kinetic energy calculation from our code, so that ke_fraction will remain zero.