How to stabilize an advection dominated finite volume scheme? WITH VIDEO!
Dear forum users!
I'm currently implementing a reactionadvectiondiffusion system on a closed 2Dsurface (surface of a sphere) using C. First I started using finite elements which works just fine for the diffusion, however I could not get the advection to work. After doing some research on the internet I've came to the conclusion that it's better to use finite volume for the advection part instead. So I've now implemented a vertexcentered finite volume routine with upwind scheme for the advection. However it's still unstable! My test is a single Gaussian pulse which is supposed to be advected around the sphere. Here's a typical plot I get: http://www.xammm.com/fvm.gif which is a cut at theta = pi/2. phi goes from 0 to 2*pi. The red curve is the initial condition and you can clearly see that this is unstable even though diffusion is still pretty strong. I would like to have a code, where the pulse gets advected by (e.g.) one rotation and has still the same shape. There's also a video: http://www.xammm.com/surf.mpeg I'm using a CrankNickolson/Cholesky decomposition scheme. Is there an easy way to stabilize this? 
what about the cfl number at which your code was tested?

The mesh you are using looks indeed fine enough to rule out major dispersion and dissipation from the spatial scheme.... I assume it is a first order approximation (constants in cells?) .
As Filippo pointed out, the temporal scheme could be the issue. Whatever your CFL number, reduce it by a factor of 10, rerun the simulation and check the results. Just out of interest: What flux function are you using? 
Quote:

Hi xammm,
Best luck, Rami 
Quote:
What do you mean? Perhaps, owing to the second order time integration, is not strange that the solution shows over/underestimation even with firstorder upwind .. 
All times are GMT 4. The time now is 11:36. 