Hi Dr. Cox and Dr. Treeby,
When you incorporated the absorption and dispersion, you modified the equation of state, which has the form p = c^2*{\rho - \tau*F^(-1){k^(y-2)F{d/dt \rho}} - \eta*F^(-1){k^(y-1)F{\rho}} }.
In the code, the dispersion term, for example, was implemented as absorb_eta.*real(ifft2( absorb_nabla2.*fft2(rhox + rhoy))), where absorb_nabla2 was computed by the following statements
absorb_nabla2 = (kgrid.k).^(medium.alpha_power-1);
absorb_nabla2(isinf(absorb_nabla2)) = 0;
absorb_nabla2 = ifftshift(absorb_nabla2);
Now I want to incorporate the absorption and dispersion through the particle velocity u as
u_i' = {u_i - \tau*F^(-1){k^(y-2)F{d/dt u_i}} - \eta*F^(-1){k^(y-1)F{u_i}} }, i = x,y,z, and let's first put the correctness of this aside. In this case, the corresponding dispersion term will be absorb_eta.*real(ifft2( absorb_nabla2.*fft2(u_i))). My question is: can absorb_nabla2 be computed in the same way as above since now u is on the staggered grid? Specifically, can kgrid.k still be used to compute absorb_nabla2 in this case, or some staggered kgrid.k is needed?
Thanks,
Chao