>Could anyone send me some simple MATLAB code to do an Arakawa-Lamb
>finite difference integration of the shallow water equations? Mostly I
>really need to see the scheme laid out clearly and explicitly.
I seem to have answered this before... basically, look up a recent
paper by Rick Salmon where he finds an Arakawa-like discretisation
without using a staggered grid.
>Also, anyone had any luck with test cases? I've read that the shallow
>water equations generate detail on arbitrary fine scales very quickly,
>so that generally you need an artificial diffusion term to prevent
>blow up?
This is basically flow driven vorticity cascade to small scales. Would
happen with any sort of dynamical forcing. You do need small scale
artificial dissipation. The simplest way to do that is to add the
operator anywhere the advection operator occurs:
d/dt = p/pt + v dot grad
becomes
d/dt = p/pt + v dot grad + D
where D is a positive definite operator such as either of
D = - div (diffusion) grad
D = Laplacian (hyperdiffusion) Laplacian
where
Laplacian = div grad
for example. Adjust the (possibly inhomogeneous) coefficient according
to the needs of the problem (and the grid resolution accordingly).
--
ciao,
Bruce
drift wave turbulence: /~bds/