I am trying to solve the following equation
$ \partial_t g(x,y,t) = - v\left(\partial_x + \partial_y\right) g(x,y,t)$
using finite differences (here $v>0$). The equation is also solvable analytically, and every function of the form $g(x,y,t) = g(x-vt,y-vt)$ is a solution. So, an initial "shape" $g(x,y,0)$ will simply translate along the $(1,1)$ direction in the x-y plane for increasing times.
I am using the following scheme, with backward differences for space and forward differences for time,
$g(i,j,n+1) = g(i,j,n) - v\;dt\frac{ \displaystyle g(i,j,n) - g(i-1,j,n) + g(i,j,n) - g(i,j-1,n)}{\displaystyle dx} $
with $dx = 2\;v\;dt$. I typically use a 2D gaussian pulse as initial conditions.
The scheme works fairly well, but the amplitude of the pulse decreases as the pulse moves. Typically I lose about 10% of amplitude when the pulse moves over a distance of about $L=10^4 v\;dt$. This improves a bit (i.e., I have less decrease of the pulse amplitude) when I increase the time and spatial resolutions, but the increase in accuracy seems quite "slow".
Do you know if I can optimize my scheme in any way (other than increasing resolution)? Would it help using a central difference scheme for the time?