Solving acoustical wave equation:
$$ c_0^2\partial_{xx}p-\partial_{tt}=0 $$
using forward-time centered-space FDM is not very convenient cause of numerical dispersion etc.
What about using a little physics and solve this as a system of first order equations (linearized Euler equations), i.e.:
$$ \nabla p = -\rho_0\partial_t\vec{v} $$ $$ \partial_t\rho+\rho_0\nabla \cdot\vec{v}=0 $$ $$ c_0^2\partial_t \rho=\partial_tp $$
In 2D case let's denote $u$, $v$ the components of velocity vector, let $\Delta x \equiv \Delta y$ and discretize:
$$ p_{i,j}^{n+1}=p_{i,j}^{n}+\frac{\rho_0 c_0^2 \Delta t}{\Delta x}\left(u_{i,j}^{n}-u_{i,j+1}^{n} + v_{i,j}^{n}-v_{i+1,j}^{n} \right) $$
$$ u_{i,j}^{n+1}=u_{i,j}^{n}+\frac{\Delta t}{\rho_0 \Delta x}\left(p^{n}_{i,j}-p^{n}_{i,j+1} \right) $$
$$ v_{i,j}^{n+1}=v_{i,j}^{n}+\frac{\Delta t}{\rho_0 \Delta x}\left(p^{n}_{i,j}-p^{n}_{i+1,j} \right) $$
- Is that correct?
- Would that help to get solution with lower numerical noise, dispersion etc.?
- Would you use forward discretization as above or centered one?
- How would the CFL condition look like for this case?