In my case the a(x,t) coefficient changes it sign in time t, so I can not apply the upwind (downwind) scheme. Right now I use the method of lines to convert this equation into a system of ODEs and solve it with standard RK-like method. But again, due to the time-dependent a(x,t) the Courant number C=|a(x,t)|\Delta t/\Delta x is also time-dependent and does not allow to implement an adaptive time step. Are there any methods which allow to overcome these issues? And in general, what are the current standard methods for solving advection equations numerically?

Hi,
(since not specified, I assume you are using FD with Cartesian domain) if you want to stick to upwind type-of scheme, you could check the sign (thus direction) of your advection velocity a(x,t) and â€śstaggerâ€ť the advection terms upwind or downwind accordingly (see here for a 2D case applied to thermal convection). Same should work with RK-like methods. Alternatively, you could go with method of characteristics (see e.g. here) or semi-Langrangian advection schemes.

What are your boundary conditions? If they are periodic you could easily discretize the spatial dimension in Fourier space. Notably, that would diagonalize the derivative w.r.t. x.

What about the stability of the method of characteristics and semi-Lagrangian scheme?

In any case, do you maybe know some review that compares different methods for the advection equation. I am a bit confused about the reasons for choosing one method over the other.

What about the stability of the method of characteristics and semi-Lagrangian scheme?

Semi-Lagrangian schemes may introduce quite some numerical diffusion. For unconditionally stable schemes avoiding numerical diffusion, marker methods (PIC/FLIP) may be among the best options.

[â€¦] compares different methods for the advection [â€¦]

Chapter 8 of that book, e.g., provides some basics, refs and comparisons on upwind and marker-based methods.