Group: sci.physics.computational.fluid-dynamics
From: Bruce Scott TOK
Date: Tuesday, September 04, 2007 1:02 PM
Subject: Re: Shallow water equations

>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/