Density Current Modeling

Joined
Jun 19, 2005
Messages
884
Location
New Mexico
So about a year to a year and half ago I decided to try and build a weather model in my free time. The model was 2d and focused on mesoscale sizes. Originally it was rather unstable. Since then I have been revamping the model (i.e. remaking it from the ground up several times), improving its stability ect. Recently I've been focusing on modeling a density current (similar to what occurs when a downburst happens). I've recently begun to have some success. The images below are about 6km by 25 km in size. The last image is about 700 seconds worth of simulation. The darker the color the cooler the perturbation from the adiabatic atmosphere (by ~10C). The viscosity for the simulation is higher than what is actually present in the atmosphere, this is because of stability concerns, and so that I could compare the results to others in the literature. There's still some things I'm testing out before I come to my "final" version of the model, but so far I'm pleased with what it has been producing.

0.jpg


105.jpg


246.jpg


532.jpg


752.jpg



While it has been done before by others, I hope you guys like the images. A movie and other images are coming...
 
Last edited by a moderator:
I went back and extracted wind, temperature, etc from the simulations. Decided to make some pretty pictures.

Cyan = Temperature Perturbation
Magenta = Pressure Perturbation
Yellow = Wind Speed

photo1.jpg
 
These are really really neat Robert. Can you tell us a bit more about what goes into creating this simulation? Maybe a brief summnary of what kind of math and physics is involved. Also, what are you using to create your graphics? Is this a custom programming job, or are you using some tools or rendering engines?
 
Robert, if these images and the movie aren't the last word in cool, then they're darn close to it. A non-math person like me probably can't fully appreciate all the nuances, but the visual representations explain things in a way I can understand. Nicely done! Thanks for sharing, and please continue to keep us posted on new developments.
 
These are really really neat Robert. Can you tell us a bit more about what goes into creating this simulation? Maybe a brief summnary of what kind of math and physics is involved. Also, what are you using to create your graphics? Is this a custom programming job, or are you using some tools or rendering engines?

That would take quite a bit of writing... but I'll give some more information. While I have some experience in other languages, it was written in MATLAB. I just am more comfortable developing code in MATLAB, and the visualization I feel is very easy with the computational environment. Most of the images were made from MATLAB, except for the last one where I took the output from MATLAB and played around with it in photoshop.

The model uses finite differencing, while it appears other methods (i.e. finite element, etc.) may be better, it was largely developed in this manor because it was easier for me to understand. The model is 2d, fully compressible, and uses at present no turbulence model. The model uses centered difference in space and time. Because centered difference is unstable in time, there is also a filter applied to the model. For the the diffusion terms I applied a forward in time difference method. I have tried higher order spatial derivatives in time and space but found them to be unstable, although with the current form of the code I may play with this in the future.

The boundaries are tricky. I learned long ago (last year) to make the boundary a free slip boundary. This is because with the resolution presently involved, the winds and the bottom would be significantly damped. To do this the boundaries can largely be thought of as mirrors.

At present the model has a resolution of 25m X 25m and uses 100th of a second time steps. Each run, 900 seconds long, takes a little over a day. Although, I hope to improve the processing time, since there are a few places that probably could be improved up in terms of memory management.

For the physics and math I would largely refer you to by Tannehill, Anderson, & Pletcher, Computational Fluid Mechanics and Heat Transfer. The equation set to use is also rather tricky. The explicit equations you might find in the book, will probably not work if you just try to immediately apply finite differences to them and let it go. There were a few tweaks I needed to make to make gravity work appropriately, etc (i.e. apply the appropriate perturbations). If someone ventures into this I could provide more details.

There are some future directions I might head with this. However, I'm mainly doing checks and cleaning up the code right now. In the future I may want to add moisture (i.e. create rain, ice, etc.) There are some parametrization schemes I've been thinking I might apply, since originally I started this project wanting to make a storm. There are few other things I might try.

If you have more questions, I would be more than happy to answer them!
 
Last edited by a moderator:
I was going through some of my old chase logs and I found a photo that immediately reminded me of your current simulations:

08052306.jpg


Makes me appreciate how realistic the results of these simulations can be when you see the same thing in a real world example.
 
very cool stuff!

I actually just got done writing a paper over finite differencing for my numerical methods class. I am curious what was the method you used for the initial time step? Forward first then center difference for the rest? I think you may have answered it in your previous post, but I'm still pretty green in numerical models. :)
 
very cool stuff!

I actually just got done writing a paper over finite differencing for my numerical methods class. I am curious what was the method you used for the initial time step? Forward first then center difference for the rest? I think you may have answered it in your previous post, but I'm still pretty green in numerical models. :)

That's correct, forward difference then centered, with a filter (it would be unstable w/o filter) for the advection terms. It's not what I choose when starting off, and I am surprised it works. I may go back and try an Adams-Bashforth of some order, because there were several things I played with to get the model to work correctly, and the temporal differencing method I used may not have been the key part to make it work. Right now kinda taking a break from it, I am sure I will play with it more in the future.
 
vortbig.gif

I was surfing around, and I realized that I never put this up on the thread. I was curious how vorticity evolved in this simulation, so I went back and produced the movie above. It wasn't quite what I imagined would occur. Clearly there is some vorticity being created in parcels, I imagine this has to do with the density variations.

I also noticed most of the links are broken so I'm reposting the movies.
ubig.gif

Horizontal wind

wbig.gif

Vertical wind

s_primebig.gif

Magnitude of wind

T_primebig.gif

Temperature Perturbation
Note, environment dry adiabatic.
 
Looking at your graphics it looks like you are getting a significantly larger u wind component for a given -w downdraft. Is there a fairly uniform relationship you are finding, like u(max)=-3w(max) or something like? I have an aviation background and so naturally I think about a plane flying into this on short final... low and slow.
 
I don't exactly recall how I scaled the colorbar. However, I went back to the files I saved... I believe with the simulations above, I have a maximum ~ 50 mph downdraft velocity with a maximum ~92 mph horizontal velocity. So a factor of ~1.8. I do not know how this may vary with initial height of the cool bubble. However, I did find |u| max is proportional to squareroot of T perturbation max. I believe |w| max should remain linearly proportional to |u| max.
 
Last edited by a moderator:
Back
Top