Introduction

To simulate wave propagations in an unbounded domain, absorbing boundary conditions are applied to truncate the computational domain. Numerous techniques have been developed in the last 40 years: for example, paraxial conditions (Clayton and Engquist 1977; Enguist and Majda 1977; Higdon 1991), sponge zones (Cerjan et al. 1985; Sochacki et al. 1987). Bérenger introduced the perfectly matched layer (PML) that has a zero reflection coefficient before discretization and the PML has been widely used in the finite-difference, finite-element, and spectral-element methods (Bérenger 1994; Chew and Weedon 1994; Gedney 1996) for seismic wave simulations. The original model has been simplified and reformulated in terms of a split field with complex coordinate stretching (e.g., Chew and Weedon 1994; Collino and Monk 1998) and interpreted as an artificial anisotropic medium (Sacks et al. 1995; Gedney 1996). The original PML was also extended to second-order wave equation (Komatitsch and Tromp 2003; Festa and Vilotte 2005; Assi and Cobbold 2016; Ma et al. 2019; Zhuang 2020), seismic wave modeling in elastic media (Chew and Liu 1996; Hastings et al. 1996), anisotropic media (Collino and Tsogka 2001) and poroelastic media (Liu and Greenhalgh 2019).

The classic method splits each variable into two variables, requires high cost for memory storage, and is computationally inefficient. Effective techniques that do not require splitting of the field have been developed involving convolution terms (Komatitsch and Martin 2007), integral terms (Drossaert and Giannopoulos 2007), auxiliary differential equations (Martin and Komatitsch 2010) or variable changes (Cummer 2003; Chen 2011, 2012; Liu and Greenhalgh 2019; Luo and Liu 2020, 2022). Unfortunately, the PML with complex coordinate stretching can generate large spurious reflections for near-grazing incident waves. The complex frequency shifted PML (CFS-PML) (Kuzuoglu and Mittra 1996) is more efficient in such circumstance (Festa et al. 2005; Drossaert and Giannopoulos 2007; Komatitsch and Martin 2007; Cui et al. 2021). Despite the general success of the PML in most applications, there are still instabilities in long simulations (Bérenger 1994; Festa et al. 2005; Komatitsch and Martin 2007; Martin et al. 2008). Mezafajardo and Papageorgiou (2008) introduced attenuation factors operating simultaneously in multiple orthogonal directions; the result is called the multiaxial PML (M-PML).

In this paper, we introduce a new approach that results in an alternative implementation of non-split PML called residual PML (RPML). In order to avoid convolution, we deduce the residual between the original equations and PML formulations. The new variable of RPML is obtained by subtracting the residual from original variable. The main idea of PML is to transform the equations with complex coordinate stretching or complex frequency shift to make the wave decay in magnitude. Fortunately, RPML comes in two different forms (RPML-I and RPML-II), and the rest of the PMLs have been found to fall into these two categories.

The RPML-II changes variables directly and substitutes RPML variables for original variables, such as nearly PML (NPML). However, the RPML ordinary differential equations are simpler than those of NPML and auxiliary differential equation PML (ADE-PML), and are easy to be generalized to high-order schemes in time. Furthermore, two mutually perpendicular damping profiles are used for RPML to develop its stability and the result is referred to as multiaxial RPML (M-RPML). However, waves impinging the RPML interface at a near-grazing angle generate spurious reflections and the addition of damping profiles heightens those false reflections, just like other PMLs with complex coordinate stretching. Therefore, a frequency-dependent term is introduced to M-RPML and the result is named complex frequency shifted-MRPML (MC-RPML). The resulting method is implemented to simulate seismic wave propagation so as to study and verify the performance of MC-RPML.

Methods

Governing equations

Assuming the external force is zero, the elastodynamics problem can be described by Cauchy's equation and generalized Hooke's law:

$$\rho \partial_{t}^{2} {\mathbf{u}} = \nabla \cdot {\varvec{\tau}},\quad {\varvec{\tau}} = {\mathbf{C:E}},$$
(1)

where E is the strain tensor, τ is the stress tensor, u is the displacement field, ρ is the mass density, and C is the elastic coefficient tensor matrix. Equation 1 is transformed into a first-order velocity stress equation with a velocity variable:

$$\begin{gathered} \rho \partial_{t} {\varvec{v}} = \nabla \cdot {\varvec{\tau}} \hfill \\ \partial_{t} {\varvec{\tau}} = {\mathbf{C}}:\nabla {\varvec{v}}. \hfill \\ \end{gathered}$$
(2)

To derive a new equation under the RPML, Eq. 2 is transformed into the frequency domain:

$$\begin{gathered} i\omega \rho \varvec{\tilde{v}} = \nabla \cdot \varvec{\tilde{\tau }} \hfill \\ i\omega \varvec{\tilde{\tau }} = {\mathbf{C}}:\nabla \varvec{\tilde{v}}, \hfill \\ \end{gathered}$$
(3)

where \(\tilde{\varvec{v}}\) is the velocity component in the frequency domain, and \(\tilde{\varvec{\tau }}\) is the stress tensor in the frequency domain. The form of complex coordinate stretching (CCS) is (x direction):

$$\tilde{x}(x) = x - \frac{i}{\omega }\int\limits_{0}^{x} {\alpha (s)} {\text{d}}s,$$
(4)
$$\partial \tilde{x} = \frac{1}{{s_{x} }}\partial x,\,s_{x} = 1 + \frac{{\alpha_{x} }}{i\omega } \, .$$
(5)

Using Eq. 5, the first-order velocity and stress equations in stretched coordinate space can be written as:

$$\begin{array}{*{20}l} {i\omega \tilde{v}_{x} = \frac{1}{\rho }\left( {\frac{1}{{s_{x} }}\partial_{x} \tilde{\tau }_{xx} + \frac{1}{{s_{z} }}\partial_{z} \tilde{\tau }_{zx} } \right)} \hfill \\ {i\omega \tilde{v}_{z} = \frac{1}{\rho }\left( {\frac{1}{{s_{z} }}\partial_{z} \tilde{\tau }_{zz} + \frac{1}{{s_{x} }}\partial_{x} \tilde{\tau }_{zx} } \right)} \hfill \\ {i\omega \tilde{\tau }_{xx} = (\lambda + 2\mu )\frac{1}{{s_{x} }}\partial_{x} \tilde{v}_{x} + \lambda \frac{1}{{s_{z} }}\partial_{z} \tilde{v}_{z} } \hfill \\ {i\omega \tilde{\tau }_{zz} = (\lambda + 2\mu )\frac{1}{{s_{z} }}\partial_{z} \tilde{v}_{z} + \lambda \frac{1}{{s_{x} }}\partial_{x} \tilde{v}_{x} } \hfill \\ {i\omega \tilde{\tau }_{zx} = \mu \left( {\frac{1}{{s_{x} }}\partial_{x} \tilde{v}_{z} + \frac{1}{{s_{z} }}\partial_{z} \tilde{v}_{x} } \right)}. \hfill \\ \end{array}$$
(6)

The parameters describing the media are λ, the lamé modulus; μ, the shear modulus; ρ, the density.

By transforming Eq. (6) from the frequency domain into the time domain, the new wave equations based on PML can be obtained. In this process, how to compute convolution terms or avoid convolution operations is the focus of PML research, we can divide them into two categories: split method (SPML) and non-split methods (CPML, ADEPML, RIPML and NPML).

For RPML, The residual ε can be defined as the difference between the original equations and PML equations (Eq. 7), or as the difference between the PML wavefield and original wavefield (Eq. 8). Therefore, the RPML formulations can be written as follows:

$$\begin{gathered} i\omega \rho \tilde{\varvec{v}} = \nabla \cdot \tilde{\tau } - \tilde{\varvec{\varepsilon }} \hfill \\ i\omega \tilde{\varvec{\tau }} = {\mathbf{C}}:\left( {\nabla \varvec{\tilde{v}\,\tilde{\varepsilon }}} \right), \hfill \\ \end{gathered}$$
(7)

and

$$\begin{gathered} i\omega \rho \tilde{\varvec{v}} = \nabla \cdot \left( {\tilde{\varvec{\tau }}{ - }\tilde{\varvec{\varepsilon }}} \right) \hfill \\ i\omega \tilde{\varvec{\tau }} = {\mathbf{C}}:\nabla \left( {\tilde{\varvec{v}}{ - }\tilde{\varvec{\varepsilon }}} \right). \hfill \\ \end{gathered}$$
(8)

We define Eq. (7) as RPML-I and formula 8 as RPML-II. Transforming RPML-I and RPML-II from the frequency domain into the time domain result in the following equations:

$$\begin{gathered} \partial_{t} \rho {\varvec{v}} = \nabla \cdot \tau { - }{\varvec{\varepsilon}} \hfill \\ \partial_{t} {\varvec{\tau}} = {\mathbf{C}}:\left( {\nabla v{ - }{\varvec{\varepsilon}}} \right), \hfill \\ \end{gathered}$$
(9)

and

$$\begin{gathered} \partial_{t} \rho {\varvec{v}} = \nabla \cdot \left( {{\varvec{\tau}}{ - }{\varvec{\varepsilon}}} \right) \hfill \\ \partial_{t} {\varvec{\tau}} = {\mathbf{C}}:\nabla \left( {{\varvec{v}}{ - }{\varvec{\varepsilon}}} \right). \hfill \\ \end{gathered}$$
(10)

There are various techniques available that can be used to solve residuals ε. We can illustrate the relationship between different PMLs in the process of solving residuals.

RPML-I

For RPML-I, Eqs. (6 and 7) are equivalent, then we obtain:

$$\begin{array}{*{20}l} {\frac{1}{\rho }\left( {\partial_{x} \tilde{\tau }_{xx} + \partial_{z} \tilde{\tau }_{zx} - \tilde{\varepsilon }_{xx}^{x} - \tilde{\varepsilon }_{zx}^{z} } \right) = \frac{1}{\rho }\left( {\frac{1}{{s_{x} }}\partial_{x} \tilde{\tau }_{xx} + \frac{1}{{s_{z} }}\partial_{z} \tilde{\tau }_{zx} } \right)} \hfill \\ {\frac{1}{\rho }\left( {\partial_{z} \tilde{\tau }_{zz} + \partial_{x} \tilde{\tau }_{zx} - \tilde{\varepsilon }_{zz}^{z} - \tilde{\varepsilon }_{zx}^{x} } \right) = \frac{1}{\rho }\left( {\frac{1}{{s_{z} }}\partial_{z} \tilde{\tau }_{zz} + \frac{1}{{s_{x} }}\partial_{x} \tilde{\tau }_{zx} } \right)} \hfill \\ {(\lambda + 2\mu )\left( {\partial_{x} \tilde{v}_{x} - \tilde{\varepsilon }_{x}^{x} } \right) + \lambda \left( {\partial_{z} \tilde{v}_{z} - \tilde{\varepsilon }_{z}^{z} } \right) = (\lambda + 2\mu )\frac{1}{{s_{x} }}\partial_{x} \tilde{v}_{x} + \lambda \frac{1}{{s_{z} }}\partial_{z} \tilde{v}_{z} } \hfill \\ {(\lambda + 2\mu )\left( {\partial_{z} \tilde{v}_{z} - \tilde{\varepsilon }_{z}^{z} } \right) + \lambda \left( {\partial_{x} \tilde{v}_{x} - \tilde{\varepsilon }_{x}^{x} } \right) = (\lambda + 2\mu )\frac{1}{{s_{z} }}\partial_{z} \tilde{v}_{z} + \lambda \frac{1}{{s_{x} }}\partial_{x} \tilde{v}_{x} } \hfill \\ {\mu \left( {\partial_{x} \tilde{v}_{z} + \partial_{z} \tilde{v}_{x} - \tilde{\varepsilon }_{z}^{x} - \tilde{\varepsilon }_{x}^{z} } \right) = \mu \left( {\frac{1}{{s_{x} }}\partial_{x} \tilde{v}_{z} + \frac{1}{{s_{z} }}\partial_{z} \tilde{v}_{x} } \right)}. \hfill \\ \end{array}$$
(11)

Taking the first equation as an example, and using Eq. (5) we get:

$$\begin{gathered} s_{x} \left( {\partial_{x} \tilde{\tau }_{xx} - \tilde{\varepsilon }_{xx}^{x} } \right) = \partial_{x} \tilde{\tau }_{xx} \hfill \\ s_{z} \left( {\partial_{z} \tilde{\tau }_{zx} - \tilde{\varepsilon }_{zx}^{z} } \right) = \partial_{z} \tilde{\tau }_{zx}, \hfill \\ \end{gathered}$$
(12)
$$\alpha_{x} \partial_{x} \tilde{\tau }_{xx} = i\omega \tilde{\varepsilon }_{xx}^{x} + \alpha_{x} \tilde{\varepsilon }_{xx}^{x} ;\alpha_{z} \partial_{z} \tilde{\tau }_{zx} = i\omega \tilde{\varepsilon }_{zx}^{z} + \alpha_{z} \tilde{\varepsilon }_{zx}^{z}.$$
(13)

Transforming into the time domain, we get the auxiliary differential equations of the residuals.

$$\begin{gathered} \alpha_{m} \partial_{m} \xi = \partial_{t} \varepsilon^{m} + \alpha_{m} \varepsilon^{m} \hfill \\ \varepsilon^{m} :\varepsilon_{xx}^{x} ,\varepsilon_{zx}^{m} ,\varepsilon_{zz}^{z} ,\varepsilon_{x}^{m} ,\varepsilon_{z}^{m} \hfill \\ \xi :\tau_{xx} ,\tau_{zx} ,\tau_{zz} ,v_{x} ,v_{z} \hfill \\ m:x,z. \hfill \\ \end{gathered}$$
(14)

One can notice that Eq. (14) has the same form as the ADE-PML formulation. The ideas of the auxiliary memory variables were developed for Maxwell’s equations by Gedney and Zhao (2010). The difference between RPML-I and ADE-PML is that RPML-I assumes the result and deduces the residuals.

RPML-II (method 1)

For RPML-II, We use four methods to solve the residuals. Using Eq. (8), one gets:

$$\begin{array}{*{20}l} {\frac{1}{\rho }\left( {\partial_{x} \left( {\tilde{\tau }_{xx} - \tilde{\varepsilon }_{xx}^{x} } \right) + \partial_{z} \left( {\tilde{\tau }_{zx} - \tilde{\varepsilon }_{zx}^{z} } \right)} \right) = \frac{1}{\rho }\left( {\frac{1}{{s_{x} }}\partial_{x} \tilde{\tau }_{xx} + \frac{1}{{s_{z} }}\partial_{z} \tilde{\tau }_{zx} } \right)} \hfill \\ {\frac{1}{\rho }\left( {\partial_{z} \left( {\tilde{\tau }_{zz} - \tilde{\varepsilon }_{zz}^{z} } \right) + \partial_{x} \left( {\tilde{\tau }_{zx} - \tilde{\varepsilon }_{zx}^{x} } \right)} \right) = \frac{1}{\rho }\left( {\frac{1}{{s_{z} }}\partial_{z} \tilde{\tau }_{zz} + \frac{1}{{s_{x} }}\partial_{x} \tilde{\tau }_{zx} } \right)} \hfill \\ {(\lambda + 2\mu )\partial_{x} \left( {\tilde{v}_{x} - \tilde{\varepsilon }_{x}^{x} } \right) + \lambda \partial_{z} \left( {\tilde{v}_{z} - \tilde{\varepsilon }_{z}^{z} } \right) = (\lambda + 2\mu )\frac{1}{{s_{x} }}\partial_{x} \tilde{v}_{x} + \lambda \frac{1}{{s_{z} }}\partial_{z} \tilde{v}_{z} } \hfill \\ {(\lambda + 2\mu )\partial_{z} \left( {\tilde{v}_{z} - \tilde{\varepsilon }_{z}^{z} } \right) + \lambda \partial_{x} \left( {\tilde{v}_{x} - \tilde{\varepsilon }_{x}^{x} } \right) = (\lambda + 2\mu )\frac{1}{{s_{z} }}\partial_{z} \tilde{v}_{z} + \lambda \frac{1}{{s_{x} }}\partial_{x} \tilde{v}_{x} } \hfill \\ {\mu \left( {\partial_{x} \left( {\tilde{v}_{z} - \tilde{\varepsilon }_{z}^{x} } \right) + \partial_{z} \left( {\tilde{v}_{x} - \tilde{\varepsilon }_{x}^{z} } \right)} \right) = \mu \left( {\frac{1}{{s_{x} }}\partial_{x} \tilde{v}_{z} + \frac{1}{{s_{z} }}\partial_{z} \tilde{v}_{x} } \right)}. \hfill \\ \end{array}$$
(15)

Making use of Eqs. (5 and 15) we get:

$$\begin{gathered} s_{x} \partial_{x} \left( {\tilde{\tau }_{xx} - \tilde{\varepsilon }_{xx}^{x} } \right) = \partial_{x} \tilde{\tau }_{xx} \hfill \\ s_{z} \partial_{z} \left( {\tilde{\tau }_{zx} - \tilde{\varepsilon }_{zx}^{z} } \right) = \partial_{z} \tilde{\tau }_{zx}, \hfill \\ \end{gathered}$$
(16)
$$i\omega \partial_{x} \tilde{\varepsilon }_{xx}^{x} = \alpha_{x} \partial_{x} \left( {\tilde{\tau }_{xx} - \tilde{\varepsilon }_{xx}^{x} } \right);\;i\omega \partial_{z} \tilde{\varepsilon }_{zx}^{z} = \alpha_{z} \partial_{z} \left( {\tilde{\tau }_{zx} - \tilde{\varepsilon }_{zx}^{z} } \right),$$
(17)

where Eq. (17) is more complicated than Eq. (13), we simplify the equation as follows:

$$i\omega \partial_{x} \tilde{\varepsilon }_{xx}^{x} = \partial_{x} \left( {\alpha_{x} \left( {\tilde{\tau }_{xx} - \tilde{\varepsilon }_{xx}^{x} } \right)} \right);\;i\omega \partial_{z} \tilde{\varepsilon }_{zx}^{z} = \partial_{z} \left( {\alpha_{z} \left( {\tilde{\tau }_{zx} - \tilde{\varepsilon }_{zx}^{z} } \right)} \right).$$
(18)

This approximate treatment was applied by Cummer (Cummer 2003; Bérenger 2004; Hu and Cummer 2006; Hu et al. 2007; Chen 2012; Liu and Greenhalgh 2019) to derive NPML. Finally, we can get the residual equation of RPML-II:

$$\partial_{t} \varepsilon^{m} = \alpha_{m} \left( {\xi - \varepsilon^{m} } \right).$$
(19)

We can also compute the residuals directly from the solution of other PMLs (RI-PML/Method 2, ADE-PML/Method 3 and NPML/Method 4), and find the difference between R-PML and others. In other words, it is to find the residual between the other PML equations and the original equation.

RPML-II (method 2)

In this part, we solve Eq. (8) using recursive integration as recursive integration PML (RIPML) (Drossaert and Giannopoulos 2007; Giannopoulos 2011). The basic principle of the RIPML is to rewrite the velocity-stress Eq. (6) by introducing two new auxiliary tensors, we denote the components as:

$$\begin{gathered} \tilde{M}_{x}^{x} = \frac{1}{{s_{x} }}\partial_{x} \tilde{v}_{x} ;\tilde{M}_{z}^{z} = \frac{1}{{s_{z} }}\partial_{z} \tilde{v}_{z} \hfill \\ \tilde{M}_{z}^{x} = \frac{1}{{s_{x} }}\partial_{x} \tilde{v}_{z} ;\tilde{M}_{x}^{z} = \frac{1}{{s_{z} }}\partial_{z} \tilde{v}_{x} \hfill \\ \tilde{M}_{zz}^{z} = \frac{1}{{s_{z} }}\partial_{z} \tilde{\tau }_{zz} ;\tilde{M}_{zx}^{x} = \frac{1}{{s_{x} }}\partial_{x} \tilde{\tau }_{zx} \hfill \\ \tilde{M}_{xx}^{x} = \frac{1}{{s_{x} }}\partial_{x} \tilde{\tau }_{xx} ;\tilde{M}_{zx}^{z} = \frac{1}{{s_{z} }}\partial_{z} \tilde{\tau }_{zx}. \hfill \\ \end{gathered}$$
(20)

After transforming Eq. (6) back in the time domain, the velocity-stress equations then become as follows:

$$\begin{array}{*{20}l} {\partial_{t} v_{x} = \frac{1}{\rho }\left( {M_{xx}^{x} + M_{zx}^{z} } \right)} \hfill \\ {\partial_{t} v_{z} = \frac{1}{\rho }\left( {M_{zz}^{z} + M_{zx}^{x} } \right)} \hfill \\ {\partial_{t} \tau_{xx} = (\lambda + 2\mu )M_{x}^{x} + \lambda M_{z}^{z} } \hfill \\ {\partial_{t} \tau_{zz} = (\lambda + 2\mu )M_{z}^{z} + \lambda M_{x}^{x} } \hfill \\ {\partial_{t} \tau_{zx} = \mu \left( {M_{z}^{x} + M_{x}^{z} } \right)}, \hfill \\ \end{array}$$
(21)

where M is the \(\tilde{M}\) in time domain.

Equation 20 is rewritten to solve the stress-rate tensors M by direct integration. Inserting the stretching functions given by Eq. (5), and transforming them from the frequency domain into the time domain.

$$\begin{gathered} \int_{0}^{t} {\alpha_{x} } M_{x}^{x} {\text{d}}t = \partial_{x} v_{x} - M_{x}^{x} ;\int_{0}^{t} {\alpha_{z} } M_{z}^{z} {\text{d}}t = \partial_{z} v_{z} - M_{z}^{z} \hfill \\ \int_{0}^{t} {\alpha_{x} } M_{z}^{x} {\text{d}}t = \partial_{x} v_{z} - M_{z}^{x} ;\int_{0}^{t} {\alpha_{z} } M_{x}^{z} {\text{d}}t = \partial_{z} v_{x} - M_{x}^{z} \hfill \\ \int_{0}^{t} {\alpha_{z} } M_{zz}^{z} {\text{d}}t = \partial_{z} \tau_{zz} - M_{zz}^{z} ;\int_{0}^{t} {\alpha_{x} } M_{zx}^{x} {\text{d}}t = \partial_{x} \tau_{zx} - M_{zx}^{x} \hfill \\ \int_{0}^{t} {\alpha_{x} } M_{xx}^{x} {\text{d}}t = \partial_{x} \tau_{xx} - M_{xx}^{x} ;\int_{0}^{t} {\alpha_{z} } M_{zx}^{z} {\text{d}}t = \partial_{z} \tau_{zx} - M_{zx}^{z}. \hfill \\ \end{gathered}$$
(22)

Comparing Eqs. (8 and 21), the residual formulations are as follows:

$$\begin{gathered} M_{x}^{x} = \partial_{x} \left( {v_{x} - \varepsilon_{x}^{x} } \right);M_{z}^{z} = \partial_{z} \left( {v_{z} - \varepsilon_{z}^{z} } \right) \hfill \\ M_{z}^{x} = \partial_{x} \left( {v_{z} - \varepsilon_{z}^{x} } \right);M_{x}^{z} = \partial_{z} \left( {v_{x} - \varepsilon_{x}^{z} } \right) \hfill \\ M_{zz}^{z} = \partial_{z} \left( {\tau_{zz} - \varepsilon_{zz}^{z} } \right);M_{zx}^{x} = \partial_{x} \left( {\tau_{zx} - \varepsilon_{zx}^{x} } \right) \hfill \\ M_{xx}^{x} = \partial_{x} \left( {\tau_{xx} - \varepsilon_{xx}^{x} } \right);M_{zx}^{z} = \partial_{z} \left( {\tau_{zx} - \varepsilon_{zx}^{z} } \right). \hfill \\ \end{gathered}$$
(23)

Making use of Eq. (23), the Eq. (22) then becomes as follows:

$$\begin{gathered} \int_{0}^{t} {\alpha_{x} } \left( {\partial_{x} v_{x} - \partial_{x} \varepsilon_{x}^{x} } \right){\text{d}}t = \partial_{x} \varepsilon_{x}^{x} ;\int_{0}^{t} {\alpha_{z} } \left( {\partial_{z} v_{z} - \partial_{z} \varepsilon_{z}^{z} } \right){\text{d}}t = \partial_{z} \varepsilon_{z}^{z} \hfill \\ \int_{0}^{t} {\alpha_{x} } \left( {\partial_{x} v_{z} - \partial_{x} \varepsilon_{z}^{x} } \right){\text{d}}t = \partial_{x} \varepsilon_{z}^{x} ;\int_{0}^{t} {\alpha_{z} } \left( {\partial_{z} v_{x} - \partial_{z} \varepsilon_{x}^{z} } \right){\text{d}}t = \partial_{z} \varepsilon_{x}^{z} \hfill \\ \int_{0}^{t} {\alpha_{z} } \left( {\partial_{z} \tau_{zz} - \partial_{z} \varepsilon_{zz}^{z} } \right){\text{d}}t = \partial_{z} \varepsilon_{zz}^{z} ;\int_{0}^{t} {\alpha_{x} } \left( {\partial_{x} \tau_{zx} - \partial_{x} \varepsilon_{zx}^{x} } \right){\text{d}}t = \partial_{z} \varepsilon_{zx}^{x} \hfill \\ \int_{0}^{t} {\alpha_{x} } \left( {\partial_{x} \tau_{xx} - \partial_{x} \varepsilon_{xx}^{x} } \right){\text{d}}t = \partial_{x} \varepsilon_{xx}^{x} ;\int_{0}^{t} {\alpha_{z} } \left( {\partial_{z} \tau_{zx} - \partial_{z} \varepsilon_{zx}^{z} } \right){\text{d}}t = \partial_{z} \varepsilon_{zx}^{z}. \hfill \\ \end{gathered}$$
(24)

If the approximate treatment shown in Eq. (18) is adopted, we can obtain an equation equivalent to Eq. (19).

$$\int_{0}^{t} {\alpha_{m} } \left( {\xi - \varepsilon^{m} } \right){\text{d}}t = \partial_{m} \varepsilon^{m}.$$
(25)

Next, we derive the iterative formula of RI-PML and RPML.

For RI-PML, the easiest method to approximate time integral uses the trapezoidal integration rule. Inserting this approximation into Eq. (22) and setting the tensor values at the initial time step to zero result in the result for component \(M_{x}^{x}\) is as follows:

$$\left( {M_{x}^{x} } \right)^{n} \left( {1 + 1/2\Delta t\alpha_{x} } \right) + \Delta t\sum\limits_{t = 1}^{n - 1} {\alpha_{x} \left( {M_{x}^{x} } \right)^{t} } = \partial_{x} v_{x}^{n},$$
(26)

where △t is the time-step size. Rewriting Eq. (26), one gets:

$$\begin{gathered} \left( {\Omega_{x}^{x} } \right)^{n} = \left( {\Omega_{x}^{x} } \right)^{n - 1} + \alpha_{x} \left( {M_{x}^{x} } \right)^{n} \hfill \\ \left( {M_{x}^{x} } \right)^{n} = 1/\left( {1 + 1/2\Delta t\alpha_{x} } \right)\left( {\partial_{x} v_{x}^{n} - \Delta t\left( {\Omega_{x}^{x} } \right)^{n - 1} } \right). \hfill \\ \end{gathered}$$
(27)

For R-PML, Eq. (25) is treated in the same way:

$$1/2\Delta t\alpha_{m} \left( {\xi - \varepsilon^{m} } \right)^{n} + \Delta t\sum\limits_{t = 1}^{n - 1} {\alpha_{m} \left( {\xi - \varepsilon^{m} } \right)^{t} } = \partial_{m} \left( {\varepsilon^{m} } \right)^{n},$$
(28)

and

$$\begin{gathered} \left( {\Omega_{{}}^{m} } \right)^{n} = \left( {\Omega_{{}}^{m} } \right)^{n - 1} + \alpha_{m} \left( {\xi - \varepsilon^{m} } \right)^{n} \hfill \\ \xi^{n} = \left( {\varepsilon^{m} } \right)^{n} + 2/\left( {\Delta t\alpha_{m} } \right)\partial_{m} \left( {\varepsilon^{m} } \right)^{n} - 2/\alpha_{m} \left( {\Omega_{x}^{x} } \right)^{n - 1}. \hfill \\ \end{gathered}$$
(29)

RPML-II (method 3)

In this part, the connections between ADE-PML and RPML are established. And the ADE-PML (Komatitsch and Martin 2007) has the same form as the CPML formulation (Martin and Komatitsch 2010). Making use of Eq. (6), the term \(\partial_{x} v_{x}\) is transformed into:

$$\frac{1}{{s_{x} }}\partial_{x} \tilde{v}_{x} = \partial_{x} \tilde{v}_{x} - \frac{{\alpha_{x} }}{{i\omega + \alpha_{x} }}\partial_{x} \tilde{v}_{x}.$$
(30)

Let us denote the auxiliary memory variable:

$$\tilde{Q}_{x}^{{v_{x} }} = - \frac{{\alpha_{x} }}{{i\omega + \alpha_{x} }}\partial_{x} \tilde{v}_{x}.$$
(31)

Written in the time domain this equation becomes:

$$\partial_{t} Q_{x}^{{v_{x} }} + \alpha_{x} Q_{x}^{{v_{x} }} = - \alpha_{x} \partial_{x} v_{x},$$
(32)

and the whole system of equations with ADE-PML is:

$$\begin{array}{*{20}l} {\partial_{t} v_{x} = \frac{1}{\rho }\left( {\partial_{x} \tau_{xx} + \partial_{z} \tau_{zx} + Q_{x}^{{\tau_{xx} }} + Q_{z}^{{\tau_{zx} }} } \right)} \hfill \\ {\partial_{t} v_{z} = \frac{1}{\rho }\left( {\partial_{z} \tau_{zz} + \partial_{x} \tau_{zx} + Q_{z}^{{\tau_{zz} }} + Q_{x}^{{\tau_{zx} }} } \right)} \hfill \\ {\partial_{t} \tau_{xx} = (\lambda + 2\mu )\left( {\partial_{x} v_{x} + Q_{x}^{{v_{x} }} } \right) + \lambda \left( {\partial_{z} v_{z} + Q_{z}^{{v_{z} }} } \right)} \hfill \\ {\partial_{t} \tau_{zz} = (\lambda + 2\mu )\left( {\partial_{z} v_{z} + Q_{z}^{{v_{z} }} } \right) + \lambda \left( {\partial_{x} v_{x} + Q_{x}^{{v_{x} }} } \right)} \hfill \\ {\partial_{t} \tau_{zx} = \mu \left( {\partial_{x} v_{z} + Q_{x}^{{v_{z} }} + \partial_{z} v_{x} + Q_{z}^{{v_{x} }} } \right)}. \hfill \\ \end{array}$$
(33)

The partial differential equation in the ADE-PML system is in exactly the same form as the RPML-I system. The discretization of the differential Eq. (32) is solved by the method of variable decomposition.

$$\left( {Q_{x}^{{v_{x} }} } \right)^{n} = b_{x} \left( {Q_{x}^{{v_{x} }} } \right)^{n - 1} + a_{x} \left( {\partial_{x} } \right)^{n + 1/2},$$
(34)

with

$$b_{x} = e^{{ - \alpha_{x} \Delta t}} ;a_{x} = b_{x} - 1.$$
(35)

Using Eqs. (10, 30 and 33), the residual formulation is as follows:

$$\partial_{x} \tilde{\varepsilon }_{x}^{x} = \frac{{\alpha_{x} }}{{i\omega + \alpha_{x} }}\partial_{x} \tilde{v}_{x} { = } - \tilde{Q}_{x}^{{v_{x} }}.$$
(36)

Using Eq. (36), the RPML-II equation for component \(\varepsilon_{x}^{x}\) is:

$$i\omega \partial_{x} \tilde{\varepsilon }_{x}^{x} + \alpha_{x} \partial_{x} \tilde{\varepsilon }_{x}^{x} = \alpha_{x} \partial_{x} \tilde{v}_{x},$$
(37)

and

$$\partial_{t} \partial_{x} \varepsilon_{x}^{x} + \alpha_{x} \partial_{x} \varepsilon_{x}^{x} = \alpha_{x} \partial_{x} v_{x}.$$
(38)

Taking the approximate treatment shown in Eq. (18), we can get the residual equation of RPML-II same as Eq. (19):

$$\partial_{t} \varepsilon^{m} = \alpha_{m} \left( {\xi - \varepsilon^{m} } \right).$$
(39)

RPML-II (method 4)

The residuals are solved by variables transformation and the connections between NPML and RPML-II are built. Rewriting Eq. (6), one gets:

$$\begin{array}{*{20}l} {i\omega \tilde{v}_{x} = \frac{1}{\rho }\left( {\partial_{x} \frac{{\tilde{\tau }_{xx} }}{{s_{x} }} + \partial_{z} \frac{{\tilde{\tau }_{zx} }}{{s_{z} }}} \right)} \hfill \\ {i\omega \tilde{v}_{z} = \frac{1}{\rho }\left( {\partial_{z} \frac{{\tilde{\tau }_{zz} }}{{s_{z} }} + \partial_{x} \frac{{\tilde{\tau }_{zx} }}{{s_{x} }}} \right)} \hfill \\ {i\omega \tilde{\tau }_{xx} = (\lambda + 2\mu )\partial_{x} \frac{{\tilde{v}_{x} }}{{s_{x} }} + \lambda \partial_{z} \frac{{\tilde{v}_{z} }}{{s_{z} }}} \hfill \\ {i\omega \tilde{\tau }_{zz} = (\lambda + 2\mu )\partial_{z} \frac{{\tilde{v}_{z} }}{{s_{z} }} + \lambda \partial_{x} \frac{{\tilde{v}_{x} }}{{s_{x} }}} \hfill \\ {i\omega \tilde{\tau }_{zx} = \mu \left( {\partial_{x} \frac{{\tilde{v}_{z} }}{{s_{x} }} + \partial_{z} \frac{{\tilde{v}_{x} }}{{s_{z} }}} \right)}. \hfill \\ \end{array}$$
(40)

This method has some differences from other PML formulations that do not appear to be of practical importance. Theoretically, this technique is exactly the same as other PMLs for all incident angles only when the conductivity is spatially variant so-called nearly PML (Cummer 2003). However, Bérenger (2004) has proved that the NPML is a PML. Even for spatially varying NPML conductivity profiles, the waves reflected from the NPML and the standard PML are identical.

The NPML denote \(\overline{v}_{x}\) the new variable associated with \(v_{x}\), i.e.:

$$\frac{1}{{s_{x} }}\tilde{v}_{x} = \tilde{\overline{v}}_{x}^{x}.$$
(41)

Combining Eqs. (5 and 41) yields:

$$\left( {1 + \frac{{\alpha_{x} }}{i\omega }} \right)\tilde{\overline{v}}_{x}^{x} { = }\tilde{v}_{x},$$
(42)

and written in the time domain:

$$\partial_{t} \overline{v}_{x}^{x} { + }\alpha_{x} \overline{v}_{x}^{x} { = }\partial_{t} v_{x}.$$
(43)

Comparing Eq. (8) with Eq. (40), the RPML-II formulation (taking \(v_{x}\) as an example) is:

$$i\omega (\tilde{v}_{x} - \tilde{\varepsilon }_{x}^{x} {) + }\alpha_{x} (\tilde{v}_{x} - \tilde{\varepsilon }_{x}^{x} {) = }i\omega \tilde{v}_{x},$$
(44)

and we get:

$$\partial_{t} \varepsilon_{x}^{x} { = }\alpha_{x} \left( {v_{x} - \varepsilon_{x}^{x} } \right),$$
(45)

and for all variables:

$$\partial_{t} \varepsilon^{m} = \alpha_{m} \left( {\xi - \varepsilon^{m} } \right).$$
(46)

Equations (19, 39 and 46) are the same. It can also be obtained by calculating the time partial derivative of Eq. (25).

These differential equations correspond respectively to RI-PML, ADE-PML and NPML. The residual equations obtained by RI-PML (Eq. 24) and ADE-PML (Eq. 38) are the same form if we take the partial derivative with respect to time of Eq. (25). Because the residuals ε are the differences between the PML formulations and the original formulation. ADE-PML and RI-PML are essentially the same, the difference between them lies in the different ways of obtaining discrete schemes.

The convolutional PML (CPML) can be seen as a particular case of the ADE-PML at the second order in time (Martin and Komatitsch 2010), and ADE-PML and RPML-I are equivalent. With regard to NPML, the distinction between NPML and other PMLs is the treatment with Eq. (40) called approximate treatment. These Eqs. (24, 25, 38, 39) are exactly the same when the PML conductivity is spatially invariant (Fig. 1).

Fig. 1
figure 1

Diagram of relationships between different PMLs. ① Solving the residuals ε; ② approximate treatment; ③ The residual ε is defined as the difference between the PML wavefield and original wavefield; ④ The residual ε is defined as the difference between the original equations and PML equations; ⑤ CPML is as a particular case of ADE-PML; ⑥ Relation of equivalence; ⑦ Different ways of obtaining discrete schemes

Theoretically, the RPML-II is equivalent to the PML which is used to solve the residuals. And the NPML has a great absorbing performance as other PMLs (Cummer 2003; Hu and Cummer 2006; Bérenger 2004; Chen and Zhao 2011; Chen 2012). Therefore, we adopt the simplest form of RPML-II to simulate the wave propagations.

As shown in Eqs. (10 and 40), the NPML and RPML-II do not modify the original form of the governing equations in any linear media. We can copy the difference equations for PML region from the regular medium. Only simple ordinary differential equations need to be added to complete the NPML and RPML-II field equations. The implementations of the NPML and RPML-II in complex media are very straightforward.

Of course, RPML-I also has this advantage because we first defined the governing equation form of RPML-I to solve the residuals by backward extrapolation. However, ADE-PML does not, because in more complex wave equations, the form of ADE-PML may change.

The form of RPML-II is simplest compared to the other PMLs. There is only one first-order partial derivative with respect to time in the auxiliary differential equation. In consequence, the RPML-II can be generalized to high-order schemes in time like ADE-PML.

The complex frequency shifted-RPML (CFS-RPML-II) technique

The RPML is obtained using complex frequency shifted transformation, and the main idea of the CFS-RPML-II technique consists of making a choice for Sx more general by introducing two other real variables such that:

$${\text{ s}}_{x} = \beta_{x} + \frac{{\alpha_{x} }}{{\eta_{x} + i\omega }},$$
(47)

where βx is the scaling factor and ηx is the frequency shifted factor. Rewriting Eq. (17) as:

$$\left( {(\eta_{x} + i\omega )\beta_{x} + \alpha_{x} } \right)(\tilde{v}_{x} - \tilde{\varepsilon }_{x}^{x} {) = (}\eta_{x} + i\omega {)}\tilde{v}_{x},$$
(48)
$$i\omega (\beta_{x} - 1)\tilde{v}_{x} + (\eta_{x} \beta_{x} + \alpha_{x} - \eta_{x} )\tilde{v}_{x} = i\omega \beta_{x} \tilde{\varepsilon }_{x}^{x} + (\alpha_{x} + \eta_{x} \beta_{x} )\tilde{\varepsilon }_{x}^{x}.$$
(49)

Converting back to the time domain, one obtains:

$$(\beta_{x} - 1)\partial_{t} v_{x} + (\eta_{x} \beta_{x} + \alpha_{x} - \eta_{x} )v_{x} = \beta_{x} \partial_{t} \varepsilon_{x}^{x} + (\alpha_{x} + \eta_{x} \beta_{x} )\varepsilon_{x}^{x}.$$
(50)

The residual equation is more complicated than Eq. (28). The auxiliary differential equations of CFS-ADE-PML and CFS-RIPML are as follows:

$${\text{CFS}} - {\text{RIPML}}:\int_{0}^{t} {(\beta_{x} \eta_{x} + \alpha_{x} )} M_{x}^{x} {\text{d}}t = \int_{0}^{t} {\eta_{x} \alpha_{x} v_{x} } {\text{d}}t + \partial_{x} v_{x} - \beta_{x} M_{x}^{x},$$
(51)
$${\text{CFS}} - {\text{ADEPML}}:\partial_{t} Q_{x}^{{v_{x} }} + \left( {\frac{{\alpha_{x} }}{{\beta_{x} }} + \eta_{x} } \right)Q_{x}^{{v_{x} }} = - \frac{{\alpha_{x} }}{{\beta_{x}^{2} }}\partial_{x} v_{x}.$$
(52)

Although the form of RPML is simplest compared to the other PMLs based on complex coordinate stretching, the form of CFS-ADE-PML is simpler than others based on complex frequency shifted transformation. The Eq. (50) is difficult to be generalized to high-order schemes in time like NPML Eq. (43). In order to make the CFS-RPML-II simpler, the residual equation is solved with special method.

Redefining Eq. (8) and written in the time domain:

$$\begin{array}{*{20}l} {\partial_{t} v_{x} = \frac{1}{\rho }\left( {\partial_{x} \left( {\frac{1}{{\beta_{x} }}(\tau_{xx} - \varepsilon_{xx}^{x} )} \right) + \partial_{z} \left( {\frac{1}{{\beta_{z} }}(\tau_{zx} - \varepsilon_{zx}^{z} )} \right)} \right)} \hfill \\ {\partial_{t} v_{z} = \frac{1}{\rho }\left( {\partial_{z} \left( {\frac{1}{{\beta_{z} }}\left( {\tau_{zz} - \varepsilon_{zz}^{z} } \right)} \right) + \partial_{x} \left( {\frac{1}{{\beta_{x} }}\left( {\tau_{zx} - \varepsilon_{zx}^{x} } \right)} \right)} \right)} \hfill \\ {\partial_{t} \tau_{xx} = (\lambda + 2\mu )\partial_{z} \left( {\frac{1}{{\beta_{x} }}\left( {v_{x} - \varepsilon_{x}^{x} } \right)} \right) + \lambda \partial_{z} \left( {\frac{1}{{\beta_{z} }}\left( {v_{z} - \varepsilon_{z}^{z} } \right)} \right)} \hfill \\ {\partial_{t} \tau_{zz} = (\lambda + 2\mu )\partial_{z} \left( {\frac{1}{{\beta_{z} }}\left( {v_{z} - \varepsilon_{z}^{z} } \right)} \right) + \lambda \partial_{z} \left( {\frac{1}{{\beta_{x} }}\left( {v_{x} - \varepsilon_{x}^{x} } \right)} \right)} \hfill \\ {\partial_{t} \tau_{zx} = \mu \left( {\partial_{z} \left( {\frac{1}{{\beta_{x} }}\left( {v_{z} - \varepsilon_{z}^{x} } \right)} \right) + \partial_{z} \left( {\frac{1}{{\beta_{z} }}\left( {v_{x} - \varepsilon_{x}^{z} } \right)} \right)} \right)}. \hfill \\ \end{array}$$
(53)

We take method 4 to solve the residuals (taking \(v_{x}\) as an example):

$$\tilde{v}_{x} { = }\frac{1}{{\beta_{x} }}\left( {\tilde{v}_{x} - \tilde{\varepsilon }_{x}^{x} } \right)\left( {\beta_{x} + \frac{{\alpha_{x} }}{{\eta_{x} + i\omega }}} \right) \, ,$$
(54)
$$\eta_{x} \beta_{x} \tilde{v}_{x} + i\omega \beta_{x} \tilde{v}_{x} + \eta_{x} \beta_{x} \tilde{\varepsilon }_{x}^{x} + i\omega \beta_{x} \tilde{\varepsilon }_{x}^{x} + \alpha_{x} \tilde{\varepsilon }_{x}^{x} { = }\eta_{x} \beta_{x} \tilde{v}_{x} + i\omega \beta_{x} \tilde{v}_{x} + \alpha_{x} \tilde{v}_{x},$$
(55)
$$\beta_{x} i\omega \tilde{\varepsilon }_{x}^{x} + \left( {\alpha_{x} { + }\eta_{x} \beta_{x} } \right)\tilde{\varepsilon }_{x}^{x} { = }\alpha_{x} \tilde{v}_{x}.$$
(56)

Converting back to the time domain, one obtains:

$$\partial_{t} \varepsilon_{x}^{x} + \left( {\frac{{\alpha_{x} }}{{\beta_{x} }}{ + }\eta_{x} } \right)\varepsilon_{x}^{x} { = }\frac{{\alpha_{x} }}{{\beta_{x} }}v_{x}.$$
(57)

The form of CFS-RPML-II Eq. (57) is the same as that of RPML-II Eq. (19) and is the simplest compared to Eqs. (50, 51 and 52). Using the same method for the remaining variables, we obtain the transformation equation:

$$\begin{gathered} \partial_{t} \varepsilon^{m} + \left( {\frac{{\alpha_{m} }}{{\beta_{m} }}{ + }\eta_{m} } \right)\varepsilon^{m} { = }\frac{{\alpha_{m} }}{{\beta_{m} }}\xi \hfill \\ \varepsilon^{m} :\varepsilon_{xx}^{x} ,\varepsilon_{zx}^{m} ,\varepsilon_{zz}^{z} ,\varepsilon_{x}^{m} ,\varepsilon_{z}^{m} \hfill \\ \xi :\tau_{xx} ,\tau_{zx} ,\tau_{zz} ,v_{x} ,v_{z} \hfill \\ m:x,z. \hfill \\ \end{gathered}$$
(58)

The auxiliary differential equation of MC-NPML is given by Luo and Liu (2019), and we compare the auxiliary equations under the two transformations:

$$\begin{gathered} {\text{C}} - {\text{RPML}}:\partial_{t} \varepsilon^{x} + A_{R} \varepsilon^{x} { = }B_{R} v_{x} \hfill \\ {\text{C}} - {\text{APML}}:\partial_{t} Q_{x}^{{v_{x} }} + A_{A} Q_{x}^{{v_{x} }} = - B_{A} \partial_{x} v_{x} \hfill \\ {\text{C}} - {\text{NPML}}:\partial_{t} \overline{v}_{x}^{x} + A_{N} \overline{v}_{x}^{x} { = }B_{N} v_{x} + D_{N} \partial_{t} v_{x} \hfill \\ {\text{C}} - {\text{RIPML}}:\int_{0}^{t} {A_{{{\text{RI}}}} } M_{x}^{x} {\text{d}}t = \int_{0}^{t} {B_{{{\text{RI}}}} v_{x} } {\text{d}}t + \partial_{x} v_{x} - D_{{{\text{RI}}}} M_{x}^{x} \hfill \\ A_{R} = \alpha_{x} {/}\beta_{x} { + }\eta_{x} B_{R} = \frac{{\alpha_{x} }}{{\beta_{x} }};A_{A} = \alpha_{x} {/}\beta_{x} { + }\eta_{x} ,B_{A} = \alpha_{x} /\beta_{x}^{2} \hfill \\ A_{N} = \left( {\eta_{x} \beta_{x} { + }\alpha_{x} } \right)/\beta_{x} ,B_{N} = \eta_{x} /\beta_{x} ,D_{N} = 1/\beta_{x} \hfill \\ A_{{{\text{RI}}}} = (\beta_{x} \eta_{x} + \alpha_{x} ),B_{{{\text{RI}}}} = \eta_{x} \alpha_{x} ,D_{{{\text{RI}}}} = \beta_{x}. \hfill \\ \end{gathered}$$
(59)

As shown in Eq. (59), RPML has and only has one-time partial derivative term, but no space partial derivative term. The discrete format is simple and easy to be extended to high-order precision simulation in time, and the form of the original equations has not changed. It is very easy to be programmed and implemented, which can be extended to the simulation of more complex media.

Multiaxial complex frequency shifted-RPML (MCFS-RPML-II)

As Fig. 2 shows, the main idea of multiaxial C-RPML-II consists of introducing an additional attenuation profile in the direction perpendicular to the primary direction.

Fig. 2
figure 2

Schematic of RPML layers

In domain 3, the damping profiles at the right and top overlap. Therefore, it is only necessary to treat regions 1 and 2 when introducing a new profile:

$$\begin{aligned} {\text{domain }}1:\alpha_{x} = & \alpha_{x}^{x} ,\,\alpha_{z} = \alpha_{z}^{x} \\ \, \alpha_{z}^{x} = & p^{z/x} \alpha_{x}^{x} \\ {\text{domain }}2:\alpha_{x} = & \alpha_{x}^{z} ,\,\alpha_{z} = \alpha_{z}^{z} \\ \, \alpha_{x}^{z} = & p^{x/z} \alpha_{z}^{z}. \\ \end{aligned}$$
(60)

As shown in Eq. (60), the primary direction in domain 2 is the z direction. The value of αx is no longer zero and is proportional to the original damping function, and the proportional coefficient P(x/z) is the stability factor. The multiaxial RPML-II (M-RPML-II) is derived below:

$$\begin{aligned} {\text{domain }}1:\partial_{t} \varepsilon^{x} + \alpha_{x}^{x} \varepsilon^{x} = & \alpha_{x}^{x} \xi ,\,\partial_{t} \varepsilon^{z} + \alpha_{z}^{x} \varepsilon^{z} = \alpha_{z}^{x} \xi \\ {\text{domain }}2:\partial_{t} \varepsilon^{z} + \alpha_{z}^{z} \varepsilon^{z} = & \alpha_{z}^{z} \xi ,\,\partial_{t} \varepsilon^{x} + \alpha_{x}^{z} \varepsilon^{x} = \alpha_{x}^{z} \xi. \\ \end{aligned}$$
(61)

For CFS-RPML-II, the processing is different from that of RPML. The transformation function is as follows:

$$\begin{aligned} {\text{domain 1}}:s_{x} = & \beta_{x} + \frac{{\alpha_{x}^{x} }}{{\eta_{x} + i\omega }},\,s_{z} = 1 + \frac{{\alpha_{z}^{x} }}{i\omega } \\ {\text{domain 2}}:s_{z} = & \beta_{z} + \frac{{\alpha_{z}^{z} }}{{\eta_{z} + i\omega }},\,s_{x} = 1 + \frac{{\alpha_{x}^{z} }}{i\omega }. \\ \end{aligned}$$
(62)

Substituting Eq. (62) into Eq. (55), we obtain:

$$\begin{aligned} {\text{domain 1}}:\partial_{t} \varepsilon^{x} + \left( {\frac{{\alpha_{x}^{x} }}{{\beta_{x} }} + \eta_{x} } \right)\varepsilon^{x} = & \frac{{\alpha_{x}^{x} }}{{\beta_{x} }}\xi ,\,\partial_{t} \varepsilon^{z} + \alpha_{z}^{x} \varepsilon^{z} = \alpha_{z}^{x} \xi \\ {\text{domain 2}}:\partial_{t} \varepsilon^{z} + \left( {\frac{{\alpha_{z}^{z} }}{{\beta_{z} }} + \eta_{z} } \right)\varepsilon^{z} = & \frac{{\alpha_{z}^{z} }}{{\beta_{z} }}\xi ,\,\partial_{t} \varepsilon^{x} + \alpha_{x}^{z} \varepsilon^{x} = \alpha_{x}^{z} \xi. \\ \end{aligned}$$
(63)

The above is the derivation process and transformation equation for M-RPML-II and MCFS-RPML-II. The damping factor, scaling factor and frequency shifted factor equations are as follows:

$$\begin{aligned} \alpha = & K\left( {\alpha_{b} + \alpha_{e} } \right),\,\alpha_{b} = (l/L)^{{n_{\alpha } }} ,\,\alpha_{e} = \gamma \exp ( - \delta L/l) \\ K = & \ln (1/R)\frac{{(n + 1)\sqrt {\mu /\rho } }}{2L} \\ \beta = & 1 + (\beta_{0} - 1)\left( {l/L} \right)^{{n_{\beta } }} ,\,\eta = \eta_{0} \pi f\left[ {1 - \left( {l/L} \right)^{{n_{\eta } }} } \right], \\ \end{aligned}$$
(64)

where L is the thickness of the RPML, and l is the distance between the calculated point and the inner boundary of the PML area. Where αb is a basic function; it must be increased progressively from the inner boundary to the outer boundary. We can choose exponential functions (Groby and Tsogka 2006), trigonometric functions, or other functions that satisfy this condition. The gradient value of α at each part of the boundary is mainly controlled by αe (Luo and Liu 2018, 2022). The value of the stability factor should be less than 1, and it changes depending on the complexity of the medium. It should not be too large or it will lead to an increase in the number of false reflections.

In region 2, the damping factor increases exponentially in the primary direction, but the value is 0 in the direction perpendicular to the primary direction. In region 3, the damping profiles at right and top overlap; thus, there are two mutually perpendicular damping profiles. The M-RPML is shown in domain 1. The primary direction in this domain is the x direction. The value of αz is no longer zero and is proportional to the original damping function.

Numerical tests

Model 1

The time step used is 0.5 ms, and the source-time function is a Ricker wavelet with a center frequency of 25 Hz. We consider two models to study the propagations of waves at grazing incidence and the stability of PML. The grid spacing is 5 m, and the size of the first model is 2600 × 1100 m. The source is applied at (1300, 55) m, 10 cells away from the PML-interior interface. The PML-interior interface refers to the interface between the calculated physical region and absorption boundary, where the wave field will decay rapidly after entering the interface.

Snapshots in Fig. 3 of the vx component correspond to various RPML-II. When seismic waves travel close to the boundary, they tend to move parallel to it. The seismic waves cannot be absorbed at grazing incidence along the edges of the model and generate dissipative wave. The energy accumulation sends spurious energy back into the physical domain, sharply enhancing false reflections and making the system unstable.

Fig. 3
figure 3

Wavefield snapshots. a RPML. b M-RPML includes the stability factors P(x/z) and P(z/x), P = 0.02. c M-RPML, P = 0.1. d CFS-RPML includes the frequency shifted factor (η) and scaling factor (β), η0 = 3, β0 = 2. e MCFS-RPML includes p(x/z), p(z/x), η and β simultaneously, P = 0.02, η0 = 3, β0 = 2. f MCFS-RPML includes p(x/z), p(z/x), η and β simultaneously, P = 0.05, η0 = 3, β0 = 2

When we introduce the stability factors P(x/z) and P(z/x), the accumulated cluster energy inside the upper RPML-II layers is weakened, and the higher the stability factors, the weaker the residual energy in the boundary. However, it also enhances the occurrence of false reflections. The larger the factor value, the stronger the energy of false reflections. When η and β introduced, the energy in boundary and the false reflections backing into the main domain are weakened.

In Fig. 3b, e, f, and d, there are some anomalous energies between source position and wavefront, which are caused by the introduction of a dual attenuation profile. When we introduce an attenuation profile parallel to the boundary, it can absorb the energy propagated parallel to the boundary and improve the stability. However, the introduction of this profile also hinders the entry of waves into the boundary, forming false reflections similar to those generated at free interfaces. Therefore, while ensuring the stability, the stability factor should not be too large. The larger the stability factor value, the stronger the obstruction of the attenuation profile and the stronger the false reflection.

The energy decay pattern follows the model presented in Fig. 4, with the energy curves for the entire domain and main domain illustrated by dashed and solid lines, respectively. When the stability factor is introduced, the difference between two curves is the smallest. The η and β improve the stability and absorbing ability, but it will generate energy disturbances in the second half of the decay curve; this means that it will bring about another unstable phenomenon while enhancing the boundary stability. This phenomenon also occurs in multiaxial complex frequency shifted-NPML (MC-NPML) (Luo and Liu 2022). The P(x/z) and P(z/x) can eliminate the residual energy and suppress this energy disturbance.

Fig. 4
figure 4

Decay curve of energy

In order to study RPML better, we compare it with NPML and ADEPML, and study the energy attenuation in the interior domain. As shown in Fig. 5a, the absorption effect of RPML is better than that of ADEPML, similar to that of NPML. Similarly, as shown in Fig. 5b, the curve attenuation effect of C-ADEPML is worse than that of C-RPML and C-NPML.

Fig. 5
figure 5

Decay curve of energy for RPML, ADEPML and NPML

However, the influence of the three factors on RPML, NPML and ADEPML is different. For the stability factor (Fig. 5c), the attenuation curve of M-ADEPML is still the slowest at 0.5 s, but the M-NPML curve decreases the slowest by about 1.4 s, which has weak absorption effect on weak secondary reflection wave.

Of course, as a boundary, we hope that when the wave reaches boundary, it will absorb completely. Therefore, the attenuation at 0.5 s is the most important. The absorption of M-RPML to weak secondary reflection wave is obviously stronger than that of M-NPML, and it performs well in all time intervals.

For precise calculation time, we have recorded the total time taken for 20,000 iterations. As portrayed in Fig. 6, computational time consumption for the three PMLs is tADEPML > tNPML > tRPML. Figure 6 shows that RPML has higher computational efficiency, while ADEPML has lower computational efficiency due to the need to calculate spatial derivatives.

Fig. 6
figure 6

Calculation time under model 1

Model 2 (marmousi model)

Next, the wave equations and simulation results in other media or models are presented to verify the importance of MCFS-RPML.

Figure 7 is the simulation result of the Marmousi model. In order to study the stability of the boundary, we take a long-time simulation of this model. As shown in Fig. 7e, the boundary becomes unstable, the error accumulates, finally increases exponentially and returns to the calculation interval.

Fig. 7
figure 7

Wavefield snapshots of the Marmousi model. a RPML, 1.5 s. b M-RPML, P = 0.1, 1.5 s. c C-RPML, η0 = 3, β0 = 2, 1.5 s. d C-RPML, η0 = 3, β0 = 2, 1.5 s. e RPML, 12 s. f M-RPML, P = 0.1, 12 s. g C-RPML, η0 = 3, β0 = 1, 12 s. h C-RPML, η0 = 0, β0 = 5, 12 s

In model 1, C-RPML can effectively eliminate the accumulation of seismic wave energy in the boundary as Fig. 3d shown, but not in model 2. We can still see a large amount of residual energy in Fig. 7c. Therefore, it is necessary to introduce the stability factor. It can be seen from Fig. 7(e–h), the additional stability factor, scaling factor and frequency shifted factor can improve the boundary stability to a certain extent.

The wavefield snapshot in Fig. 7 corresponds to Fig. 8a. Just compare the three perfectly matched layers, as shown in Fig. 8b, the stability of RPML is the best because its instability occurs the latest. The simulation results show that the new method is not only the simplest in theory, but also effective. Compared with the other PMLs, RPML has better absorption effect and better stability. From Figs. 3a, 7, and 8, it can be seen that even though RPML is more stable, instability can occur when simulating wave field propagation in complex models, and it is also difficult to absorb grazing waves. Therefore, we need to further deduce and propose MCFS-RPML.

Fig. 8
figure 8

Decay curve of energy for RPML, ADEPML and NPML

Conclusions

We present a novel algorithm for perfect matching layers (PML), named Residual PML (RPML). Our approach involves defining residuals, which results in two types of RPML, namely RPML-I and RPML-II. Essentially, all PMLs can be classified into these two categories since residuals are the difference between the original equations and PML equations or between PML wavefield and original wavefield. Numerical simulation shows that our method is effective. RPML is superior to NPML and ADEPML in both stability and absorption. More importantly, RPML-II not only does not need to change the form of the original equation just like NPML, but also there is only one partial derivative of time which is convenient to extend to high-order time simulation. However, RPML still has some defects caused by CCS transformation and attenuation factor distribution. Therefore, we further deduce and propose the MCFS-RPML.