Hi all,
I am trying to implement a flux-limiter-based solver for the usual
advection equation:
du du
-- + a -- = 0
dt dx
It works fine when a > 0, but blows up when a < 0. By blow up I mean
that an initial condition of the form
___
| |
___| |___
becomes, after one time step,
|__
| |
___| |___
|
and things only get worse. Now for the a>0 case I feed the limiter a
slope ratio of
r1 = max(0.0, ((u_[i]-u_[i-1]) / (u_[i+1]-u_[i])));
and for the a<0 case the limiter gets
r1 = max(0.0, ((u_[i+2]-u_[i+1]) / (u_[i+1]-u_[i])));
Any thoughts?