Location via proxy:   [ UP ]  
[Report a bug]   [Manage cookies]                

11institutetext: Juan B. Camargo (✉) 22institutetext: University of São Paulo 22email: jbarrioscamargo@usp.br 33institutetext: Pedro S. Peixoto 44institutetext: University of São Paulo 44email: ppeixoto@usp.br 55institutetext: Felipe A. G. Silva 66institutetext: University of São Paulo 66email: felipe.augusto.guedes@usp.br

On Godunov-type finite volume methods for seismic wave propagation

Juan B. Camargo    Pedro S. Peixoto    Felipe A. G. Silva
(Received: date / Accepted: date)
Abstract

The computational complexity of simulating seismic waves demands continual exploration of more efficient numerical methods. While Finite Volume methods are widely acclaimed for tackling general nonlinear hyperbolic (wave) problems, their application in realistic seismic wave simulation remains uncommon, with rare investigations in the literature. Furthermore, seismic wavefields are influenced by sharp subsurface interfaces frequently encountered in realistic models, which could, in principle, be adequately solved with Finite Volume methods. In this study, we delved into two Finite Volume (FV) methods to assess their efficacy and competitiveness in seismic wave simulations, compared to traditional Finite Difference schemes. We investigated Gudunov-type FV methods: an upwind method called wave propagation algorithm (WPA), and a Central-Upwind type method (CUp). Our numerical analysis uncovered that these finite volume methods could provide less dispersion (albeit increased dissipation) compared to finite differences for seismic problems characterized by velocity profiles with abrupt transitions in the velocity. However, when applied to more realistic seismic models, finite volume methods yielded unfavorable outcomes compared to finite difference methods, the latter offering lower computational costs and higher accuracy. This highlights that despite the potential advantages of finite volume methods, such as their conservative nature and aptitude for accurately capturing shock waves in specific contexts, our results indicate that they are only advantageous for seismic simulations when unrealistic abrupt transitions are present in the velocity models.

Keywords:
Hyperbolic Conservation Laws Central-Upwind Schemes Wave Propagation Algorithm Elasticity Equations Seismic Wave Propagation.
journal: Mathematical Geoscience

1 Introduction

Seismic wave propagation, a cornerstone of computational seismology, involves numerically solving elastic wave propagation problems. This process, often referred to as the direct problem in seismic imaging, lies at the core of various applications within computational seismology. These applications span a broad spectrum, including geophysical exploration, regional wave propagation analysis, global or planetary seismology studies, investigations into ground motion and dynamic rupture phenomena, seismic topography (utilizing techniques like full waveform inversion), among others (Igel 2017).

Different mathematical models have been developed to simulate wave propagation in the complex geological structure of the earth, using various numerical techniques, such as finite differences, finite elements, finite volumes, spectral or boundary element methods, discontinuous Galerkin method, and hybrid methods, which have been constantly improved to obtain an accurate and reliable solution of the wave equation for various media (Igel 2017). Still, due to its low computational cost and simplicity, the finite difference method remains the most widely used method. However, although the finite difference method is currently found in large applications in the analysis of seismic wave propagation, in complex earth structures, including those with large velocity contrasts, strong heterogeneity, relief, or topographic attenuation, the methodology can fail (Kalyani et al. 2014). This is mainly due to the assumption often used in formulating finite difference methods that both the wave propagation medium and the solution function of the problem are smooth functions. For problems with discontinuities, the accuracy of finite difference methods deteriorates and may fail to represent propagation through regions of abrupt transitions.

The finite volume method offers a great advantage by generally not requiring smoothness of the propagation medium or the solution, and is a natural choice for modeling in heterogeneous media. In this type of method, each mesh cell can be given different material properties, the propagation of information between cells is done by analyzing the physics imposed on the cell boundaries, and is suitable and popular for hyperbolic conservation laws and equilibrium law systems; See, for example, Godlewski and Raviart (1996), Kröner (1997), Hesthaven (2017), Kurganov (2016), Kurganov (2018),Toro (2013), LeVeque (2002b).

In this numerical study, we investigated two Godunov-type finite volume methods, based on the REA algorithm (Reconstruct - Evolve - Average), to explore their potential in modeling seismic waves across heterogeneous media.

The first method, known as the Wave Propagation Algorithm (WPA), is an Upwind type, originally developed by LeVeque (1997). This method leverages the resulting waves from each Riemann solution in conjunction with limiter flux functions to achieve sharp resolution of discontinuities without inducing numerical oscillations. It exhibits second-order accuracy where the solution remains smooth and has demonstrated efficacy in numerically solving various wave propagation problems, for example, advection equation, linear acoustics equations (in homogeneous and heterogeneous media), Burger’s equation, Euler equations for gas dynamics, shallow water equations, and even the elasticity equations, as well as examples of applications in tsunami simulation.

The second method is a Central-Upwind (CUp) type method pioneered by Kurganov and Lin (2007), building upon the one-dimensional fully and semi-discrete central-upwind schemes introduced in earlier work (Kurganov et al. 2001). This method aims to reduce numerical dissipation, providing a more accurate solution of the evolved quantities on the original grid. The scheme’s simplicity and generality make it an attractive alternative for solving wave propagation problems.

Its applications can be seen, for example: in Kurganov and Lin (2007) where the scheme is applied to solve Euler equations; in Kurganov (2018) a central-upwind method for shallow water equations is developed and, most recently, in Kurganov et al. (2021) an improvement on the numerical dissipation of Central-Upwind schemes with implementation on a wide variety of complex numerical examples.

In the existing literature, very few different finite volume methods have been applied to seismic wave propagation or full waveform inversion problems. Some notable articles address the problem for unstructured grids. For instance, in Dumbser et al. (2007), they present the development of arbitrary high-order finite volume methods on unstructured meshes for the seismic wave propagation problem in 2D and 3D settings. Glinsky-Olivier et al. (2006) proposed a comprehensive reanalysis of the finite-volume approach based on unstructured triangular meshes. More recently, Wang et al. (2022) presented a cell-centered finite volume scheme for the diffusive–viscous wave equation on general polygonal meshes. Additionally, Brossier et al. (2008) developed a finite volume method in the frequency domain for 2D problems. A certain common knowledge that Finite Volume methods are expected to be more expensive than Finite Differences for regular cartesian grids is sometimes heard, but rarely documented.

Alongside, while numerical methods for solving elasticity equations, often in their first-order form as coupled hyperbolic systems, have been documented in the literature using techniques such as WPA (LeVeque 2002a; c) or modified Central-Upwind methods (Kurganov and Pollack 2011), there is a notable absence of literature that evaluates their performance when applied to seismic problems. This research gap motivated our numerical study, which provides valuable insights into the effectiveness and limitations of these numerical methods. We analyze their performance when applied to seismic problems and compare them with the finite difference methods that predominate in the literature.

The paper is structured as follows: In Section 2, we introduce the equations governing the problem under study. Section 3 provides a detailed exposition of the finite volume methods implemented. Finally, in Section 4, we present the numerical results, including their application to synthetic and realistic seismic problems.

2 Modeling equations

In this section, we present the equations governing our study problem (for further details see, e.g. Toro (2009) or LeVeque (2002b)).

2.1 2-D Elastic wave equations

To model compression waves (P-Waves) in 2-D one can use the following system

εtuxvy=0,(ρ(x,y)u)tσx(K(x,y);ε)=0,(ρ(x,y)u)tσy(K(x,y);ε)=0,formulae-sequencesubscript𝜀𝑡subscript𝑢𝑥subscript𝑣𝑦0formulae-sequencesubscript𝜌𝑥𝑦𝑢𝑡subscript𝜎𝑥𝐾𝑥𝑦𝜀0subscript𝜌𝑥𝑦𝑢𝑡subscript𝜎𝑦𝐾𝑥𝑦𝜀0\begin{split}\varepsilon_{t}-u_{x}-v_{y}&=0,\\ (\rho(x,y)u)_{t}-\sigma_{x}(K(x,y);\varepsilon)&=0,\\ (\rho(x,y)u)_{t}-\sigma_{y}(K(x,y);\varepsilon)&=0,\end{split}start_ROW start_CELL italic_ε start_POSTSUBSCRIPT italic_t end_POSTSUBSCRIPT - italic_u start_POSTSUBSCRIPT italic_x end_POSTSUBSCRIPT - italic_v start_POSTSUBSCRIPT italic_y end_POSTSUBSCRIPT end_CELL start_CELL = 0 , end_CELL end_ROW start_ROW start_CELL ( italic_ρ ( italic_x , italic_y ) italic_u ) start_POSTSUBSCRIPT italic_t end_POSTSUBSCRIPT - italic_σ start_POSTSUBSCRIPT italic_x end_POSTSUBSCRIPT ( italic_K ( italic_x , italic_y ) ; italic_ε ) end_CELL start_CELL = 0 , end_CELL end_ROW start_ROW start_CELL ( italic_ρ ( italic_x , italic_y ) italic_u ) start_POSTSUBSCRIPT italic_t end_POSTSUBSCRIPT - italic_σ start_POSTSUBSCRIPT italic_y end_POSTSUBSCRIPT ( italic_K ( italic_x , italic_y ) ; italic_ε ) end_CELL start_CELL = 0 , end_CELL end_ROW (1)

where, for brevity, the partial derivatives are denoted by subscripts. Here u𝑢uitalic_u and v𝑣vitalic_v are the velocities in the x𝑥xitalic_x and y𝑦yitalic_y directions, respectively, ε𝜀\varepsilonitalic_ε is the strain, σ𝜎\sigmaitalic_σ is the stress, and ρ𝜌\rhoitalic_ρ is the density.

The system 1 can be written in the form of a conservation law

qt+f(q,x,y)x+g(q,x,y)y=0,subscriptq𝑡𝑓subscriptq𝑥𝑦𝑥𝑔subscriptq𝑥𝑦𝑦0\textbf{q}_{t}+f(\textbf{q},x,y)_{x}+g(\textbf{q},x,y)_{y}=0,q start_POSTSUBSCRIPT italic_t end_POSTSUBSCRIPT + italic_f ( q , italic_x , italic_y ) start_POSTSUBSCRIPT italic_x end_POSTSUBSCRIPT + italic_g ( q , italic_x , italic_y ) start_POSTSUBSCRIPT italic_y end_POSTSUBSCRIPT = 0 , (2)

subject to the initial condition, q(x,0)=q0(x)q𝑥0subscriptq0𝑥\textbf{q}(x,0)=\textbf{q}_{0}(x)q ( italic_x , 0 ) = q start_POSTSUBSCRIPT 0 end_POSTSUBSCRIPT ( italic_x ). Here

q=(εmumv),f(q)=(mu/ρσ0),g(q)=(mv/ρ0σ),formulae-sequenceq𝜀subscript𝑚𝑢subscript𝑚𝑣formulae-sequence𝑓qsubscript𝑚𝑢𝜌𝜎0𝑔qsubscript𝑚𝑣𝜌0𝜎\textbf{q}=\left(\begin{array}[]{c}\varepsilon\\ m_{u}\\ m_{v}\end{array}\right),\quad f(\textbf{q})=\left(\begin{array}[]{c}m_{u}/\rho% \\ -\sigma\\ 0\end{array}\right),\quad g(\textbf{q})=\left(\begin{array}[]{c}m_{v}/\rho\\ 0\\ -\sigma\end{array}\right),q = ( start_ARRAY start_ROW start_CELL italic_ε end_CELL end_ROW start_ROW start_CELL italic_m start_POSTSUBSCRIPT italic_u end_POSTSUBSCRIPT end_CELL end_ROW start_ROW start_CELL italic_m start_POSTSUBSCRIPT italic_v end_POSTSUBSCRIPT end_CELL end_ROW end_ARRAY ) , italic_f ( q ) = ( start_ARRAY start_ROW start_CELL italic_m start_POSTSUBSCRIPT italic_u end_POSTSUBSCRIPT / italic_ρ end_CELL end_ROW start_ROW start_CELL - italic_σ end_CELL end_ROW start_ROW start_CELL 0 end_CELL end_ROW end_ARRAY ) , italic_g ( q ) = ( start_ARRAY start_ROW start_CELL italic_m start_POSTSUBSCRIPT italic_v end_POSTSUBSCRIPT / italic_ρ end_CELL end_ROW start_ROW start_CELL 0 end_CELL end_ROW start_ROW start_CELL - italic_σ end_CELL end_ROW end_ARRAY ) , (3)

where mu=ρusubscript𝑚𝑢𝜌𝑢m_{u}=\rho uitalic_m start_POSTSUBSCRIPT italic_u end_POSTSUBSCRIPT = italic_ρ italic_u and mv=ρvsubscript𝑚𝑣𝜌𝑣m_{v}=\rho vitalic_m start_POSTSUBSCRIPT italic_v end_POSTSUBSCRIPT = italic_ρ italic_v denote the corresponding momenta.

For small strains, we can assume a linear stress-strain relationship of the form

σ(ε,x,y)=K(x,y)ε,𝜎𝜀𝑥𝑦𝐾𝑥𝑦𝜀\sigma(\varepsilon,x,y)=K(x,y)\varepsilon,italic_σ ( italic_ε , italic_x , italic_y ) = italic_K ( italic_x , italic_y ) italic_ε ,

where K(x,y)𝐾𝑥𝑦K(x,y)italic_K ( italic_x , italic_y ) is the volumetric modulus of compressibility. In this case, the linear hyperbolic system qt+(A(x,y)q)x+(B(x,y)q)y=0subscriptq𝑡subscriptA𝑥𝑦q𝑥subscriptB𝑥𝑦q𝑦0\textbf{q}_{t}+(\textbf{A}(x,y)\textbf{q})_{x}+(\textbf{B}(x,y)\textbf{q})_{y}=0q start_POSTSUBSCRIPT italic_t end_POSTSUBSCRIPT + ( A ( italic_x , italic_y ) q ) start_POSTSUBSCRIPT italic_x end_POSTSUBSCRIPT + ( B ( italic_x , italic_y ) q ) start_POSTSUBSCRIPT italic_y end_POSTSUBSCRIPT = 0 has coefficient matrices

A(x,y)=[01/ρ(x,y)0K(x,y)00000],B(x,y)=[001/ρ(x,y)000K(x,y)00].formulae-sequence𝐴𝑥𝑦delimited-[]01𝜌𝑥𝑦0𝐾𝑥𝑦00000𝐵𝑥𝑦delimited-[]001𝜌𝑥𝑦000𝐾𝑥𝑦00A(x,y)=\left[\begin{array}[]{ccc}0&-1/\rho(x,y)&0\\ -K(x,y)&0&0\\ 0&0&0\end{array}\right],B(x,y)=\left[\begin{array}[]{ccc}0&0&-1/\rho(x,y)\\ 0&0&0\\ -K(x,y)&0&0\end{array}\right].italic_A ( italic_x , italic_y ) = [ start_ARRAY start_ROW start_CELL 0 end_CELL start_CELL - 1 / italic_ρ ( italic_x , italic_y ) end_CELL start_CELL 0 end_CELL end_ROW start_ROW start_CELL - italic_K ( italic_x , italic_y ) end_CELL start_CELL 0 end_CELL start_CELL 0 end_CELL end_ROW start_ROW start_CELL 0 end_CELL start_CELL 0 end_CELL start_CELL 0 end_CELL end_ROW end_ARRAY ] , italic_B ( italic_x , italic_y ) = [ start_ARRAY start_ROW start_CELL 0 end_CELL start_CELL 0 end_CELL start_CELL - 1 / italic_ρ ( italic_x , italic_y ) end_CELL end_ROW start_ROW start_CELL 0 end_CELL start_CELL 0 end_CELL start_CELL 0 end_CELL end_ROW start_ROW start_CELL - italic_K ( italic_x , italic_y ) end_CELL start_CELL 0 end_CELL start_CELL 0 end_CELL end_ROW end_ARRAY ] . (4)

This system is a simplification such that only P-waves are modeled, not S-waves (LeVeque 2002a).

3 Numerical Methods

In one spatial dimension, the Finite Volume Method (FVM) involves partitioning the domain into discrete intervals known as finite volumes or control volumes and tracking an approximation of the flow integral q over each of these volumes. At each time step, these values are updated by approximating the flow through the boundaries of the intervals.

The mesh contains control volumes of type 𝒞i=(xi1/2,xi+1/2)subscript𝒞𝑖subscript𝑥𝑖12subscript𝑥𝑖12\mathcal{C}_{i}=(x_{i-1/2},x_{i+1/2})caligraphic_C start_POSTSUBSCRIPT italic_i end_POSTSUBSCRIPT = ( italic_x start_POSTSUBSCRIPT italic_i - 1 / 2 end_POSTSUBSCRIPT , italic_x start_POSTSUBSCRIPT italic_i + 1 / 2 end_POSTSUBSCRIPT ), of fixed width Δx=xi+1/2xi1/2Δ𝑥subscript𝑥𝑖12subscript𝑥𝑖12\Delta x=x_{i+1/2}-x_{i-1/2}roman_Δ italic_x = italic_x start_POSTSUBSCRIPT italic_i + 1 / 2 end_POSTSUBSCRIPT - italic_x start_POSTSUBSCRIPT italic_i - 1 / 2 end_POSTSUBSCRIPT, and a time step Δt=tn+1tnΔ𝑡superscript𝑡𝑛1superscript𝑡𝑛\Delta t=t^{n+1}-t^{n}roman_Δ italic_t = italic_t start_POSTSUPERSCRIPT italic_n + 1 end_POSTSUPERSCRIPT - italic_t start_POSTSUPERSCRIPT italic_n end_POSTSUPERSCRIPT, as shown in Figure 1. The value QinsubscriptsuperscriptQ𝑛𝑖\textbf{Q}^{n}_{i}Q start_POSTSUPERSCRIPT italic_n end_POSTSUPERSCRIPT start_POSTSUBSCRIPT italic_i end_POSTSUBSCRIPT will approximate the average value over the i𝑖iitalic_i-th interval in time tnsubscript𝑡𝑛t_{n}italic_t start_POSTSUBSCRIPT italic_n end_POSTSUBSCRIPT:

Qin1Δxxi1/2xi+1/2q(x,tn)𝑑x1Δx𝒞iq(x,tn)𝑑x,subscriptsuperscriptQ𝑛𝑖1Δ𝑥superscriptsubscriptsubscript𝑥𝑖12subscript𝑥𝑖12q𝑥subscript𝑡𝑛differential-d𝑥1Δ𝑥subscriptsubscript𝒞𝑖q𝑥subscript𝑡𝑛differential-d𝑥\textbf{Q}^{n}_{i}\approx\frac{1}{\Delta x}\int_{x_{i-1/2}}^{x_{i+1/2}}\textbf% {q}(x,t_{n})dx\equiv\frac{1}{\Delta x}\int_{\mathcal{C}_{i}}\textbf{q}(x,t_{n}% )dx,Q start_POSTSUPERSCRIPT italic_n end_POSTSUPERSCRIPT start_POSTSUBSCRIPT italic_i end_POSTSUBSCRIPT ≈ divide start_ARG 1 end_ARG start_ARG roman_Δ italic_x end_ARG ∫ start_POSTSUBSCRIPT italic_x start_POSTSUBSCRIPT italic_i - 1 / 2 end_POSTSUBSCRIPT end_POSTSUBSCRIPT start_POSTSUPERSCRIPT italic_x start_POSTSUBSCRIPT italic_i + 1 / 2 end_POSTSUBSCRIPT end_POSTSUPERSCRIPT q ( italic_x , italic_t start_POSTSUBSCRIPT italic_n end_POSTSUBSCRIPT ) italic_d italic_x ≡ divide start_ARG 1 end_ARG start_ARG roman_Δ italic_x end_ARG ∫ start_POSTSUBSCRIPT caligraphic_C start_POSTSUBSCRIPT italic_i end_POSTSUBSCRIPT end_POSTSUBSCRIPT q ( italic_x , italic_t start_POSTSUBSCRIPT italic_n end_POSTSUBSCRIPT ) italic_d italic_x , (5)

and

Fi1/2n=(Qi1n,Qin),Fi+1/2n=(Qin,Qi+1n),formulae-sequencesubscriptsuperscriptF𝑛𝑖12subscriptsuperscriptQ𝑛𝑖1superscriptsubscriptQ𝑖𝑛subscriptsuperscriptF𝑛𝑖12subscriptsuperscriptQ𝑛𝑖superscriptsubscriptQ𝑖1𝑛\textbf{F}^{n}_{i-1/2}=\mathcal{F}(\textbf{Q}^{n}_{i-1},\textbf{Q}_{i}^{n}),% \qquad\textbf{F}^{n}_{i+1/2}=\mathcal{F}(\textbf{Q}^{n}_{i},\textbf{Q}_{i+1}^{% n}),F start_POSTSUPERSCRIPT italic_n end_POSTSUPERSCRIPT start_POSTSUBSCRIPT italic_i - 1 / 2 end_POSTSUBSCRIPT = caligraphic_F ( Q start_POSTSUPERSCRIPT italic_n end_POSTSUPERSCRIPT start_POSTSUBSCRIPT italic_i - 1 end_POSTSUBSCRIPT , Q start_POSTSUBSCRIPT italic_i end_POSTSUBSCRIPT start_POSTSUPERSCRIPT italic_n end_POSTSUPERSCRIPT ) , F start_POSTSUPERSCRIPT italic_n end_POSTSUPERSCRIPT start_POSTSUBSCRIPT italic_i + 1 / 2 end_POSTSUBSCRIPT = caligraphic_F ( Q start_POSTSUPERSCRIPT italic_n end_POSTSUPERSCRIPT start_POSTSUBSCRIPT italic_i end_POSTSUBSCRIPT , Q start_POSTSUBSCRIPT italic_i + 1 end_POSTSUBSCRIPT start_POSTSUPERSCRIPT italic_n end_POSTSUPERSCRIPT ) , (6)

where \mathcal{F}caligraphic_F is a numerical flow function on the respective interfaces.

\begin{overpic}[width=227.62204pt,height=85.35826pt,tics=5]{fig1} \end{overpic}
Figure 1: Illustration of the variables in a finite volume method to update the value QinsubscriptsuperscriptQ𝑛𝑖\textbf{Q}^{n}_{i}Q start_POSTSUPERSCRIPT italic_n end_POSTSUPERSCRIPT start_POSTSUBSCRIPT italic_i end_POSTSUBSCRIPT by the flux at the interfaces of the control volume.

3.1 High-resolution wave propagation algorithms (WPA)

In this section, we introduce the Wave Propagation Algorithm, an upwind Godunov-type FVM developed by LeVeque (2002b). This algorithm is formulated as a wave propagation scheme for systems of hyperbolic conservation laws and represents a second-order method based on the Lax-Wendroff approach. In fact, it reduces to the classic Lax-Wendroff method in the absence of flux limiters. By incorporating flux limiters (referred to as wave limiters within the context of the Wave Propagation Algorithm), the method achieves high resolution while mitigating non-physical oscillations near discontinuities or steep solution gradients. For a more comprehensive understanding of the Wave Propagation Algorithm, readers are referred to LeVeque (2002b).

This method requires solving a Riemann problem at cell edges to update the cell average 5 in each time step. For an autonomous system, the Riemann problem at xi1/2subscript𝑥𝑖12x_{i-1/2}italic_x start_POSTSUBSCRIPT italic_i - 1 / 2 end_POSTSUBSCRIPT is a particular case of a Cauchy problem and consists of the hyperbolic equation with constant coefficients,

qt+Aqx=0,subscriptq𝑡subscriptAq𝑥0\textbf{q}_{t}+\textbf{A}\textbf{q}_{x}=0,q start_POSTSUBSCRIPT italic_t end_POSTSUBSCRIPT + bold_A bold_q start_POSTSUBSCRIPT italic_x end_POSTSUBSCRIPT = 0 , (7)

together with a special initial condition that is piecewise constant,

q(x,0)={Qi1,ifx<xi1/2,Qi,ifx>xi1/2.q𝑥0casessubscriptQ𝑖1𝑖𝑓𝑥subscript𝑥𝑖12subscriptQ𝑖𝑖𝑓𝑥subscript𝑥𝑖12\textbf{q}(x,0)=\left\{\begin{array}[]{ll}\textbf{Q}_{i-1},&if\;x<x_{i-1/2},\\ \textbf{Q}_{i},&if\;x>x_{i-1/2}.\end{array}\right.q ( italic_x , 0 ) = { start_ARRAY start_ROW start_CELL Q start_POSTSUBSCRIPT italic_i - 1 end_POSTSUBSCRIPT , end_CELL start_CELL italic_i italic_f italic_x < italic_x start_POSTSUBSCRIPT italic_i - 1 / 2 end_POSTSUBSCRIPT , end_CELL end_ROW start_ROW start_CELL Q start_POSTSUBSCRIPT italic_i end_POSTSUBSCRIPT , end_CELL start_CELL italic_i italic_f italic_x > italic_x start_POSTSUBSCRIPT italic_i - 1 / 2 end_POSTSUBSCRIPT . end_CELL end_ROW end_ARRAY (8)

The Riemann solution for a system of m𝑚mitalic_m equations typically consists of m𝑚mitalic_m wave that we denote by 𝒲i1/2psuperscriptsubscript𝒲𝑖12𝑝\mathcal{W}_{i-1/2}^{p}caligraphic_W start_POSTSUBSCRIPT italic_i - 1 / 2 end_POSTSUBSCRIPT start_POSTSUPERSCRIPT italic_p end_POSTSUPERSCRIPT, for p=1,2,,m𝑝12𝑚p=1,2,...,mitalic_p = 1 , 2 , … , italic_m, propagating with speeds si1/2psubscriptsuperscript𝑠𝑝𝑖12s^{p}_{i-1/2}italic_s start_POSTSUPERSCRIPT italic_p end_POSTSUPERSCRIPT start_POSTSUBSCRIPT italic_i - 1 / 2 end_POSTSUBSCRIPT. The problem can be easily solved in terms of the eigenvectors ri1/2psubscriptsuperscriptr𝑝𝑖12\textbf{r}^{p}_{i-1/2}r start_POSTSUPERSCRIPT italic_p end_POSTSUPERSCRIPT start_POSTSUBSCRIPT italic_i - 1 / 2 end_POSTSUBSCRIPT. The standard approach is to decompose the jump in Q as a linear combination of the eigenvectors to define waves 𝒲i1/2psuperscriptsubscript𝒲𝑖12𝑝\mathcal{W}_{i-1/2}^{p}caligraphic_W start_POSTSUBSCRIPT italic_i - 1 / 2 end_POSTSUBSCRIPT start_POSTSUPERSCRIPT italic_p end_POSTSUPERSCRIPT

QiQi1=p=1mαi1/2pri1/2pp=1m𝒲i1/2p.subscriptQ𝑖subscriptQ𝑖1superscriptsubscript𝑝1𝑚subscriptsuperscript𝛼𝑝𝑖12subscriptsuperscriptr𝑝𝑖12superscriptsubscript𝑝1𝑚subscriptsuperscript𝒲𝑝𝑖12\textbf{Q}_{i}-\textbf{Q}_{i-1}=\sum_{p=1}^{m}\alpha^{p}_{i-1/2}\textbf{r}^{p}% _{i-1/2}\equiv\sum_{p=1}^{m}\mathcal{W}^{p}_{i-1/2}.Q start_POSTSUBSCRIPT italic_i end_POSTSUBSCRIPT - Q start_POSTSUBSCRIPT italic_i - 1 end_POSTSUBSCRIPT = ∑ start_POSTSUBSCRIPT italic_p = 1 end_POSTSUBSCRIPT start_POSTSUPERSCRIPT italic_m end_POSTSUPERSCRIPT italic_α start_POSTSUPERSCRIPT italic_p end_POSTSUPERSCRIPT start_POSTSUBSCRIPT italic_i - 1 / 2 end_POSTSUBSCRIPT r start_POSTSUPERSCRIPT italic_p end_POSTSUPERSCRIPT start_POSTSUBSCRIPT italic_i - 1 / 2 end_POSTSUBSCRIPT ≡ ∑ start_POSTSUBSCRIPT italic_p = 1 end_POSTSUBSCRIPT start_POSTSUPERSCRIPT italic_m end_POSTSUPERSCRIPT caligraphic_W start_POSTSUPERSCRIPT italic_p end_POSTSUPERSCRIPT start_POSTSUBSCRIPT italic_i - 1 / 2 end_POSTSUBSCRIPT . (9)

The coefficients αi1/2psuperscriptsubscript𝛼𝑖12𝑝\alpha_{i-1/2}^{p}italic_α start_POSTSUBSCRIPT italic_i - 1 / 2 end_POSTSUBSCRIPT start_POSTSUPERSCRIPT italic_p end_POSTSUPERSCRIPT are given by

αi1/2p=Ri1/21(QiQi1),subscriptsuperscript𝛼𝑝𝑖12subscriptsuperscriptR1𝑖12subscriptQ𝑖subscriptQ𝑖1\alpha^{p}_{i1/2}=\textbf{R}^{-1}_{i-1/2}(\textbf{Q}_{i}-\textbf{Q}_{i-1}),italic_α start_POSTSUPERSCRIPT italic_p end_POSTSUPERSCRIPT start_POSTSUBSCRIPT italic_i 1 / 2 end_POSTSUBSCRIPT = R start_POSTSUPERSCRIPT - 1 end_POSTSUPERSCRIPT start_POSTSUBSCRIPT italic_i - 1 / 2 end_POSTSUBSCRIPT ( Q start_POSTSUBSCRIPT italic_i end_POSTSUBSCRIPT - Q start_POSTSUBSCRIPT italic_i - 1 end_POSTSUBSCRIPT ) , (10)

where Ri1/2subscriptR𝑖12\textbf{R}_{i-1/2}R start_POSTSUBSCRIPT italic_i - 1 / 2 end_POSTSUBSCRIPT is the matrix or right eigenvectors.

The WPA method takes the form

Qin+1=QiΔtΔx(𝒜+ΔQi1/2+𝒜ΔQi+1/2)ΔtΔx(F~i+1/2F~i1/2),superscriptsubscriptQ𝑖𝑛1subscriptQ𝑖Δ𝑡Δ𝑥superscript𝒜ΔsubscriptQ𝑖12superscript𝒜ΔsubscriptQ𝑖12Δ𝑡Δ𝑥subscript~𝐹𝑖12subscript~𝐹𝑖12\textbf{Q}_{i}^{n+1}=\textbf{Q}_{i}-\frac{\Delta t}{\Delta x}(\mathcal{A}^{+}% \Delta\textbf{Q}_{i-1/2}+\mathcal{A}^{-}\Delta\textbf{Q}_{i+1/2})-\frac{\Delta t% }{\Delta x}(\tilde{F}_{i+1/2}-\tilde{F}_{i-1/2}),Q start_POSTSUBSCRIPT italic_i end_POSTSUBSCRIPT start_POSTSUPERSCRIPT italic_n + 1 end_POSTSUPERSCRIPT = Q start_POSTSUBSCRIPT italic_i end_POSTSUBSCRIPT - divide start_ARG roman_Δ italic_t end_ARG start_ARG roman_Δ italic_x end_ARG ( caligraphic_A start_POSTSUPERSCRIPT + end_POSTSUPERSCRIPT roman_Δ Q start_POSTSUBSCRIPT italic_i - 1 / 2 end_POSTSUBSCRIPT + caligraphic_A start_POSTSUPERSCRIPT - end_POSTSUPERSCRIPT roman_Δ Q start_POSTSUBSCRIPT italic_i + 1 / 2 end_POSTSUBSCRIPT ) - divide start_ARG roman_Δ italic_t end_ARG start_ARG roman_Δ italic_x end_ARG ( over~ start_ARG italic_F end_ARG start_POSTSUBSCRIPT italic_i + 1 / 2 end_POSTSUBSCRIPT - over~ start_ARG italic_F end_ARG start_POSTSUBSCRIPT italic_i - 1 / 2 end_POSTSUBSCRIPT ) , (11)

where the terms

𝒜ΔQi1/2=p=1m(sp)𝒲i1/2p,𝒜+ΔQi1/2=p=1m(sp)+𝒲i1/2p,superscript𝒜ΔsubscriptQ𝑖12superscriptsubscript𝑝1𝑚superscriptsuperscript𝑠𝑝superscriptsubscript𝒲𝑖12𝑝missing-subexpressionsuperscript𝒜ΔsubscriptQ𝑖12superscriptsubscript𝑝1𝑚superscriptsuperscript𝑠𝑝superscriptsubscript𝒲𝑖12𝑝\begin{array}[]{c}\mathcal{A}^{-}\Delta\textbf{Q}_{i-1/2}=\sum\limits_{p=1}^{m% }(s^{p})^{-}\mathcal{W}_{i-1/2}^{p},\\ \\ \mathcal{A}^{+}\Delta\textbf{Q}_{i-1/2}=\sum\limits_{p=1}^{m}(s^{p})^{+}% \mathcal{W}_{i-1/2}^{p},\end{array}start_ARRAY start_ROW start_CELL caligraphic_A start_POSTSUPERSCRIPT - end_POSTSUPERSCRIPT roman_Δ Q start_POSTSUBSCRIPT italic_i - 1 / 2 end_POSTSUBSCRIPT = ∑ start_POSTSUBSCRIPT italic_p = 1 end_POSTSUBSCRIPT start_POSTSUPERSCRIPT italic_m end_POSTSUPERSCRIPT ( italic_s start_POSTSUPERSCRIPT italic_p end_POSTSUPERSCRIPT ) start_POSTSUPERSCRIPT - end_POSTSUPERSCRIPT caligraphic_W start_POSTSUBSCRIPT italic_i - 1 / 2 end_POSTSUBSCRIPT start_POSTSUPERSCRIPT italic_p end_POSTSUPERSCRIPT , end_CELL end_ROW start_ROW start_CELL end_CELL end_ROW start_ROW start_CELL caligraphic_A start_POSTSUPERSCRIPT + end_POSTSUPERSCRIPT roman_Δ Q start_POSTSUBSCRIPT italic_i - 1 / 2 end_POSTSUBSCRIPT = ∑ start_POSTSUBSCRIPT italic_p = 1 end_POSTSUBSCRIPT start_POSTSUPERSCRIPT italic_m end_POSTSUPERSCRIPT ( italic_s start_POSTSUPERSCRIPT italic_p end_POSTSUPERSCRIPT ) start_POSTSUPERSCRIPT + end_POSTSUPERSCRIPT caligraphic_W start_POSTSUBSCRIPT italic_i - 1 / 2 end_POSTSUBSCRIPT start_POSTSUPERSCRIPT italic_p end_POSTSUPERSCRIPT , end_CELL end_ROW end_ARRAY (12)

are called fluctuations and the flux correction term is defined by

F~i1/2=12p=1m|sp|(1ΔtΔx|sp|)𝒲~i1/2p,subscript~𝐹𝑖1212superscriptsubscript𝑝1𝑚superscript𝑠𝑝1Δ𝑡Δ𝑥superscript𝑠𝑝subscriptsuperscript~𝒲𝑝𝑖12\tilde{F}_{i-1/2}=\frac{1}{2}\sum_{p=1}^{m}|s^{p}|\left(1-\frac{\Delta t}{% \Delta x}|s^{p}|\right)\tilde{\mathcal{W}}^{p}_{i-1/2},over~ start_ARG italic_F end_ARG start_POSTSUBSCRIPT italic_i - 1 / 2 end_POSTSUBSCRIPT = divide start_ARG 1 end_ARG start_ARG 2 end_ARG ∑ start_POSTSUBSCRIPT italic_p = 1 end_POSTSUBSCRIPT start_POSTSUPERSCRIPT italic_m end_POSTSUPERSCRIPT | italic_s start_POSTSUPERSCRIPT italic_p end_POSTSUPERSCRIPT | ( 1 - divide start_ARG roman_Δ italic_t end_ARG start_ARG roman_Δ italic_x end_ARG | italic_s start_POSTSUPERSCRIPT italic_p end_POSTSUPERSCRIPT | ) over~ start_ARG caligraphic_W end_ARG start_POSTSUPERSCRIPT italic_p end_POSTSUPERSCRIPT start_POSTSUBSCRIPT italic_i - 1 / 2 end_POSTSUBSCRIPT , (13)

are based on the waves 𝒲i1/2psuperscriptsubscript𝒲𝑖12𝑝\mathcal{W}_{i-1/2}^{p}caligraphic_W start_POSTSUBSCRIPT italic_i - 1 / 2 end_POSTSUBSCRIPT start_POSTSUPERSCRIPT italic_p end_POSTSUPERSCRIPT and speeds si1/2psuperscriptsubscript𝑠𝑖12𝑝s_{i-1/2}^{p}italic_s start_POSTSUBSCRIPT italic_i - 1 / 2 end_POSTSUBSCRIPT start_POSTSUPERSCRIPT italic_p end_POSTSUPERSCRIPT resulting when solving the Riemann problem for any two states Qi1subscriptQ𝑖1\textbf{Q}_{i-1}Q start_POSTSUBSCRIPT italic_i - 1 end_POSTSUBSCRIPT and QisubscriptQ𝑖\textbf{Q}_{i}Q start_POSTSUBSCRIPT italic_i end_POSTSUBSCRIPT and

𝒲~i1/2p=ψ(θi1/2p)𝒲i1/2p,subscriptsuperscript~𝒲𝑝𝑖12𝜓subscriptsuperscript𝜃𝑝𝑖12subscriptsuperscript𝒲𝑝𝑖12\tilde{\mathcal{W}}^{p}_{i-1/2}=\psi(\theta^{p}_{i-1/2})\mathcal{W}^{p}_{i-1/2},over~ start_ARG caligraphic_W end_ARG start_POSTSUPERSCRIPT italic_p end_POSTSUPERSCRIPT start_POSTSUBSCRIPT italic_i - 1 / 2 end_POSTSUBSCRIPT = italic_ψ ( italic_θ start_POSTSUPERSCRIPT italic_p end_POSTSUPERSCRIPT start_POSTSUBSCRIPT italic_i - 1 / 2 end_POSTSUBSCRIPT ) caligraphic_W start_POSTSUPERSCRIPT italic_p end_POSTSUPERSCRIPT start_POSTSUBSCRIPT italic_i - 1 / 2 end_POSTSUBSCRIPT , (14)

is a limited version of the original wave, where

θi1/2p=𝒲I1/2p𝒲i1/2p𝒲i1/2p𝒲i1/2pwithI={i1ifsp>0,i+1ifsp<0,,formulae-sequencesubscriptsuperscript𝜃𝑝𝑖12subscriptsuperscript𝒲𝑝𝐼12subscriptsuperscript𝒲𝑝𝑖12subscriptsuperscript𝒲𝑝𝑖12subscriptsuperscript𝒲𝑝𝑖12with𝐼cases𝑖1𝑖𝑓superscript𝑠𝑝0𝑖1𝑖𝑓superscript𝑠𝑝0\theta^{p}_{i-1/2}=\frac{\mathcal{W}^{p}_{I-1/2}\cdot\mathcal{W}^{p}_{i-1/2}}{% \mathcal{W}^{p}_{i-1/2}\cdot\mathcal{W}^{p}_{i-1/2}}\qquad\mathrm{with}\;I=% \left\{\begin{array}[]{cc}i-1&if\;s^{p}>0,\\ i+1&if\;s^{p}<0,\end{array}\right.,italic_θ start_POSTSUPERSCRIPT italic_p end_POSTSUPERSCRIPT start_POSTSUBSCRIPT italic_i - 1 / 2 end_POSTSUBSCRIPT = divide start_ARG caligraphic_W start_POSTSUPERSCRIPT italic_p end_POSTSUPERSCRIPT start_POSTSUBSCRIPT italic_I - 1 / 2 end_POSTSUBSCRIPT ⋅ caligraphic_W start_POSTSUPERSCRIPT italic_p end_POSTSUPERSCRIPT start_POSTSUBSCRIPT italic_i - 1 / 2 end_POSTSUBSCRIPT end_ARG start_ARG caligraphic_W start_POSTSUPERSCRIPT italic_p end_POSTSUPERSCRIPT start_POSTSUBSCRIPT italic_i - 1 / 2 end_POSTSUBSCRIPT ⋅ caligraphic_W start_POSTSUPERSCRIPT italic_p end_POSTSUPERSCRIPT start_POSTSUBSCRIPT italic_i - 1 / 2 end_POSTSUBSCRIPT end_ARG roman_with italic_I = { start_ARRAY start_ROW start_CELL italic_i - 1 end_CELL start_CELL italic_i italic_f italic_s start_POSTSUPERSCRIPT italic_p end_POSTSUPERSCRIPT > 0 , end_CELL end_ROW start_ROW start_CELL italic_i + 1 end_CELL start_CELL italic_i italic_f italic_s start_POSTSUPERSCRIPT italic_p end_POSTSUPERSCRIPT < 0 , end_CELL end_ROW end_ARRAY , (15)

and ψ𝜓\psiitalic_ψ is a wave limiter. In this paper, WPA is implemented using the SuperBee (SB) limiter in the flux limiter version

ψ(θ)=max(0,min(1,2θ),min(2,θ)).𝜓𝜃012𝜃2𝜃\psi(\theta)=\max(0,\min(1,2\theta),\min(2,\theta)).italic_ψ ( italic_θ ) = roman_max ( 0 , roman_min ( 1 , 2 italic_θ ) , roman_min ( 2 , italic_θ ) ) . (16)

As the objective of the study is to verify the behavior of this type of method when applied to the elasticity equations in heterogeneous media, we used the f-wave formulation, proposed in Bale et al. (2003), which is often convenient for equations with spatially varying flux functions. In this case, the fluctuations are defined as

𝒜ΔQi1/2=p:si1/2p<0𝒵i1/2p,𝒜+ΔQi1/2=p:si1/2p>0𝒵i1/2p,superscript𝒜ΔsubscriptQ𝑖12subscript:𝑝subscriptsuperscript𝑠𝑝𝑖120subscriptsuperscript𝒵𝑝𝑖12superscript𝒜ΔsubscriptQ𝑖12subscript:𝑝subscriptsuperscript𝑠𝑝𝑖120subscriptsuperscript𝒵𝑝𝑖12\begin{array}[]{ccc}\mathcal{A}^{-}\Delta\textbf{Q}_{i-1/2}&=&\sum_{p:s^{p}_{i% -1/2}<0}\mathcal{Z}^{p}_{i-1/2},\\ \mathcal{A}^{+}\Delta\textbf{Q}_{i-1/2}&=&\sum_{p:s^{p}_{i-1/2}>0}\mathcal{Z}^% {p}_{i-1/2},\end{array}start_ARRAY start_ROW start_CELL caligraphic_A start_POSTSUPERSCRIPT - end_POSTSUPERSCRIPT roman_Δ Q start_POSTSUBSCRIPT italic_i - 1 / 2 end_POSTSUBSCRIPT end_CELL start_CELL = end_CELL start_CELL ∑ start_POSTSUBSCRIPT italic_p : italic_s start_POSTSUPERSCRIPT italic_p end_POSTSUPERSCRIPT start_POSTSUBSCRIPT italic_i - 1 / 2 end_POSTSUBSCRIPT < 0 end_POSTSUBSCRIPT caligraphic_Z start_POSTSUPERSCRIPT italic_p end_POSTSUPERSCRIPT start_POSTSUBSCRIPT italic_i - 1 / 2 end_POSTSUBSCRIPT , end_CELL end_ROW start_ROW start_CELL caligraphic_A start_POSTSUPERSCRIPT + end_POSTSUPERSCRIPT roman_Δ Q start_POSTSUBSCRIPT italic_i - 1 / 2 end_POSTSUBSCRIPT end_CELL start_CELL = end_CELL start_CELL ∑ start_POSTSUBSCRIPT italic_p : italic_s start_POSTSUPERSCRIPT italic_p end_POSTSUPERSCRIPT start_POSTSUBSCRIPT italic_i - 1 / 2 end_POSTSUBSCRIPT > 0 end_POSTSUBSCRIPT caligraphic_Z start_POSTSUPERSCRIPT italic_p end_POSTSUPERSCRIPT start_POSTSUBSCRIPT italic_i - 1 / 2 end_POSTSUBSCRIPT , end_CELL end_ROW end_ARRAY (17)

where we sum only over the p𝑝pitalic_p for which si1/2psubscriptsuperscript𝑠𝑝𝑖12s^{p}_{i-1/2}italic_s start_POSTSUPERSCRIPT italic_p end_POSTSUPERSCRIPT start_POSTSUBSCRIPT italic_i - 1 / 2 end_POSTSUBSCRIPT is negative or positive and replace the correction flow by

F~i1/2=12p=1Mwsgn(si1/2p)(1ΔtΔx|si1/2p|)𝒵~i1/2p,subscript~F𝑖1212superscriptsubscript𝑝1subscript𝑀𝑤𝑠𝑔𝑛subscriptsuperscript𝑠𝑝𝑖121Δ𝑡Δ𝑥subscriptsuperscript𝑠𝑝𝑖12subscriptsuperscript~𝒵𝑝𝑖12\tilde{\textbf{F}}_{i-1/2}=\frac{1}{2}\sum_{p=1}^{M_{w}}sgn(s^{p}_{i-1/2})% \left(1-\frac{\Delta t}{\Delta x}|s^{p}_{i-1/2}|\right)\tilde{\mathcal{Z}}^{p}% _{i-1/2},over~ start_ARG F end_ARG start_POSTSUBSCRIPT italic_i - 1 / 2 end_POSTSUBSCRIPT = divide start_ARG 1 end_ARG start_ARG 2 end_ARG ∑ start_POSTSUBSCRIPT italic_p = 1 end_POSTSUBSCRIPT start_POSTSUPERSCRIPT italic_M start_POSTSUBSCRIPT italic_w end_POSTSUBSCRIPT end_POSTSUPERSCRIPT italic_s italic_g italic_n ( italic_s start_POSTSUPERSCRIPT italic_p end_POSTSUPERSCRIPT start_POSTSUBSCRIPT italic_i - 1 / 2 end_POSTSUBSCRIPT ) ( 1 - divide start_ARG roman_Δ italic_t end_ARG start_ARG roman_Δ italic_x end_ARG | italic_s start_POSTSUPERSCRIPT italic_p end_POSTSUPERSCRIPT start_POSTSUBSCRIPT italic_i - 1 / 2 end_POSTSUBSCRIPT | ) over~ start_ARG caligraphic_Z end_ARG start_POSTSUPERSCRIPT italic_p end_POSTSUPERSCRIPT start_POSTSUBSCRIPT italic_i - 1 / 2 end_POSTSUBSCRIPT , (18)

where 𝒵~psuperscript~𝒵𝑝\tilde{\mathcal{Z}}^{p}over~ start_ARG caligraphic_Z end_ARG start_POSTSUPERSCRIPT italic_p end_POSTSUPERSCRIPT is a limited version of the wave 𝒵psuperscript𝒵𝑝\mathcal{Z}^{p}caligraphic_Z start_POSTSUPERSCRIPT italic_p end_POSTSUPERSCRIPT, that are called f-waves, obtained in the same way that 𝒲~psuperscript~𝒲𝑝\tilde{\mathcal{W}}^{p}over~ start_ARG caligraphic_W end_ARG start_POSTSUPERSCRIPT italic_p end_POSTSUPERSCRIPT would be obtained from 𝒲psuperscript𝒲𝑝\mathcal{W}^{p}caligraphic_W start_POSTSUPERSCRIPT italic_p end_POSTSUPERSCRIPT.

In the two-dimensional case, the value QijnsubscriptsuperscriptQ𝑛𝑖𝑗\textbf{Q}^{n}_{ij}Q start_POSTSUPERSCRIPT italic_n end_POSTSUPERSCRIPT start_POSTSUBSCRIPT italic_i italic_j end_POSTSUBSCRIPT represents an average of cells over the grid cell (i,j)𝑖𝑗(i,j)( italic_i , italic_j ) at time tnsubscript𝑡𝑛t_{n}italic_t start_POSTSUBSCRIPT italic_n end_POSTSUBSCRIPT.

Qi,j1ΔxΔyyj1/2yj+1/2xi1/2xi+1/2q(x,y,tn)𝑑x𝑑y,subscriptQ𝑖𝑗1Δ𝑥Δ𝑦superscriptsubscriptsubscript𝑦𝑗12subscript𝑦𝑗12superscriptsubscriptsubscript𝑥𝑖12subscript𝑥𝑖12q𝑥𝑦subscript𝑡𝑛differential-d𝑥differential-d𝑦\textbf{Q}_{i,j}\approx\frac{1}{\Delta x\Delta y}\int_{y_{j-1/2}}^{y_{j+1/2}}% \int_{x_{i-1/2}}^{x_{i+1/2}}\textbf{q}(x,y,t_{n})dxdy,Q start_POSTSUBSCRIPT italic_i , italic_j end_POSTSUBSCRIPT ≈ divide start_ARG 1 end_ARG start_ARG roman_Δ italic_x roman_Δ italic_y end_ARG ∫ start_POSTSUBSCRIPT italic_y start_POSTSUBSCRIPT italic_j - 1 / 2 end_POSTSUBSCRIPT end_POSTSUBSCRIPT start_POSTSUPERSCRIPT italic_y start_POSTSUBSCRIPT italic_j + 1 / 2 end_POSTSUBSCRIPT end_POSTSUPERSCRIPT ∫ start_POSTSUBSCRIPT italic_x start_POSTSUBSCRIPT italic_i - 1 / 2 end_POSTSUBSCRIPT end_POSTSUBSCRIPT start_POSTSUPERSCRIPT italic_x start_POSTSUBSCRIPT italic_i + 1 / 2 end_POSTSUBSCRIPT end_POSTSUPERSCRIPT q ( italic_x , italic_y , italic_t start_POSTSUBSCRIPT italic_n end_POSTSUBSCRIPT ) italic_d italic_x italic_d italic_y , (19)

where Δx=xi+1/2,jxi1/2,jΔ𝑥subscript𝑥𝑖12𝑗subscript𝑥𝑖12𝑗\Delta x=x_{i+1/2,j}-x_{i-1/2,j}roman_Δ italic_x = italic_x start_POSTSUBSCRIPT italic_i + 1 / 2 , italic_j end_POSTSUBSCRIPT - italic_x start_POSTSUBSCRIPT italic_i - 1 / 2 , italic_j end_POSTSUBSCRIPT, Δy=yi,j+1/2yi,j1/2Δ𝑦subscript𝑦𝑖𝑗12subscript𝑦𝑖𝑗12\Delta y=y_{i,j+1/2}-y_{i,j-1/2}roman_Δ italic_y = italic_y start_POSTSUBSCRIPT italic_i , italic_j + 1 / 2 end_POSTSUBSCRIPT - italic_y start_POSTSUBSCRIPT italic_i , italic_j - 1 / 2 end_POSTSUBSCRIPT.

\begin{overpic}[width=170.71652pt,height=142.26378pt]{fig2} \end{overpic}
Figure 2: two-dimensional finite volume grid, where Qi,jsubscript𝑄𝑖𝑗Q_{i,j}italic_Q start_POSTSUBSCRIPT italic_i , italic_j end_POSTSUBSCRIPT represents the average of cells.

In the special case of a rectangular grid of the form 𝒞ij=[xi1/2,xi+1/2]×[yj1/2,yj+1/2]subscript𝒞𝑖𝑗subscript𝑥𝑖12subscript𝑥𝑖12subscript𝑦𝑗12subscript𝑦𝑗12\mathcal{C}_{ij}=[x_{i-1/2},x_{i+1/2}]\times[y_{j-1/2},y_{j+1/2}]caligraphic_C start_POSTSUBSCRIPT italic_i italic_j end_POSTSUBSCRIPT = [ italic_x start_POSTSUBSCRIPT italic_i - 1 / 2 end_POSTSUBSCRIPT , italic_x start_POSTSUBSCRIPT italic_i + 1 / 2 end_POSTSUBSCRIPT ] × [ italic_y start_POSTSUBSCRIPT italic_j - 1 / 2 end_POSTSUBSCRIPT , italic_y start_POSTSUBSCRIPT italic_j + 1 / 2 end_POSTSUBSCRIPT ], as shown in Figure 2, where Δx=xi+1/2xi1/2Δ𝑥subscript𝑥𝑖12subscript𝑥𝑖12\Delta x=x_{i+1/2}-x_{i-1/2}roman_Δ italic_x = italic_x start_POSTSUBSCRIPT italic_i + 1 / 2 end_POSTSUBSCRIPT - italic_x start_POSTSUBSCRIPT italic_i - 1 / 2 end_POSTSUBSCRIPT and Δy=yj+1/2yj1/2Δ𝑦subscript𝑦𝑗12subscript𝑦𝑗12\Delta y=y_{j+1/2}-y_{j-1/2}roman_Δ italic_y = italic_y start_POSTSUBSCRIPT italic_j + 1 / 2 end_POSTSUBSCRIPT - italic_y start_POSTSUBSCRIPT italic_j - 1 / 2 end_POSTSUBSCRIPT, we have two different ways to extend the wave propagation algorithm to two dimensions, the first leads us to the Fully Discrete Wave Propagation Algorithm (FWPA) given by

Qijn+1=QijΔtΔx(𝒜+ΔQi1/2,j+𝒜ΔQi+1/2,j)ΔtΔx(+ΔQi,j1/2+ΔQi,j+1/2)ΔtΔx(F~i+1/2,jF~i1/2,j)ΔtΔy(G~i,j+1/2G~i,j1/2),superscriptsubscriptQ𝑖𝑗𝑛1subscriptQ𝑖𝑗Δ𝑡Δ𝑥superscript𝒜ΔsubscriptQ𝑖12𝑗superscript𝒜ΔsubscriptQ𝑖12𝑗missing-subexpressionmissing-subexpressionmissing-subexpressionmissing-subexpressionmissing-subexpressionΔ𝑡Δ𝑥superscriptΔsubscriptQ𝑖𝑗12superscriptΔsubscriptQ𝑖𝑗12missing-subexpressionmissing-subexpressionmissing-subexpressionmissing-subexpressionmissing-subexpressionΔ𝑡Δ𝑥subscript~F𝑖12𝑗subscript~F𝑖12𝑗Δ𝑡Δ𝑦subscript~G𝑖𝑗12subscript~G𝑖𝑗12\begin{array}[]{ccl}\textbf{Q}_{ij}^{n+1}&=&\textbf{Q}_{ij}-\frac{\Delta t}{% \Delta x}(\mathcal{A}^{+}\Delta\textbf{Q}_{i-1/2,j}+\mathcal{A}^{-}\Delta% \textbf{Q}_{i+1/2,j})\\ \\ &&-\frac{\Delta t}{\Delta x}(\mathcal{B}^{+}\Delta\textbf{Q}_{i,j-1/2}+% \mathcal{B}^{-}\Delta\textbf{Q}_{i,j+1/2})\\ \\ &&-\frac{\Delta t}{\Delta x}(\tilde{\textbf{F}}_{i+1/2,j}-\tilde{\textbf{F}}_{% i-1/2,j})-\frac{\Delta t}{\Delta y}(\tilde{\textbf{G}}_{i,j+1/2}-\tilde{% \textbf{G}}_{i,j-1/2}),\end{array}start_ARRAY start_ROW start_CELL Q start_POSTSUBSCRIPT italic_i italic_j end_POSTSUBSCRIPT start_POSTSUPERSCRIPT italic_n + 1 end_POSTSUPERSCRIPT end_CELL start_CELL = end_CELL start_CELL Q start_POSTSUBSCRIPT italic_i italic_j end_POSTSUBSCRIPT - divide start_ARG roman_Δ italic_t end_ARG start_ARG roman_Δ italic_x end_ARG ( caligraphic_A start_POSTSUPERSCRIPT + end_POSTSUPERSCRIPT roman_Δ Q start_POSTSUBSCRIPT italic_i - 1 / 2 , italic_j end_POSTSUBSCRIPT + caligraphic_A start_POSTSUPERSCRIPT - end_POSTSUPERSCRIPT roman_Δ Q start_POSTSUBSCRIPT italic_i + 1 / 2 , italic_j end_POSTSUBSCRIPT ) end_CELL end_ROW start_ROW start_CELL end_CELL start_CELL end_CELL start_CELL end_CELL end_ROW start_ROW start_CELL end_CELL start_CELL end_CELL start_CELL - divide start_ARG roman_Δ italic_t end_ARG start_ARG roman_Δ italic_x end_ARG ( caligraphic_B start_POSTSUPERSCRIPT + end_POSTSUPERSCRIPT roman_Δ Q start_POSTSUBSCRIPT italic_i , italic_j - 1 / 2 end_POSTSUBSCRIPT + caligraphic_B start_POSTSUPERSCRIPT - end_POSTSUPERSCRIPT roman_Δ Q start_POSTSUBSCRIPT italic_i , italic_j + 1 / 2 end_POSTSUBSCRIPT ) end_CELL end_ROW start_ROW start_CELL end_CELL start_CELL end_CELL start_CELL end_CELL end_ROW start_ROW start_CELL end_CELL start_CELL end_CELL start_CELL - divide start_ARG roman_Δ italic_t end_ARG start_ARG roman_Δ italic_x end_ARG ( over~ start_ARG F end_ARG start_POSTSUBSCRIPT italic_i + 1 / 2 , italic_j end_POSTSUBSCRIPT - over~ start_ARG F end_ARG start_POSTSUBSCRIPT italic_i - 1 / 2 , italic_j end_POSTSUBSCRIPT ) - divide start_ARG roman_Δ italic_t end_ARG start_ARG roman_Δ italic_y end_ARG ( over~ start_ARG G end_ARG start_POSTSUBSCRIPT italic_i , italic_j + 1 / 2 end_POSTSUBSCRIPT - over~ start_ARG G end_ARG start_POSTSUBSCRIPT italic_i , italic_j - 1 / 2 end_POSTSUBSCRIPT ) , end_CELL end_ROW end_ARRAY (20)

where F~~F\tilde{\textbf{F}}over~ start_ARG F end_ARG, and G~~G\tilde{\textbf{G}}over~ start_ARG G end_ARG are calculated via an algorithm that uses information from neighboring cells as described in LeVeque (2002b).

The second way leads us to the Dimensional Splitting Wave Propagation Algorithm (DSWPA), where given the linear system of two-dimensional constant-coefficients

qt+Aqx+Bqy=0,subscriptq𝑡subscriptAq𝑥subscriptBq𝑦0\textbf{q}_{t}+\textbf{A}\textbf{q}_{x}+\textbf{B}\textbf{q}_{y}=0,q start_POSTSUBSCRIPT italic_t end_POSTSUBSCRIPT + bold_A bold_q start_POSTSUBSCRIPT italic_x end_POSTSUBSCRIPT + bold_B bold_q start_POSTSUBSCRIPT italic_y end_POSTSUBSCRIPT = 0 , (21)

can be divided into two steps

Step 1(xsweeps):qt+Aqx=0,Step 2(ysweeps):qt+Bqy=0.:𝑆𝑡𝑒𝑝1𝑥𝑠𝑤𝑒𝑒𝑝𝑠absentsubscriptq𝑡subscriptAq𝑥0:𝑆𝑡𝑒𝑝2𝑦𝑠𝑤𝑒𝑒𝑝𝑠absentsubscriptq𝑡subscriptBq𝑦0\begin{array}[]{cccc}Step\ 1\ (x-sweeps):&\textbf{q}_{t}+\textbf{A}\textbf{q}_% {x}&=&0,\\ Step\ 2\ (y-sweeps):&\textbf{q}_{t}+\textbf{B}\textbf{q}_{y}&=&0.\end{array}start_ARRAY start_ROW start_CELL italic_S italic_t italic_e italic_p 1 ( italic_x - italic_s italic_w italic_e italic_e italic_p italic_s ) : end_CELL start_CELL q start_POSTSUBSCRIPT italic_t end_POSTSUBSCRIPT + bold_A bold_q start_POSTSUBSCRIPT italic_x end_POSTSUBSCRIPT end_CELL start_CELL = end_CELL start_CELL 0 , end_CELL end_ROW start_ROW start_CELL italic_S italic_t italic_e italic_p 2 ( italic_y - italic_s italic_w italic_e italic_e italic_p italic_s ) : end_CELL start_CELL q start_POSTSUBSCRIPT italic_t end_POSTSUBSCRIPT + bold_B bold_q start_POSTSUBSCRIPT italic_y end_POSTSUBSCRIPT end_CELL start_CELL = end_CELL start_CELL 0 . end_CELL end_ROW end_ARRAY (22)

In the xsweeps𝑥𝑠𝑤𝑒𝑒𝑝𝑠x-sweepsitalic_x - italic_s italic_w italic_e italic_e italic_p italic_s we have

Qi,j=Qi,jΔtΔx(Fi+1/2,jnFi2/2,jn),superscriptsubscriptQ𝑖𝑗subscriptQ𝑖𝑗Δ𝑡Δ𝑥superscriptsubscriptF𝑖12𝑗𝑛superscriptsubscriptF𝑖22𝑗𝑛\textbf{Q}_{i,j}^{*}=\textbf{Q}_{i,j}-\frac{\Delta t}{\Delta x}(\textbf{F}_{i+% 1/2,j}^{n}-\textbf{F}_{i-2/2,j}^{n}),Q start_POSTSUBSCRIPT italic_i , italic_j end_POSTSUBSCRIPT start_POSTSUPERSCRIPT ∗ end_POSTSUPERSCRIPT = Q start_POSTSUBSCRIPT italic_i , italic_j end_POSTSUBSCRIPT - divide start_ARG roman_Δ italic_t end_ARG start_ARG roman_Δ italic_x end_ARG ( F start_POSTSUBSCRIPT italic_i + 1 / 2 , italic_j end_POSTSUBSCRIPT start_POSTSUPERSCRIPT italic_n end_POSTSUPERSCRIPT - F start_POSTSUBSCRIPT italic_i - 2 / 2 , italic_j end_POSTSUBSCRIPT start_POSTSUPERSCRIPT italic_n end_POSTSUPERSCRIPT ) , (23)

where Fi1/2,jnsubscriptsuperscriptF𝑛𝑖12𝑗\textbf{F}^{n}_{i-1/2,j}F start_POSTSUPERSCRIPT italic_n end_POSTSUPERSCRIPT start_POSTSUBSCRIPT italic_i - 1 / 2 , italic_j end_POSTSUBSCRIPT is the WPA numeric flux for the one-dimensional problem between the cells 𝒞i1,jsubscript𝒞𝑖1𝑗\mathcal{C}_{i-1,j}caligraphic_C start_POSTSUBSCRIPT italic_i - 1 , italic_j end_POSTSUBSCRIPT and 𝒞ijsubscript𝒞𝑖𝑗\mathcal{C}_{ij}caligraphic_C start_POSTSUBSCRIPT italic_i italic_j end_POSTSUBSCRIPT and in the ysweeps𝑦𝑠𝑤𝑒𝑒𝑝𝑠y-sweepsitalic_y - italic_s italic_w italic_e italic_e italic_p italic_s we have

Qi,jn+1=Qi,jΔtΔy(Gi,j+1/2Gi,j1/2),superscriptsubscriptQ𝑖𝑗𝑛1superscriptsubscriptQ𝑖𝑗Δ𝑡Δ𝑦subscriptsuperscriptG𝑖𝑗12subscriptsuperscriptG𝑖𝑗12\textbf{Q}_{i,j}^{n+1}=\textbf{Q}_{i,j}^{*}-\frac{\Delta t}{\Delta y}(\textbf{% G}^{*}_{i,j+1/2}-\textbf{G}^{*}_{i,j-1/2}),Q start_POSTSUBSCRIPT italic_i , italic_j end_POSTSUBSCRIPT start_POSTSUPERSCRIPT italic_n + 1 end_POSTSUPERSCRIPT = Q start_POSTSUBSCRIPT italic_i , italic_j end_POSTSUBSCRIPT start_POSTSUPERSCRIPT ∗ end_POSTSUPERSCRIPT - divide start_ARG roman_Δ italic_t end_ARG start_ARG roman_Δ italic_y end_ARG ( G start_POSTSUPERSCRIPT ∗ end_POSTSUPERSCRIPT start_POSTSUBSCRIPT italic_i , italic_j + 1 / 2 end_POSTSUBSCRIPT - G start_POSTSUPERSCRIPT ∗ end_POSTSUPERSCRIPT start_POSTSUBSCRIPT italic_i , italic_j - 1 / 2 end_POSTSUBSCRIPT ) , (24)

where Gi,j1/2nsubscriptsuperscriptG𝑛𝑖𝑗12\textbf{G}^{n}_{i,j-1/2}G start_POSTSUPERSCRIPT italic_n end_POSTSUPERSCRIPT start_POSTSUBSCRIPT italic_i , italic_j - 1 / 2 end_POSTSUBSCRIPT is the WPA numeric flux for the one-dimensional problem between the cells 𝒞i,j1subscript𝒞𝑖𝑗1\mathcal{C}_{i,j-1}caligraphic_C start_POSTSUBSCRIPT italic_i , italic_j - 1 end_POSTSUBSCRIPT and 𝒞ijsubscript𝒞𝑖𝑗\mathcal{C}_{ij}caligraphic_C start_POSTSUBSCRIPT italic_i italic_j end_POSTSUBSCRIPT.

3.2 Semi-discrete Central-Upwind Scheme with Kurganov-Lin flux (CUp)

In this section, we describe the semi-discrete Central-Upwind scheme with Kurganov-Lin flux, developed by Kurganov and Lin (2007), which is based on the REA algorithm.

For simplicity, a uniform grid is considered, xi:=iΔxassignsubscript𝑥𝑖𝑖Δ𝑥x_{i}:=i\Delta xitalic_x start_POSTSUBSCRIPT italic_i end_POSTSUBSCRIPT := italic_i roman_Δ italic_x. It is also assumed that at the current time level, t=tn𝑡subscript𝑡𝑛t=t_{n}italic_t = italic_t start_POSTSUBSCRIPT italic_n end_POSTSUBSCRIPT, the average solution cells, QinsubscriptsuperscriptQ𝑛𝑖\textbf{Q}^{n}_{i}Q start_POSTSUPERSCRIPT italic_n end_POSTSUPERSCRIPT start_POSTSUBSCRIPT italic_i end_POSTSUBSCRIPT, are available. Then, the evolution of the solution computed for the next time level, t=tn+1𝑡subscript𝑡𝑛1t=t_{n+1}italic_t = italic_t start_POSTSUBSCRIPT italic_n + 1 end_POSTSUBSCRIPT, can be presented by the one-dimensional semi-discrete scheme CUp that has the form of flux difference

ddtQi(t)=Hi+1/2(t)Hi1/2(t)Δx,𝑑𝑑𝑡subscriptQ𝑖𝑡subscriptH𝑖12𝑡subscriptH𝑖12𝑡Δ𝑥\frac{d}{dt}\textbf{Q}_{i}(t)=-\frac{\textbf{H}_{i+1/2}(t)-\textbf{H}_{i-1/2}(% t)}{\Delta x},divide start_ARG italic_d end_ARG start_ARG italic_d italic_t end_ARG Q start_POSTSUBSCRIPT italic_i end_POSTSUBSCRIPT ( italic_t ) = - divide start_ARG H start_POSTSUBSCRIPT italic_i + 1 / 2 end_POSTSUBSCRIPT ( italic_t ) - H start_POSTSUBSCRIPT italic_i - 1 / 2 end_POSTSUBSCRIPT ( italic_t ) end_ARG start_ARG roman_Δ italic_x end_ARG , (25)

choosing the numerical flux Hi1/2subscriptH𝑖12\textbf{H}_{i-1/2}H start_POSTSUBSCRIPT italic_i - 1 / 2 end_POSTSUBSCRIPT , as

Hi1/2(t):=ai1/2+f(qi1/2)ai1/2f(qi1/2+)ai1/2+ai1/2+ai1/2+ai1/2[qi1/2+qi1/2ai1/2+ai1/2qi1/2int],assignsubscriptH𝑖12𝑡subscriptsuperscript𝑎𝑖12fsubscriptsuperscriptq𝑖12subscriptsuperscript𝑎𝑖12fsubscriptsuperscriptq𝑖12subscriptsuperscript𝑎𝑖12subscriptsuperscript𝑎𝑖12subscriptsuperscript𝑎𝑖12subscriptsuperscript𝑎𝑖12delimited-[]subscriptsuperscriptq𝑖12subscriptsuperscriptq𝑖12subscriptsuperscript𝑎𝑖12subscriptsuperscript𝑎𝑖12subscriptsuperscriptq𝑖𝑛𝑡𝑖12\textbf{H}_{i-1/2}(t):=\frac{a^{+}_{i-1/2}\textbf{f}(\textbf{q}^{-}_{i-1/2})-a% ^{-}_{i-1/2}\textbf{f}(\textbf{q}^{+}_{i-1/2})}{a^{+}_{i-1/2}-a^{-}_{i-1/2}}+a% ^{+}_{i-1/2}a^{-}_{i-1/2}\left[\frac{\textbf{q}^{+}_{i-1/2}-\textbf{q}^{-}_{i-% 1/2}}{a^{+}_{i-1/2}-a^{-}_{i-1/2}}-\textbf{q}^{int}_{i-1/2}\right],H start_POSTSUBSCRIPT italic_i - 1 / 2 end_POSTSUBSCRIPT ( italic_t ) := divide start_ARG italic_a start_POSTSUPERSCRIPT + end_POSTSUPERSCRIPT start_POSTSUBSCRIPT italic_i - 1 / 2 end_POSTSUBSCRIPT f ( q start_POSTSUPERSCRIPT - end_POSTSUPERSCRIPT start_POSTSUBSCRIPT italic_i - 1 / 2 end_POSTSUBSCRIPT ) - italic_a start_POSTSUPERSCRIPT - end_POSTSUPERSCRIPT start_POSTSUBSCRIPT italic_i - 1 / 2 end_POSTSUBSCRIPT f ( q start_POSTSUPERSCRIPT + end_POSTSUPERSCRIPT start_POSTSUBSCRIPT italic_i - 1 / 2 end_POSTSUBSCRIPT ) end_ARG start_ARG italic_a start_POSTSUPERSCRIPT + end_POSTSUPERSCRIPT start_POSTSUBSCRIPT italic_i - 1 / 2 end_POSTSUBSCRIPT - italic_a start_POSTSUPERSCRIPT - end_POSTSUPERSCRIPT start_POSTSUBSCRIPT italic_i - 1 / 2 end_POSTSUBSCRIPT end_ARG + italic_a start_POSTSUPERSCRIPT + end_POSTSUPERSCRIPT start_POSTSUBSCRIPT italic_i - 1 / 2 end_POSTSUBSCRIPT italic_a start_POSTSUPERSCRIPT - end_POSTSUPERSCRIPT start_POSTSUBSCRIPT italic_i - 1 / 2 end_POSTSUBSCRIPT [ divide start_ARG q start_POSTSUPERSCRIPT + end_POSTSUPERSCRIPT start_POSTSUBSCRIPT italic_i - 1 / 2 end_POSTSUBSCRIPT - q start_POSTSUPERSCRIPT - end_POSTSUPERSCRIPT start_POSTSUBSCRIPT italic_i - 1 / 2 end_POSTSUBSCRIPT end_ARG start_ARG italic_a start_POSTSUPERSCRIPT + end_POSTSUPERSCRIPT start_POSTSUBSCRIPT italic_i - 1 / 2 end_POSTSUBSCRIPT - italic_a start_POSTSUPERSCRIPT - end_POSTSUPERSCRIPT start_POSTSUBSCRIPT italic_i - 1 / 2 end_POSTSUBSCRIPT end_ARG - q start_POSTSUPERSCRIPT italic_i italic_n italic_t end_POSTSUPERSCRIPT start_POSTSUBSCRIPT italic_i - 1 / 2 end_POSTSUBSCRIPT ] , (26)

we obtain the Central-Upwind Kurganov-Lin scheme. Where the one-sided local velocities, ai1/2±subscriptsuperscript𝑎plus-or-minus𝑖12a^{\pm}_{i-1/2}italic_a start_POSTSUPERSCRIPT ± end_POSTSUPERSCRIPT start_POSTSUBSCRIPT italic_i - 1 / 2 end_POSTSUBSCRIPT, are given by

ai1/2+:=maxwC(qi1/2,qi1/2+){λm(fq(w)),0}0,assignsuperscriptsubscript𝑎𝑖12subscript𝑤𝐶superscriptsubscriptq𝑖12superscriptsubscriptq𝑖12subscript𝜆𝑚fq𝑤00a_{i-1/2}^{+}:=\max_{w\in C(\textbf{q}_{i-1/2}^{-},\textbf{q}_{i-1/2}^{+})}% \left\{\lambda_{m}\left(\frac{\partial\textbf{f}}{\partial\textbf{q}}(w)\right% ),0\right\}\geq 0,italic_a start_POSTSUBSCRIPT italic_i - 1 / 2 end_POSTSUBSCRIPT start_POSTSUPERSCRIPT + end_POSTSUPERSCRIPT := roman_max start_POSTSUBSCRIPT italic_w ∈ italic_C ( q start_POSTSUBSCRIPT italic_i - 1 / 2 end_POSTSUBSCRIPT start_POSTSUPERSCRIPT - end_POSTSUPERSCRIPT , q start_POSTSUBSCRIPT italic_i - 1 / 2 end_POSTSUBSCRIPT start_POSTSUPERSCRIPT + end_POSTSUPERSCRIPT ) end_POSTSUBSCRIPT { italic_λ start_POSTSUBSCRIPT italic_m end_POSTSUBSCRIPT ( divide start_ARG ∂ f end_ARG start_ARG ∂ q end_ARG ( italic_w ) ) , 0 } ≥ 0 , (27)
ai1/2:=minwC(qi1/2,qi1/2+){λ1(fq(w)),0}0,assignsuperscriptsubscript𝑎𝑖12subscript𝑤𝐶superscriptsubscriptq𝑖12superscriptsubscriptq𝑖12subscript𝜆1fq𝑤00a_{i-1/2}^{-}:=\min_{w\in C(\textbf{q}_{i-1/2}^{-},\textbf{q}_{i-1/2}^{+})}% \left\{\lambda_{1}\left(\frac{\partial\textbf{f}}{\partial\textbf{q}}(w)\right% ),0\right\}\leq 0,italic_a start_POSTSUBSCRIPT italic_i - 1 / 2 end_POSTSUBSCRIPT start_POSTSUPERSCRIPT - end_POSTSUPERSCRIPT := roman_min start_POSTSUBSCRIPT italic_w ∈ italic_C ( q start_POSTSUBSCRIPT italic_i - 1 / 2 end_POSTSUBSCRIPT start_POSTSUPERSCRIPT - end_POSTSUPERSCRIPT , q start_POSTSUBSCRIPT italic_i - 1 / 2 end_POSTSUBSCRIPT start_POSTSUPERSCRIPT + end_POSTSUPERSCRIPT ) end_POSTSUBSCRIPT { italic_λ start_POSTSUBSCRIPT 1 end_POSTSUBSCRIPT ( divide start_ARG ∂ f end_ARG start_ARG ∂ q end_ARG ( italic_w ) ) , 0 } ≤ 0 , (28)

where λ1<λmsubscript𝜆1subscript𝜆𝑚\lambda_{1}<\cdots\lambda_{m}italic_λ start_POSTSUBSCRIPT 1 end_POSTSUBSCRIPT < ⋯ italic_λ start_POSTSUBSCRIPT italic_m end_POSTSUBSCRIPT are the eigenvalues of the Jacobian fqfq\frac{\partial\textbf{f}}{\partial\textbf{q}}divide start_ARG ∂ f end_ARG start_ARG ∂ q end_ARG, and C(qi1/2,qi1/2+)𝐶superscriptsubscriptq𝑖12superscriptsubscriptq𝑖12C(\textbf{q}_{i-1/2}^{-},\textbf{q}_{i-1/2}^{+})italic_C ( q start_POSTSUBSCRIPT italic_i - 1 / 2 end_POSTSUBSCRIPT start_POSTSUPERSCRIPT - end_POSTSUPERSCRIPT , q start_POSTSUBSCRIPT italic_i - 1 / 2 end_POSTSUBSCRIPT start_POSTSUPERSCRIPT + end_POSTSUPERSCRIPT ) is a curve in phase space connecting the corresponding values on the left and right sides of the linear reconstruction at x=xi1/2𝑥subscript𝑥𝑖12x=x_{i-1/2}italic_x = italic_x start_POSTSUBSCRIPT italic_i - 1 / 2 end_POSTSUBSCRIPT,

qi1/2:=QiΔx2(qx)in,assignsuperscriptsubscriptq𝑖12subscriptQ𝑖Δ𝑥2subscriptsuperscriptsubscriptq𝑥𝑛𝑖\textbf{q}_{i-1/2}^{-}:=\textbf{Q}_{i}-\frac{\Delta x}{2}(\textbf{q}_{x})^{n}_% {i},q start_POSTSUBSCRIPT italic_i - 1 / 2 end_POSTSUBSCRIPT start_POSTSUPERSCRIPT - end_POSTSUPERSCRIPT := Q start_POSTSUBSCRIPT italic_i end_POSTSUBSCRIPT - divide start_ARG roman_Δ italic_x end_ARG start_ARG 2 end_ARG ( q start_POSTSUBSCRIPT italic_x end_POSTSUBSCRIPT ) start_POSTSUPERSCRIPT italic_n end_POSTSUPERSCRIPT start_POSTSUBSCRIPT italic_i end_POSTSUBSCRIPT , (29)
qi1/2+:=Qi1+Δx2(qx)i1n,assignsuperscriptsubscriptq𝑖12subscriptQ𝑖1Δ𝑥2subscriptsuperscriptsubscriptq𝑥𝑛𝑖1\textbf{q}_{i-1/2}^{+}:=\textbf{Q}_{i-1}+\frac{\Delta x}{2}(\textbf{q}_{x})^{n% }_{i-1},q start_POSTSUBSCRIPT italic_i - 1 / 2 end_POSTSUBSCRIPT start_POSTSUPERSCRIPT + end_POSTSUPERSCRIPT := Q start_POSTSUBSCRIPT italic_i - 1 end_POSTSUBSCRIPT + divide start_ARG roman_Δ italic_x end_ARG start_ARG 2 end_ARG ( q start_POSTSUBSCRIPT italic_x end_POSTSUBSCRIPT ) start_POSTSUPERSCRIPT italic_n end_POSTSUPERSCRIPT start_POSTSUBSCRIPT italic_i - 1 end_POSTSUBSCRIPT , (30)

respectively, where the numerical derivatives

qin=qx|x=xi,t=tn+𝒪(Δx),superscriptsubscriptq𝑖𝑛evaluated-atq𝑥formulae-sequence𝑥subscript𝑥𝑖𝑡subscript𝑡𝑛𝒪Δ𝑥\partial\textbf{q}_{i}^{n}=\left.\frac{\partial\textbf{q}}{\partial x}\right|_% {x=x_{i},t=t_{n}}+\mathcal{O}(\Delta x),∂ q start_POSTSUBSCRIPT italic_i end_POSTSUBSCRIPT start_POSTSUPERSCRIPT italic_n end_POSTSUPERSCRIPT = divide start_ARG ∂ q end_ARG start_ARG ∂ italic_x end_ARG | start_POSTSUBSCRIPT italic_x = italic_x start_POSTSUBSCRIPT italic_i end_POSTSUBSCRIPT , italic_t = italic_t start_POSTSUBSCRIPT italic_n end_POSTSUBSCRIPT end_POSTSUBSCRIPT + caligraphic_O ( roman_Δ italic_x ) , (31)

are calculated using flux limiters.

The flux limiter used in this work was the SuperBee (SB) defined by

qin=maxmod(minmod(2QinQi1nΔx,Qi+1nQinΔx),minmod(QinQi1nΔx,2Qi+1nQinΔx)),superscriptsubscriptq𝑖𝑛𝑚𝑎𝑥𝑚𝑜𝑑𝑚𝑖𝑛𝑚𝑜𝑑2superscriptsubscriptQ𝑖𝑛superscriptsubscriptQ𝑖1𝑛Δ𝑥superscriptsubscriptQ𝑖1𝑛superscriptsubscriptQ𝑖𝑛Δ𝑥𝑚𝑖𝑛𝑚𝑜𝑑superscriptsubscriptQ𝑖𝑛superscriptsubscriptQ𝑖1𝑛Δ𝑥2superscriptsubscriptQ𝑖1𝑛superscriptsubscriptQ𝑖𝑛Δ𝑥\begin{split}\partial\textbf{q}_{i}^{n}=maxmod&\left(minmod\left(2\frac{% \textbf{Q}_{i}^{n}-\textbf{Q}_{i-1}^{n}}{\Delta x},\frac{\textbf{Q}_{i+1}^{n}-% \textbf{Q}_{i}^{n}}{\Delta x}\right)\right.,\\ &\quad\left.minmod\left(\frac{\textbf{Q}_{i}^{n}-\textbf{Q}_{i-1}^{n}}{\Delta x% },2\frac{\textbf{Q}_{i+1}^{n}-\textbf{Q}_{i}^{n}}{\Delta x}\right)\right),\end% {split}start_ROW start_CELL ∂ q start_POSTSUBSCRIPT italic_i end_POSTSUBSCRIPT start_POSTSUPERSCRIPT italic_n end_POSTSUPERSCRIPT = italic_m italic_a italic_x italic_m italic_o italic_d end_CELL start_CELL ( italic_m italic_i italic_n italic_m italic_o italic_d ( 2 divide start_ARG Q start_POSTSUBSCRIPT italic_i end_POSTSUBSCRIPT start_POSTSUPERSCRIPT italic_n end_POSTSUPERSCRIPT - Q start_POSTSUBSCRIPT italic_i - 1 end_POSTSUBSCRIPT start_POSTSUPERSCRIPT italic_n end_POSTSUPERSCRIPT end_ARG start_ARG roman_Δ italic_x end_ARG , divide start_ARG Q start_POSTSUBSCRIPT italic_i + 1 end_POSTSUBSCRIPT start_POSTSUPERSCRIPT italic_n end_POSTSUPERSCRIPT - Q start_POSTSUBSCRIPT italic_i end_POSTSUBSCRIPT start_POSTSUPERSCRIPT italic_n end_POSTSUPERSCRIPT end_ARG start_ARG roman_Δ italic_x end_ARG ) , end_CELL end_ROW start_ROW start_CELL end_CELL start_CELL italic_m italic_i italic_n italic_m italic_o italic_d ( divide start_ARG Q start_POSTSUBSCRIPT italic_i end_POSTSUBSCRIPT start_POSTSUPERSCRIPT italic_n end_POSTSUPERSCRIPT - Q start_POSTSUBSCRIPT italic_i - 1 end_POSTSUBSCRIPT start_POSTSUPERSCRIPT italic_n end_POSTSUPERSCRIPT end_ARG start_ARG roman_Δ italic_x end_ARG , 2 divide start_ARG Q start_POSTSUBSCRIPT italic_i + 1 end_POSTSUBSCRIPT start_POSTSUPERSCRIPT italic_n end_POSTSUPERSCRIPT - Q start_POSTSUBSCRIPT italic_i end_POSTSUBSCRIPT start_POSTSUPERSCRIPT italic_n end_POSTSUPERSCRIPT end_ARG start_ARG roman_Δ italic_x end_ARG ) ) , end_CELL end_ROW (32)

where

maxmod(x1,x2,)={maxi{xi},ifxi>0i,mini{xi},ifxi<0i,0,othercase.𝑚𝑎𝑥𝑚𝑜𝑑subscript𝑥1subscript𝑥2casessubscript𝑖subscript𝑥𝑖𝑖𝑓subscript𝑥𝑖0for-all𝑖subscript𝑖subscript𝑥𝑖𝑖𝑓subscript𝑥𝑖0for-all𝑖0𝑜𝑡𝑒𝑟𝑐𝑎𝑠𝑒maxmod(x_{1},x_{2},...)=\left\{\begin{array}[]{cc}\max_{i}\{x_{i}\},&if\ x_{i}% >0\ \forall i,\\ \min_{i}\{x_{i}\},&if\ x_{i}<0\ \forall i,\\ 0,&other\ case\end{array}\right..italic_m italic_a italic_x italic_m italic_o italic_d ( italic_x start_POSTSUBSCRIPT 1 end_POSTSUBSCRIPT , italic_x start_POSTSUBSCRIPT 2 end_POSTSUBSCRIPT , … ) = { start_ARRAY start_ROW start_CELL roman_max start_POSTSUBSCRIPT italic_i end_POSTSUBSCRIPT { italic_x start_POSTSUBSCRIPT italic_i end_POSTSUBSCRIPT } , end_CELL start_CELL italic_i italic_f italic_x start_POSTSUBSCRIPT italic_i end_POSTSUBSCRIPT > 0 ∀ italic_i , end_CELL end_ROW start_ROW start_CELL roman_min start_POSTSUBSCRIPT italic_i end_POSTSUBSCRIPT { italic_x start_POSTSUBSCRIPT italic_i end_POSTSUBSCRIPT } , end_CELL start_CELL italic_i italic_f italic_x start_POSTSUBSCRIPT italic_i end_POSTSUBSCRIPT < 0 ∀ italic_i , end_CELL end_ROW start_ROW start_CELL 0 , end_CELL start_CELL italic_o italic_t italic_h italic_e italic_r italic_c italic_a italic_s italic_e end_CELL end_ROW end_ARRAY . (33)

Finally, the correction term in (26) (which is an embedded anti-diffusion term that corresponds to the reduced value in numerical dissipation compared to the original semi-discrete CUp scheme of Kurganov and Tadmor (2000)) is

qi1/2int=minmod(qi1/2+wi1/2intai1/2+ai1/2,wi1/2intqi1/2ai1/2+ai1/2),subscriptsuperscriptq𝑖𝑛𝑡𝑖12𝑚𝑖𝑛𝑚𝑜𝑑superscriptsubscriptq𝑖12superscriptsubscriptw𝑖12𝑖𝑛𝑡superscriptsubscript𝑎𝑖12superscriptsubscript𝑎𝑖12superscriptsubscriptw𝑖12𝑖𝑛𝑡superscriptsubscriptq𝑖12superscriptsubscript𝑎𝑖12superscriptsubscript𝑎𝑖12\textbf{q}^{int}_{i-1/2}=minmod\left(\frac{\textbf{q}_{i-1/2}^{+}-\textbf{w}_{% i-1/2}^{int}}{a_{i-1/2}^{+}-a_{i-1/2}^{-}},\frac{\textbf{w}_{i-1/2}^{int}-% \textbf{q}_{i-1/2}^{-}}{a_{i-1/2}^{+}-a_{i-1/2}^{-}}\right),q start_POSTSUPERSCRIPT italic_i italic_n italic_t end_POSTSUPERSCRIPT start_POSTSUBSCRIPT italic_i - 1 / 2 end_POSTSUBSCRIPT = italic_m italic_i italic_n italic_m italic_o italic_d ( divide start_ARG q start_POSTSUBSCRIPT italic_i - 1 / 2 end_POSTSUBSCRIPT start_POSTSUPERSCRIPT + end_POSTSUPERSCRIPT - w start_POSTSUBSCRIPT italic_i - 1 / 2 end_POSTSUBSCRIPT start_POSTSUPERSCRIPT italic_i italic_n italic_t end_POSTSUPERSCRIPT end_ARG start_ARG italic_a start_POSTSUBSCRIPT italic_i - 1 / 2 end_POSTSUBSCRIPT start_POSTSUPERSCRIPT + end_POSTSUPERSCRIPT - italic_a start_POSTSUBSCRIPT italic_i - 1 / 2 end_POSTSUBSCRIPT start_POSTSUPERSCRIPT - end_POSTSUPERSCRIPT end_ARG , divide start_ARG w start_POSTSUBSCRIPT italic_i - 1 / 2 end_POSTSUBSCRIPT start_POSTSUPERSCRIPT italic_i italic_n italic_t end_POSTSUPERSCRIPT - q start_POSTSUBSCRIPT italic_i - 1 / 2 end_POSTSUBSCRIPT start_POSTSUPERSCRIPT - end_POSTSUPERSCRIPT end_ARG start_ARG italic_a start_POSTSUBSCRIPT italic_i - 1 / 2 end_POSTSUBSCRIPT start_POSTSUPERSCRIPT + end_POSTSUPERSCRIPT - italic_a start_POSTSUBSCRIPT italic_i - 1 / 2 end_POSTSUBSCRIPT start_POSTSUPERSCRIPT - end_POSTSUPERSCRIPT end_ARG ) , (34)

with

wi1/2int=ai1/2+qi1/2+ai1/2qi1/2{f(qi1/2+)f(qi1/2)}ai1/2+ai1/2.superscriptsubscriptw𝑖12𝑖𝑛𝑡superscriptsubscript𝑎𝑖12superscriptsubscriptq𝑖12superscriptsubscript𝑎𝑖12superscriptsubscriptq𝑖12fsuperscriptsubscriptq𝑖12fsuperscriptsubscriptq𝑖12superscriptsubscript𝑎𝑖12superscriptsubscript𝑎𝑖12\textbf{w}_{i-1/2}^{int}=\frac{a_{i-1/2}^{+}\textbf{q}_{i-1/2}^{+}-a_{i-1/2}^{% -}\textbf{q}_{i-1/2}^{-}-\left\{\textbf{f}(\textbf{q}_{i-1/2}^{+})-\textbf{f}(% \textbf{q}_{i-1/2}^{-})\right\}}{a_{i-1/2}^{+}-a_{i-1/2}^{-}}.w start_POSTSUBSCRIPT italic_i - 1 / 2 end_POSTSUBSCRIPT start_POSTSUPERSCRIPT italic_i italic_n italic_t end_POSTSUPERSCRIPT = divide start_ARG italic_a start_POSTSUBSCRIPT italic_i - 1 / 2 end_POSTSUBSCRIPT start_POSTSUPERSCRIPT + end_POSTSUPERSCRIPT q start_POSTSUBSCRIPT italic_i - 1 / 2 end_POSTSUBSCRIPT start_POSTSUPERSCRIPT + end_POSTSUPERSCRIPT - italic_a start_POSTSUBSCRIPT italic_i - 1 / 2 end_POSTSUBSCRIPT start_POSTSUPERSCRIPT - end_POSTSUPERSCRIPT q start_POSTSUBSCRIPT italic_i - 1 / 2 end_POSTSUBSCRIPT start_POSTSUPERSCRIPT - end_POSTSUPERSCRIPT - { f ( q start_POSTSUBSCRIPT italic_i - 1 / 2 end_POSTSUBSCRIPT start_POSTSUPERSCRIPT + end_POSTSUPERSCRIPT ) - f ( q start_POSTSUBSCRIPT italic_i - 1 / 2 end_POSTSUBSCRIPT start_POSTSUPERSCRIPT - end_POSTSUPERSCRIPT ) } end_ARG start_ARG italic_a start_POSTSUBSCRIPT italic_i - 1 / 2 end_POSTSUBSCRIPT start_POSTSUPERSCRIPT + end_POSTSUPERSCRIPT - italic_a start_POSTSUBSCRIPT italic_i - 1 / 2 end_POSTSUBSCRIPT start_POSTSUPERSCRIPT - end_POSTSUPERSCRIPT end_ARG . (35)

For the two-dimensional Central-Upwind Semi-Discrete Scheme with Kurganov-Lin flux, similar to case 1-D, we consider a uniform grid xi=iΔxsubscript𝑥𝑖𝑖Δ𝑥x_{i}=i\Delta xitalic_x start_POSTSUBSCRIPT italic_i end_POSTSUBSCRIPT = italic_i roman_Δ italic_x, yj=jΔysubscript𝑦𝑗𝑗Δ𝑦y_{j}=j\Delta yitalic_y start_POSTSUBSCRIPT italic_j end_POSTSUBSCRIPT = italic_j roman_Δ italic_y, and Δt:=tn+1tnassignΔ𝑡subscript𝑡𝑛1subscript𝑡𝑛\Delta t:=t_{n+1}-t_{n}roman_Δ italic_t := italic_t start_POSTSUBSCRIPT italic_n + 1 end_POSTSUBSCRIPT - italic_t start_POSTSUBSCRIPT italic_n end_POSTSUBSCRIPT. The resulting semi-discrete two-dimensional CUp scheme will then be obtained in the following flow difference form:

ddtQi,j(t)=Hi+1/2,jx(t)Hi1/2,jx(t)ΔxHi,j+1/2y(t)Hi,j1/2y(t)Δy,𝑑𝑑𝑡subscriptQ𝑖𝑗𝑡subscriptsuperscriptH𝑥𝑖12𝑗𝑡subscriptsuperscriptH𝑥𝑖12𝑗𝑡Δ𝑥subscriptsuperscriptH𝑦𝑖𝑗12𝑡subscriptsuperscriptH𝑦𝑖𝑗12𝑡Δ𝑦\frac{d}{dt}\textbf{Q}_{i,j}(t)=-\frac{\textbf{H}^{x}_{i+1/2,j}(t)-\textbf{H}^% {x}_{i-1/2,j}(t)}{\Delta x}-\frac{\textbf{H}^{y}_{i,j+1/2}(t)-\textbf{H}^{y}_{% i,j-1/2}(t)}{\Delta y},divide start_ARG italic_d end_ARG start_ARG italic_d italic_t end_ARG Q start_POSTSUBSCRIPT italic_i , italic_j end_POSTSUBSCRIPT ( italic_t ) = - divide start_ARG H start_POSTSUPERSCRIPT italic_x end_POSTSUPERSCRIPT start_POSTSUBSCRIPT italic_i + 1 / 2 , italic_j end_POSTSUBSCRIPT ( italic_t ) - H start_POSTSUPERSCRIPT italic_x end_POSTSUPERSCRIPT start_POSTSUBSCRIPT italic_i - 1 / 2 , italic_j end_POSTSUBSCRIPT ( italic_t ) end_ARG start_ARG roman_Δ italic_x end_ARG - divide start_ARG H start_POSTSUPERSCRIPT italic_y end_POSTSUPERSCRIPT start_POSTSUBSCRIPT italic_i , italic_j + 1 / 2 end_POSTSUBSCRIPT ( italic_t ) - H start_POSTSUPERSCRIPT italic_y end_POSTSUPERSCRIPT start_POSTSUBSCRIPT italic_i , italic_j - 1 / 2 end_POSTSUBSCRIPT ( italic_t ) end_ARG start_ARG roman_Δ italic_y end_ARG , (36)

choosing second-order numeric flux as being

Hi1/2,jx(t):=ai1/2,j+f(qi1,jE)ai1/2,jf(qi,jW)ai1/2,j+ai1/2,j+ai1/2,j+ai1/2,j[qi,jWqi1,jEai1/2,j+ai1/2,jqi1/2,jxint],assignsubscriptsuperscriptH𝑥𝑖12𝑗𝑡subscriptsuperscript𝑎𝑖12𝑗fsubscriptsuperscriptq𝐸𝑖1𝑗subscriptsuperscript𝑎𝑖12𝑗fsubscriptsuperscriptq𝑊𝑖𝑗subscriptsuperscript𝑎𝑖12𝑗subscriptsuperscript𝑎𝑖12𝑗subscriptsuperscript𝑎𝑖12𝑗subscriptsuperscript𝑎𝑖12𝑗delimited-[]subscriptsuperscriptq𝑊𝑖𝑗subscriptsuperscriptq𝐸𝑖1𝑗subscriptsuperscript𝑎𝑖12𝑗subscriptsuperscript𝑎𝑖12𝑗subscriptsuperscriptq𝑥𝑖𝑛𝑡𝑖12𝑗\begin{split}\textbf{H}^{x}_{i-1/2,j}(t):=&\frac{a^{+}_{i-1/2,j}\textbf{f}(% \textbf{q}^{E}_{i-1,j})-a^{-}_{i-1/2,j}\textbf{f}(\textbf{q}^{W}_{i,j})}{a^{+}% _{i-1/2,j}-a^{-}_{i-1/2,j}}\\ &+a^{+}_{i-1/2,j}a^{-}_{i-1/2,j}\left[\frac{\textbf{q}^{W}_{i,j}-\textbf{q}^{E% }_{i-1,j}}{a^{+}_{i-1/2,j}-a^{-}_{i-1/2,j}}-\textbf{q}^{x-int}_{i-1/2,j}\right% ],\end{split}start_ROW start_CELL H start_POSTSUPERSCRIPT italic_x end_POSTSUPERSCRIPT start_POSTSUBSCRIPT italic_i - 1 / 2 , italic_j end_POSTSUBSCRIPT ( italic_t ) := end_CELL start_CELL divide start_ARG italic_a start_POSTSUPERSCRIPT + end_POSTSUPERSCRIPT start_POSTSUBSCRIPT italic_i - 1 / 2 , italic_j end_POSTSUBSCRIPT f ( q start_POSTSUPERSCRIPT italic_E end_POSTSUPERSCRIPT start_POSTSUBSCRIPT italic_i - 1 , italic_j end_POSTSUBSCRIPT ) - italic_a start_POSTSUPERSCRIPT - end_POSTSUPERSCRIPT start_POSTSUBSCRIPT italic_i - 1 / 2 , italic_j end_POSTSUBSCRIPT f ( q start_POSTSUPERSCRIPT italic_W end_POSTSUPERSCRIPT start_POSTSUBSCRIPT italic_i , italic_j end_POSTSUBSCRIPT ) end_ARG start_ARG italic_a start_POSTSUPERSCRIPT + end_POSTSUPERSCRIPT start_POSTSUBSCRIPT italic_i - 1 / 2 , italic_j end_POSTSUBSCRIPT - italic_a start_POSTSUPERSCRIPT - end_POSTSUPERSCRIPT start_POSTSUBSCRIPT italic_i - 1 / 2 , italic_j end_POSTSUBSCRIPT end_ARG end_CELL end_ROW start_ROW start_CELL end_CELL start_CELL + italic_a start_POSTSUPERSCRIPT + end_POSTSUPERSCRIPT start_POSTSUBSCRIPT italic_i - 1 / 2 , italic_j end_POSTSUBSCRIPT italic_a start_POSTSUPERSCRIPT - end_POSTSUPERSCRIPT start_POSTSUBSCRIPT italic_i - 1 / 2 , italic_j end_POSTSUBSCRIPT [ divide start_ARG q start_POSTSUPERSCRIPT italic_W end_POSTSUPERSCRIPT start_POSTSUBSCRIPT italic_i , italic_j end_POSTSUBSCRIPT - q start_POSTSUPERSCRIPT italic_E end_POSTSUPERSCRIPT start_POSTSUBSCRIPT italic_i - 1 , italic_j end_POSTSUBSCRIPT end_ARG start_ARG italic_a start_POSTSUPERSCRIPT + end_POSTSUPERSCRIPT start_POSTSUBSCRIPT italic_i - 1 / 2 , italic_j end_POSTSUBSCRIPT - italic_a start_POSTSUPERSCRIPT - end_POSTSUPERSCRIPT start_POSTSUBSCRIPT italic_i - 1 / 2 , italic_j end_POSTSUBSCRIPT end_ARG - q start_POSTSUPERSCRIPT italic_x - italic_i italic_n italic_t end_POSTSUPERSCRIPT start_POSTSUBSCRIPT italic_i - 1 / 2 , italic_j end_POSTSUBSCRIPT ] , end_CELL end_ROW (37)
Hi,j1/2y(t):=bi,j1/2+f(qi,j1N)bi,j1/2f(qi,jS)b,j1/2+bi,j1/2+bi,j1/2+bi,j1/2[qi,jSqi,j1Nbi,j1/2+bi,j1/2qi,j1/2yint],\begin{split}\textbf{H}^{y}_{i,j-1/2}(t):=&\frac{b^{+}_{i,j-1/2}\textbf{f}(% \textbf{q}^{N}_{i,j-1})-b^{-}_{i,j-1/2}\textbf{f}(\textbf{q}^{S}_{i,j})}{b^{+}% _{,j-1/2}-b^{-}_{i,j-1/2}}\\ &+b^{+}_{i,j-1/2}b^{-}_{i,j-1/2}\left[\frac{\textbf{q}^{S}_{i,j}-\textbf{q}^{N% }_{i,j-1}}{b^{+}_{i,j-1/2}-b^{-}_{i,j-1/2}}-\textbf{q}^{y-int}_{i,j-1/2}\right% ],\end{split}start_ROW start_CELL H start_POSTSUPERSCRIPT italic_y end_POSTSUPERSCRIPT start_POSTSUBSCRIPT italic_i , italic_j - 1 / 2 end_POSTSUBSCRIPT ( italic_t ) := end_CELL start_CELL divide start_ARG italic_b start_POSTSUPERSCRIPT + end_POSTSUPERSCRIPT start_POSTSUBSCRIPT italic_i , italic_j - 1 / 2 end_POSTSUBSCRIPT f ( q start_POSTSUPERSCRIPT italic_N end_POSTSUPERSCRIPT start_POSTSUBSCRIPT italic_i , italic_j - 1 end_POSTSUBSCRIPT ) - italic_b start_POSTSUPERSCRIPT - end_POSTSUPERSCRIPT start_POSTSUBSCRIPT italic_i , italic_j - 1 / 2 end_POSTSUBSCRIPT f ( q start_POSTSUPERSCRIPT italic_S end_POSTSUPERSCRIPT start_POSTSUBSCRIPT italic_i , italic_j end_POSTSUBSCRIPT ) end_ARG start_ARG italic_b start_POSTSUPERSCRIPT + end_POSTSUPERSCRIPT start_POSTSUBSCRIPT , italic_j - 1 / 2 end_POSTSUBSCRIPT - italic_b start_POSTSUPERSCRIPT - end_POSTSUPERSCRIPT start_POSTSUBSCRIPT italic_i , italic_j - 1 / 2 end_POSTSUBSCRIPT end_ARG end_CELL end_ROW start_ROW start_CELL end_CELL start_CELL + italic_b start_POSTSUPERSCRIPT + end_POSTSUPERSCRIPT start_POSTSUBSCRIPT italic_i , italic_j - 1 / 2 end_POSTSUBSCRIPT italic_b start_POSTSUPERSCRIPT - end_POSTSUPERSCRIPT start_POSTSUBSCRIPT italic_i , italic_j - 1 / 2 end_POSTSUBSCRIPT [ divide start_ARG q start_POSTSUPERSCRIPT italic_S end_POSTSUPERSCRIPT start_POSTSUBSCRIPT italic_i , italic_j end_POSTSUBSCRIPT - q start_POSTSUPERSCRIPT italic_N end_POSTSUPERSCRIPT start_POSTSUBSCRIPT italic_i , italic_j - 1 end_POSTSUBSCRIPT end_ARG start_ARG italic_b start_POSTSUPERSCRIPT + end_POSTSUPERSCRIPT start_POSTSUBSCRIPT italic_i , italic_j - 1 / 2 end_POSTSUBSCRIPT - italic_b start_POSTSUPERSCRIPT - end_POSTSUPERSCRIPT start_POSTSUBSCRIPT italic_i , italic_j - 1 / 2 end_POSTSUBSCRIPT end_ARG - q start_POSTSUPERSCRIPT italic_y - italic_i italic_n italic_t end_POSTSUPERSCRIPT start_POSTSUBSCRIPT italic_i , italic_j - 1 / 2 end_POSTSUBSCRIPT ] , end_CELL end_ROW (38)

we get the CUp scheme with Kurganov-Lin flux, unilateral local propagation speeds can be estimated, for example, by

ai1/2,j+:=max{λ1(A(qi,jW)),λm(A(qi1,jE)),0},bi,j1/2+:=max{λ1(B(qi,jS)),λm(B(qi1,jN)),0},ai1/2,j:=min{λ1(A(qi,jW)),λm(A(qi1,jE)),0},bi1/2,j:=min{λ1(B(qi,jS)),λm(B(qi1,jN)),0},superscriptsubscript𝑎𝑖12𝑗assignsubscript𝜆1Asubscriptsuperscriptq𝑊𝑖𝑗subscript𝜆𝑚Asubscriptsuperscriptq𝐸𝑖1𝑗0superscriptsubscript𝑏𝑖𝑗12assignsubscript𝜆1Bsubscriptsuperscriptq𝑆𝑖𝑗subscript𝜆𝑚Bsubscriptsuperscriptq𝑁𝑖1𝑗0superscriptsubscript𝑎𝑖12𝑗assignsubscript𝜆1Asubscriptsuperscriptq𝑊𝑖𝑗subscript𝜆𝑚Asubscriptsuperscriptq𝐸𝑖1𝑗0superscriptsubscript𝑏𝑖12𝑗assignsubscript𝜆1Bsubscriptsuperscriptq𝑆𝑖𝑗subscript𝜆𝑚Bsubscriptsuperscriptq𝑁𝑖1𝑗0\begin{array}[]{ccc}a_{i-1/2,j}^{+}&:=&\max\left\{\lambda_{1}\left(\textbf{A}(% \textbf{q}^{W}_{i,j})\right),\lambda_{m}\left(\textbf{A}(\textbf{q}^{E}_{i-1,j% })\right),0\right\},\\ b_{i,j-1/2}^{+}&:=&\max\left\{\lambda_{1}\left(\textbf{B}(\textbf{q}^{S}_{i,j}% )\right),\lambda_{m}\left(\textbf{B}(\textbf{q}^{N}_{i-1,j})\right),0\right\},% \\ a_{i-1/2,j}^{-}&:=&\min\left\{\lambda_{1}\left(\textbf{A}(\textbf{q}^{W}_{i,j}% )\right),\lambda_{m}\left(\textbf{A}(\textbf{q}^{E}_{i-1,j})\right),0\right\},% \\ b_{i-1/2,j}^{-}&:=&\min\left\{\lambda_{1}\left(\textbf{B}(\textbf{q}^{S}_{i,j}% )\right),\lambda_{m}\left(\textbf{B}(\textbf{q}^{N}_{i-1,j})\right),0\right\},% \end{array}start_ARRAY start_ROW start_CELL italic_a start_POSTSUBSCRIPT italic_i - 1 / 2 , italic_j end_POSTSUBSCRIPT start_POSTSUPERSCRIPT + end_POSTSUPERSCRIPT end_CELL start_CELL := end_CELL start_CELL roman_max { italic_λ start_POSTSUBSCRIPT 1 end_POSTSUBSCRIPT ( A ( q start_POSTSUPERSCRIPT italic_W end_POSTSUPERSCRIPT start_POSTSUBSCRIPT italic_i , italic_j end_POSTSUBSCRIPT ) ) , italic_λ start_POSTSUBSCRIPT italic_m end_POSTSUBSCRIPT ( A ( q start_POSTSUPERSCRIPT italic_E end_POSTSUPERSCRIPT start_POSTSUBSCRIPT italic_i - 1 , italic_j end_POSTSUBSCRIPT ) ) , 0 } , end_CELL end_ROW start_ROW start_CELL italic_b start_POSTSUBSCRIPT italic_i , italic_j - 1 / 2 end_POSTSUBSCRIPT start_POSTSUPERSCRIPT + end_POSTSUPERSCRIPT end_CELL start_CELL := end_CELL start_CELL roman_max { italic_λ start_POSTSUBSCRIPT 1 end_POSTSUBSCRIPT ( B ( q start_POSTSUPERSCRIPT italic_S end_POSTSUPERSCRIPT start_POSTSUBSCRIPT italic_i , italic_j end_POSTSUBSCRIPT ) ) , italic_λ start_POSTSUBSCRIPT italic_m end_POSTSUBSCRIPT ( B ( q start_POSTSUPERSCRIPT italic_N end_POSTSUPERSCRIPT start_POSTSUBSCRIPT italic_i - 1 , italic_j end_POSTSUBSCRIPT ) ) , 0 } , end_CELL end_ROW start_ROW start_CELL italic_a start_POSTSUBSCRIPT italic_i - 1 / 2 , italic_j end_POSTSUBSCRIPT start_POSTSUPERSCRIPT - end_POSTSUPERSCRIPT end_CELL start_CELL := end_CELL start_CELL roman_min { italic_λ start_POSTSUBSCRIPT 1 end_POSTSUBSCRIPT ( A ( q start_POSTSUPERSCRIPT italic_W end_POSTSUPERSCRIPT start_POSTSUBSCRIPT italic_i , italic_j end_POSTSUBSCRIPT ) ) , italic_λ start_POSTSUBSCRIPT italic_m end_POSTSUBSCRIPT ( A ( q start_POSTSUPERSCRIPT italic_E end_POSTSUPERSCRIPT start_POSTSUBSCRIPT italic_i - 1 , italic_j end_POSTSUBSCRIPT ) ) , 0 } , end_CELL end_ROW start_ROW start_CELL italic_b start_POSTSUBSCRIPT italic_i - 1 / 2 , italic_j end_POSTSUBSCRIPT start_POSTSUPERSCRIPT - end_POSTSUPERSCRIPT end_CELL start_CELL := end_CELL start_CELL roman_min { italic_λ start_POSTSUBSCRIPT 1 end_POSTSUBSCRIPT ( B ( q start_POSTSUPERSCRIPT italic_S end_POSTSUPERSCRIPT start_POSTSUBSCRIPT italic_i , italic_j end_POSTSUBSCRIPT ) ) , italic_λ start_POSTSUBSCRIPT italic_m end_POSTSUBSCRIPT ( B ( q start_POSTSUPERSCRIPT italic_N end_POSTSUPERSCRIPT start_POSTSUBSCRIPT italic_i - 1 , italic_j end_POSTSUBSCRIPT ) ) , 0 } , end_CELL end_ROW end_ARRAY (39)

where, λ1<λ2<<λmsubscript𝜆1subscript𝜆2subscript𝜆𝑚\lambda_{1}<\lambda_{2}<\cdots<\lambda_{m}italic_λ start_POSTSUBSCRIPT 1 end_POSTSUBSCRIPT < italic_λ start_POSTSUBSCRIPT 2 end_POSTSUBSCRIPT < ⋯ < italic_λ start_POSTSUBSCRIPT italic_m end_POSTSUBSCRIPT are the m𝑚mitalic_m eigenvalues of the corresponding Jacobians, A:=fqassignAfq\textbf{A}:=\frac{\partial\textbf{f}}{\partial\textbf{q}}A := divide start_ARG ∂ f end_ARG start_ARG ∂ q end_ARG and B:=gqassignBgq\textbf{B}:=\frac{\partial\textbf{g}}{\partial\textbf{q}}B := divide start_ARG ∂ g end_ARG start_ARG ∂ q end_ARG, and the point values of linear piecewise reconstruction are given by

qi,jE:=Qi,jn+Δx2(qx)i,jnqi,jN:=Qi,jn+Δy2(qy)i,jn,qi,jW:=Qi,jnΔx2(qx)i,jnqi,jS:=Qi,jnΔy2(qy)i,jn,assignsubscriptsuperscriptq𝐸𝑖𝑗superscriptsubscriptQ𝑖𝑗𝑛Δ𝑥2subscriptsuperscriptsubscriptq𝑥𝑛𝑖𝑗assignsubscriptsuperscriptq𝑁𝑖𝑗superscriptsubscriptQ𝑖𝑗𝑛Δ𝑦2subscriptsuperscriptsubscriptq𝑦𝑛𝑖𝑗assignsubscriptsuperscriptq𝑊𝑖𝑗superscriptsubscriptQ𝑖𝑗𝑛Δ𝑥2subscriptsuperscriptsubscriptq𝑥𝑛𝑖𝑗assignsubscriptsuperscriptq𝑆𝑖𝑗superscriptsubscriptQ𝑖𝑗𝑛Δ𝑦2subscriptsuperscriptsubscriptq𝑦𝑛𝑖𝑗\begin{array}[]{cc}\textbf{q}^{E}_{i,j}:=\textbf{Q}_{i,j}^{n}+\frac{\Delta x}{% 2}(\textbf{q}_{x})^{n}_{i,j}&\qquad\textbf{q}^{N}_{i,j}:=\textbf{Q}_{i,j}^{n}+% \frac{\Delta y}{2}(\textbf{q}_{y})^{n}_{i,j},\\ \textbf{q}^{W}_{i,j}:=\textbf{Q}_{i,j}^{n}-\frac{\Delta x}{2}(\textbf{q}_{x})^% {n}_{i,j}&\qquad\textbf{q}^{S}_{i,j}:=\textbf{Q}_{i,j}^{n}-\frac{\Delta y}{2}(% \textbf{q}_{y})^{n}_{i,j},\\ \end{array}start_ARRAY start_ROW start_CELL q start_POSTSUPERSCRIPT italic_E end_POSTSUPERSCRIPT start_POSTSUBSCRIPT italic_i , italic_j end_POSTSUBSCRIPT := Q start_POSTSUBSCRIPT italic_i , italic_j end_POSTSUBSCRIPT start_POSTSUPERSCRIPT italic_n end_POSTSUPERSCRIPT + divide start_ARG roman_Δ italic_x end_ARG start_ARG 2 end_ARG ( q start_POSTSUBSCRIPT italic_x end_POSTSUBSCRIPT ) start_POSTSUPERSCRIPT italic_n end_POSTSUPERSCRIPT start_POSTSUBSCRIPT italic_i , italic_j end_POSTSUBSCRIPT end_CELL start_CELL q start_POSTSUPERSCRIPT italic_N end_POSTSUPERSCRIPT start_POSTSUBSCRIPT italic_i , italic_j end_POSTSUBSCRIPT := Q start_POSTSUBSCRIPT italic_i , italic_j end_POSTSUBSCRIPT start_POSTSUPERSCRIPT italic_n end_POSTSUPERSCRIPT + divide start_ARG roman_Δ italic_y end_ARG start_ARG 2 end_ARG ( q start_POSTSUBSCRIPT italic_y end_POSTSUBSCRIPT ) start_POSTSUPERSCRIPT italic_n end_POSTSUPERSCRIPT start_POSTSUBSCRIPT italic_i , italic_j end_POSTSUBSCRIPT , end_CELL end_ROW start_ROW start_CELL q start_POSTSUPERSCRIPT italic_W end_POSTSUPERSCRIPT start_POSTSUBSCRIPT italic_i , italic_j end_POSTSUBSCRIPT := Q start_POSTSUBSCRIPT italic_i , italic_j end_POSTSUBSCRIPT start_POSTSUPERSCRIPT italic_n end_POSTSUPERSCRIPT - divide start_ARG roman_Δ italic_x end_ARG start_ARG 2 end_ARG ( q start_POSTSUBSCRIPT italic_x end_POSTSUBSCRIPT ) start_POSTSUPERSCRIPT italic_n end_POSTSUPERSCRIPT start_POSTSUBSCRIPT italic_i , italic_j end_POSTSUBSCRIPT end_CELL start_CELL q start_POSTSUPERSCRIPT italic_S end_POSTSUPERSCRIPT start_POSTSUBSCRIPT italic_i , italic_j end_POSTSUBSCRIPT := Q start_POSTSUBSCRIPT italic_i , italic_j end_POSTSUBSCRIPT start_POSTSUPERSCRIPT italic_n end_POSTSUPERSCRIPT - divide start_ARG roman_Δ italic_y end_ARG start_ARG 2 end_ARG ( q start_POSTSUBSCRIPT italic_y end_POSTSUBSCRIPT ) start_POSTSUPERSCRIPT italic_n end_POSTSUPERSCRIPT start_POSTSUBSCRIPT italic_i , italic_j end_POSTSUBSCRIPT , end_CELL end_ROW end_ARRAY (40)

where again the numerical derivatives are calculated using flux limiters.

Similarly to the one-dimensional case, we call qi1/2,jxintsubscriptsuperscriptq𝑥𝑖𝑛𝑡𝑖12𝑗\textbf{q}^{x-int}_{i-1/2,j}q start_POSTSUPERSCRIPT italic_x - italic_i italic_n italic_t end_POSTSUPERSCRIPT start_POSTSUBSCRIPT italic_i - 1 / 2 , italic_j end_POSTSUBSCRIPT and qi,j1/2yintsubscriptsuperscriptq𝑦𝑖𝑛𝑡𝑖𝑗12\textbf{q}^{y-int}_{i,j-1/2}q start_POSTSUPERSCRIPT italic_y - italic_i italic_n italic_t end_POSTSUPERSCRIPT start_POSTSUBSCRIPT italic_i , italic_j - 1 / 2 end_POSTSUBSCRIPT the dissipation correction terms that are given by

qi1/2,jxint=minmod(qi,jNWwi1/2,jintai1/2,j+ai1/2,j,wi1/2,jintqi1,jNEai1/2,j+ai1/2,j,qi,jSWwi1/2,jintai1/2,j+ai1/2,j,wi1/2,jintqi1,jSEai1/2,j+ai1/2,j),subscriptsuperscriptq𝑥𝑖𝑛𝑡𝑖12𝑗𝑚𝑖𝑛𝑚𝑜𝑑subscriptsuperscriptq𝑁𝑊𝑖𝑗subscriptsuperscriptw𝑖𝑛𝑡𝑖12𝑗subscriptsuperscript𝑎𝑖12𝑗subscriptsuperscript𝑎𝑖12𝑗subscriptsuperscriptw𝑖𝑛𝑡𝑖12𝑗subscriptsuperscriptq𝑁𝐸𝑖1𝑗subscriptsuperscript𝑎𝑖12𝑗subscriptsuperscript𝑎𝑖12𝑗subscriptsuperscriptq𝑆𝑊𝑖𝑗subscriptsuperscriptw𝑖𝑛𝑡𝑖12𝑗subscriptsuperscript𝑎𝑖12𝑗subscriptsuperscript𝑎𝑖12𝑗subscriptsuperscript𝑤𝑖𝑛𝑡𝑖12𝑗subscriptsuperscriptq𝑆𝐸𝑖1𝑗subscriptsuperscript𝑎𝑖12𝑗subscriptsuperscript𝑎𝑖12𝑗\begin{split}\textbf{q}^{x-int}_{i-1/2,j}=minmod&\left(\right.\frac{\textbf{q}% ^{NW}_{i,j}-\textbf{w}^{int}_{i-1/2,j}}{a^{+}_{i-1/2,j}-a^{-}_{i-1/2,j}},\frac% {\textbf{w}^{int}_{i-1/2,j}-\textbf{q}^{NE}_{i-1,j}}{a^{+}_{i-1/2,j}-a^{-}_{i-% 1/2,j}}\\ &\qquad,\left.\frac{\textbf{q}^{SW}_{i,j}-\textbf{w}^{int}_{i-1/2,j}}{a^{+}_{i% -1/2,j}-a^{-}_{i-1/2,j}},\frac{w^{int}_{i-1/2,j}-\textbf{q}^{SE}_{i-1,j}}{a^{+% }_{i-1/2,j}-a^{-}_{i-1/2,j}}\right),\\ \end{split}start_ROW start_CELL q start_POSTSUPERSCRIPT italic_x - italic_i italic_n italic_t end_POSTSUPERSCRIPT start_POSTSUBSCRIPT italic_i - 1 / 2 , italic_j end_POSTSUBSCRIPT = italic_m italic_i italic_n italic_m italic_o italic_d end_CELL start_CELL ( divide start_ARG q start_POSTSUPERSCRIPT italic_N italic_W end_POSTSUPERSCRIPT start_POSTSUBSCRIPT italic_i , italic_j end_POSTSUBSCRIPT - w start_POSTSUPERSCRIPT italic_i italic_n italic_t end_POSTSUPERSCRIPT start_POSTSUBSCRIPT italic_i - 1 / 2 , italic_j end_POSTSUBSCRIPT end_ARG start_ARG italic_a start_POSTSUPERSCRIPT + end_POSTSUPERSCRIPT start_POSTSUBSCRIPT italic_i - 1 / 2 , italic_j end_POSTSUBSCRIPT - italic_a start_POSTSUPERSCRIPT - end_POSTSUPERSCRIPT start_POSTSUBSCRIPT italic_i - 1 / 2 , italic_j end_POSTSUBSCRIPT end_ARG , divide start_ARG w start_POSTSUPERSCRIPT italic_i italic_n italic_t end_POSTSUPERSCRIPT start_POSTSUBSCRIPT italic_i - 1 / 2 , italic_j end_POSTSUBSCRIPT - q start_POSTSUPERSCRIPT italic_N italic_E end_POSTSUPERSCRIPT start_POSTSUBSCRIPT italic_i - 1 , italic_j end_POSTSUBSCRIPT end_ARG start_ARG italic_a start_POSTSUPERSCRIPT + end_POSTSUPERSCRIPT start_POSTSUBSCRIPT italic_i - 1 / 2 , italic_j end_POSTSUBSCRIPT - italic_a start_POSTSUPERSCRIPT - end_POSTSUPERSCRIPT start_POSTSUBSCRIPT italic_i - 1 / 2 , italic_j end_POSTSUBSCRIPT end_ARG end_CELL end_ROW start_ROW start_CELL end_CELL start_CELL , divide start_ARG q start_POSTSUPERSCRIPT italic_S italic_W end_POSTSUPERSCRIPT start_POSTSUBSCRIPT italic_i , italic_j end_POSTSUBSCRIPT - w start_POSTSUPERSCRIPT italic_i italic_n italic_t end_POSTSUPERSCRIPT start_POSTSUBSCRIPT italic_i - 1 / 2 , italic_j end_POSTSUBSCRIPT end_ARG start_ARG italic_a start_POSTSUPERSCRIPT + end_POSTSUPERSCRIPT start_POSTSUBSCRIPT italic_i - 1 / 2 , italic_j end_POSTSUBSCRIPT - italic_a start_POSTSUPERSCRIPT - end_POSTSUPERSCRIPT start_POSTSUBSCRIPT italic_i - 1 / 2 , italic_j end_POSTSUBSCRIPT end_ARG , divide start_ARG italic_w start_POSTSUPERSCRIPT italic_i italic_n italic_t end_POSTSUPERSCRIPT start_POSTSUBSCRIPT italic_i - 1 / 2 , italic_j end_POSTSUBSCRIPT - q start_POSTSUPERSCRIPT italic_S italic_E end_POSTSUPERSCRIPT start_POSTSUBSCRIPT italic_i - 1 , italic_j end_POSTSUBSCRIPT end_ARG start_ARG italic_a start_POSTSUPERSCRIPT + end_POSTSUPERSCRIPT start_POSTSUBSCRIPT italic_i - 1 / 2 , italic_j end_POSTSUBSCRIPT - italic_a start_POSTSUPERSCRIPT - end_POSTSUPERSCRIPT start_POSTSUBSCRIPT italic_i - 1 / 2 , italic_j end_POSTSUBSCRIPT end_ARG ) , end_CELL end_ROW (41)
qi,j1/2yint=minmod(qi,jSWwi,j1/2intai,j1/2+ai,j1/2,wi,j1/2intqi,j1NWai1/2,j+ai,j1/2,qi,jSEwi,j1/2intai,j1/2+ai,j1/2,wi,j1/2intqi,j1NEai,j1/2+ai,j1/2),subscriptsuperscriptq𝑦𝑖𝑛𝑡𝑖𝑗12𝑚𝑖𝑛𝑚𝑜𝑑subscriptsuperscriptq𝑆𝑊𝑖𝑗subscriptsuperscriptw𝑖𝑛𝑡𝑖𝑗12subscriptsuperscript𝑎𝑖𝑗12subscriptsuperscript𝑎𝑖𝑗12subscriptsuperscriptw𝑖𝑛𝑡𝑖𝑗12subscriptsuperscriptq𝑁𝑊𝑖𝑗1subscriptsuperscript𝑎𝑖12𝑗subscriptsuperscript𝑎𝑖𝑗12subscriptsuperscriptq𝑆𝐸𝑖𝑗subscriptsuperscriptw𝑖𝑛𝑡𝑖𝑗12subscriptsuperscript𝑎𝑖𝑗12subscriptsuperscript𝑎𝑖𝑗12subscriptsuperscriptw𝑖𝑛𝑡𝑖𝑗12subscriptsuperscriptq𝑁𝐸𝑖𝑗1subscriptsuperscript𝑎𝑖𝑗12subscriptsuperscript𝑎𝑖𝑗12\begin{split}\textbf{q}^{y-int}_{i,j-1/2}=minmod&\left(\right.\frac{\textbf{q}% ^{SW}_{i,j}-\textbf{w}^{int}_{i,j-1/2}}{a^{+}_{i,j-1/2}-a^{-}_{i,j-1/2}},\frac% {\textbf{w}^{int}_{i,j-1/2}-\textbf{q}^{NW}_{i,j-1}}{a^{+}_{i-1/2,j}-a^{-}_{i,% j-1/2}}\\ &\qquad\left.,\frac{\textbf{q}^{SE}_{i,j}-\textbf{w}^{int}_{i,j-1/2}}{a^{+}_{i% ,j-1/2}-a^{-}_{i,j-1/2}},\frac{\textbf{w}^{int}_{i,j-1/2}-\textbf{q}^{NE}_{i,j% -1}}{a^{+}_{i,j-1/2}-a^{-}_{i,j-1/2}}\right),\end{split}start_ROW start_CELL q start_POSTSUPERSCRIPT italic_y - italic_i italic_n italic_t end_POSTSUPERSCRIPT start_POSTSUBSCRIPT italic_i , italic_j - 1 / 2 end_POSTSUBSCRIPT = italic_m italic_i italic_n italic_m italic_o italic_d end_CELL start_CELL ( divide start_ARG q start_POSTSUPERSCRIPT italic_S italic_W end_POSTSUPERSCRIPT start_POSTSUBSCRIPT italic_i , italic_j end_POSTSUBSCRIPT - w start_POSTSUPERSCRIPT italic_i italic_n italic_t end_POSTSUPERSCRIPT start_POSTSUBSCRIPT italic_i , italic_j - 1 / 2 end_POSTSUBSCRIPT end_ARG start_ARG italic_a start_POSTSUPERSCRIPT + end_POSTSUPERSCRIPT start_POSTSUBSCRIPT italic_i , italic_j - 1 / 2 end_POSTSUBSCRIPT - italic_a start_POSTSUPERSCRIPT - end_POSTSUPERSCRIPT start_POSTSUBSCRIPT italic_i , italic_j - 1 / 2 end_POSTSUBSCRIPT end_ARG , divide start_ARG w start_POSTSUPERSCRIPT italic_i italic_n italic_t end_POSTSUPERSCRIPT start_POSTSUBSCRIPT italic_i , italic_j - 1 / 2 end_POSTSUBSCRIPT - q start_POSTSUPERSCRIPT italic_N italic_W end_POSTSUPERSCRIPT start_POSTSUBSCRIPT italic_i , italic_j - 1 end_POSTSUBSCRIPT end_ARG start_ARG italic_a start_POSTSUPERSCRIPT + end_POSTSUPERSCRIPT start_POSTSUBSCRIPT italic_i - 1 / 2 , italic_j end_POSTSUBSCRIPT - italic_a start_POSTSUPERSCRIPT - end_POSTSUPERSCRIPT start_POSTSUBSCRIPT italic_i , italic_j - 1 / 2 end_POSTSUBSCRIPT end_ARG end_CELL end_ROW start_ROW start_CELL end_CELL start_CELL , divide start_ARG q start_POSTSUPERSCRIPT italic_S italic_E end_POSTSUPERSCRIPT start_POSTSUBSCRIPT italic_i , italic_j end_POSTSUBSCRIPT - w start_POSTSUPERSCRIPT italic_i italic_n italic_t end_POSTSUPERSCRIPT start_POSTSUBSCRIPT italic_i , italic_j - 1 / 2 end_POSTSUBSCRIPT end_ARG start_ARG italic_a start_POSTSUPERSCRIPT + end_POSTSUPERSCRIPT start_POSTSUBSCRIPT italic_i , italic_j - 1 / 2 end_POSTSUBSCRIPT - italic_a start_POSTSUPERSCRIPT - end_POSTSUPERSCRIPT start_POSTSUBSCRIPT italic_i , italic_j - 1 / 2 end_POSTSUBSCRIPT end_ARG , divide start_ARG w start_POSTSUPERSCRIPT italic_i italic_n italic_t end_POSTSUPERSCRIPT start_POSTSUBSCRIPT italic_i , italic_j - 1 / 2 end_POSTSUBSCRIPT - q start_POSTSUPERSCRIPT italic_N italic_E end_POSTSUPERSCRIPT start_POSTSUBSCRIPT italic_i , italic_j - 1 end_POSTSUBSCRIPT end_ARG start_ARG italic_a start_POSTSUPERSCRIPT + end_POSTSUPERSCRIPT start_POSTSUBSCRIPT italic_i , italic_j - 1 / 2 end_POSTSUBSCRIPT - italic_a start_POSTSUPERSCRIPT - end_POSTSUPERSCRIPT start_POSTSUBSCRIPT italic_i , italic_j - 1 / 2 end_POSTSUBSCRIPT end_ARG ) , end_CELL end_ROW (42)

where

wi1/2,jint=ai1/2,j+qi,jWai1/2,jqi1,jE[f(qi,jW)f(qi1,jE)]ai1/2,j+ai1/2,j,wi,j1/2int=bi,j1/2+qi,jSbi,j1/2qi,j1N[f(qi,jS)f(qi,j1N)]bi,j1/2+bi,j1/2,formulae-sequencesubscriptsuperscriptw𝑖𝑛𝑡𝑖12𝑗subscriptsuperscript𝑎𝑖12𝑗subscriptsuperscriptq𝑊𝑖𝑗subscriptsuperscript𝑎𝑖12𝑗subscriptsuperscriptq𝐸𝑖1𝑗delimited-[]fsubscriptsuperscriptq𝑊𝑖𝑗fsubscriptsuperscriptq𝐸𝑖1𝑗subscriptsuperscript𝑎𝑖12𝑗subscriptsuperscript𝑎𝑖12𝑗subscriptsuperscriptw𝑖𝑛𝑡𝑖𝑗12subscriptsuperscript𝑏𝑖𝑗12subscriptsuperscriptq𝑆𝑖𝑗subscriptsuperscript𝑏𝑖𝑗12subscriptsuperscriptq𝑁𝑖𝑗1delimited-[]fsubscriptsuperscriptq𝑆𝑖𝑗fsubscriptsuperscriptq𝑁𝑖𝑗1subscriptsuperscript𝑏𝑖𝑗12subscriptsuperscript𝑏𝑖𝑗12\begin{split}\textbf{w}^{int}_{i-1/2,j}&=\frac{a^{+}_{i-1/2,j}\textbf{q}^{W}_{% i,j}-a^{-}_{i-1/2,j}\textbf{q}^{E}_{i-1,j}-[\textbf{f}(\textbf{q}^{W}_{i,j})-% \textbf{f}(\textbf{q}^{E}_{i-1,j})]}{a^{+}_{i-1/2,j}-a^{-}_{i-1/2,j}},\\ \textbf{w}^{int}_{i,j-1/2}&=\frac{b^{+}_{i,j-1/2}\textbf{q}^{S}_{i,j}-b^{-}_{i% ,j-1/2}\textbf{q}^{N}_{i,j-1}-[\textbf{f}(\textbf{q}^{S}_{i,j})-\textbf{f}(% \textbf{q}^{N}_{i,j-1})]}{b^{+}_{i,j-1/2}-b^{-}_{i,j-1/2}},\end{split}start_ROW start_CELL w start_POSTSUPERSCRIPT italic_i italic_n italic_t end_POSTSUPERSCRIPT start_POSTSUBSCRIPT italic_i - 1 / 2 , italic_j end_POSTSUBSCRIPT end_CELL start_CELL = divide start_ARG italic_a start_POSTSUPERSCRIPT + end_POSTSUPERSCRIPT start_POSTSUBSCRIPT italic_i - 1 / 2 , italic_j end_POSTSUBSCRIPT q start_POSTSUPERSCRIPT italic_W end_POSTSUPERSCRIPT start_POSTSUBSCRIPT italic_i , italic_j end_POSTSUBSCRIPT - italic_a start_POSTSUPERSCRIPT - end_POSTSUPERSCRIPT start_POSTSUBSCRIPT italic_i - 1 / 2 , italic_j end_POSTSUBSCRIPT q start_POSTSUPERSCRIPT italic_E end_POSTSUPERSCRIPT start_POSTSUBSCRIPT italic_i - 1 , italic_j end_POSTSUBSCRIPT - [ f ( q start_POSTSUPERSCRIPT italic_W end_POSTSUPERSCRIPT start_POSTSUBSCRIPT italic_i , italic_j end_POSTSUBSCRIPT ) - f ( q start_POSTSUPERSCRIPT italic_E end_POSTSUPERSCRIPT start_POSTSUBSCRIPT italic_i - 1 , italic_j end_POSTSUBSCRIPT ) ] end_ARG start_ARG italic_a start_POSTSUPERSCRIPT + end_POSTSUPERSCRIPT start_POSTSUBSCRIPT italic_i - 1 / 2 , italic_j end_POSTSUBSCRIPT - italic_a start_POSTSUPERSCRIPT - end_POSTSUPERSCRIPT start_POSTSUBSCRIPT italic_i - 1 / 2 , italic_j end_POSTSUBSCRIPT end_ARG , end_CELL end_ROW start_ROW start_CELL w start_POSTSUPERSCRIPT italic_i italic_n italic_t end_POSTSUPERSCRIPT start_POSTSUBSCRIPT italic_i , italic_j - 1 / 2 end_POSTSUBSCRIPT end_CELL start_CELL = divide start_ARG italic_b start_POSTSUPERSCRIPT + end_POSTSUPERSCRIPT start_POSTSUBSCRIPT italic_i , italic_j - 1 / 2 end_POSTSUBSCRIPT q start_POSTSUPERSCRIPT italic_S end_POSTSUPERSCRIPT start_POSTSUBSCRIPT italic_i , italic_j end_POSTSUBSCRIPT - italic_b start_POSTSUPERSCRIPT - end_POSTSUPERSCRIPT start_POSTSUBSCRIPT italic_i , italic_j - 1 / 2 end_POSTSUBSCRIPT q start_POSTSUPERSCRIPT italic_N end_POSTSUPERSCRIPT start_POSTSUBSCRIPT italic_i , italic_j - 1 end_POSTSUBSCRIPT - [ f ( q start_POSTSUPERSCRIPT italic_S end_POSTSUPERSCRIPT start_POSTSUBSCRIPT italic_i , italic_j end_POSTSUBSCRIPT ) - f ( q start_POSTSUPERSCRIPT italic_N end_POSTSUPERSCRIPT start_POSTSUBSCRIPT italic_i , italic_j - 1 end_POSTSUBSCRIPT ) ] end_ARG start_ARG italic_b start_POSTSUPERSCRIPT + end_POSTSUPERSCRIPT start_POSTSUBSCRIPT italic_i , italic_j - 1 / 2 end_POSTSUBSCRIPT - italic_b start_POSTSUPERSCRIPT - end_POSTSUPERSCRIPT start_POSTSUBSCRIPT italic_i , italic_j - 1 / 2 end_POSTSUBSCRIPT end_ARG , end_CELL end_ROW (43)

and qi,jNEsubscriptsuperscriptq𝑁𝐸𝑖𝑗\textbf{q}^{NE}_{i,j}q start_POSTSUPERSCRIPT italic_N italic_E end_POSTSUPERSCRIPT start_POSTSUBSCRIPT italic_i , italic_j end_POSTSUBSCRIPT, qi,jNWsubscriptsuperscriptq𝑁𝑊𝑖𝑗\textbf{q}^{NW}_{i,j}q start_POSTSUPERSCRIPT italic_N italic_W end_POSTSUPERSCRIPT start_POSTSUBSCRIPT italic_i , italic_j end_POSTSUBSCRIPT, qi,jSEsubscriptsuperscriptq𝑆𝐸𝑖𝑗\textbf{q}^{SE}_{i,j}q start_POSTSUPERSCRIPT italic_S italic_E end_POSTSUPERSCRIPT start_POSTSUBSCRIPT italic_i , italic_j end_POSTSUBSCRIPT, qi,jSWsubscriptsuperscriptq𝑆𝑊𝑖𝑗\textbf{q}^{SW}_{i,j}q start_POSTSUPERSCRIPT italic_S italic_W end_POSTSUPERSCRIPT start_POSTSUBSCRIPT italic_i , italic_j end_POSTSUBSCRIPT are the values of the corresponding corner points of the linear reconstruction by parts in cell (i,j)𝑖𝑗(i,j)( italic_i , italic_j ) given by

qi,jNE:=Qi,jn+Δx2(qx)i,jn+Δy2(qy)i,jn,qi,jSE:=Qi,jn+Δx2(qx)i,jnΔy2(qy)i,jn,qi,jNW:=Qi,jnΔx2(qx)i,jn+Δy2(qx)i,jn,qi,jSW:=Qi,jnΔx2(qx)i,jnΔy2(qy)i,jn.assignsubscriptsuperscriptq𝑁𝐸𝑖𝑗superscriptsubscriptQ𝑖𝑗𝑛Δ𝑥2subscriptsuperscriptsubscriptq𝑥𝑛𝑖𝑗Δ𝑦2subscriptsuperscriptsubscriptq𝑦𝑛𝑖𝑗assignsubscriptsuperscriptq𝑆𝐸𝑖𝑗superscriptsubscriptQ𝑖𝑗𝑛Δ𝑥2subscriptsuperscriptsubscriptq𝑥𝑛𝑖𝑗Δ𝑦2subscriptsuperscriptsubscriptq𝑦𝑛𝑖𝑗assignsubscriptsuperscriptq𝑁𝑊𝑖𝑗superscriptsubscriptQ𝑖𝑗𝑛Δ𝑥2subscriptsuperscriptsubscriptq𝑥𝑛𝑖𝑗Δ𝑦2subscriptsuperscriptsubscriptq𝑥𝑛𝑖𝑗assignsubscriptsuperscriptq𝑆𝑊𝑖𝑗superscriptsubscriptQ𝑖𝑗𝑛Δ𝑥2subscriptsuperscriptsubscriptq𝑥𝑛𝑖𝑗Δ𝑦2subscriptsuperscriptsubscriptq𝑦𝑛𝑖𝑗\begin{array}[]{cc}\textbf{q}^{NE}_{i,j}:=\textbf{Q}_{i,j}^{n}+\frac{\Delta x}% {2}(\textbf{q}_{x})^{n}_{i,j}+\frac{\Delta y}{2}(\textbf{q}_{y})^{n}_{i,j},&% \qquad\textbf{q}^{SE}_{i,j}:=\textbf{Q}_{i,j}^{n}+\frac{\Delta x}{2}(\textbf{q% }_{x})^{n}_{i,j}-\frac{\Delta y}{2}(\textbf{q}_{y})^{n}_{i,j},\\ \textbf{q}^{NW}_{i,j}:=\textbf{Q}_{i,j}^{n}-\frac{\Delta x}{2}(\textbf{q}_{x})% ^{n}_{i,j}+\frac{\Delta y}{2}(\textbf{q}_{x})^{n}_{i,j},&\qquad\textbf{q}^{SW}% _{i,j}:=\textbf{Q}_{i,j}^{n}-\frac{\Delta x}{2}(\textbf{q}_{x})^{n}_{i,j}-% \frac{\Delta y}{2}(\textbf{q}_{y})^{n}_{i,j}.\\ \end{array}start_ARRAY start_ROW start_CELL q start_POSTSUPERSCRIPT italic_N italic_E end_POSTSUPERSCRIPT start_POSTSUBSCRIPT italic_i , italic_j end_POSTSUBSCRIPT := Q start_POSTSUBSCRIPT italic_i , italic_j end_POSTSUBSCRIPT start_POSTSUPERSCRIPT italic_n end_POSTSUPERSCRIPT + divide start_ARG roman_Δ italic_x end_ARG start_ARG 2 end_ARG ( q start_POSTSUBSCRIPT italic_x end_POSTSUBSCRIPT ) start_POSTSUPERSCRIPT italic_n end_POSTSUPERSCRIPT start_POSTSUBSCRIPT italic_i , italic_j end_POSTSUBSCRIPT + divide start_ARG roman_Δ italic_y end_ARG start_ARG 2 end_ARG ( q start_POSTSUBSCRIPT italic_y end_POSTSUBSCRIPT ) start_POSTSUPERSCRIPT italic_n end_POSTSUPERSCRIPT start_POSTSUBSCRIPT italic_i , italic_j end_POSTSUBSCRIPT , end_CELL start_CELL q start_POSTSUPERSCRIPT italic_S italic_E end_POSTSUPERSCRIPT start_POSTSUBSCRIPT italic_i , italic_j end_POSTSUBSCRIPT := Q start_POSTSUBSCRIPT italic_i , italic_j end_POSTSUBSCRIPT start_POSTSUPERSCRIPT italic_n end_POSTSUPERSCRIPT + divide start_ARG roman_Δ italic_x end_ARG start_ARG 2 end_ARG ( q start_POSTSUBSCRIPT italic_x end_POSTSUBSCRIPT ) start_POSTSUPERSCRIPT italic_n end_POSTSUPERSCRIPT start_POSTSUBSCRIPT italic_i , italic_j end_POSTSUBSCRIPT - divide start_ARG roman_Δ italic_y end_ARG start_ARG 2 end_ARG ( q start_POSTSUBSCRIPT italic_y end_POSTSUBSCRIPT ) start_POSTSUPERSCRIPT italic_n end_POSTSUPERSCRIPT start_POSTSUBSCRIPT italic_i , italic_j end_POSTSUBSCRIPT , end_CELL end_ROW start_ROW start_CELL q start_POSTSUPERSCRIPT italic_N italic_W end_POSTSUPERSCRIPT start_POSTSUBSCRIPT italic_i , italic_j end_POSTSUBSCRIPT := Q start_POSTSUBSCRIPT italic_i , italic_j end_POSTSUBSCRIPT start_POSTSUPERSCRIPT italic_n end_POSTSUPERSCRIPT - divide start_ARG roman_Δ italic_x end_ARG start_ARG 2 end_ARG ( q start_POSTSUBSCRIPT italic_x end_POSTSUBSCRIPT ) start_POSTSUPERSCRIPT italic_n end_POSTSUPERSCRIPT start_POSTSUBSCRIPT italic_i , italic_j end_POSTSUBSCRIPT + divide start_ARG roman_Δ italic_y end_ARG start_ARG 2 end_ARG ( q start_POSTSUBSCRIPT italic_x end_POSTSUBSCRIPT ) start_POSTSUPERSCRIPT italic_n end_POSTSUPERSCRIPT start_POSTSUBSCRIPT italic_i , italic_j end_POSTSUBSCRIPT , end_CELL start_CELL q start_POSTSUPERSCRIPT italic_S italic_W end_POSTSUPERSCRIPT start_POSTSUBSCRIPT italic_i , italic_j end_POSTSUBSCRIPT := Q start_POSTSUBSCRIPT italic_i , italic_j end_POSTSUBSCRIPT start_POSTSUPERSCRIPT italic_n end_POSTSUPERSCRIPT - divide start_ARG roman_Δ italic_x end_ARG start_ARG 2 end_ARG ( q start_POSTSUBSCRIPT italic_x end_POSTSUBSCRIPT ) start_POSTSUPERSCRIPT italic_n end_POSTSUPERSCRIPT start_POSTSUBSCRIPT italic_i , italic_j end_POSTSUBSCRIPT - divide start_ARG roman_Δ italic_y end_ARG start_ARG 2 end_ARG ( q start_POSTSUBSCRIPT italic_y end_POSTSUBSCRIPT ) start_POSTSUPERSCRIPT italic_n end_POSTSUPERSCRIPT start_POSTSUBSCRIPT italic_i , italic_j end_POSTSUBSCRIPT . end_CELL end_ROW end_ARRAY (44)

4 Numerical Results

In this section, we introduce the numerical seismic test cases utilized to assess the performance and competitiveness of the Godunov-type finite volume methods presented earlier, particularly in comparison with the staggered finite difference method. Throughout these examples, we employ reflective or solid wall boundary conditions at the top and bottom and extend the domain on both sides to prevent reflections at these boundaries from interfering with the receivers. This approach allows us to avoid the use of absorbing boundary conditions, which are not the primary focus of our study.

4.1 Test case 1 - Heterogeneous parallel velocity model (Synthetic test case).

In the first test case, our domain spans from x0=0subscript𝑥00x_{0}=0italic_x start_POSTSUBSCRIPT 0 end_POSTSUBSCRIPT = 0 to x1=1000msubscript𝑥11000𝑚x_{1}=1000mitalic_x start_POSTSUBSCRIPT 1 end_POSTSUBSCRIPT = 1000 italic_m and y0=0subscript𝑦00y_{0}=0italic_y start_POSTSUBSCRIPT 0 end_POSTSUBSCRIPT = 0 to y1=1000msubscript𝑦11000𝑚y_{1}=1000mitalic_y start_POSTSUBSCRIPT 1 end_POSTSUBSCRIPT = 1000 italic_m, featuring a velocity profile as depicted in Figure 3. This profile ranges from velocities of 1.5 km/s to 5.5 km/s. We utilize a Ricker wavelet given by:

g(t)=(12π2fM2(tt0)2)exp(π2fM2(tt0)2),𝑔𝑡12superscript𝜋2superscriptsubscript𝑓𝑀2superscript𝑡subscript𝑡02superscript𝜋2superscriptsubscript𝑓𝑀2superscript𝑡subscript𝑡02g(t)=(1-2\pi^{2}f_{M}^{2}(t-t_{0})^{2})\exp(\pi^{2}f_{M}^{2}(t-t_{0})^{2}),italic_g ( italic_t ) = ( 1 - 2 italic_π start_POSTSUPERSCRIPT 2 end_POSTSUPERSCRIPT italic_f start_POSTSUBSCRIPT italic_M end_POSTSUBSCRIPT start_POSTSUPERSCRIPT 2 end_POSTSUPERSCRIPT ( italic_t - italic_t start_POSTSUBSCRIPT 0 end_POSTSUBSCRIPT ) start_POSTSUPERSCRIPT 2 end_POSTSUPERSCRIPT ) roman_exp ( italic_π start_POSTSUPERSCRIPT 2 end_POSTSUPERSCRIPT italic_f start_POSTSUBSCRIPT italic_M end_POSTSUBSCRIPT start_POSTSUPERSCRIPT 2 end_POSTSUPERSCRIPT ( italic_t - italic_t start_POSTSUBSCRIPT 0 end_POSTSUBSCRIPT ) start_POSTSUPERSCRIPT 2 end_POSTSUPERSCRIPT ) ,

where fM=0.015subscript𝑓𝑀0.015f_{M}=0.015italic_f start_POSTSUBSCRIPT italic_M end_POSTSUBSCRIPT = 0.015 kHz represents the peak frequency and t0=1/fMsubscript𝑡01subscript𝑓𝑀t_{0}=1/f_{M}italic_t start_POSTSUBSCRIPT 0 end_POSTSUBSCRIPT = 1 / italic_f start_POSTSUBSCRIPT italic_M end_POSTSUBSCRIPT. The seismic source is positioned at the domain’s center, at a depth of 20m20𝑚20m20 italic_m, while receivers are placed along the x𝑥xitalic_x-axis at a depth of 20m20𝑚20m20 italic_m.

In Figure 3, we illustrate the velocity profile along with the positions of the seismic source (highlighted in red) and receivers (depicted in green, spaced every 50m). Additionally, in Figure 4, we present a reference solution of the field σ(x,y)𝜎𝑥𝑦\sigma(x,y)italic_σ ( italic_x , italic_y ) at t=0.3s𝑡0.3𝑠t=0.3sitalic_t = 0.3 italic_s in the top row and the reference seismogram in the bottom row at t=1s𝑡1𝑠t=1sitalic_t = 1 italic_s using a finite difference method of order 20 implemented with the Devito package (Louboutin et al. 2019, Luporini et al. 2020). This solution was computed on a grid with 6401 points in the x𝑥xitalic_x direction and 6401 points in the y𝑦yitalic_y direction.

\begin{overpic}[width=156.49014pt,height=128.0374pt]{fig3.png} \end{overpic}
Figure 3: - Test case 1. Heterogeneous parallel velocity model.
\begin{overpic}[width=156.49014pt,height=128.0374pt]{fig4_1} \end{overpic}
\begin{overpic}[width=142.26378pt,height=128.0374pt]{fig4_2} \end{overpic}
\begin{overpic}[width=156.49014pt,height=128.0374pt]{fig4_3} \end{overpic}
\begin{overpic}[width=142.26378pt,height=128.0374pt]{fig4_4} \end{overpic}
Figure 4: - Test case 1. Reference solution for the field σ(x,y)𝜎𝑥𝑦\sigma(x,y)italic_σ ( italic_x , italic_y ) (Top row) and reference seismogram (Bottom row) computed using a finite difference method of order 20 (DF20) implemented with the Devito package. The numerical grid consisted of 6401 points in both x𝑥xitalic_x and y𝑦yitalic_y direction, with a spatial resolution of Δx=Δy=0.15625mΔ𝑥Δ𝑦0.15625𝑚\Delta x=\Delta y=0.15625mroman_Δ italic_x = roman_Δ italic_y = 0.15625 italic_m. The Courant-Friedrichs-Lewy (CFL) number was set to 0.250.250.250.25

Figure 5 displays the absolute differences between the reference solution and the solutions obtained using the DF2, DF8, DSWPA, FWPA, and CUP methods. These differences are shown for grid spacing of Δx=Δy=5mΔ𝑥Δ𝑦5𝑚\Delta x=\Delta y=5mroman_Δ italic_x = roman_Δ italic_y = 5 italic_m, at time t=0.3s𝑡0.3𝑠t=0.3sitalic_t = 0.3 italic_s. Figure 6 shows the comparison with the reference solution, calculated using a finite difference method of order 20, the cut was made at x=330m𝑥330𝑚x=330mitalic_x = 330 italic_m. It’s noticeable that the finite difference methods DF2 and DF8 exhibit slight delays compared to the reference solution and the implemented finite volume methods, indicating a slightly higher dispersion. Conversely, the finite volume methods show greater diffusion, as evidenced by Figure 6, where the max-norm errors are higher for finite volume methods, while the 1-norm errors are lower.

\begin{overpic}[width=85.35826pt,height=85.35826pt]{fig5_1} \end{overpic}
\begin{overpic}[width=85.35826pt,height=85.35826pt]{fig5_2} \end{overpic}
\begin{overpic}[width=85.35826pt,height=85.35826pt]{fig5_3} \end{overpic}
\begin{overpic}[width=85.35826pt,height=85.35826pt]{fig5_4} \end{overpic}
\begin{overpic}[width=99.58464pt,height=85.35826pt]{fig5_5} \end{overpic}
Figure 5: - Test case 1. Absolute value of the difference between the reference solution and the solution obtained by implementing the DF2, DF8, DSWPA, FWPA, and CUP methods, using Δx=Δy=5mΔ𝑥Δ𝑦5𝑚\Delta x=\Delta y=5mroman_Δ italic_x = roman_Δ italic_y = 5 italic_m at time t=0.3s𝑡0.3𝑠t=0.3sitalic_t = 0.3 italic_s.

Similarly, Figure 7 depicts the absolute differences between the reference seismogram and those obtained using the DF2, DF8, DSWPA, FWPA, and CUP methods for the same grid spacing and time t=1s𝑡1𝑠t=1sitalic_t = 1 italic_s. Figure 8 shows the comparison with the reference solution calculated using a finite difference method of order 20 using the receiver located at x=330m𝑥330𝑚x=330mitalic_x = 330 italic_m. Here, the dispersion introduced by DF2 and DF8 is more apparent, highlighting the higher diffusivity of finite volume methods compared to finite difference methods.

Furthermore, Figure 9 (left) illustrates the computational time required by each method to obtain the seismogram for test case 1. As expected, finite volume methods are more computationally expensive than finite difference methods. Specifically, the computational time required by finite volume methods DFWPA and FWPA on a grid with Δx=ΔyΔ𝑥Δ𝑦\Delta x=\Delta yroman_Δ italic_x = roman_Δ italic_y is approximately equivalent to that required by the finite difference method of order 8 on a grid with Δx/2=Δy/2Δ𝑥2Δ𝑦2\Delta x/2=\Delta y/2roman_Δ italic_x / 2 = roman_Δ italic_y / 2. Figures 9 (center and right) show the error obtained by each method in 1-norm and max-norm versus the computational time required. It’s evident that in 1-norm, the time required by the DF8 method to achieve a certain error is comparable to that required by DSWPA and FWPA for test case 1.

In Figures 10 and 11 we introduced the parameter λ𝜆\lambdaitalic_λ, representing the percentage decrease in discontinuity in velocity at each layer of the velocity profile presented in this test case, in these figures we show the relationship between λ𝜆\lambdaitalic_λ (where λ=0𝜆0\lambda=0italic_λ = 0% corresponds to the original velocity profile with increments of 1km/s at each interface) and the error of each method in both the 1-norm and the max-norm for fixed ΔxΔ𝑥\Delta xroman_Δ italic_x and ΔyΔ𝑦\Delta yroman_Δ italic_y. We observe that as λ𝜆\lambdaitalic_λ increases, indicating a reduction in the discontinuity at each interface, the error obtained with the finite difference method is significantly diminished, This shows that the greater the jump in the discontinuity in the velocity profile, the greater the error introduced by finite difference method.

\begin{overpic}[width=156.49014pt,height=128.0374pt]{fig6_1} \end{overpic}
\begin{overpic}[width=156.49014pt,height=128.0374pt]{fig6_2} \end{overpic}
\begin{overpic}[width=156.49014pt,height=128.0374pt]{fig6_3} \end{overpic}
\begin{overpic}[width=156.49014pt,height=128.0374pt]{fig6_4} \end{overpic}
Figure 6: - Test case 1. At the top row, a comparison with the reference solution is presented for the DF2, DF8, DSWPA, FWPA, and CUP methods using Δx=Δy=5mΔ𝑥Δ𝑦5𝑚\Delta x=\Delta y=5mroman_Δ italic_x = roman_Δ italic_y = 5 italic_m (left) and Δx=Δy=2.5mΔ𝑥Δ𝑦2.5𝑚\Delta x=\Delta y=2.5mroman_Δ italic_x = roman_Δ italic_y = 2.5 italic_m (right). At the bottom, log-log plots depict the error versus the grid size for the DF2, DF8, DSWPA, FWPA, and CUP methods using the max-norm (left) and 1-norm (right).
\begin{overpic}[width=85.35826pt,height=85.35826pt]{fig7_1} \end{overpic}
\begin{overpic}[width=85.35826pt,height=85.35826pt]{fig7_2} \end{overpic}
\begin{overpic}[width=85.35826pt,height=85.35826pt]{fig7_3} \end{overpic}
\begin{overpic}[width=85.35826pt,height=85.35826pt]{fig7_4} \end{overpic}
\begin{overpic}[width=99.58464pt,height=85.35826pt]{fig7_5} \end{overpic}
Figure 7: - Test case 1. Absolute difference between the reference seismogram and the seismograms obtained using the DF2, DF8, DSWPA, FWPA, and CUP methods, using a spatial resolution of Δx=Δy=5mΔ𝑥Δ𝑦5𝑚\Delta x=\Delta y=5mroman_Δ italic_x = roman_Δ italic_y = 5 italic_m at time t=1s𝑡1𝑠t=1sitalic_t = 1 italic_s.
\begin{overpic}[width=156.49014pt,height=128.0374pt]{fig8_1} \end{overpic}
\begin{overpic}[width=156.49014pt,height=128.0374pt]{fig8_2} \end{overpic}
\begin{overpic}[width=156.49014pt,height=128.0374pt]{fig8_3} \end{overpic}
\begin{overpic}[width=156.49014pt,height=128.0374pt]{fig8_4} \end{overpic}
Figure 8: - Test case 1. At the top row, a comparison with the reference seismogram is presented for the DF2, DF8, DSWPA, FWPA, and CUP methods using Δx=Δy=5mΔ𝑥Δ𝑦5𝑚\Delta x=\Delta y=5mroman_Δ italic_x = roman_Δ italic_y = 5 italic_m (left) and Δx=Δy=2.5mΔ𝑥Δ𝑦2.5𝑚\Delta x=\Delta y=2.5mroman_Δ italic_x = roman_Δ italic_y = 2.5 italic_m (right). At the bottom, log-log plots depict the error versus the grid size for the same methods using the max-norm (left) and 1-norm (right).
\begin{overpic}[width=99.58464pt,height=85.35826pt]{fig9_1} \end{overpic}
\begin{overpic}[width=99.58464pt,height=85.35826pt]{fig9_2} \end{overpic}
\begin{overpic}[width=99.58464pt,height=85.35826pt]{fig9_3} \end{overpic}
Figure 9: - Test case 1. Plot of the computational time (in seconds) vs. grid size (left), Computational time vs. error in 1-norm for each grid size (center), computational time vs. error in max-norm for each grid size (right), for the methods DF2, DF8, DSWPA, FWPA and CUP, final time t=1s𝑡1𝑠t=1sitalic_t = 1 italic_s.
\begin{overpic}[width=156.49014pt,height=128.0374pt]{fig10_1} \end{overpic}
\begin{overpic}[width=156.49014pt,height=128.0374pt]{fig10_2} \end{overpic}
Figure 10: - Test case 1 (variation in discontinuity). Plot of the error vs. the percentage of decrease in the discontinuity in velocity in each layer from the original velocity profile (λ𝜆\lambdaitalic_λ) for the DF2, DF8, DSWPA, FWPA, and CUP method, with a cutoff at x=330m𝑥330𝑚x=330mitalic_x = 330 italic_m at t=0.3s𝑡0.3𝑠t=0.3sitalic_t = 0.3 italic_s, the Grid spacing is Δx=Δy=10mΔ𝑥Δ𝑦10𝑚\Delta x=\Delta y=10mroman_Δ italic_x = roman_Δ italic_y = 10 italic_m (left) max-norm, (right) 1-norm.
\begin{overpic}[width=156.49014pt,height=128.0374pt]{fig11_1} \end{overpic}
\begin{overpic}[width=156.49014pt,height=128.0374pt]{fig11_2} \end{overpic}
Figure 11: - Test case 1 (variation in discontinuity). Plot of the error vs. the percentage of decrease in the discontinuity in velocity in each layer from the original velocity profile (λ𝜆\lambdaitalic_λ) for the DF2, DF8, DSWPA, FWPA, and CUP method, with a cutoff at x=330m𝑥330𝑚x=330mitalic_x = 330 italic_m at t=0.3s𝑡0.3𝑠t=0.3sitalic_t = 0.3 italic_s, the Grid spacing is Δx=Δy=5mΔ𝑥Δ𝑦5𝑚\Delta x=\Delta y=5mroman_Δ italic_x = roman_Δ italic_y = 5 italic_m (left) max-norm, (right) 1-norm.

4.2 Test case 2 - SEG/EAGE salt body velocity profile.

In this test case, the domain spans from x0=2000subscript𝑥02000x_{0}=2000italic_x start_POSTSUBSCRIPT 0 end_POSTSUBSCRIPT = 2000 to x1=11000msubscript𝑥111000𝑚x_{1}=11000mitalic_x start_POSTSUBSCRIPT 1 end_POSTSUBSCRIPT = 11000 italic_m and y0=0subscript𝑦00y_{0}=0italic_y start_POSTSUBSCRIPT 0 end_POSTSUBSCRIPT = 0 to y1=3000msubscript𝑦13000𝑚y_{1}=3000mitalic_y start_POSTSUBSCRIPT 1 end_POSTSUBSCRIPT = 3000 italic_m, with a velocity profile depicted in Figure 12, with velocities ranging from 1.5km/s to 4.5km/s.

The source was positioned at the middle of the domain at a depth of 40m40𝑚40m40 italic_m, while receivers were situated along the x𝑥xitalic_x axis at a depth of 40m40𝑚40m40 italic_m.

Figure 13 displays the absolute difference between the reference seismogram for test case 2 and the seismogram obtained using the DF2, DF8, DSWPA, FWPA, and CUP methods with Δx=Δy=20Δ𝑥Δ𝑦20\Delta x=\Delta y=20roman_Δ italic_x = roman_Δ italic_y = 20 at t=2s𝑡2𝑠t=2sitalic_t = 2 italic_s. Figure 14 shows the comparison with the reference solution calculated using a finite difference method of order 20 using the receiver located at x=7000m𝑥7000𝑚x=7000mitalic_x = 7000 italic_m at the top of the figure, at left and center we show the log-log plots of the error versus the grid size and in the right of the figure, we show a plot of the computational time versus grid size.

\begin{overpic}[width=284.52756pt,height=85.35826pt]{fig12.png} \end{overpic}
Figure 12: - Test case 2. SEG/EAGE salt body velocity profile.
\begin{overpic}[width=85.35826pt,height=85.35826pt]{fig13_1} \end{overpic}
\begin{overpic}[width=85.35826pt,height=85.35826pt]{fig13_2} \end{overpic}
\begin{overpic}[width=85.35826pt,height=85.35826pt]{fig13_3} \end{overpic}
\begin{overpic}[width=85.35826pt,height=85.35826pt]{fig13_4} \end{overpic}
\begin{overpic}[width=99.58464pt,height=85.35826pt]{fig13_5} \end{overpic}
Figure 13: - Test case 2 (SEG/EAGE). Absolute difference between the reference seismogram and the seismograms obtained using the DF2, DF8, DSWPA, FWPA, and CUP methods. These computations were conducted with a spatial resolution of Δx=Δy=20mΔ𝑥Δ𝑦20𝑚\Delta x=\Delta y=20mroman_Δ italic_x = roman_Δ italic_y = 20 italic_m and a final time t=2s𝑡2𝑠t=2sitalic_t = 2 italic_s.
\begin{overpic}[width=156.49014pt,height=128.0374pt]{fig14_1} \end{overpic}
\begin{overpic}[width=156.49014pt,height=128.0374pt]{fig14_2} \end{overpic}
\begin{overpic}[width=99.58464pt,height=85.35826pt]{fig14_3} \end{overpic}
\begin{overpic}[width=99.58464pt,height=85.35826pt]{fig14_4} \end{overpic}
\begin{overpic}[width=99.58464pt,height=85.35826pt]{fig14_5} \end{overpic}
Figure 14: - Test case 2 (SEG/EAGE). At the top of the figure, a comparison using the receiver located at x=7000m𝑥7000𝑚x=7000mitalic_x = 7000 italic_m is presented for the DF2, DF8, DSWPA, FWPA, and CUP methods using Δx=Δy=20mΔ𝑥Δ𝑦20𝑚\Delta x=\Delta y=20mroman_Δ italic_x = roman_Δ italic_y = 20 italic_m (left) and Δx=Δy=10mΔ𝑥Δ𝑦10𝑚\Delta x=\Delta y=10mroman_Δ italic_x = roman_Δ italic_y = 10 italic_m (right). At the bottom, log-log plots depict the error versus the grid size for the same methods using the max-norm (left) and 1-norm (center). A plot of computational time versus grid size is also provided (right).

4.3 Test case 3 - Marmousi velocity profile.

In this test case, we utilized the Marmousi velocity profile, depicted in Figure 15, originally spanning a horizontal extension of 17km and a depth of 3.5km. Simulations were conducted within a subdomain ranging from x=4000m𝑥4000𝑚x=4000mitalic_x = 4000 italic_m to x=14000m𝑥14000𝑚x=14000mitalic_x = 14000 italic_m, maintaining the same depth as the original profile. The source was positioned at the middle of the domain at a depth of 40m40𝑚40m40 italic_m, while receivers were distributed along the x𝑥xitalic_x axis at the same depth. A frequency of fM=0.005KHzsubscript𝑓𝑀0.005𝐾𝐻𝑧f_{M}=0.005KHzitalic_f start_POSTSUBSCRIPT italic_M end_POSTSUBSCRIPT = 0.005 italic_K italic_H italic_z was employed.

Figure 16 exhibits the absolute difference between the reference seismogram for test 3 and the seismogram obtained using the DF2, DF8, DSWPA, FWPA, and CUP methods with Δx=Δy=20Δ𝑥Δ𝑦20\Delta x=\Delta y=20roman_Δ italic_x = roman_Δ italic_y = 20 at t=2.5s𝑡2.5𝑠t=2.5sitalic_t = 2.5 italic_s. Figure 14 shows the comparison with the reference solution calculated with a finite difference method of order 20 using the receiver located at x=7000m𝑥7000𝑚x=7000mitalic_x = 7000 italic_m at the top of the figure, at left and center we show the log-log plots of the error versus the grid size and in the right of the figure, we show a plot of the computational time versus grid size.

\begin{overpic}[width=284.52756pt,height=85.35826pt]{fig15.png} \end{overpic}
Figure 15: - Test case 3. Marmousi velocity profile.
\begin{overpic}[width=85.35826pt,height=85.35826pt]{fig16_1} \end{overpic}
\begin{overpic}[width=85.35826pt,height=85.35826pt]{fig16_2} \end{overpic}
\begin{overpic}[width=85.35826pt,height=85.35826pt]{fig16_3} \end{overpic}
\begin{overpic}[width=85.35826pt,height=85.35826pt]{fig16_4} \end{overpic}
\begin{overpic}[width=99.58464pt,height=85.35826pt]{fig16_5} \end{overpic}
Figure 16: - Test case 3 (Marmousi). Absolute difference between the reference seismogram and the seismogram obtained through the implementation of the DF2, DF8, DSWPA, FWPA, and CUP methods, using Δx=Δy=20mΔ𝑥Δ𝑦20𝑚\Delta x=\Delta y=20mroman_Δ italic_x = roman_Δ italic_y = 20 italic_m at t=2.5s𝑡2.5𝑠t=2.5sitalic_t = 2.5 italic_s.
\begin{overpic}[width=156.49014pt,height=128.0374pt]{fig17_1} \end{overpic}
\begin{overpic}[width=156.49014pt,height=128.0374pt]{fig17_2} \end{overpic}
\begin{overpic}[width=99.58464pt,height=85.35826pt]{fig17_3} \end{overpic}
\begin{overpic}[width=99.58464pt,height=85.35826pt]{fig17_4} \end{overpic}
\begin{overpic}[width=99.58464pt,height=85.35826pt]{fig17_5} \end{overpic}
Figure 17: - Test case 3 (Marmousi). At the top of the figure, a comparison using the reference receiver located at x=7000𝑥7000x=7000italic_x = 7000m is presented for the DF2, DF8, DSWPA, FWPA, and CUP methods using Δx=Δy=20mΔ𝑥Δ𝑦20𝑚\Delta x=\Delta y=20mroman_Δ italic_x = roman_Δ italic_y = 20 italic_m (left) and Δx=Δy=10mΔ𝑥Δ𝑦10𝑚\Delta x=\Delta y=10mroman_Δ italic_x = roman_Δ italic_y = 10 italic_m (right). At the bottom, log-log plots depict the error versus the grid size for the same methods using the max-norm (left) and 1-norm (center). Additionally, a plot of computational time versus grid size is provided (right).

4.4 Test case 4 - A typical velocity field of Santos Basin.

For the fourth test, we utilized a typical velocity profile from the Santos Basin (as depicted in Figure 18), an expansive oil field covering 352260 square kilometers situated in the Atlantic Ocean, approximately 300 kilometers southeast of Santos, Brazil. Renowned as one of the largest ocean basins in the country, the Santos Basin harbors numerous oil reserve exploration and exploitation sites.

The velocity profile initially spanned a horizontal distance of 70.3 kilometers with a depth of 9.92 kilometers. However, our simulations focused on a subdomain within x=[20000m,50000m]𝑥20000𝑚50000𝑚x=[20000m,50000m]italic_x = [ 20000 italic_m , 50000 italic_m ], covering a horizontal extension of 30 kilometers, and y=[0,8000m]𝑦08000𝑚y=[0,8000m]italic_y = [ 0 , 8000 italic_m ], with a depth of 8 kilometers. The seismic source was positioned at the midpoint of the subdomain, specifically at x=35000m𝑥35000𝑚x=35000mitalic_x = 35000 italic_m and a depth of 32m32𝑚32m32 italic_m. Receivers were aligned along the x𝑥xitalic_x axis at the same depth. We employed a frequency of fM=0.005KHzsubscript𝑓𝑀0.005𝐾𝐻𝑧f_{M}=0.005KHzitalic_f start_POSTSUBSCRIPT italic_M end_POSTSUBSCRIPT = 0.005 italic_K italic_H italic_z.

Figure 19 showcases a reference seismogram at t=5s𝑡5𝑠t=5sitalic_t = 5 italic_s, calculated using a finite difference method of order 20 using devito in a grid with 9601 points in x𝑥xitalic_x and 4001 points in y𝑦yitalic_y. Additionally, Figure 19 presents the plot of the receiver located at x=33350m𝑥33350𝑚x=33350mitalic_x = 33350 italic_m at t=5s𝑡5𝑠t=5sitalic_t = 5 italic_s. Figure 20 illustrates the absolute difference between the reference seismogram for test 4 and the seismogram obtained using the DF2, DF8, DSWPA, FWPA, and CUP methods with Δx=25mΔ𝑥25𝑚\Delta x=25mroman_Δ italic_x = 25 italic_m and Δy=8mΔ𝑦8𝑚\Delta y=8mroman_Δ italic_y = 8 italic_m at t=5s𝑡5𝑠t=5sitalic_t = 5 italic_s. Additionally, it presents a comparison with the reference solution using the receiver located at x=33350m𝑥33350𝑚x=33350mitalic_x = 33350 italic_m.

\begin{overpic}[width=284.52756pt,height=85.35826pt]{fig18.png} \end{overpic}
Figure 18: - Test case 4. A typical velocity field of Santos Basin.
\begin{overpic}[width=156.49014pt,height=128.0374pt]{fig19_1} \end{overpic}
\begin{overpic}[width=142.26378pt,height=128.0374pt]{fig19_2} \end{overpic}
Figure 19: - Test case 4. Reference seismogram of the σ(x,y)𝜎𝑥𝑦\sigma(x,y)italic_σ ( italic_x , italic_y ) field, computed using a DF20 method on a mesh consisting of 9601 points in x𝑥xitalic_x and 4001 in y𝑦yitalic_y directions. The spatial resolution was Δx=3.125mΔ𝑥3.125𝑚\Delta x=3.125mroman_Δ italic_x = 3.125 italic_m and Δy=2mΔ𝑦2𝑚\Delta y=2mroman_Δ italic_y = 2 italic_m, and the simulation was conducted until a final time of t=5s𝑡5𝑠t=5sitalic_t = 5 italic_s, with CFL number set to 0.25
\begin{overpic}[width=85.35826pt,height=85.35826pt]{fig20_1} \end{overpic}
\begin{overpic}[width=85.35826pt,height=85.35826pt]{fig20_2} \end{overpic}
\begin{overpic}[width=85.35826pt,height=85.35826pt]{fig20_3} \end{overpic}
\begin{overpic}[width=85.35826pt,height=85.35826pt]{fig20_4} \end{overpic}
\begin{overpic}[width=99.58464pt,height=85.35826pt]{fig20_5} \end{overpic}
\begin{overpic}[width=156.49014pt,height=128.0374pt]{fig20_6} \end{overpic}
Figure 20: - Test case 4. The first five plots display the absolute difference between the reference seismogram and the seismograms obtained using the DF2, DF8, DSWPA, FWPA, and CUP methods, using a spatial resolution of Δx=25mΔ𝑥25𝑚\Delta x=25mroman_Δ italic_x = 25 italic_m and Δy=16mΔ𝑦16𝑚\Delta y=16mroman_Δ italic_y = 16 italic_m at time t=5s𝑡5𝑠t=5sitalic_t = 5 italic_s. The last plot illustrates the comparison with the reference receiver located at x=33350m𝑥33350𝑚x=33350mitalic_x = 33350 italic_m.

We can conclude from the figures 14, 17 and 20 that when implementing finite volume methods in more realistic scenarios (test cases 2, 3, and 4), the finite difference methods DF2 and DF8 outperform the finite volume methods. Moreover, the finite volume methods require more computational time. These figures highlight that the finite volume methods exhibit greater error compared to the finite difference methods, both in the max-norm and the 1-norm, and necessitate more computational time, aligning with our expectations.

5 Conclusions

In our study, we delve into a comparative analysis of two finite-volume methods, which have demonstrated efficacy in fluid dynamics and hyperbolic conservation laws, when applied to seismic wave propagation. This investigation is particularly significant considering the scarcity of studies examining finite volume methods in the context of seismic problems. We juxtapose these methods with the traditional finite difference techniques prevalent in seismic literature.

Our findings reveal nuanced performance characteristics contingent upon the nature of the velocity profiles. When confronted with synthetic velocity profiles exhibiting pronounced discontinuities at interfaces, finite volume methods excel. Despite their higher computational overhead and propensity for greater dissipation, they yield lower numerical errors in such scenarios. However, finite difference methods outshine finite volume methods when velocity profile discontinuities are less pronounced, offering superior computational efficiency and accuracy in realistic seismic problems.

The two methods analyzed in this study are high-resolution techniques and typically achieve up to second-order accuracy. This choice strikes a balance between computational efficiency and desired resolution, making it particularly suitable for addressing challenges posed by heterogeneous media and intricate structures. However, it’s worth noting that these methods can be extended to higher orders if necessary. For instance, the Wave Propagation Algorithm (WPA) can be extended to higher orders as demonstrated in Ketcheson et al. (2013), while similar advancements for the Central-Upwind method have been explored in Kurganov (2016). These extensions offer increased accuracy and precision, however, they also increase their computational cost.

While finite volume methods demonstrate prowess in handling hyperbolic problems with discontinuous solutions—such as those involving shock waves or rarefaction waves—their performance diminishes in linear seismic problems. This is primarily attributable to their higher computational complexity, implementation intricacies, and relatively lower accuracy stemming from significant dissipation introduced by TVD limiters.

Acknowledgements.
This research was carried out in association with the R&D project registered as ANP 20714-2 STMI - Software Technologies for Modeling and Inversion, with applications in seismic imaging (USP/Shell Brasil/ANP) through the R&D levy regulation. The codes utilized for this study are openly accessible on GitHub at the following URL: https://github.com/jbarrios94/ElasticWavePropagation.

References

  • Bale et al. (2003) Bale D S, LeVeque R J, Mitran S, Rossmanith J A (2003) A wave propagation method for conservation laws and balance laws with spatially varying flux functions. SIAM Journal on Scientific Computing 24(3):955–978
  • Brossier et al. (2008) Brossier R, Virieux J, Operto S (2008) Parsimonious finite-volume frequency-domain method for 2-d p–sv-wave modelling. Geophysical Journal International 175(2):541–559
  • Dumbser et al. (2007) Dumbser M, Käser M, De La Puente J (2007) Arbitrary high-order finite volume schemes for seismic wave propagation on unstructured meshes in 2D and 3D. Geophysical Journal International 171(2):665–694, ISSN 0956-540X
  • Glinsky-Olivier et al. (2006) Glinsky-Olivier N, Ben Jemaa M, M Virieux J, Piperno S (2006) 2d seismic wave propagation by a finite-volume method :cp-2-00372ISSN 2214-4609
  • Godlewski and Raviart (1996) Godlewski E, Raviart P A (1996) Numerical approximation of hyperbolic systems of conservation laws, volume 118. Springer
  • Hesthaven (2017) Hesthaven J S (2017) Numerical methods for conservation laws: From analysis to algorithms. SIAM
  • Igel (2017) Igel H (2017) Computational seismology: a practical introduction. Oxford University Press
  • Kalyani et al. (2014) Kalyani V, Chakraborty S, et al. (2014) Finite-difference time-domain method for modelling of seismic wave propagation in viscoelastic media. Applied Mathematics and Computation 237:133–145
  • Ketcheson et al. (2013) Ketcheson D I, Parsani M, LeVeque R J (2013) High-order wave propagation algorithms for hyperbolic systems. SIAM Journal on Scientific Computing 35(1):A351–A377
  • Kröner (1997) Kröner D (1997) Numerical schemes for conservation laws. John Wiley & Sons
  • Kurganov (2016) Kurganov A (2016) Central schemes: a powerful black-box solver for nonlinear hyperbolic pdes. In Handbook of Numerical Analysis, volume 17, Elsevier, 525–548
  • Kurganov (2018) Kurganov A (2018) Finite-volume schemes for shallow-water equations. Acta Numerica 27:289–351
  • Kurganov and Lin (2007) Kurganov A, Lin C T (2007) On the reduction of numerical dissipation in central-upwind schemes. COMMUNICATIONS IN COMPUTATIONAL PHYSICS Commun Comput Phys 2:141–163
  • Kurganov et al. (2021) Kurganov A, Liu Y, Zeitlin V (2021) Numerical dissipation switch for two-dimensional central-upwind schemes. ESAIM Math Model Numer Anal 55:713–734
  • Kurganov et al. (2001) Kurganov A, Noelle S, Petrova G (2001) Semidiscrete central-upwind schemes for hyperbolic conservation laws and hamilton–jacobi equations. SIAM Journal on Scientific Computing 23(3):707–740
  • Kurganov and Pollack (2011) Kurganov A, Pollack M (2011) Semi-discrete central-upwind schemes for elasticity in heterogeneous media. submitted for publication
  • Kurganov and Tadmor (2000) Kurganov A, Tadmor E (2000) New high-resolution central schemes for nonlinear conservation laws and convection–diffusion equations. Journal of Computational Physics 160(1):241–282, ISSN 0021-9991
  • LeVeque (1997) LeVeque R J (1997) Wave propagation algorithms for multidimensional hyperbolic systems. Journal of computational physics 131(2):327–353
  • LeVeque (2002a) LeVeque R J (2002a) Elastic Waves. Cambridge Texts in Applied Mathematics, Cambridge University Press, 491–513
  • LeVeque (2002b) LeVeque R J (2002b) Finite Volume Methods for Hyperbolic Problems. Cambridge Texts in Applied Mathematics, Cambridge University Press
  • LeVeque (2002c) LeVeque R J (2002c) Finite‐volume methods for non‐linear elasticity in heterogeneous media. International Journal for Numerical Methods in Fluids 40:93 – 104
  • Louboutin et al. (2019) Louboutin M, Lange M, Luporini F, Kukreja N, Witte P A, Herrmann F J, Velesko P, Gorman G J (2019) Devito (v3.1.0): an embedded domain-specific language for finite differences and geophysical exploration. Geoscientific Model Development 12(3):1165–1187
  • Luporini et al. (2020) Luporini F, Louboutin M, Lange M, Kukreja N, Witte P, Hückelheim J, Yount C, Kelly P H J, Herrmann F J, Gorman G J (2020) Architecture and performance of devito, a system for automated stencil computation. ACM Trans Math Softw 46(1), ISSN 0098-3500
  • Toro (2009) Toro E F (2009) Riemann Solvers and Numerical Methods for Fluid Dynamics. Springer Berlin Heidelberg
  • Toro (2013) Toro E F (2013) Riemann solvers and numerical methods for fluid dynamics: a practical introduction. Springer Science & Business Media
  • Wang et al. (2022) Wang W, Yan W, Yang D (2022) A cell-centered finite volume scheme for the diffusive–viscous wave equation on general polygonal meshes. Applied Mathematics Letters 133:108274, ISSN 0893-9659