Keywords

1 Introduction

The formulation of elastic wave problems is generally done under the assumption of homogeneity, perfect elasticity and isotropy. The reason being the lesser parameters in model description, simpler constitutive equations and easier solutions. But, in more realistic studies, the assumption on isotropy is relaxed to take anisotropy of the medium into account. A transversely isotropic (TI) medium is considered to be a simpler and the most common anisotropic model in wave propagation studies. Such a medium possess a plane of isotropy, with normal along the single axis of symmetry.

The transient propagation of elastic waves is a reality in numerous fields of science and technology including earthquake and exploration seismology. The governing equations of motion are a system of partial differential equations with initial and/or boundary conditions which are posed in infinite space-time domain. Analytic solutions are difficult to find in these problems as they require application of advanced mathematical techniques. Generally, the standard numerical methods, such as FEM, are developed for solutions in bounded space-time domain. Thus, any model for the bounded region of interest may involve the reflections of elastic waves at the boundaries. But, for these superimposed reflections, the actual solution for wave motion becomes inaccurate. To tackle this situation numerically, an artificial boundary is considered to truncate the unbounded domain of the problem. This imagined boundary is placed at some distance away from the region of the interest. To make the problem well posed, an absorbing boundary condition (ABC) is devised at the truncating boundary, which can absorb the incident waves. The numerical solution obtained for the bounded domain may serve as the solution for original unbounded domain, provided appropriate boundary conditions are applied on truncating boundary.

For solving the equations of elastodynamics numerically, the finite element method (FEM) is a prominently used method. This technique has been used widely in elastic wave propagation modeling [8, 9, 17]. Although conventional FEM can simulate elastic wave propagation in arbitrary geometry domain, its cost of computation becomes high. Hence, in recent years, researchers have tried to implement new variants of FEM.

Spectral Element Method (SEM) was first proposed by Patera [10] for the modeling of liquid flow in computational fluid dynamics. This method is a variant of FEM which uses specific high order shape functions. The idea behind its development was to combine the accuracy and rapid convergence of Pseudo Spectral Method (PSM) with geometrical flexibility of FEM. The main advantage of SEM over FEM is its high accuracy of approximation of solution through a smaller number of elements. Interpolating polynomial was taken as Chebychev polynomial in Patera [10]. Maday and Patera [11] developed SEM further by introducing Lagrange polynomial in combination of Gauss-Lobatto-Legendre (GLL) quadrature rule, which led to a diagonal mass matrix.

The SEM has been used for the study of seismic wave propagation as well. Priolo and Seriani [13] used SEM with Chebychev polynomials for simulation of one dimensional wave propagation. The same technique has been extended to study the propagation of elastic waves in 2D and 3D media for different geological applications ([6, 14, 15]). Basabe [5] used Lagrange interpolation polynomial to apply SEM for the simulation of wave propagation in 2D isotropic elastic media. Seriani et al. [16] studied the propagation of elastic waves in 2D transversely isotropic medium with vertical symmetry axis using Chebychev SEM. But, this Chebychev formulation leads to a non-diagonal mass matrix, whose inversion takes a lot of computation time.

In the present work, SEM has been used to study the two dimensional elastic wave propagation in transversely isotropic media. The higher order Lagrange interpolating polynomial in combination with GLL nodes has been used as shape function. This choice yields a diagonal mass matrix due to orthogonality of approximation functions. It is easier to find inverse of the diagonal matrix as one has to just reciprocate the diagonal elements. Further, the ability to store elements of diagonal mass matrix as a one-dimensional vector leads to reduction in memory requirements. Thus, diagonal mass matrix results in a very efficient fully explicit scheme for integration over time. This is a significant advantage over classical FEM. The GLL quadrature rule for numerical integration is used to evaluate entries of elemental mass and stiffness matrix. The unbounded domain is simulated by introducing artificial boundaries on which absorbing conditions are enforced. The accuracy of method is demonstrated graphically by comparing numerical solution with analytical solution for a homogeneous transversely isotropic medium as mentioned in Carcione [12], Payton [2].

2 Elastic Moduli in Transversely Isotropic Material

The elastic properties of a medium are represented by its elastic stiffness tensor, \({c_{ijkl}}\). In the linear elasticity, this stiffness tensor relates the components of stress tensor (\({\sigma _{ij}}\)) and strain tensor (\({\varepsilon _{kl}}\)). The relevant relations are given according to the generalized Hooke’s law as

$$\begin{aligned} {\sigma _{ij}} = {{c_{ijkl}}{\varepsilon _{kl}}}, \qquad (i,j = 1,2,3)\,. \end{aligned}$$
(1)

The stiffness tensor obey the symmetry relations \({c_{ijkl}} = {c_{jikl}} = {c_{ijlk}} = {c_{klij}};~(i,j,k,l = 1,2,3)\). Consequently, the number of independent components in this tensor reduce to 21, which are arranged in \(6\times 6\) symmetric matrix \(\{C_{IJ}\},~(I,J=1,2...,6)\). The Kronecker tensor (\(\delta _{ij}\)) is used to relate the two set of indices as \(I=i\delta _{ij}+(9-i-j)(1-\delta _{ij}),~ J=k\delta _{kl}+(9-k-l)(1-\delta _{kl});~(i,j,k,l=1,2,3).\)

In an anisotropic medium, there are 21 independent elastic constants. A transversely isotropic (TI) medium has only 5 independent elastic constants. The constitutive relations for a transversely isotropic elastic material, with axis of symmetry lying along vertical z axis are written as Lubarda [7]

$$\begin{aligned} \left\{ {\begin{array}{*{20}{c}} {{\sigma _{xx}}} \\ {{\sigma _{yy}}} \\ {{\sigma _{zz}}} \\ {{\sigma _{yz}}} \\ {{\sigma _{zx}}} \\ {{\sigma _{xy}}} \end{array}} \right\} = \left[ {\begin{array}{*{20}{c}} {{C_{11}}}&{}{{C_{12}}}&{}{{C_{13}}}&{}{{0}}&{}{{0}}&{}{{0}} \\ {{C_{12}}}&{}{{C_{11}}}&{}{{C_{13}}}&{}{{0}}&{}{{0}}&{}{{0}} \\ {{C_{13}}}&{}{{C_{13}}}&{}{{C_{33}}}&{}0&{}0&{}0 \\ 0&{}0&{}0&{}{{C_{44}}}&{}0&{}0 \\ 0&{}0&{}0&{}0&{}{{C_{44}}}&{}0 \\ 0&{}0&{}0&{}0&{}0&{}{{C_{66}}} \end{array}} \right] \left\{ {\begin{array}{*{20}{c}} {{\varepsilon _{xx}}} \\ {{\varepsilon _{yy}}} \\ {{\varepsilon _{zz}}} \\ {2{\varepsilon _{yz}}} \\ {2{\varepsilon _{zx}}} \\ {2{\varepsilon _{xy}}} \end{array}} \right\} \end{aligned}$$
(2)

where \(C_{66}=\frac{1}{2}(C_{11}-C_{12})\) and \(C_{IJ}\) is as defined above.

For two dimensional transversely isotropic elastic solid in x-z plane with symmetry axis lying along the vertical z axis, elastic stiffness matrix \(\textbf{C}\) can be written as

$$\begin{aligned} \textbf{C} = \left( {\begin{array}{*{20}{c}} C_{11}&{}C_{13} &{}0 \\ C_{13} &{}C_{33}&{}0 \\ 0&{}0&{}C_{44} \end{array}} \right) \,. \end{aligned}$$
(3)

In two dimensional case, number of independent elastic constants reduces to 4.

3 Mathematical Formulation

3.1 Elastic Wave Equation in Two Dimensions in a Transversely Isotropic Medium

The governing equations for a dynamical system in the presence of external force are given by Achenbach [1] as

$$\begin{aligned} {\sigma _{ij,j}} + {f_i} = \rho {\ddot{u}_i} \qquad in \qquad \varOmega \times (0,T] \end{aligned}$$
(4)

where \(\varOmega \subset {R^2} \) is the physical domain with boundary \(\Gamma \), (0, T] is the time domain \(\;{\sigma _{ij}}\;\) is the stress tensor, \(\;\rho \; \) is density of medium, \(\;{f_i} = {f_i}(\textbf{x},t)\;\) is the force vector component and \( u_{i}\) is displacement vector component. The comma preceding an index in the subscript denotes derivative w.r.t. space partially and over dot represents partial time differentiation. Repetition of index means sum over that index following Einstein convention. In orthogonal Cartesian coordinate system, displacement vector \((u_{x}, u_{z})\) at a point (xz) defines the motion of material particle. Using general definition of divergence of a tensor field S as \(\nabla .S = {\frac{{\partial {S_{ki}}}}{{\partial {x_k}}}{e_i}} \), the expression \( {\sigma _{ij,j}}\) in (4) can be expressed as

$$\begin{aligned} \left[ {\begin{array}{*{20}{c}} {{\partial _x}}&{}0&{}{{\partial _z}} \\ 0&{}{{\partial _z}}&{}{{\partial _x}} \end{array}} \right] \left[ {\begin{array}{*{20}{c}} {{\sigma _{xx}}} \\ {{\sigma _{zz}}} \\ {{\sigma _{xz}}} \end{array}} \right] = {\textbf{D}}^{T}\sigma \end{aligned}$$
(5)

where \(\textbf{D}=\left[ {\begin{array}{*{20}{c}} {{\partial _x}}&{}0 \\ 0&{}{{\partial _z}} \\ {{\partial _z}}&{}{{\partial _x}} \end{array}} \right] \) is the differential operator.

Components of strain tensor are related to displacement field as

$$\begin{aligned} {\boldsymbol{\varepsilon }} = {\textbf{D}} {\textbf{u}}\,. \end{aligned}$$
(6)

Stresses and strains are related according to generalised Hooke’s law

$$\begin{aligned} {\boldsymbol{\sigma }} = {\textbf{C}} {\boldsymbol{\varepsilon }} \end{aligned}$$
(7)

where \({\textbf{C}}\) is elastic stiffness matrix as defined by (3). \({\boldsymbol{\sigma }} = {\left\{ {{\sigma _{xx}},{\sigma _{zz}},{\sigma _{xz}}} \right\} ^T} ,\quad {\boldsymbol{\varepsilon }} = {\left\{ {{\varepsilon _{xx}},{\varepsilon _{zz}},2{\varepsilon _{xz}}} \right\} ^T}\;\)are the stress and strain vectors respectively, defined through usual components \(\;{\sigma _{ij}}\;\)of stress and \(\;{\varepsilon _{ij}}\;\)of strain tensors. Equations of motion (4) can be written in vector form as

$$\begin{aligned} {\textbf{D}}^{T}{\boldsymbol{\sigma }}+\textbf{f}=\rho \ddot{\textbf{u}}\,. \end{aligned}$$
(8)

3.2 SEM Formulation

The first step in the SEM formulation is to obtain the weak formulation. For this, the product of governing equations and the test function is integrated over the space domain \(\varOmega \). Integration by parts is performed and Gauss divergence theorem is used to reduce the order of the spatial derivatives. The advantage of the weak formulation is that the free surface boundary conditions are naturally satisfied. In case of free surface boundary conditions, the weak formulation of (8) is obtained by introducing the space of admissible displacement field and the space of admissible test function respectively as

$$\begin{aligned} \textbf{X} = \{ \phi :\varOmega \times (0,T] \rightarrow {R^2}|\phi \in {H^1}(\varOmega ), \forall t \in (0,T]\} \end{aligned}$$

and

$$\begin{aligned} {\delta } {\textbf{X}}=\{ \psi :\varOmega \rightarrow {R^2}| \psi \in {H^1}(\varOmega )\} \end{aligned}$$

where \({H^1}\left( \varOmega \right) \) is the space of functions, which together with their first order partial derivatives, are square integrable over the domain \(\varOmega \).

We search for \(\textbf{u} \in \textbf{X}\) such that for any test function \( \mathbf {{w}} \in {{\delta }} {\textbf{X}}\) and \(\forall t \in (0,T]\), we have

$$\begin{aligned} {\partial _{tt}}{(\mathbf {{w}},\rho \textbf{u})_\varOmega } + a{(\mathbf {{w}},\textbf{u})_\varOmega } = {(\mathbf {{w}},\textbf{f})_\varOmega }\,. \end{aligned}$$
(9)

The symbols \(a(.,.)_\varOmega \), and \((.,.)_\varOmega \;\) are defined as

$$\begin{aligned} a{(\mathbf {{w}},\textbf{u})_\varOmega } = \displaystyle \int \limits _\varOmega {\mathbf {{{w}^{T}}}{\textbf{D}}^{T}{\boldsymbol{{\sigma }} }} d\varOmega = \displaystyle \int \limits _\varOmega {{{({\textbf{D}}\mathbf {{w}})}^{T}}{\textbf{C}}} \varepsilon d\varOmega = \displaystyle \int \limits _\varOmega {{{({\textbf{D}}{\textbf{w}})}^T}{\textbf{C}}} {\textbf{D}}\textbf{u}d\varOmega \end{aligned}$$
(10)
$$\begin{aligned} {(\mathbf {{w}},\textbf{f})_\varOmega } = \displaystyle \int \limits _\varOmega {\textbf{w}}^{T}{\textbf{f}}d\varOmega \end{aligned}$$
(11)
$$\begin{aligned} {(\mathbf {{w}},\rho \textbf{u})_\varOmega } = \displaystyle \int \limits _\varOmega {\textbf{w}}^{T}\rho {\textbf{u}} d\varOmega \,. \end{aligned}$$
(12)

3.3 Discretization in Space

The space discretization of (9) is performed by approximating displacement field in a finite-dimensional subspace \(\textbf{X}_h = X_h \times X_h\) of original space \(\textbf{X}\). This approximation transforms (9) into a system of ordinary differential equations.

Approximating \(\textbf{u}\) as \({{\textbf{u}}_h}\in \textbf{X}_h\) given by linear combination

$$\begin{aligned} {{\textbf{u}}_h}\left( {x,z,t} \right) =\left[ {\begin{array}{*{20}{c}} U_j^x\left( t \right) {\phi _j}\left( {x,z} \right) \\ U_j^z\left( t\right) {\phi _j}\left( {x,z} \right) \end{array}} \right] \,. \end{aligned}$$
(13)

where \(U_j^x(t)\) and \(U_j^z(t)\;\) are SEM approximations coefficients in horizontal and vertical displacements respectively. \(\phi _j\) denote shape functions for each node position.

Substituting \(\textbf{w} = {({\phi _i},0)^T}\) for the test function, (9) can be simplified as

$$ {\partial _{tt}}{\int \limits _\varOmega {\rho [{\phi _i}} ,0]\left[ {\begin{array}{*{20}{c}} {{U_j}^x(t){\phi _j}} \\ {{U_j}^z(t){\phi _j}} \end{array}} \right] d\varOmega }+$$
$$\int \limits _\varOmega {\left[ {\begin{array}{*{20}{c}} {{\partial _x}{\phi _i}}&0&{{\partial _z}{\phi _i}} \end{array}} \right] \left[ {\begin{array}{*{20}{c}} C_{11}&{}C_{13} &{}0 \\ C_{13} &{}C_{33}&{}0 \\ 0&{}0&{}C_{44} \end{array}} \right] \left[ {\begin{array}{*{20}{c}} {{\partial _x}}&{}0 \\ 0&{}{{\partial _z}} \\ {{\partial _z}}&{}{{\partial _x}} \end{array}} \right] \left[ {\begin{array}{*{20}{c}} {U_j^x\left( t \right) {\phi _j}} \\ {U_j^z\left( t \right) {\phi _j}} \end{array}} \right] }d\varOmega $$
$$\begin{aligned} = \int \limits _\varOmega {\left[ {{\phi _i},0} \right] \left[ {\begin{array}{*{20}{c}} {{f_x}} \\ {{f_z}} \end{array}} \right] d\varOmega }\,. \end{aligned}$$
(14)

Simplifying it further, we get equation of the form

$$\begin{aligned} {M_{ij}}{\partial _{tt}}U_j^x + K_{ij}^1U_j^x + K_{ij}^2U_j^z = F_i^x \end{aligned}$$
(15)

where

$$\begin{aligned} M_{ij} = \int \limits _\varOmega {\rho {\phi _i}{\phi _j}dxdz} \end{aligned}$$
(16)
$$\begin{aligned} K_{ij}^1 = \int \limits _\varOmega {\left( {C_{11}}{\phi _{i,x}}{\phi _{j,x}} + {C_{44}}{\phi _{i,z}}{\phi _{j,z}}\right) dxdz} \end{aligned}$$
(17)
$$\begin{aligned} K_{ij}^2 = \int \limits _\varOmega {\left( {C_{13}} {\phi _{i,x}}{\phi _{j,z}} + {C_{44}}{\phi _{i,z}}{\phi _{j,x}} \right) }dxdz \end{aligned}$$
(18)
$$\begin{aligned} F_i^x = \int \limits _\varOmega {{f_x}{\phi _i}dxdz}\,. \end{aligned}$$
(19)

Similarly, on substituting \(\textbf{w} = {(0,{\phi _i})^T}\) in (9), we get one more system of equations

$$\begin{aligned} {M_{ij}}{\partial _{tt}}U_j^z + K_{ij}^3U_j^x + K_{ij}^4U_j^z = F_i^z \end{aligned}$$
(20)

where

$$\begin{aligned} K_{ij}^3 = \int \limits _\varOmega {\left( {C_{13}} {\phi _{i,z}}{\phi _{j,x}} + {C_{44}}{\phi _{i,x}}{\phi _{j,z}} \right) } dxdz \end{aligned}$$
(21)
$$\begin{aligned} K_{ij}^4 = \int \limits _\varOmega {\left( {C_{33}}{\phi _{i,z}}{\phi _{j,z}} + {C_{44}}{\phi _{i,x}}{\phi _{j,x}} \right) } dxdz \end{aligned}$$
(22)
$$\begin{aligned} F_i^z = \int \limits _\varOmega {{f_z}{\phi _i}dxdz}\,. \end{aligned}$$
(23)

Equations (15) and (20) are combined in block matrix form as

$$\begin{aligned} \textbf{A}{\partial _{tt}}\textbf{U} + \textbf{BU} = \textbf{F},\qquad \textbf{U} = {\left( {\textbf{U}^x\left( t \right) ,\textbf{U}^z\left( t \right) } \right) ^T} \end{aligned}$$
(24)

where \( \textbf{A} = \left[ {\begin{array}{*{20}{c}} \textbf{M}&{}\textbf{0} \\ \textbf{0}&{}\textbf{M} \end{array}} \right] \) is the assembled mass matrix.

\(\textbf{B} = \left[ {\begin{array}{*{20}{c}} {\mathbf {{K^1}}}&{}{\mathbf {{K^2}}} \\ {\mathbf {{K^3}}}&{}{\mathbf {{K^4}}} \end{array}} \right] \) is the assembled stiffness matrix.

\(\textbf{F} = {\left( {\mathbf {{F^x}},\mathbf {{F^z}}} \right) ^T}\) is the global force vector.

These assembled matrices and vector are formed by assembly of all elemental level matrices and vectors respectively. Equation (24) is in semi-discretized form wherein partial differential equation has been discretized with respect to space only.

3.4 Discretization in Time

The equation of motion in semi-discretized form is expressed as

$$\begin{aligned} \textbf{A}\ddot{\textbf{U}} + \textbf{BU} = \textbf{F} \end{aligned}$$
(25)

along with the initial conditions

\(\textbf{U}\left( 0 \right) =\mathbf {{U_0}} = \textbf{0}\)

\(\dot{\textbf{U}}\left( 0 \right) = {\dot{\textbf{U}}_0} = \textbf{0}\;\)

where the vector \(\textbf{U}\) represents the values of approximate solution \({{\textbf{u}}_h}\) at all global nodes for each degree of freedom. Equation (25) is a second order ordinary differential equation in time. Explicit central difference method or implicit Newmark method are mostly used methods for time discretization. The choice of Lagrange polynomial at GLL collocation points as shape function along with GLL quadrature rule results in diagonal mass matrix \( \textbf{A}\). Due to diagonal mass matrix, explicit time integration methods are most effective because these methods become truely explicit. That is a system of equations is not required to be solved for each time step. Inverse of mass matrix can be calculated easily which makes computational algorithm less expensive. Explicit time integration scheme used here is central difference method. This method is second order accurate and conditionally stable. Time step stability limit of this method is highest among all second order methods. Time discretization of (25) is obtained by discretizing the time variable t in [0, T] as \({t_n} = n\Delta t \) , \(\Delta t=\frac{T}{N_T}\), where \({N_T}\) is the number of time steps. At time \({t_n}\), solution \(\textbf{U}\left( t_n \right) \) is simply denoted as \(\textbf{U}_n\).

In central difference method, we write

$$\begin{aligned} {{\ddot{{\textbf{U}}}}_n} = \frac{{{{\textbf{U}}_{n + 1}} - 2{{\textbf{U}}_n} + {{\textbf{U}}_{n - 1}}}}{{{{\left( {\Delta t} \right) }^2}}}\,. \end{aligned}$$
(26)

Substituting the value in (25) at time \(t = {t_n}\)

$$ {\textbf{A}}\left[ {\frac{{{{\textbf{U}}_{n + 1}} - 2{{\textbf{U}}_n} + {{\textbf{U}}_{n - 1}}}}{{{{(\Delta t)}^2}}}} \right] + {\textbf{B}}{{\textbf{U}}_n} = {{\textbf{F}}_n}$$
$$ {\textbf{A}}{{\textbf{U}}_{n + 1}} = 2{\textbf{A}}{{\textbf{U}}_n} + {(\Delta t)^2}({{\textbf{F}}_n} - {\textbf{B}}{{\textbf{U}}_n}) - {\textbf{A}}{{\textbf{U}}_{n - 1}}\,. $$

Substituting \({\textbf{A}}\), \({\textbf{B}}\), \({{\textbf{F}}_n}\), \({{\textbf{U}}_n}\) and simplifying

$$\begin{aligned} {\textbf{U}}_x^{n + 1} = 2{\textbf{U}}_x^n - {\textbf{U}}_x^{n - 1} + \frac{{{{(\Delta t)}^2}[{\textbf{F}}_x^n - {K^1}{\textbf{U}}_x^n - {K^2}{\textbf{U}}_z^n]}}{M} \end{aligned}$$
(27)
$$\begin{aligned} {\textbf{U}}_z^{n + 1} = 2{\textbf{U}}_z^n - {\textbf{U}}_z^{n - 1} + \frac{{{{(\Delta t)}^2}[{\textbf{F}}_z^n - {K^3}{\textbf{U}}_x^n - {K^4}{\textbf{U}}_z^n]}}{M}\,. \end{aligned}$$
(28)

Displacements at present time step in x and z directions are calculated from displacements at two previous time steps using (27) and (28) respectively. The displacements thus calculated are used to compute the strain components through (6). These strains are further used along with the material elastic moduli to solve for stress components using (7).

4 Computational Algorithm

4.1 Domain Decomposition and Mapping of Geometry

Physical domain is divided into non-overlapping elements \({\varOmega _e}\), \(e = 1,2 \ldots {n_e}\), where \({n_e}\) is the total number of elements. For a 2D problem, the elements are quadrilaterals. The integrals of the weak form (9) are evaluated separately for each element domain \({\varOmega _e}\). The computation of the integral over an element is simplified by means of an invertible transformation between the general element \({\varOmega _e} \) and reference element \({\widehat{\varOmega }}\). The reference element is expressed by natural coordinates \((\xi ,\eta )\) where \(0\le \xi \le 1\) and \(0\le \eta \le 1\). The element geometry is mapped from natural coordinates \((\xi ,\eta )\) to physical coordinates (xz). Tensor product of linear Lagrange polynomial has been used for the purpose of this mapping. Four bilinear Lagrange type functions used in this mapping for the quadrilateral element are

$$\begin{aligned} {{ \psi }_1} = \left( 1 - \xi \right) \left( 1 - \eta \right) , \qquad {{ \psi }_2} = \xi \left( 1 - \eta \right) , \qquad {{ \psi }_3} = \left( 1 - \xi \right) \eta ,\qquad {{ \psi }_4} = \xi \eta \,. \end{aligned}$$
(29)

The points on reference domain and physical domain are related as follows

$$\begin{aligned} x(\xi ,\eta ) = \sum \limits _{i = 1}^4 {{{\psi }_i}(\xi ,\eta )x_i^e} , \qquad z(\xi ,\eta ) = \sum \limits _{i = 1}^4 {{{\psi }_i}(\xi ,\eta )z_i^e}\,. \end{aligned}$$
(30)

where \( x_i^e \,,z_i^e \) are x and z coordinates respectively of local node i of element e.

4.2 Interpolation of Field Variables Using Shape Functions

In SEM, higher order Lagrange interpolation polynomials are used for expressing field variables on the elements. Let \(\{ {\xi _i}\} _{i = 0}^k\;\) be the nodes on \(\xi \) side of the reference square \({\hat{\varOmega }}\) with \({\xi _0} = 0\) and \({\xi _k} = 1\) and \(\{ {l _j}\} _{j = 0}^k\) be the interpolating Lagrange polynomial with the condition \({l _j}({\xi _i}) = {\delta _{ij}}\) , where\(\;{\delta _{ij}}\) is the Kronecker’s delta. Lagrange polynomial for each \({\xi _i}\; \) is defined as

$$\begin{aligned} {l _i}(\xi ) = \frac{{(\xi - {\xi _0}) \ldots (\xi - {\xi _{i - 1}})(\xi - {\xi _{i + 1}}) \ldots (\xi - {\xi _k})}}{{({\xi _i} - {\xi _0}) \ldots ({\xi _i} - {\xi _{i - 1}})({\xi _i} - {\xi _{i + 1}}) \ldots ({\xi _i} - {\xi _k})}}\, , \, i= 0,1..,k \,. \end{aligned}$$
(31)

Using polynomials (31), the shape function for each node position in unit square element is given by

$$\begin{aligned} \phi _q(\xi ,\eta ) = {l _i}(\xi ){l _j}(\eta ) \, , \qquad (i,j=0,1,...k) \end{aligned}$$
(32)

where \(q = (k + 1)j + i\). Range of \(q = 0,1, \ldots {(k + 1)^2} - 1\).

These shape functions are referred to as tensor product Lagrange shape functions. A scalar function f on a general element \(\varOmega _e\) is approximated by these shape functions as

$$\begin{aligned} f(\textbf{x}(\xi ,\eta ))=\sum \limits _{i,j = 0}^{k}{{l _i}(\xi ){l _j}(\eta ) f_{ij}}\,. \end{aligned}$$
(33)

The horizontal and vertical displacements throughout the element are interpolated using shape functions and nodal displacements as

$$\begin{aligned} {u_x} = \sum \limits _{i = 0}^{{(k+1)^2-1}} {{\phi _i}\left( {\xi ,\eta } \right) u_{x,i}^e} \, , \qquad {u_z} = \sum \limits _{i = 0}^{{(k+1)^2-1}} {{\phi _i}\left( {\xi ,\eta } \right) u_{z,i}^e}\,. \end{aligned}$$
(34)

Tensor product of \(k{\textrm{th}}\) order Lagrange polynomial is taken as shape function \({\phi _i}\). \(u_{x,i}^e \;,\;u_{z,i}^e\) are x and z components of displacement respectively of local node i of element e.

In SEM, the collocation points \({\xi _i}\) \((i=0,1..., k) \), which are interpolated by Lagrange polynomials of degree k are selected as the \((k+1)\) Gauss-Lobatto-Legendre (GLL) points. The GLL points are defined as the roots of the equation

$$\begin{aligned} (1 - {x^2}){P'_k}(x) = 0 \end{aligned}$$
(35)

where \({P'_k}(x)\) is the first derivative of kth order Legendre polynomial. This choice of interpolation points is convenient because it allows one to enforce continuity of field variables across the element boundaries.

4.3 Computation of Mass and Stiffness Matrices

The evaluation of entries of stiffness matrices in Eqs. (17), (18), (21) and (22) requires the differentiation of shape functions w.r.t physical coordinates. Since, shape functions are expressed in terms of natural coordinates, their derivatives w.r.t. physical coordinates x and z must be transformed to derivative w.r.t. natural coordinates \(\xi \) and \(\eta \). The transformation of derivatives from physical coordinate system to natural coordinate system is obtained by chain rule of partial differentiation which is expressible in matrix form as Carey and Oden [3]

$$\begin{aligned} \left[ {\begin{array}{*{20}{c}} {\frac{\partial }{{\partial \xi }}} \\ {\frac{\partial }{{\partial \eta }}} \end{array}} \right] = \left[ {\begin{array}{*{20}{c}} {\frac{{\partial x}}{{\partial \xi }}}&{}{\frac{{\partial z}}{{\partial \xi }}} \\ {\frac{{\partial x}}{{\partial \eta }}}&{}{\frac{{\partial z}}{{\partial \eta }}} \end{array}} \right] \left[ {\begin{array}{*{20}{c}} {\frac{\partial }{{\partial x}}} \\ {\frac{\partial }{{\partial z}}} \end{array}} \right] = J\left[ {\begin{array}{*{20}{c}} {\frac{\partial }{{\partial x}}} \\ {\frac{\partial }{{\partial z}}} \end{array}} \right] \end{aligned}$$
(36)

where J is the two dimensional matrix that denotes the mapping from physical coordinates (xz) to the natural coordinates \((\xi , \eta )\). The determinant of matrix J is referred to as the Jacobian and is used in transforming the integrals as follows

$$\begin{aligned} {\int {\int } } dx dz={\int {\int } } \det \left( J \right) d\xi d\eta . \end{aligned}$$

Using (30), we have \(\frac{{\partial x}}{{\partial \xi }} = \sum \nolimits _{i = 1}^4 {\frac{{\partial {{ \psi }_i}}}{{\partial \xi }}x_i^e}\). Similar expressions are derived to get the entries of matrix J. Inverse of transformation (36) may be written as

$$\begin{aligned} \left[ {\begin{array}{*{20}{c}} {\frac{\partial }{{\partial x}}} \\ {\frac{\partial }{{\partial z}}} \end{array}} \right] = {J^{ - 1}}\left[ {\begin{array}{*{20}{c}} {\frac{\partial }{{\partial \xi }}} \\ {\frac{\partial }{{\partial \eta }}} \end{array}} \right] = \left[ {\begin{array}{*{20}{c}} {{J_{11}}^*}&{}{{J_{12}}^*} \\ {{J_{21}}^*}&{}{{J_{22}}^*} \end{array}} \right] \left[ {\begin{array}{*{20}{c}} {\frac{\partial }{{\partial \xi }}} \\ {\frac{\partial }{{\partial \eta }}} \end{array}} \right] \,. \end{aligned}$$
(37)

In (37), matrix with starred entries represents inverse of matrix J which can be computed easily. With the help of (37), we can find derivatives of shape functions w.r.t physical coordinates in terms of derivatives w.r.t. natural coordinates. Entries of mass matrix in (16) are computed as

$$\begin{aligned} {M_{ij}} = \displaystyle \int \limits _\varOmega {\rho {\phi _i}{\phi _j}d\varOmega } = \sum \limits _{e = 1}^{{n_e}} {\displaystyle \int \limits _{{\varOmega _e}} {\rho {\phi _i}{\phi _j}dxdz = \sum \limits _{e = 1}^{{n_e}} {\displaystyle \int \limits _0^1 {\displaystyle \int \limits _0^1 \rho } } } } {\phi _i}{\phi _j}\det \left( J \right) d\xi d\eta \,. \end{aligned}$$
(38)

For the calculation of entries of element matrices, integration has been performed numerically using Gauss-Lobatto-Legendre(GLL) quadrature rule for numerical integration. In GLL quadrature, boundary points of the interval are also included. GLL quadrature rule on unit interval [0, 1] has been applied for calculation of elementary integrals.

5 Absorbing Boundary Condition for Unbounded Domain

The accurate modeling of seismic wave propagation requires truncation of the model in finite domain. A proper boundary condition needs to be applied at the artificial boundary for elimination of the reflections from the edges. Large number of techniques are developed in order to find a suitable boundary condition which can effectively eliminate reflections from the truncating boundary. Cerjan et al. [4] proposed to eliminate the reflected wave by setting the damping boundary layer outside the working area. This type of boundary condition works on the principle of gradually damping of waves in the neighbourhood of truncating boundary. In this method, wave amplitude is multiplied by an exponential function in the thin strip in the vicinity of artificial boundary, known as Cerjan sponge boundary layer. This technique decreases the amplitude of wave in the desired narrow region and thus eliminates reflections. The method works for large range of incident angles and different geological models. Due to simple application technique, this method is often used for numerical simulations [4]. We use slight improvement of Cerjan boundary condition based on Tian et al. [18].

The nodal displacements at \((n+1){\textrm{th}}\) time step is generated with the help of displacements at \(n{\textrm{th}}\) and \((n-1){\textrm{th}}\) time steps using (27) and (28). To damp the wave in the damping area using this absorbing condition, the displacement at \((n+1){\textrm{th}}\) time step, \({\textbf{U}}^{n+1}\), is replaced by \(\tilde{{\textbf{U}}}^{n+1}\) which can be expressed as

$$\begin{aligned} \tilde{{\textbf{U}}}^{n+1}= \sigma (\omega {\textbf{U}}^{n+1}+(1-\omega ){\textbf{U}}^{n})\, \end{aligned}$$

where \(\omega =\exp (-\alpha (\frac{i}{N})^2)\) ,      \(\sigma =\exp (-\beta (\frac{i}{N})^2)\).

Here, N is the damping strip width. Generally, width of damping strip is taken as 20 node for wave propagation problems. The parameter i denotes node positioning inside the damping strip, starting from i=1 in the interior of strip and increasing outwards.

6 Discussion of Numerical Result

We shall discuss the results for bounded and unbounded domains.

6.1 Bounded Domain

For bounded domain, results are presented for the wave propagation simulation through a sample of Apatite. This anisotropic material has transverse isotropy with z axis being the axis of symmetry and with the following elastic moduli

\({C_{11}} = 16.7\), \( \quad {C_{13}} = 6.6\),      \({C_{33}} = 14.0,\quad {C_{44}}= 6.63, \quad \rho =3200.\)

Elastic moduli are in the unit of G Pa and hence should be multiplied by \(10^{10} N/m^2\). Density\(\left( \rho \right) \) is in the units of \(kg/m^3\).

Two dimensional domain is taken as a square of size \(33cm \times 33cm\) discretized with a grid of \(20 \times 20\) elements in \(x-z\) plane. This is a bounded and connected domain with boundary conditions applied on boundary \(\Gamma \). In the present paper, free surface boundary conditions has been considered. The order of SEM has been taken as 7.

Motion is excited by z directional point force \(f\left( {\textbf{x},t} \right) = g\left( \textbf{x} \right) h\left( t \right) \) applied at the center of domain. The time history h(t) of the source function is defined by

$$\begin{aligned} h(t) = {e^{ - 0.5{f_0}^2{{(t - {t_0})}^2}}}\cos \pi {f_0}(t - {t_0}) \end{aligned}$$
(39)

where \(t_0=6 \upmu s\) and \(f_0=500 kHz\).

The source function is implemented as a 2D Gaussian in space.

Absorbing boundary conditions are not used for the bounded domain case because simulation is stopped before propagating wave reaches the mesh limits. Results are presented in the form of snapshots, which represent the wave field at a particular instant of time. The standard geophysical package Seismic Unix is used for visualization of snapshots. Figures 1 and 2 show snapshots of the x and z components of displacements at specified times . As it can be seen, wave front shows characteristics predicted by wave front curves as explained in [12]. Point K (16.5, 21.4) is chosen as observation point to show variation of displacement components and stress components w.r.t. time. Time history of horizontal displacement \(u_{x}\) and vertical displacement \(u_{z}\) at point K is plotted in Fig. 3. Figure 4 shows variation of stress components w.r.t time at point K.

Fig. 1
figure 1

Snapshot of x component of displacement at (a) t = 10 \(\upmu \)s, (b) t = 20 \(\mu \)s and (c) t = 30 \(\upmu \)

Figure 5 shows numerical and analytical solution on the same scale. Analytical solution along symmetry axis for a homogeneous transversely isotropic solid is taken from [12] and is given in Appendix. Receiver is located at distance 4.9 cm from source position along symmetry axis. The figure demonstrate exact overlapping of the numerical and analytical solutions. Total time for simulation is taken to be 40 \(\mu \) s and number of time steps are taken as 1250 for the purpose of comparison.

Fig. 2
figure 2

Snapshot of z component of displacement at (a) t = 10 \(\upmu \)s, (b) t = 20 \(\upmu \)s and (c) t = 30 \(\upmu \)s

Fig. 3
figure 3

Time histories of the horizontal and vertical displacements at point K(16.5, 21.4)

Fig. 4
figure 4

Time histories of the stress components at point K(16.5, 21.4)

Fig. 5
figure 5

Comparison between analytical and numerical solution along symmetry axis at a distance of 4.9 cm from source position

Fig. 6
figure 6

Comparison between analytical and numerical solutions (with and without absorbing boundary conditions) along symmetry axis at a distance of 4.9 cm from source position

6.2 For Unbounded Domain

For finding the numerical solution in the unbounded domain, we truncate the unbounded problem domain to a finite computational domain. We choose \(100\,\textrm{cm} \times 100\,\textrm{cm}\) as truncated domain discretized with a grid of \(60 \times 60\) elements in \(x-z\) plane. Motion is exited by the same z directional point source as in case of bounded domain applied at the center. Receiver is placed at point (50, 54.9) along symmetry axis. Total time for simulation is taken to be 160\(\upmu \) s and number of time steps are taken as 4000 for the purpose of simulation. Simulation is done for larger time period to demonstrate the effect of absorbing boundary conditions on the reflections at artificial boundary. In Fig. 6, it can be seen that reflections from the edges are very much reduced in numerical solution with absorbing boundary than in case of numerical solution without absorbing boundary. Solution with the present method of absorbing boundary conditions is in good agreement with the analytical solution for unbounded domain. Figure 7 shows snapshots of the x components of displacements at specified times without applying any absorbing boundary condition. The same components with the application of absorbing boundary condition are shown in Fig. 8. It can be seen that spurious boundary reflections are considerably reduced with application of absorbing boundary condition. The comparison for z component of displacement before and after applying absorbing boundary conditions can be seen from Figs. 9 and 10.

Fig. 7
figure 7

Snapshot of x component of displacement without absorbing boundary at (a) t = 100 \(\upmu \)s and (b) t = 120 \(\upmu \)s

Fig. 8
figure 8

Snapshot of x component of displacement with absorbing boundary at (a) t = 100 \(\upmu \)s and (b) t = 120 \(\upmu \)s

Fig. 9
figure 9

Snapshot of z component of displacement without absorbing boundary at (a) t = 100 \(\upmu \)s and (b) t = 120 \(\upmu \)s

Fig. 10
figure 10

Snapshot of z component of displacement with absorbing boundary at (a) t = 100 \(\upmu \)s and (b) t = 120 \(\upmu \)s

7 Conclusion

In this paper, two dimensional elastic wave propagation is modeled in homogeneous transversely isotropic media by spectral element method. Snapshots generated by algorithm are in good agreement with predicted wavefront curves for the transversely isotropic media. Accuracy of algorithm has been established by comparing it with analytical solution along symmetry axis in homogeneous transversely isotropic media. Absorbing boundary conditions are used to reduce the reflections and simulate wave propagation in unbounded domain more accurately.

Present algorithm may be extended to problems involving wave propagation through heterogeneous media where elastic constants vary with position of particles in domain. Transverse isotropy may be extended to orthotropy or general anisotropy.