<<

A Fast Method for Solving the Helmholtz Equation Based on Wave Splitting

JELENA POPOVIC

Licenciate Thesis Stockholm, Sweden 2009 TRITA-CSC-A 2009:11 ISSN-1653-5723 KTH School of Computer Science and Communication ISRN KTH/CSC/A- -09/11-SE SE-100 44 Stockholm ISBN 978-91-7415-370-5 SWEDEN

Akademisk avhandling som med tillst˚andav Kungl Tekniska h¨ogskolan framl¨agges till of- fentlig granskning f¨or avl¨aggande av teknologie licentiatexamen i numerisk analys m˙andagen den 12 juni 2009 klockan 13.15 i D41, Huvudbyggnaden, Lindstedsv¨agen 3, Kungl Tekniska h¨ogskolan, Stockholm.

c Jelena Popovic, 2009

Tryck: Universitetsservice US AB iii

Abstract

In this thesis, we propose and analyze a fast method for computing the solution of the Helmholtz equation in a bounded domain with a variable wave speed function. The method is based on wave splitting. The Helmholtz equation is first split into one–way wave equations which are then solved iteratively for a given tolerance. The source functions depend on the wave speed function and on the solutions of the one–way wave equations from the previous iteration. The solution of the Helmholtz equation is then approximated by the sum of the one–way solutions at every iteration. To improve the computational cost, the source functions are thresholded and in the domain where they are equal to zero, the one–way wave equations are solved with GO with a computational cost independent of the frequency. Elsewhere, the equations are fully resolved with a Runge-Kutta method. We have been able to show rigorously in one dimension that the algorithm is convergent and that for fixed accuracy, the computational cost is just O(ω1/p) for a p-th order Runge-Kutta method. This has been confirmed by numerical experiments.

Preface

The author of this thesis contributed to the ideas presented, performed the numerical com- putations and wrote all parts of the manuscript, except the appendix that is written by Dr. Olof Runborg.

v

Acknowledgments

First of all I would like to thank my supervisor Olof Runborg for his patience and help. His ideas, encouragement and support helped me a lot to understand and solve many mathematical problems. I am very happy to have the opportunity to work with him. I would also like to thank Jesper Oppelstrup for his comments and advices. A big thank you to all my colleagues at the department, especially to Sara, Mohammad, Murtazo, Tomas, H˙akon and Henrik. Having you not only as my colleagues but also as my friends means a lot to me. I wish to thank families Nikolic and Minic for their love, support and understanding. Special thanks to Vladimir for making me laugh even when I am not in the mood. I am very grateful to my parents and my brother for everything they do for me. Thank you for being always by my side and never letting me go down. Finally, I would like to thank Miki for believing in me and encouraging me every time I loose faith in myself.

vii Contents

Preface v

Acknowledgments vii

Contents viii

1 Introduction 1 1.1 Wave Propagation Problems ...... 1 1.2 Geometrical ...... 4 1.3 Numerical Methods ...... 6

2 A Fast Method for Helmholtz Equation 15 2.1 Derivation of the Method in One Dimension ...... 15 2.2 Formulation in Two Dimensions ...... 19

3 Analysis 21 3.1 Utility Results ...... 21 3.2 Estimates of One-Way Solutions ...... 23 3.3 Convergence of the Algorithm ...... 26

4 Error Analysis for Numerical Implementation 33 4.1 Numerical Implementation ...... 33 4.2 Error Analysis ...... 36

5 Numerical Experiments 43

Bibliography 61

A Runge–Kutta Schemes for Linear Scalar Problems 65

viii Chapter 1

Introduction

Simulation of high frequency wave propagation is important in many engineering and scien- tific disciplines. Currently the interest is driven by new applications in wireless communi- cation (cell phones, bluetooth) and photonics (optical fibers, filters, switches). Simulation is also used in more classical applications. Some examples in electromagnetism are antenna design and radar signature computation. In acoustics simulation is used for noise predic- tion, underwater communication and medical ultrasonography. One significant difficulty with numerical simulation of such problems is that the wavelength is very short compared to the computational domain and thus many discretization points are needed to resolve the solution. Consequently, the computational complexity of standard numerical methods grows algebraically with the frequency. Therefore, development of effective numerical methods for high frequency wave propagation problems is important. Recently, a new class of methods have been proposed which, in principal, can solve the wave propagation problem at a cost almost independent of the frequency for a fixed accuracy. The main interest of the new methods have been for scattering problems. These have mostly been derived through heuristic arguments. Proving the low cost rigorously is rather difficult although there are now a few precise proofs about computational cost and accuracy in terms of the frequency. For problems set in a domain much less have been done. The focus of this thesis is on such problems. We develop a fast method for solving Helmholtz equation in a domain with varying wave speed. We show rigorously that in one dimension the asymptotic computational cost of the method only grows slowly with the frequency, for fixed accuracy.

1.1 Wave Propagation Problems

The basic equation that describes wave propagation problems mathematically is the , 1 ∂2 ∆u(x, t) − u(x, t) = 0, (x, t) ∈ Ω × +, (1.1) (c(x))2 ∂t2 R where c is the speed of propagation that can be variable and Ω ⊂ Rn is an open domain. The equation is subjected to appropriate initial and boundary conditions. The initial conditions are of the form

u(x, t) = f(x), ut(x, t) = g(x), (x, t) ∈ Ω × {t = 0}, where f and g are given functions. Boundary conditions can be Dirichlet, i.e., + u(x, t) = ϕ(t), (x, t) ∈ ∂Ω × R ,

1 2 CHAPTER 1. INTRODUCTION or Neumann, i.e., + un(x, t) = ϕ(t), (x, t) ∈ ∂Ω × R , or Robin which is a linear combination of Neumann and Dirichlet boundary conditions. The wave equation is used in acoustics, elasticity and electromagnetism. In acoustics, the evolution of the pressure and particle velocity is modeled by this equation. Equations that describe the motion in an elastic solid are equations for the pressure waves (P-waves) and the shear waves (S-waves). In 1D problems the resulting equations can be decomposed into independent sets of equations for P-waves and S-waves, but in higher dimensions it is not the case. The unknowns are the velocity and shear strain or shear stress. Eliminating one of the unknowns from the system, it can be shown that the other satisfies the wave equation. Equations that are used to model the problems in electromagnetics are the Maxwell’s equations, ∂D ∇ × H = J + ∂t ∂B ∇ × E = − ∂t ∇ · D = ρ ∇ · B = 0, where H is the magnetic field, J is the current density, D is the electric displacement, E is the electric field, B is the magnetic flux density and ρ is the electric charge density. Assuming time-harmonic waves, i.e. waves of the form

u(x, t) = v(x)eiωt, where ω is the frequency, the wave equation can be reduced to the Helmholtz equation, ω2 ∆v(x) + v(x) = 0, x ∈ Ω. (1.2) (c(x))2 The equation is augmented with boundary conditions, which can be Dirichlet, i.e.,

v(x) = g, x ∈ ∂Ω, or Neumann, i.e., vn(x) = g, x ∈ ∂Ω, (1.3) or Robin boundary condition. Thus, the Helmholtz equation represents a time-harmonic form of the wave equation. Henceforth we refer to the problems of type (1.1) and (1.2) as domain problems. Another type of wave propagation problems is the scattering problem. Scattering prob- lems concern propagation of waves that collide with some object. More precisely, let Ω be an object, a scatterer, that is illuminated by an incident wave field uinc. Then, the wave field that is generated when uinc collides with Ω is the scattered field us (see Figure 1.1). There are many examples of scattering problems. One of them in nature is for example a rainbow that appears when the sunlight is scattered by rain drops. Another example is the scattering of light from the air which is the reason for the blue color of the sky. To describe the scattering problem mathematically, let us consider an impenetrable obstacle Ω in R3 and assume that the speed of propagation c(x) = 1 outside Ω. The obstacle is illuminated by some known incident wave uinc(x, t) which solves the constant coefficient Helmholtz equa- tion pointwise, for example a plane wave eiωx. We also assume that utot = uinc + us = 0 1.1. WAVE PROPAGATION PROBLEMS 3

Figure 1.1: Scattering problem.

on the boundary of the obstacle ∂Ω. Then, the scattering problem is to find the scattered field us(x) such that it satisfies the Helmholtz equation

s 2 s 3 ∆u (x) + ω u (x) = 0, x ∈ R \ Ω¯ (1.4) with boundary condition us(x) = −uinc(x), x ∈ ∂Ω, (1.5) and the Sommerfeld radiation condition ∂us  lim r − iωus = 0, (1.6) r→∞ ∂r where r = |x|, which guarantees that the scattered wave is outgoing. Instead of boundary condition (1.5), some other boundary conditions can be used, as above in (1.3). Using the Green’s representation formula, the scattering problem can be reformulated as a boundary integral equation which represents the integral form of the problem. One transformation that is suitable for high-frequency problems [14] is 1 ∂u Z Φ(x, y)  ∂u (x) + − iηΦ(x, y) (y)ds(y) = f(x), x ∈ ∂Ω, (1.7) 2 ∂n ∂Ω ∂n(x) ∂n where ∂uinc f(x) = (x) − iηuinc(x), ∂n 4 CHAPTER 1. INTRODUCTION

η = η(ω) > 0 is a coupling parameter that ensures the well posedness of (1.7) and ∂u/∂n is to be determined. Here Φ(x, y, ω) denotes the standard fundamental solution of the Helmholtz equation in R3 which becomes increasingly oscillatory when ω → ∞. One important difference between scattering problems in homogeneous medium and the domain problems is in the way the waves are scattered. In the domain problems the waves are scattered whenever the wave speed changes, while in the scattering problems the waves are scattered only from the surface of the scatterer.

1.2 Geometrical Optics

High frequency wave propagation problems require many discretization points/ elements to resolve the solution and therefore become computationally very expensive. Instead, asymptotic approximation such as geometrical optics (GO) can be used. See for example [21, 62, 52]. It is applicable to domain problems as well as to scattering problems. The key idea in GO is that the highly oscillating solution is represented as a product of a slowly variable amplitude function A and an exponential function of the slowly variable phase function φ multiplied by the large parameter ω. Hence, instead of the oscillating wave field, the unknowns in GO are the phase and the amplitude which vary on a much coarser scale than the full solution (see Figure 1.2). They are therefore easier to compute numerically, at a cost independent of the frequency. However, the approximation is only accurate for large frequencies. It typically requires that variations in the speed of propagation c(x) are on a scale much larger than the wave length. Consider the Helmholtz equation (1.2). In the GO

5

0

−5 −1 −0.8 −0.6 −0.4 −0.2 0 0.2 0.4 0.6 0.8 1

4

3

2

−1 −0.8 −0.6 −0.4 −0.2 0 0.2 0.4 0.6 0.8 1

0

−2

−4

−6 −1 −0.8 −0.6 −0.4 −0.2 0 0.2 0.4 0.6 0.8 1

Figure 1.2: Real part of the solution of Helmholtz equation (top), the amplitude (middle) and the phase (bottom). It can be noticed that the amplitude and the phase vary on a much coarser scale than the solution. 1.2. GEOMETRICAL OPTICS 5 approximation its solution is sought in the form ∞ iωφ(x) X −k u(x) = e Ak(x)(iω) . (1.8) k=0 Substituting (1.8) in (1.2) and equating to zero the coefficients of the powers of ω yields the Hamilton-Jacobi type eikonal equation for the phase φ 1 |∇φ| = , (1.9) c and a system of linear transport equations

2∇φ · ∇A0 + ∆φA0 = 0 ... (1.10)

2∇φ · ∇An+1 + ∆φAn+1 = ∆An, for the amplitudes Ak, k = 0, 1,... . For large frequencies, Ak, k > 0 in (1.8) can be discarded, so only the transport equation for A0 remains to be solved in (1.10) and u(x) ≈ iωφ(x) A0(x)e . If the eikonal equation (1.9) is solved through the method of characteristics GO can be formulated as a system of ordinary differential equations (ODEs). Let p = ∇φ and define a Hamiltonian H(x, p) = c(x)|p|. Then, instead of (1.9), we are solving the following system of ODEs dx = ∇ H(x, p), (1.11) dt p dp = −∇ H(x, p), (1.12) dt x where (p(t), x(t)) is a bicharacteristic related to the Hamiltonian H(x, p). The parametriza- tion t corresponds to the phase of the wave φ(x(t)) = φ(x0) + t. There is also a system of ODEs for the amplitude. Finally, one can introduce a kinetic model of GO. It is based on the interpretation that rays are trajectories of particles following Hamiltonian dynamics. Let p be the slowness vector defined above and introduce the phase space (t, x, p) such that the evolution of particles in this space is given by the system of equations (1.11)–(1.12). Letting f(t, x, p) be a particle density function, it will satisfy the Liouville equation [6, 20]

ft + ∇pH · ∇xf − ∇xH · ∇pf = 0, (1.13) where ∇pH and ∇xH are given by (1.11)–(1.12). A disadvantage of asymptotic approximations such as GO is that it cannot capture some typical wave properties such as diffraction. Diffracted waves are produced when the incident field hits edges, corners or vertexes of the obstacle or when the incident wave hits the tangent points of the smooth scatterer (creeping waves). To overcome the problem with diffracted fields, an asymptotic expansion with correction terms has been proposed by Keller [35] in his geometrical theory of diffraction (GTD). GTD makes up for the GO solution on the boundary of the scatterer where some terms of this solution vanish. For example, GTD expansion of the solution accounts for the phase and the amplitude of the diffracted waves. It does so by means of several laws of diffraction which allow to use the same principles as in GO to assign a field to each diffracted ray. Another disadvantage of GO is that it fails when the amplitude A0 is unbounded, at caustics where waves focus. One way to remedy this is to use Gaussian beams [44, 49, 3]. 6 CHAPTER 1. INTRODUCTION

1.3 Numerical Methods

In this section we describe different numerical methods that can be used for the numerical solution of wave propagation problems. We first consider classical direct numerical methods and GO based methods. We then discuss more recent developments: methods that have an almost frequency independent computational cost, and so-called time-upscaling methods. The method developed in this thesis is strongly related to these new types of methods.

Direct Numerical Methods One way to solve partial differential equations numerically is to use finite difference methods, in which the derivatives are approximated by the differences of the neighboring points on a grid [29]. When a PDE is time dependent, one can discretize it first in space (semi- discretization) and then use some ODE solver to advance in time. Different choice of ODE schemes together with a space discretization of a certain order results in different finite difference methods. One example is the Crank-Nicolson method that is obtained when the second order space discretization is combined with the trapezoidal rule. For explicit methods special attention should be paid to the stability issues, i.e. time step must be shorter then the space discretization step (CFL condition). The equation can also be discretized on a staggered grid which is in some cases computationally advantageous. One standard staggered finite difference scheme for wave equations is the Yee scheme introduced by Kane S. Yee in 1966 [63] and further developed by Taflove in the 70s [55, 56]. Finite volume methods are direct methods that are based on the integral form of the equation instead on the differential equation itself [40]. Similarly to the finite difference methods, the domain is first split into grid cells or finite volumes which do not necessarily have to be of the same size. The unknown is then the approximation of the average of the solution over each cell. In 1D intervals are used for finite volumes, in 2D one can use quadrilaterals and approximate the line integrals by the average of the function values on each side of the line, or triangles and approximate the line integrals along the sides by the function values at neighboring triangles. In finite volume methods it is easy to use unstructured grids which makes those methods suitable for problems with complex geometry. However, the extension of finite volume methods to higher order accuracy can be very complicated. Finite element methods are based on the variational formulation of the problem which is obtained when the equation is multiplied by test functions and integrated over the domain using integration by parts [24, 7]. For discrete approximation of the problem, the function space S on which the variational formulation is defined is replaced by a finite dimensional subspace Sh. The approximation uh of the solution u is expressed as a linear combination of the finite number of basis functions φj(x) which are defined to be continuous and nonzero only on small subdomains. In that way, time independent problems are transformed into a sparse system of equations and time dependent problems are transformed into an initial value problem for a system of ODEs with sparse matrices. The unknowns are the coefficients in the linear combination of basis functions. In the time dependent case the vector holding the time derivative of the solution is multiplied by a matrix (the mass matrix). The method therefore becomes implicit and a system of algebraic equations has to be solved at every time step which can be computationally costly. There are techniques to avoid this problem by for example approximating the mass matrix by a diagonal matrix (’mass lumping’). A great advantage of FEM is that it is mathematically well motivated with rigorous error estimates. Furthermore, if there is an energy estimate of the original problem, the stabil- ity of the space approximation follows directly. As in finite volume methods unstructured 1.3. NUMERICAL METHODS 7 grids are easy to use and FEM is thus also very well suited for the problems with complex geometries. It should be noted, however, that adaptivity which can be easily implemented in FEM, only play a limited role in wave propagation problems, since the same wavelength has to be resolved everywhere. In discontinuous Galerkin methods [13], similarly as in FEM, the original problem is transformed into the weak formulation by multiplying the underlying equation by test func- tions and integrating by parts. The difference is that the integration is not done over the whole domain but over the subintervals which are centered around discretization points sim- ilarly to finite volume methods. The requirement on the continuity of the basis functions and thus of the solution is now relaxed allowing for discontinuities. The basis functions are chosen to be nonzero only on one subinterval. Compared to FEM, in a time dependent case, the problem is transformed into a system of ODEs which can be solved with a fast explicit difference method, i.e. no algebraic system of equations has to be solved at every time step. However, the stability of the solution does not follow automatically like in FEM. In spectral methods [59, 29, 31], the solution is approximated as a linear combination of smooth basis functions like Chebyshev or Legendre polynomials or trigonometric functions. The difference from the finite element methods is that the basis functions here are usually nonzero over the whole domain. Often, spectral methods involve the use of the . The solution of the problem is first written as its Fourier transform and then substituted in the PDE. In that way, a system of ODEs is obtained which then can be solved with some ODE solver. Fourier expansion of the solution normally requires the problem to be periodic. For nonperiodic problems other basis functions are recommended, for example Chebyshev or Legendre polynomials. Spectral methods have high, exponential, order of accuracy, but can be difficult to use in complex geometries. The direct methods described above can also be applied to the Helmholtz equation. The relative advantages and disadvantages of the methods are the same in terms of handling complex geometry and boundary conditions. Finite difference, finite element and finite volume methods lead to sparse systems of equations with the number of unknowns N that depends on the frequency, N ∼ ω. For high frequencies, those systems are large and direct methods like Gaussian elimination become computationally too expensive in higher dimensions. The alternative is to use iterative methods. However, there is a difficulty in this approach, as well. Since the system of equations is indefinite and ill-conditioned, iterative methods have slow convergence rate. The convergence rate can be improved by preconditioning but finding a good preconditioner for Helmholtz equation is still a challenge [25]. The indefiniteness makes it difficult to use multigrid and the conjugate gradient method. Typically Krylov subspace methods, like GMRES or Bi-CGSTAB are used instead. Preconditioners can for instance be based on incomplete LU-factorization [43] or on fast transform methods [47, 39, 27, 18]. More recently preconditioners based on a complex shifted Helmholtz operator has been introduced [26]. For scattering problems one needs to solve an integral equation of type (1.7), see for example [14, 36]. Let us consider a simplified version of (1.7) in 1D

Z b Φ(x, y, ω)u(y)ds(y) = f(x), x ∈ [a, b]. (1.14) a One way to solve (1.14) numerically is to use the collocation method. The idea in this method is to approximate u(x) by

N X u(x) = cjϕj(x), j=1 8 CHAPTER 1. INTRODUCTION

where {ϕj(x)} are basis functions in [a, b]. Next, let xj be a set of points in [a, b]. Usually, xj are chosen to be centers of the supports of basis functions (see Figure 1.3). Then, the problem is to find the unknown coefficients {cj} such that

N X Z b cj Φ(xi, y, ω)ϕj(y)ds(y) = f(xi), i = 1,...,N (1.15) j=1 a is satisfied at {xj}. Hence, the problem is transformed into a linear system of equations. Since the matrix in the system is dense, the computational cost of direct methods is normally O(N 3). Thus, when N is large, direct methods are not feasible. The alternative is to use iterative methods. Then, the computational cost can be reduced to O(N 2). However, for large N this can still be expensive. This problem can be solved with fast multipole methods which reduce the complexity to O(N log N) for any fixed accuracy [50, 23]. Besides the collocation method, there are other numerical methods that can be used for the numerical solution of boundary integral equations, for example the Nystr¨ommethod or the Galerkin method.

Figure 1.3: Collocation method.

In general, direct numerical methods for high-frequency wave propagation problems need a certain number of grid points or elements per wavelength to maintain a fixed accuracy. Hence, if N is the number of grid points in each coordinate direction, one needs at least N ∼ ω. Computational complexity for time dependent problems is normally O(N d+1) for a d-dimensional problem. For the d-dimensional Helmholtz equation, the cost is at least O(N d) but often higher. The complexity of the methods based on an integral formulation of the problem can be reduced to almost O(N d−1). The computational cost for all formulations thus grows algebraically with the frequency ω. Therefore, at sufficiently high frequencies (ω  1), direct numerical simulation is no longer feasible.

GO-based Methods Methods based on the GO approximation are suitable for high-frequency wave propagation problems. For the different mathematical models for GO, there are different numerical methods. PDE-based methods are used for the eikonal and transport equations (1.9) and (1.10). The equations are solved directly on a uniform grid to control the error. The eikonal 1.3. NUMERICAL METHODS 9 equation is a Hamilton-Jacobi type equation and it has a unique viscosity solution which can be computed numerically by finite difference methods for example. Some of them are upwind-based methods like the fast marching method [53, 61] and the fast sweeping method [60]. For time dependent eikonal equations one can use high-resolution methods of ENO and WENO type [46]. However, at points where the correct solution is multivalued the viscosity solution is not enough because the eikonal and the transport equations describe only one unique wave at a time. Therefore, some other numerical techniques must be used. Some examples are the big ray tracing method, the slowness matching method and the domain decomposition based on detecting kinks in the viscosity solution. In all methods, the solution is obtained by solving several eikonal equations. Ray tracing methods [12, 33, 37, 57] are used to solve the ray equations (1.11)–(1.12). That system can be augmented with another system of ODEs for the amplitude. The ODEs are solved with standard numerical methods for example second or fourth order Runge-Kutta methods. The phase and the amplitude are calculated along the rays and the interpolation must be used to obtain the solution in points other than the grid points. However in regions with diverging or crossing rays this method is not efficient. Methods based on the kinetic formulation of GO are phase space methods. The Liouville equation (1.13) has a large number of independent variables and therefore a lot of unknowns has to be used in the numerical methods which can be computationally ineffective. To overcome this problem one can use wave-front methods and moment-based methods. In wave-front methods a wave front is evolved following the kinetic formulation. Some of the wave front methods are the level set method [45] and the segment projection method [22, 58]. In moment-based methods a kinetic transport equation set in a high-dimensional phase space (t, x, p) is approximated by a finite system of moment equations in the reduced space (t, x). In that way, the number of unknowns is decreased. For more details, see [6, 51].

Methods with Weakly Frequency Dependent Cost The situation described above can be summarized as follows: For direct methods the com- putational cost grows with frequency for fixed accuracy, while for GO methods the accuracy grows with frequency for fixed computational cost. Unfortunately, the frequency range and accuracy requirement of many realistic problems often fall in between what is tractable with either of these approaches. Recently a new class of algorithms have been proposed that combine the cost advantage of GO methods with the accuracy advantage of direct methods. They are thus characterized by a computational cost that grows slowly with the frequency, while at the same time being accurate also for moderately high frequencies. It should be noted that one needs at least O(ω) points to resolve the solution. If that many points are used, then the computational cost is, of course, at least O(ω). In these methods, however, one does not resolve the solution, but computes instead GO like solutions. Therefore, one can only expect to get the full solution in O(1) points. The main interest of the new methods have been for scattering problems [8, 38, 16, 1, 32]. Those methods are based on the integral formulation of the Helmholtz equation (1.7). The key step is to write the surface potentials as a slowly varying function multiplied by a fast phase variation. Instead of approximating the unknown function v := ∂u/∂n directly, the following ansatz is used v(x, ω) ≈ ωeiωφ(x)V (x), x ∈ ∂Ω. (1.16) The basic idea is that, using asymptotic analysis, the phase function φ can be determined in such a way that V (x) is much less oscillatory than the original unknown function v. More 10 CHAPTER 1. INTRODUCTION precisely, φ(x) is taken as the phase of the geometrical optics approximation. For instance, when uinc is a plane wave in direction dˆ, then φ = x · dˆ. Hence, the ansatz becomes

ˆ v(x, ω) = ωeiωx·dV (x, ω), (1.17) where V now varies slowly with ω. Each side of (1.7) is then multiplied by e−iωx·dˆ to obtain 1 V + DV − iηSV = i(ωdˆ· nˆ − η), (1.18) 2 where the operators S and D are defined as follows

Z ˆ SV (x) = Φ(x, y, ω)eiω(y−x)·dV (y)dy, (1.19) ∂Ω Z ∂Φ(x, y, ω) ˆ DV (x) = eiω(y−x)·dV (y)dy. (1.20) ∂Ω ∂n(x) Thus, the problem becomes to find the amplitude V (x, ω) by solving the integral equation (1.18). The amplitude varies slowly away from the shadow boundaries and can be rep- resented by a fixed set of grid points, i.e. independently of the frequency. The integral equation can be solved for example with the collocation method. In this method one needs to compute integrals of the type given in (1.15). Although the amplitude is a slowly vary- ing function, the integrals cannot be computed independently of the frequency by direct numerical methods since their kernels are oscillatory (c.f. (1.19)–(1.20)). To overcome this problem an extension of the method of stationary phase has been suggested [8]. Since the values of the integrands and their derivatives in critical points make the only significant contributions to the oscillating integrals, an integration procedure based on localization around those points was introduced. Since the amplitude near shadow boundaries is vary- ing rapidly, those regions are treated with special consideration. However the method works mainly for problems with convex scatterers. For more information about these methods see [11]. The extension of the method to non-convex scatterers is proposed in [9, 17]. Rigorous proofs of the low cost of these methods is difficult and requires detailed results on the asymptotic behaviour of the exact solution near shadow boundaries. An example of a result, due to Dominguez, Graham and Smyshlyaev [16], concerns convex smooth scatterers in 2D. They show that for a Galerkin discretization with N unknowns where the integrals corresponding to (1.19), (1.20) are computed exactly, the relative error in V (y) can be estimated as  1/9 6 ! k 1/3 rel. err ∼ kα + e−Ck , N where α is a small exponent less than one. Hence, if N is slightly larger than k1/9 the error is controlled. For full domain problems much less has been done. In some sense this is more difficult than the scattering problem in a homogeneous medium because the waves are reflected at all points where the wave speed changes, not only at the surface of a scatterer. One attempt at lowering the computational cost along the lines above has been to use ”plane wave basis functions” in finite element methods [48, 28, 10]. The method can be seen as a Discontinuous Galerkin method with a particular choice of basis functions. However, except in simple cases these methods do not reduce the complexity more than by a constant factor. The method proposed by Giladi and Keller [28] is a hybrid numerical method for the Helmholtz equation in which the finite element method is combined with GO. The idea 1.3. NUMERICAL METHODS 11 is to determine the phase factor which corresponds to the plane wave direction a priori by solving the eikonal equation for the phase using ray tracing and then to determine the amplitude by a finite element method choosing asymptotically derived basis functions which incorporate the phase factor. A tailored finite-point method for the numerical simulation of the Helmholtz equation with high frequency in heterogeneous medium has been recently proposed by Han and Huang in [30]. They suggest to approximate the wave speed function c(x) by a piecewise constant function and then solve the equation on every subdomain exactly. The speed function is assumed to be smooth and monotone in each interval.

Time Upscaling Methods

Time upscaling methods have been proposed to overcome the problem with computational complexity of direct simulation of time dependent wave propagation. The aim is to reduce the extra cost incurred by the time–stepping. There is an interesting connection between these methods and methods with frequency independent cost, which will be described at the end of this section. Let us now consider a d–dimensional problem and suppose N discretization points in every space direction and M discretization points in time. For explicit methods, due to the stability (CFL) and accuracy requirements it is necessary to have M ∼ N r where r = 1 for hyperbolic problems and r = 2 for parabolic problems. Then, the computational cost for a time interval of O(1) is O(N d+r). With time upscaling the computational cost can be reduced to O(N d log N) or even to O(N d) while maintaining the same accuracy. For the advection and parabolic equations with spatially varying coefficients, time up- scaling methods are proposed in [19]. The authors suggest to use the fast transform wavelet together with truncation. Consider the following evolution equation

d ∂tu + L(x, ∂x)u = 0, x ∈ Ω ⊂ R , t > 0, u(x, 0) = u0(x), where L is a differential operator. After discretization, collecting the unknowns in a vector d u ∈ RN , the equation becomes

un+1 = Aun, (1.21) 0 u = u0,

d d where A is a N × N matrix approximating the operator ∂t + L. The computational complexity is of order O(N d+r). Clearly, (1.21) is equivalent to

n n u = A u0. (1.22)

Then, repeated squaring of A can be used to compute the solution of (1.22) in log2 M steps m 2 4 2m for M = 2 , where m is an integer, i.e. one can compute A, A ,A ,...,A in m = log2M steps. Since the matrix A is sparse, the cost of squaring is O(N d). However, the later squarings involve almost dense matrices and the computational cost is then O(N 3d). The total cost becomes O(N 3d log M) which is more expensive than to solve (1.21) directly. Instead, Engquist, Osher and Zhong in [19] suggest a wavelet representation of A which can decrease the computational complexity of the repeated squaring algorithm. More precisely, 12 CHAPTER 1. INTRODUCTION

the solution of (1.22) can be computed in m = log2 M steps in the following way

B := SAS−1, B := TRUNC(B2, ) (iterate m steps) (1.23) un := S−1BSu0.

The matrix S corresponds to a fast wavelet transform and the truncation operator TRUNC sets all elements of A that are less than  to 0. It is obvious that the algorithm (1.23) is equivalent to (1.22) for  = 0 and it was shown in [19] that there exist a small enough  such that the result of the algorithm (1.23) is close to (1.22). Through truncation the algebraic problem with dense matrices is transformed to a problem with sparse matrices. The authors also showed that the cost to compute the 1D hyperbolic equation can be reduced from O(N 2) to O(N log3 N) for a fixed accuracy. Furthermore, for d–dimensional parabolic problems the computational complexity can be reduced from O(N d+2) to O(N d(log N)3). A similar technique is proposed in [15] by Demanet and Ying. They consider the 2D wave equation

2 2 utt − c (x)∆u = 0, x ∈ [0, 1]

u(x, 0) = u0, ut(x, 0) = u1, with periodic boundary conditions. They assume c(x) ∈ C∞ to be positive and bounded away from zero and propose to transform the wave equation into a first order system of equations,

vt = Av, v(t = 0) = v0, where v = (ut, ux) and A is a 2-by-2 matrix of operators. The system is then solved up to time t = T using wave atoms, which provide a sparse representation of the matrix, combined with repeated squaring and truncation as above. On a N by N grid the computational cost is reduced from O(N 3 log N) of pseudo-spectral methods to O(N 2+δ) for arbitrarily small δ of naive version of the wave atom method. For the final algorithm they proved rigorously that the computational cost is between O(N 2.25) and O(N 3) depending on the initial data and the structure of c(x). The key of the proof is to show that the solution operator eAt remains almost sparse for all t in the wave atom basis. Another fast time upscaling method for the one-dimensional wave equation is proposed by Stolk [54]. The idea here is first to rewrite the wave equation as a system of one–way wave equations, then transform them into wavelet bases and solve using multiscale stepping which means that the fine spatial scales are solved with longer time steps and the coarse spatial scales are solved with the shorter time steps. The computational cost is only O(N) for fixed accuracy. Hence, it can be noted that when the wave equation is solved with the time upscaling methods with repeated squaring, the solution is given on a grid that is coarse in time and dense in space direction. One can also solve the wave equation by solving Helmholtz equations for each frequency component. This is like taking a Fourier/ in time. A space discretization with N points then corresponds to N Helmholtz equations for N frequency components. If the Helmholtz equation is solved with a frequency independent method, then the total cost is O(N), but the solution is obtained only in O(1) points. After an inverse FFT for each point at a cost of O(N log N) the solution of the wave equation is obtained on a dense grid in time but coarse in space at a total cost O(N log N), i.e. the same as in time upscaling, see Figure 1.4. 1.3. NUMERICAL METHODS 13

T t t

0 0

a b a b x x

Figure 1.4: In time upscaling methods the solution is given on a coarse grid in time (left). In frequency independent numerical method the solution would be obtained on a grid that is coarse in space (right).

Organization of the Thesis The thesis is organized as follows. In Chapter 2 we describe our method. In Chapter 3 we derive estimates of the solution to the one–way wave equation and show the convergence of the algorithm. In Chapter 4 we do the error analysis of the numerical implementation and show that the computational cost depends only weakly on the frequency. Numerical examples are given in Chapter 5.

Chapter 2

A Fast Method for Helmholtz Equation

We focus on the high frequency wave propagation problem in a bounded domain with a varying wave–speed function. The problem is described by the Helmholtz equation aug- mented with non-reflecting boundary conditions that also incorporate an incoming wave. The computational complexity of direct numerical methods applied to this problem grows algebraically with the frequency ω. The computational cost is at least O(ωd) for a d- dimensional problem. Therefore, direct numerical simulations become inapplicable for suf- ficiently high frequencies and some other methods have to be used. We propose a fast method for solving the Helmholtz equation based on wave–splitting. The Helmholtz equa- tion is split into one–way wave equations (backward and forward), which are then solved with appropriate boundary conditions and approximate forcing functions. In a domain where the forcing function is equal to zero GO is used and some standard p-th order nu- merical method otherwise. The result is an approximation of a type of Bremmer series [5]. In this chapter we present the model and describe our method. In later chapters we will show that the algorithm is convergent and that for fixed accuracy, the computational cost is O(ω1/p) for a p-th order numerical method. We consider mainly a model problem in one dimension, but we will also describe how the algorithm can be extended to higher dimensions. Although there are already some interesting applications in one dimension, e.g. inverse problems for transmission lines [41], most practical problems are of course in higher dimensions. Our focus in this thesis is on the analysis of the method and to show rigorous error and cost estimates. For higher dimensions, however, this is a much harder problem and we will restrict the analysis to the one-dimensional case.

2.1 Derivation of the Method in One Dimension

Consider the 1D Helmholtz equation

ω2 u + u = ωf, x ∈ [−L, L], (2.1) xx c(x)2

15 16 CHAPTER 2. A FAST METHOD FOR HELMHOLTZ EQUATION

where ω is the frequency and c(x) is the wave–speed function such that supp(cx) ⊂ (−L, L). We augment the equation (2.1) with the following boundary conditions

ux(−L) − iωu(−L) = −2iωA, (2.2)

ux(L) + iωu(L) = 0, (2.3) where A is the amplitude of the incoming wave. At high frequencies GO is a good approx- imation of the solution. We want to find a way to correct for the errors it makes at lower frequencies. A natural idea would be to use the system of WKB equations (1.10). However (1.8) does not converge, even in simple settings. It is only an asymptotic series. More precisely, a problem with (1.10) is that it only describes waves traveling in one direction. In reality, waves are reflected whenever cx 6= 0. Hence, to incorporate two directions we make the ansatz 1 iωv + c(x)v − c (x)v = F, (2.4) x 2 x 1 iωw − c(x)w + c (x)w = F. (2.5) x 2 x This describes wave propagation in the right-going (v) and left-going (w) direction. More- over, if z = v + w, then it satisfies the following equation (see Lemma 1)

2 2 c zxx + ω z = −2iωF + α(x)z, where 1 1 α(x) = cc − c2 . (2.6) 2 xx 4 x Thus, if F = α(x)z/2iω, then z is the solution of the Helmholtz equation (2.1) with f = 0. We now make an expansion of v and w in powers of ω,

X −n X −n v = rnω , w = snω . (2.7) n n Then, (2.4) and (2.5) become

X  1 α(x)  iωr + c(x)∂ r − c (x)r − (r + s ) ω−n = 0, n x n 2 x n 2i n−1 n−1 n X  1 α(x)  iωr − c(x)∂ s + c (x)s − (r + s ) ω−n = 0. n x n 2 x n 2i n−1 n−1 n

−n −n Defining vn = rnω and wn = snω and equating terms with the same powers in ω to zero, we obtain the methods below. In contrast to (1.8) the series (2.7) converge quickly for large ω.

Method 1 Let 1 1 iωv + c(x)∂ v − c (x)v = − f (x) (2.8) n x n 2 x n 2iω n 1 1 iωw − c(x)∂ w + c (x)w = − f (x) (2.9) n x n 2 x n 2iω n 2.1. DERIVATION OF THE METHOD IN ONE DIMENSION 17 for x ∈ [−L, L] and n ≥ 0, with the initial conditions:

 A, n = 0 v (−L) = (2.10) n 0, n > 0 and wn(L) = 0, ∀n. (2.11) The right hand side in (2.8) and (2.9) is defined by the following expression

f0(x) = ωf(x), (2.12)

fn+1(x) = −α(x)(vn(x) + wn(x)). (2.13)

Assume we are solving equations (2.8) and (2.9) for n = 0, 1, 2, . . . , m with the given initial conditions (2.10) and (2.11) and the source function fn that is defined by (2.12)–(2.13). Then, it can be shown that the solution u(x) of the Helmholtz equation (2.1) can be ap- proximated by the following sum

m X u(x) ≈ zm = (vk(x) + wk(x)). (2.14) k=0 Remark 1. This is similar to Bremmer series [5], where

c (x) c iωv (x) + c(x)∂ v (x) − x v (x) = − x w (x), n x n 2 n 2 n−1 c (x) c iωw (x) − c(x)∂ w (x) + x w (x) = x v (x), n x n 2 n 2 n−1 with no ω−1 in the right hand side. The convergence is more subtle but has been shown in [2, 34, 4, 42]. We prefer (2.8)–(2.9) as it clearly separates waves of different size in terms of ω−1, which leads to a simpler analysis. Thus, we can solve equations (2.8) and (2.9) with some p-th order ODE numerical method m ≥ 0 times and approximate the solution of (2.1) by (2.14). However, the computational complexity still grows algebraically with the frequency ω.

Method 2

Now, note that (2.8) and (2.9) can be simplified when fn = 0. Then, using the ansatz

iωφ vn = Ae in (2.8) we obtain equations for A and φ,

1 c (x) ∂ φ = , ∂ A = x A(x). (2.15) x c(x) x 2c(x) This is in fact GO and can be solved independently of the frequency. Similar equations can be obtained when the ansatz is used in (2.9). Thus, the computational cost estimate can be improved by approximating the forcing functions. We can do the following: ˆ Replace fn by fn with  ˆ 0, |fn(x)| < Toln fn(x) = (2.16) fn(x), otherwise 18 CHAPTER 2. A FAST METHOD FOR HELMHOLTZ EQUATION where ωTol Tol = (2.17) n 2n+1L ˆ for some tolerance Tol. More precisely, let f0 = ωf and define

1 1 iωvˆ + c(x)∂ vˆ − c (x)ˆv = − fˆ (x) (2.18) n x n 2 x n 2iω n

1 1 iωwˆ − c(x)∂ wˆ + c (x)w ˆ = − fˆ (x) (2.19) n x n 2 x n 2iω n with initial data  A, n = 0 vˆ (−L) = (2.20) n 0, n > 0 and

wˆn(L) = 0, ∀n. (2.21)

Moreover,

fn+1(x) = −α(x)(ˆvn(x) +w ˆn(x)). (2.22)

Again it can be shown that the solution u(x) of the Helmholtz equation (2.1) can be ap- proximated by m X u(x) ≈ zˆm = (ˆvk(x) +w ˆk(x)). (2.23) k=0

Thus, equations (2.18)–(2.19) can be solved independently of the frequency in a domain ˆ ˆ where fn = 0. In a domain where fn 6= 0 a direct ODE numerical method can be used. The solution of (2.1) is then approximated by (2.23). Hence, the algorithm for computing the solution of (2.1)–(2.3) is as follows: Choose some tolerance Tol and, for n = 0, 1, 2,... , do the following

ˆ ˆ 1. Replace the function fn by fn defined by (2.16). If fn ≡ 0 stop, else

ˆ 2. Computev ˆn andw ˆn from (2.18) and (2.19). In a domain where fn 6= 0 use a di- 1/p 1+1/p rect p-th order numerical method with stepsize ∆xf = Tol /ω , otherwise use geometrical optics with stepsize ∆xc = ω∆xf , Figure 2.1,

3. Computeu ˆn =v ˆn +w ˆn and addu ˆn tou ˆn−1. Note that in a Runge-Kutta scheme the ˆ function fn may need to be evaluated in between the grid points. To obtain those ˆ values of fn, we use p-th order interpolation.

4. Compute fn+1 fromv ˆn andw ˆn, go to 1. P The solution of (2.1)–(2.3) is approximated by k uˆk. These methods converge rapidly for large ω as we prove in the following chapters. We will also show that the computational cost is proportional to ω1/p for a fixed tolerance, where p is the order of the numerical scheme. 2.2. FORMULATION IN TWO DIMENSIONS 19

|f_n|

ˆ Figure 2.1: Function |fn|. In a domain where |fn(x)| < Toln fn(x) = 0 and we can use GO ˆ to solve (2.18) and (2.19), otherwise fn(x) = fn(x) and some p-th order ODE numerical scheme can be used.

2.2 Formulation in Two Dimensions

Consider the 2D Helmholtz equation

ω2 ∆u + u = ωf(x). (2.24) c(x)2

In 1D we split (2.24) into two equations, one for waves propagating to the right and the other for the waves propagating to the left. However, in 2D, waves do not propagate only backward and forward. They propagate asymptotically in the direction ∇φ where φ solves the eikonal equation 1 |∇φ|2 = . c(x)2 Then, a natural extension of the 1D method would be to split the Helmholtz equation (2.24) into the following equations

c(x)2∆φ f iωv + c(x)2∇φ · ∇v − n v = n , (2.25) n n n 2 n 2iω c(x)2∆φ f iωw − c(x)2∇φ · ∇w − n w = n , (2.26) n n n 2 n 2iω Pm where the functions fn have to be determined in such a way that zm = j=0(vj + wj) is a good approximation of the Helmholtz equation. Following the same arguments as in 1D, we conclude that α(x) f (x) = (v + w ) + ∇φ⊥ · ∇ c(x)2∇φ⊥ · ∇(v + w ) , (2.27) n+1 2 n n n n n n where ∇φ⊥ · ∇φ = 0 and

c2∆φ c2(∆φ)2 α(x) = −∇ · ∇φ − . (2.28) 2 4

In general, the method in 2D would then be the same as in 1D, i.e., approximate fn by ˆ fn when fn is small and solve the equations on a coarse grid in the domain where fn is small and on a dense grid otherwise. As in 1D case, when fn = 0, vn and wn solve GO 20 CHAPTER 2. A FAST METHOD FOR HELMHOLTZ EQUATION equations. Note that C = constant does not imply that α = 0 as in one dimension. Hence, GO is not exact when a wave front is curved. Moreover, the ∇(vn + wn) term in (2.27) iωφn may now possibly be large. However, when vn is a wave of the form vn = Ae , then ⊥ ⊥ iωφn ∇φn · ∇vn = ∇φn · ∇Ae = O(1). There is a number of additional difficulties: • Caustics appear. This implies that ∇φ may not exist everywhere. That means that one has to resolve everything also in an area around caustics. (The size of this is still small though.)

• Multiple crossing waves. One will need a formula for computing φn+1 from vn, wn and φn. • Analysis is much harder. There are no L∞ estimates with ω-independent constants available. Chapter 3

Analysis

In this chapter we analyze the method when (2.18) and (2.19) are solved exactly. We will first derive estimates of the solution of the equations (2.8) and (2.9) and its derivatives. We then show thatz ˆm in (2.23) converges to the solution of (2.1)–(2.3). Next, we give an error estimate in terms of n and Tol. As a side effect we obtain a L∞ estimate of the solution of the Helmholtz equation in 1D. We also show that the size of the domain where a direct method, which resolves the wavelength, is used is proportional to O(ω1/p). Hence, we prove the following Theorem 1. Assume ω > 1, c(x) ∈ C2[−L, L], and r 2β|α|L1 1 cmax ≤ δ0 < 1, β = 3 . (3.1) ω 2 cmin If u is the solution of (2.1)–(2.3), then

m+1  |u − zˆm|∞ ≤ C (|A| + |f|L1 )δ0 + Tol . (3.2) Moreover, C meas{fˆ 6= 0} = meas{|f | ≥ Tol } ≤ , (3.3) n n n ω and

|u|∞ ≤ C(|A| + |f|L1 ). (3.4) The constants in (3.2)–(3.4) do not depend on ω. Remark 2. If Tol = 0, (3.2) shows the convergence of method 1. From (3.3) it follows that the computational cost of our method will not grow fast with ω. More precisely,

1 meas{fˆ 6= 0} cost ∼ + n = O(ω1/p). ∆xc ∆xf

3.1 Utility Results

In order to prove Theorem 1, we begin by deriving some useful utility results. Consider the following initial value problem d y = iωa(x, ω)y + b(x, ω), x ≤ x ≤ x (3.5) dx 0 1 y(x0) = y0. (3.6)

21 22 CHAPTER 3. ANALYSIS where a(x, ω) and b(x, ω) are given functions that depend on the frequency ω. Before we continue, note that equations (2.8) and (2.9) can be rewritten in the form of (3.5). If we define 1 c (x) a(x, ω) = − − i x (3.7) c(x) 2c(x)ω 1 b(x, ω) = − f (x), (3.8) 2iωc(x) n

(2.8) and (2.9) become

dv n = iωa(x, ω)v + b(x, ω) (3.9) dx n dw n = iωa(x, ω)w − b(x, ω). (3.10) dx n Theorem 2. Consider (3.5)–(3.6). Suppose • ω > 1,

k−1 • a(x, ω), b(x, ω) ∈ C ([x0, x1]), for each ω > 1

p • supx0≤x≤x1 |∂xa(x, ω)| < Cp, ∀ω, 0 ≤ p ≤ k − 1, where Cp is some constant indepen- dent of ω,

• −ω · Im(a(x, ω)) ≤ a0 for some constant a0 independent of ω. Let −ω R x Im(a(s,ω))ds t C0 = sup e . (3.11) x0≤t,x≤x1 If y(x) is a solution of (3.5)–(3.6), then

|y|∞ ≤ C0 (|y0| + |b|L1 ) , (3.12)

k ! k k X i−1 k−i k ∂x y ∞ ≤ Ck ω |y0| + ω |∂x b(x, ω)|∞ + ω |b|L1 , k ≥ 1, (3.13) i=1 where Ck, k ≥ 0, are some constants that do not depend on ω or b(x, ω). Proof. Let us first prove (3.12). The exact solution of (3.5)–(3.6) is given by

x R x Z iω a(s,ω)ds iω R x a(s,ω)ds y(x) = y0e x0 + b(t, ω)e t dt. (3.14) x0 Then x R x Z iω a(s,ω)ds iω R x a(s,ω)ds x0 t |y|∞ ≤ sup e |y0| + sup b(t, ω)e dt x0≤x≤x1 x0≤x≤x1 x0 R x iω a(s,ω)ds iω R x a(s,ω)ds ≤ sup e x0 |y | + sup e t |b| 0 L1 x0≤x≤x1 x0≤t,x≤x1 R x −ω Im(a(s,ω))ds −ω R x Im(a(s,ω))ds ≤ sup e x0 |y | + sup e t |b| 0 L1 x0≤x≤x1 x0≤t,x≤x1

≤ C0 (|y0| + |b|L1 ) , 3.2. ESTIMATES OF ONE-WAY SOLUTIONS 23

where C0 is defined by (3.11). Thus, (3.12) is proved. To prove (3.13) we use mathematical induction. From (3.5), it follows

|∂xy|∞ ≤ ω|a|∞|y|∞ + |b|∞ ≤ C (ω|y|∞ + |b|∞)

≤ C1 (ω|y0| + |b|∞ + ω|b|L1 ) . (3.15)

Hence, (3.13) is true for k = 1. Next, assume that (3.13) is true for k ≤ n for some n ≥ 1 and show that it is true for k = n + 1. Since (n + 1)st derivative of y(x) is given by the following formula

n X n(n − 1)...(n − k + 1) ∂n+1y = iω Cj ∂n−ja · ∂j y + ∂nb, Cj = , x n x x x n k! j=0

and (3.13) is true for k ≤ n, then

n n+1 X j n−j j n ∂x y ∞ ≤ ω Cn ∂x a ∞ ∂xy ∞ + |∂x b|∞ j=0 n j ! X j n−j j X i−1 j−i j n ≤ Cω Cn ∂x a ∞ ω |y0| + ω |∂x b|∞ + ω |b|L1 + |∂x b|∞ j=1 i=1

 n n j n  X j X X i−1 j−i X j n ≤ Cω  ω |y0| + ω |∂x b|∞ + ω |b|L1  + |∂x b|∞ . (3.16) j=1 j=1 i=1 j=1

Before we continue, let us estimate

n j n i−1 X X i−1 j−i X n−i X j ω |∂x b|∞ = |∂x b|∞ ω j=1 i=1 i=1 j=0 n X i−1 n−i ≤ C ω |∂x b|∞. i=1

Hence, (3.16) becomes

n ! n+1 n+1 X i n−i n+1 n ∂x y ∞ ≤ Cn+1 ω |y0| + ω |∂x b|∞ + ω |b|L1 + |∂x b|∞ i=1 n+1 ! n+1 X i−1 n+1−i n+1 = Cn+1 ω |y0| + ω |∂x b|∞ + ω |b|L1 . i=1

This proves the theorem.

3.2 Estimates of One-Way Solutions

Here we derive the bounds on the solution and its derivatives of the equations (2.8) and p p (2.9). We also show that |vn|∞ → 0 (|wn|∞ → 0), |∂xvn|∞ → 0 (|∂xwn|∞ → 0) and |fn|∞ → 0 under some assumption. Let us prove the following 24 CHAPTER 3. ANALYSIS

p Theorem 3. Let vn(x) be a solution of (2.8) and let p ≥ 0. Assume c(x) ∈ C [−L, L] and ω > 1. Then  β n |∂pv | ≤ Cωp(|A| + |f| ) |α| , n ≥ 0. (3.17) x n ∞ L1 ω L1 and  β n−1 |f | ≤ C|α| (|A| + |f| ) |α| , n ≥ 1. (3.18) n L1 L1 L1 ω L1 p Estimate (3.17) is valid for |wn|∞ and |∂xw|∞. Proof. Since the solution of (2.8) is given by (3.14), where a(x, ω) and b(x, ω) are defined by (4.1) and (4.2), we can use Theorem 2. Let us first verify that a(x, ω) and b(x, ω) satisfy the assumptions. The assumptions 1, 2 and 3 from Theorem 2 follow directly from the assumptions in this theorem. Let us check the assumption 4. Since

c (x) −ω · Im(a(x, ω)) = x 2c(x)

p and c(x) ∈ C [−L, L], then there exist some constant a0 such that the assumption 4 is satisfied. Now, we can prove Theorem 3. We begin with the estimate (3.17) for p = 0. Let us first calculate C0 and |b|L1 .

−ω R x Im(a(s,ω))ds t C0 = sup e x0≤t,x≤x1 ω R x cs ds t 2c(s)ω = sup e x0≤t,x≤x1 “ √ ” R x d ln( c(s)) ds = sup e t x0≤t,x≤x1 pc(x) = sup p ≤ 2βcmin, x0≤t,x≤x1 c(t)

where β is the constant defined by (3.1). For |b|L1 , we can estimate

1 1 |b|L1 = − fn(x) ≤ |fn|L1 . 2iωc(x) 2ωc L1 min Hence,

 1  |vn|∞ ≤ 2βcmin |vn(x0)| + |fn|L1 2ωcmin β ≤ |v (x )|C + |f | . n 0 ω n L1

When n = 0, v0(x0) = A and f0(x) = ωf(x). Hence,

|v0|∞ ≤ C|A| + β|f|L1 ≤ C(|A| + |f|L1 ). (3.19)

For n ≥ 1, vn(x0) = 0, so β |v | ≤ |f | . (3.20) n ∞ ω n L1 3.2. ESTIMATES OF ONE-WAY SOLUTIONS 25

Using (2.13), we can estimate |fn|L1 , i.e., for n = 1 Z

|f1|L1 ≤ |α(x)| |v0(x) + w0(x)| dx R (3.19) Z

≤ C (|A| + |f|L1 ) |α(x)|dx R

≤ |α|L1 C (|A| + |f|L1 ) and we use mathematical induction to prove that (3.18) is also valid for n ≥ 2. So, assume that (3.18) is true for n = k and show that it is true for n = k + 1, Z

|fk+1|L1 ≤ |α(x)| |vk(x) + wk(x)| dx R (3.20) β ≤ |f | |α| ω k L1 L1 (3.18),n=k β  β k−1 ≤ C |α| (|A| + |f| )|α| |α| ω L1 L1 L1 ω L1  β k = C|α| (|A| + |f| ) |α| . L1 L1 ω L1

Hence, (3.18) is proved and from (3.20) and (3.18) it follows that

 β n |v | ≤ C (|A| + |f| ) |α| , ∀n. n ∞ L1 ω L1

To prove (3.17) for p ≥ 1, we again use mathematical induction and Theorem 2. Thus, since we have already proved (3.17) for p = 0, we assume that (3.17) is true for derivatives up to the order p and show that it is also true for the derivative of order p + 1, i.e we want p+1 to estimate |∂x vn|∞. From Theorem 2, it follows

p+1   ! p+1 p+1 X k−1 p+1−k 1 p+1 1 |∂ vn|∞ ≤ Cp+1 ω |vn(x0)| + ω ∂ fn + ω fn x x 2iωc(x) 2iωc k=1 ∞ L1 (3.21) Before we continue, let us estimate

p+1   p   X k−1 p+1−k 1 X k p−k α ω ∂ fn = ω ∂ (vn−1 + wn−1) x 2iωc(x) x 2iωc(x) k=1 ∞ k=0 ∞ p p−k X X  α  = ωk Cm ∂m(v + w )∂p−k−m p−k x n−1 n−1 x 2iωc k=0 m=0 ∞ n−1 p p−k C  β  X X ≤ (|A| + |f| ) |α| ωk ωm ω L1 ω L1 k=0 m=0  β n ≤ C(|A| + |f| ) |α| ωp L1 ω L1 26 CHAPTER 3. ANALYSIS and  n−1 1 C β fn ≤ |α|L1 (|A| + |f|L1 ) |α|L1 2iωc ω ω L1  β n ≤ C(|A| + |f| ) |α| . L1 ω L1 Thus, (3.21) becomes   β n |∂p+1v | ≤ C ωp+1|A| + ωp+1(|A| + |f| ) |α| x n ∞ p+1 L1 ω L1  β n ≤ Cωp+1(|A| + |f| ) |α| L1 ω L1 which is what we wanted to show. Then, we have the following Corollary 1. Assume β|α| L1 < δ < 1. ω p Then |fn|L1 → 0 if n → ∞. Moreover, |vn|∞ → 0, |∂xvn|∞ → 0, |fn|∞ → 0 and  β n−1 |f | ≤ C|α| (|A| + |f| ) |α| . (3.22) n ∞ ∞ L1 ω L1 p Proof. The limits for |fn|L1 , |vn|∞ and |∂xvn|∞ follow directly from Theorem 3. Let us prove now that |fn|∞ → 0 if |fn|L1 → 0, n → ∞: β|α| |f | ≤ |α| (|v | + |w | ) ≤ ∞ |f | → 0. n ∞ ∞ n−1 ∞ n−1 ∞ ω n−1 L1 The estimate (3.22) follows from the previous expression and Theorem 3.

3.3 Convergence of the Algorithm

In this section we first derive lemmas that are needed for the proof of Theorem 1 and then we show the proof. Lemma 1. Let f(x) ∈ C1[−L, L] and c(x) ∈ C2[−L, L]. If v(x) and w(x) satisfy the equations 1 1 iωv(x) + c(x)∂ v(x) − c (x)v(x) = − f(x), v(−L) = A, (3.23) x 2 x 2iω and 1 1 iωw(x) − c(x)∂ w(x) + c (x)w(x) = − f(x), w(L) = 0, (3.24) x 2 x 2iω then u(x) = v(x) + w(x) satisfies the following equation: 1 1 c2(x)u (x) + ω2u(x) = f(x) + ( c(x)c (x) − c2 (x))(v(x) + w(x)) (3.25) xx 2 xx 4 x with boundary conditions:

c(−L)ux(−L) − iωu(−L) = −2iωA, (3.26)

c(L)ux(L) + iωu(L) = 0. (3.27) 3.3. CONVERGENCE OF THE ALGORITHM 27

Proof. Let us begin with

1 1 c2∂ v = c(c∂ v) − cc ∂ v = c∂ (−iωv + c v − f) − cc ∂ v xx x x x x x 2 x 2iω x x 1 1 c = −iωc∂ v + cc v + cc ∂ v − ∂ f − cc ∂ v x 2 xx 2 x x 2iω x x x 1 1 1 1 c = −iω(−iωv + c v − f) − cc ∂ v + cc v − ∂ f 2 x 2iω 2 x x 2 xx 2iω x 1 1 1 1 c = (−iω − c )(−iωv + c v − f) + cc v − ∂ f 2 x 2 x 2iω 2 xx 2iω x 1 1 1 1 c = −ω2v − c2 v + (iω + c )f + cc v − ∂ f. 4 x 2iω 2 x 2 xx 2iω x Hence, 1 1 f 1 1 c2∂ v + ω2v = (− c2 + cc )v + + ( c f − c∂ f). (3.28) xx 4 x 2 xx 2 2iω 2 x x In the same way, after switching c → −c, we obtain

1 1 f 1 1 c2∂ w + ω2w = (− c2 + cc )w + − ( c f − c∂ f). (3.29) xx 4 x 2 xx 2 2iω 2 x x Thus, 1 1 c2(v + w) + ω2(v + w) = f + ( cc − c2 )(v + w), (3.30) xx 2 xx 4 x which is exactly the equation (3.25). To check the left boundary condition, we subtract the equation (3.24) from the equation (3.23) to obtain 1 iω(v − w) + c(x)(v + w) = c (x)(v + w). (3.31) x 2 x

Since supp(cx) ⊂ (−L, L) and v(−L) = A by assumption, after simple mathematical oper- ations, we obtain at x = −L

c(−L)(v(−L) + w(−L))x − iω(v(−L) + w(−L)) = −2iωv(−L) = −2iωA. (3.32)

Thus

c(−L)ux(−L) − iωu(−L) = −2iωA. (3.33) In a similar way, using w(L) = 0, we get the right boundary condition

c(L)ux(L) + iωu(L) = 0. (3.34)

This proves the lemma.

β|α|L1 ∞ Lemma 2. If ω ≤ δ0 < 1, the sequence {zm}m=1 defined by (2.14) converges in C2[−L, L] when m → ∞ and its limit z satisfies the Helmholtz equation (2.1) with boundary conditions (2.2) – (2.3). Moreover,

|z|∞ ≤ C(|A| + |f|L1 ), (3.35) where C is a constant that depends on δ0 and c(x) but not on ω. 28 CHAPTER 3. ANALYSIS

Proof. From Lemma 1 it follows that vj(x) + wj(x) satisfy the following equation

2 2 c (vj + wj)xx + ω (vj + wj) = fj − fj+1, j = 0, m (3.36) where fj is defined by (2.13), with boundary conditions

c(−L)(vj(−L) + wj(−L))x − iω(vj(−L) + wj(−L)) = −2iωvj(−L), (3.37)

c(L)(vj(L) + wj(L))x + iω(vj(L) + wj(L)) = 0. (3.38) where vj and wj satisfy the initial conditions (2.10) and (2.11). Summing the equations (3.36) for j = 0, . . . , m, we get that zm satisfies the following equation: 2 2 c ∂xxzm + ω zm = f0 − fm+1. (3.39)

Moreover, summing the equations (3.37) and (3.38), we get that zm satisfies the following boundary conditions:

c(−L)∂xzm(−L) − iωzm(−L) = −2iωA, (3.40)

c(L)∂xzm(L) + iωzm(L) = 0. (3.41)

Using the T heorem 3, we can show the following:

|zm − zn|∞ → 0, m, n → ∞ |∂xzm − ∂xzn|∞ → 0, m, n → ∞ |∂xxzm − ∂xxzn|∞ → 0, m, n → ∞

Indeed,

max(n,m) X |zm − zn|∞ ≤ |vj + wj|∞ j=min(n,m)

max(n,m) j X  β  ≤ C(|A| + |f| ) |α| L1 ω L1 j=min(n,m)  β min(n,m) ≤ C |α| → 0, m, n → ∞ ω L1

The other two limits are obtained in a similar way. ∞ 2 This means that {zm}m=0 is a Cauchy sequence in C [−L, L]. Hence it converges, i.e.

2 ∃z ∈ C [−L, L], zm → z, m → ∞.

By taking limm→∞ of the equation (3.39), from Corollary 1 it follows that z satisfies the Helmholtz equation (2.1), i.e.: 2 2 c zxx + ω z = ωf, (3.42) and by taking limm→∞ of the equations (3.40) and (3.41), it follows that z satisfies the following boundary conditions:

c(−L)zx(−L) − iωz(−L) = −2iωA,

c(L)zx(L) + iωz(L) = 0. 3.3. CONVERGENCE OF THE ALGORITHM 29

Let us now prove the inequality (3.35). If zm is given by the expression (2.14), then using Theorem 3

m X |zm|∞ ≤ (|vj|∞ + |wj|∞) j=0 m j X  β  ≤ C(|A| + |f| ) |α| L1 ω L1 j=0 m X j ≤ C (|A| + |f|L1 ) (δ0) j=0

Taking limm→∞ of the previous inequality, we obtain

∞ X j |z|∞ ≤ C (|A| + |f|L1 ) (δ0) j=0

1 0 ≤ C (|A| + |f|L1 ) ≤ C (|A| + |f|L1 ) , 1 − δ0 where C0 is some constant that does not depend on ω. Hence, we have proved the lemma.

Proof of Theorem 1

We can now prove Theorem 1. Let u be the solution of the equation (2.1). Ifv ˆm andw ˆm are solutions of (2.18) and (2.19) then from Lemma 1 it follows thatv ˆm(x)+w ˆm(x) satisfies the following equation:

2 2 ˆ c (ˆvm +w ˆm)xx + ω (ˆvm +w ˆm) = fm − fm+1, (3.43) with boundary conditions

c(−L)(ˆvm(−L) +w ˆm(−L))x − iω(ˆvm(−L) +w ˆm(−L)) = −2iωvˆ0(−L),

c(L)(ˆvm(L) +w ˆm(L))x + iω(ˆvm(L) +w ˆm(L)) = 0.

Let em solve 2 2 ˆ c ∂xxem + ω em = fm, (3.44) with boundary conditions (2.2) and (2.3) ande ˆm solve

2 2 ˆ c ∂xxeˆm + ω eˆm = fm − fm (3.45) with the same boundary conditions. By the uniqueness of the solution of the Helmholtz equation with boundary conditions (2.2)–(2.3), it follows that

em =v ˆm +w ˆm + em+1 +e ˆm+1.

Hence, by induction,

m+1 0 X u = e =v ˆ0 +w ˆ0 + ... +v ˆm +w ˆm + em+1 + eˆj. (3.46) j=1 30 CHAPTER 3. ANALYSIS

Thus, ifz ˆm is given by (2.23),

m+1 X |u − zˆm|∞ < |em+1|∞ + |eˆj|∞. (3.47) j=1

Let us estimate |em|∞. Since em satisfies the Helmholtz equation, from Lemma 2 and Theorem 3 it follows  1  |e | ≤ C |A| + |fˆ | m ∞ ω m L1 A=0,m≥1 C C ≤ |fˆ | ≤ |f | ω m L1 ω m L1 C  β m−1 ≤ |α| (|A| + |f| ) |α| ω L1 L1 ω L1  β m ≤ C (|A| + |f| ) |α| . (3.48) L1 ω L1

Let us now estimate |eˆm|∞. Again, using Lemma 2, we conclude

 1  |eˆ | ≤ C |A| + |f − fˆ | m ∞ ω m m L1 A=0,m≥1 C = |f − fˆ | ω m m L1 C ≤ Tol (3.49) ω m Now, using (3.48), (3.49) and (2.17), (3.47) becomes

m+1 m+1  β  X Tol |u − zˆ | ≤ C (|A| + |f| ) |α| + C m ∞ L1 ω L1 2j+1 j=1 m+1 ≤ C((|A| + |f|L1 )δ0 + Tol) (3.50) which we wanted to show. Let us now show (3.3). Define,

ˆ g(y) = meas{x ∈ [−L, L]: |fn(x)| ≥ y}.

Then, we have to prove C g(Tol ) ≤ . n ω Clearly, g(Toln) ≤ 2L. Note also that

g(0) = 2L, g(y) = 0, y ≥ |fn|∞, and for 0 < y < |fn|∞ it is a decreasing function. Then,

yg(y) ≤ 2L|fn|∞ 3.3. CONVERGENCE OF THE ALGORITHM 31 and, thus

 β n−1 Tol g(Tol ) ≤ 2L|f | ≤ 2LC|α| (|A| + |f| ) |α| . n n n ∞ ∞ L1 ω L1

Since ωTol Tol = , n 2n+1L we obtain

 β n−1 2n+1L g(Tol ) ≤ 2LC|α| (|A| + |f| ) |α| n ∞ L1 ω L1 ωTol C 2β n−1 ≤ |α| ω ω L1 C C ≤ δn−1 ≤ , ω 0 ω which proves (3.3). The estimate (3.4) follows directly from Lemma 2. Thus, Theorem 1 is proved.

Chapter 4

Error Analysis for Numerical Implementation

In this chapter we derive the error of the method when (2.18)–(2.19) are solved with a p-th order Runge-Kutta scheme. We show that the error depends only weakly on the frequency. Consider the Helmholtz equation (2.1) with boundary conditions (2.2)–(2.3) and f = 0. We showed that the solution of (2.1)–(2.3) can be approximated by the sum zm defined by (2.14). Now, we want to solve for zm(x) numerically. That means that we have to solve equations (2.8)–(2.9). The equations are of the form (3.5) with a(x, ω) and b(x, ω) defined by 1 c (x) a(x, ω) = − − i x (4.1) c(x) 2c(x)ω 1 bn(x, ω) = − f (x). (4.2) 2iωc(x) n Remark 3. Note that here we use bn(x, ω) and not b(x, ω) because the function depends on fn(x) which is changed for every n (at every iteration).

4.1 Numerical Implementation

Let us first explain the numerical implementation for (2.8). With a(x, ω) and bn(x, ω) defined above, (2.8) becomes n n n ∂xv (x) = iωa(x, ω)v (x) + b (x, ω). (4.3) n n Discretize (4.3) with J = 2L/∆x grid points, where ∆x is the stepsize and let vj and wj be n n approximations of v (xj) and w (xj). Assume that (4.3) is solved with a one step method, n n n vj+1 = vj + ∆xQ(xj, vj , ∆x). (4.4) We consider p-th order explicit s-stage Runge–Kutta schemes, where 0 ≤ p ≤ s, described in the appendix. Applied to (4.3), it reads n n ξ1 = iωa(xj, ω)v (xj) + b (xj, ω), and for k = 2, . . . , s,

k−1 ! n X n ξk = iωa(xj + γk∆x, ω) v (xj) + ∆x αk,`ξ` + b (xj + γk∆x, ω). `=1

33 34 CHAPTER 4. ERROR ANALYSIS FOR NUMERICAL IMPLEMENTATION

Finally, s n n X vj+1 = v (xj) + ∆x βkξk. k=1 n For all these Runge-Kutta schemes it can be shown that (Lemma 9) Q(xj, vj , ∆x) is of the form, n n ˜n Q(xj, vj , ∆x) = iωa˜(xj, ∆x, ω)vj + b (xj, ∆x, ω) wherea ˜(x, ∆x, ω) and ˜b(x, ∆x, ω) are some functions that depend on the R-K method used. For example,

a˜(xj, ∆x, ω) = a(xj, ω), ˜n n b (xj, ∆x, ω) = b (xj, ω), when the equation (4.3) is solved with the forward Euler method, and

1 a˜(x , ∆x, ω) = (a(x , ω) + a(x + ∆x, ω) + iωa(x , ω)a(x + ∆x, ω)) , j 2 j j j j 1 ˜bn(x , ∆x, ω) = ((1 + iωa(x + ∆x, ω))bn(x , ω) + bn(x + ∆x, ω)) , j 2 j j j when the equation (4.3) is solved with the second order Runge-Kutta method. Since for n n n n ≥ 1 we only know b (xj, ω) on grid points, we need to replace it by bj . To compute bj we do the following:

n n−1 n−1 - Compute fj = α(xj)(vj + wj ),

n ˆn - Cut off fj , i.e., compute fj by

 f n, |f n| > Tol fˆn = j j n j 0, otherwise,

n - Compute bj by n 1 ˆn bj = − fj . 2iωc(xj)

˜n ˜n n Similarly, we replace b (xj, ∆x, ω) by bj which we have computed from bj in the same way ˜n n as b (xj, ∆x, ω) is computed from b (xj, ω). For example, 1 ˜bn = (1 + iωa(x + ∆x, ω))bn + bn  j 2 j j j+1 in the case of the second order Runge-Kutta method. Thus, the solution of (2.8) can be computed numerically by

n n ˜n vj+1 = (1 + i∆xωa˜(xj, ∆x, ω))vj + ∆xbj , j = 1, . . . , J. (4.5)

The solution of (2.9) can be computed in a similar way and we finally get

m m X k k zj = (vj + wj ), j = 1, . . . , J, (4.6) k=0 4.1. NUMERICAL IMPLEMENTATION 35

Before we start a derivation of the numerical error for a p-th order Runge-Kutta method, we want to point out the following: When a p-th order Runge-Kutta method with s stages ˜n is used for the numerical solutions of (2.8) and (2.9), functions bj have to be evaluated in between grid points. To obtain those values we use a p-th order interpolation in order not to decrease the order of accuracy. Therefore, we define a set of indexes

I = {1, 2, . . . , s}, (4.7) such that I = In ∪ Ii where In = {k ∈ I: γk ∈ N}, (4.8) and Ii = {k ∈ I: γk 6∈ N}. (4.9) This means that we divide the set of indexes I into two sets, a set of indexes that correspond to the grid points and a set of indexes that correspond to the interpolated points, i.e. the points in between grid points in which the functions has to be evaluated. Hence, from now on, by bn for k ∈ I we mean: values of bn calculated in grid points and by bn j+γk n j+γk n for k ∈ Ii we mean values of b in between grid points that are used in the Runge-Kutta method. We can then prove: Theorem 4. Assume 2β|α| L1 ≤ δ < 1 (4.10) ω and ! C β˜ C C max b , τ , b < 1, (4.11) ω ω ω ˜ where β is defined in Lemma 5, Cτ in Lemma 8 and Cb in Lemma 4 (see below). Let u be the solution of equation (2.1). Then

m m+1 p p+1  |u(xj) − zj |∞ ≤ C (|A| + |f|L1 )δ + ∆x ω + Tol . (4.12) Remark 4. If we take Tol1/p ∆x = ∆x = , f ω1+1/p we get from (4.12) m m+1 |u − zj |∞ ≤ (|A|δ + Tol) (4.13) and we need a fixed ω-independent number of iterations m to reduce the first term to be less than Tol. Remark 5. In the proof, we only consider the error when the equations are resolved ev- ˆ erywhere, while in the method, we solve GO equations whenever fn = 0. However a stable p-th order method applied to (2.15) gives a ω-independent global error in A and φ of size ∆xp. The difference between the exact solution vn and the corresponding GO-based solution is then

n n iωφ(xj ) iωφj |v (xj) − v(GO),j| = A(xj)e − Aje

iωφ(xj ) iωφ(xj ) iω(φj −φ(xj )) = (A(xj) − Aj)e + Aje (1 − e ) p Cω∆x ≤ C∆x + |Aj| e − 1 = O(ω∆xp). 36 CHAPTER 4. ERROR ANALYSIS FOR NUMERICAL IMPLEMENTATION

n It is fairly easy to see that this error will add to the global error εv in Theorem 5 and then p p to the error in Theorem 4. Hence, if ∆x = ∆xc, then ω∆x = ω(ω∆xf ) Tol and (4.13) still holds.

4.2 Error Analysis

In this section, we first show some results that are needed for the proof of Theorem 4 and derive the error estimate for one way wave equations. Then, we give a proof of Theorem 4. Throughout this section, we assume 1 ∆x < (i.e. ∆xpωp+1 < 1) (4.14) ω1+1/p and c(x) ∈ Cp[−L, L] and ω > 1. In particular, this means that ∆xω < 1.

Utility Results Before we prove Theorem 4, we show some useful utility results. Consider the linear scalar ordinary differential equation

0 y = iωa(x, ω)y + b(x, ω), y(0) = y0. (4.15) Suppose we solve this with a p-th order Runge-Kutta method, and define the local truncation error as τn := y(xn + ∆x) − yn+1. Then, we have the following lemma:

p p Lemma 3. If |∂xy| ≤ B(ω)ω . Then p+1 |τn| ≤ CB(ω)(∆xω) . Proof. From T heorem 6, it follows that

p+1 p+1 X (p+1−l) l |τn| ≤ C∆x y ω . (4.16) ∞ l=0 Let us estimate first p+1 p+1 X X y(p+1−l) ωl ≤ B(ω) ωp+1−l ∞ l=0 l=0 ≤ CB(ω)ωp+1.

Hence, (4.16) becomes p+1 |τn| ≤ CB(ω)(∆xω) , which we wanted to prove.

Lemma 4. If a p-th order interpolation is used, then n  Cb εn−1 + ∆xpωp Cb  + Cb Tol , n ≥ 1 ˜bn(x , ∆x, ω) − ˜bn ≤ ω ω ω n j j 0, n = 0 where C is some constant that does not depend on ω. 4.2. ERROR ANALYSIS 37

Proof. From Lemma 9 it follows that

s ˜n X n b (xj, ω, ∆x) = r˜k(iω∆x, xj, ∆x)b (xj + γk∆x), k=1

n where b (x, ∆x, ω) is defined by (4.2). Let I, In and Ii be defined by (4.7)–(4.9). Hence,

˜n ˜n X n n b (xj, ∆x, ω) − b ≤ r˜k(iω∆x, xj, ∆x) b (xj + γk∆x) − b j j+γk k∈I

C X n ˆn ≤ r˜k(iω∆x, xj, ∆x) f (xj + γk∆x) − f ω j+γk k∈I

C X n n ≤ r˜k(iω∆x, xj, ∆x) f (xj + γk∆x) − f ω j+γk k∈I C X + r˜ (iω∆x, x , ∆x)Tol ω k j n k∈I

=: S1 + S2.

We will first consider S2. From (4.14) it follows that ∆xω < 1 and, sincer ˜k ∈ Ps−k, there exists a constant C such that X r˜k(iω∆x, xj, ∆x) ≤ C. k∈I Thus C S ≤ Tol . 2 ω n For S1 we can estimate

C|α| X n−1 n−1 S1 ≤ r˜k(iω∆x, xj, ∆x) v (xj + γk∆x) − v ω j+γk k∈I

C|α| X n−1 n−1 + r˜k(iω∆x, xj, ∆x) w (xj + γk∆x) − w . ω j+γk k∈I

Since I = In ∪ Ii and In ∩ Ii = ∅, then

j+1 C X X n−1 n−1 n−1 n−1  S1 ≤ r˜k(iω∆x, xj, ∆x) v (xl) − v + w (xl) − w ω l l k∈In l=j

C X n−1 n−1 n−1 n−1  + r˜k(iω∆x, xj, ∆x) v (xj + γk∆x) − v + w (xj + γk∆x) − w ω j+γk j+γk k∈Ii C ≤ εn−1 ω C X n−1 n−1 n−1 n−1  + r˜k(iω∆x, xj, ∆x) v (xj + γk∆x) − v + w (xj + γk∆x) − w . ω j+γk j+γk k∈Ii

For k ∈ Ii using p-th order interpolation and Theorem 3 we can estimate

p n−1  n−1 n−1 n−1 ∂xv (ξ) p β p p v (xj + γk∆x) − v ≤ C ∆x ≤ C(|A| + |f|L1 ) |α|L1 ω ∆x . j+γk p! ω 38 CHAPTER 4. ERROR ANALYSIS FOR NUMERICAL IMPLEMENTATION

Thus,

C C  β n−1 S ≤ εn−1 + ωp∆xp(|A| + |f| ) |α| 1 ω ω L1 ω L1 C  β n ≤ εn−1 + Cωp∆xp(|A| + |f| ) |α| . ω L1 ω L1

Finally,

C C n C ˜bn(x , ∆x, ω) − ˜bn(∆x, ω) ≤ b εn−1 + ∆xpωp b + b Tol , n ≥ 1. j j ω ω ω n

When n = 0, it is obvious that the bound is 0. Hence, the theorem is proved.

Lemma 5. Assume (4.14) and ω > 1. Then

J ˜ CL X k β e − 1 (|1 + i∆xωa˜(x, ∆x, ω)| ) ≤ , β˜ = . (4.17) ∞ ∆x C k=0 Proof. Let us first show

p+1 |1 + iω∆xa˜(iω∆x, xj, ∆x)|∞ ≤ 1 + C∆x + C(∆xω) , (4.18) wherea ˜(iω∆x, xj, ∆x) is defined in Lemma 9. Apply Runge-Kutta scheme to the equation

0 y (x) = iωa(xj + x, ω)y(x), y(0) = 1, (4.19) where a(x, ω) is defined by (4.1). Then

y1 = 1 + iω∆xa˜(iω∆x, xj, ∆x) and the exact solution is

R xj+1 iω x a(s,ω)ds y(1) = e j = y1 + τ0.

Hence,

R xj+1 iω x a(s,ω)ds |1 + iω∆xa˜(iω∆x, xj, ∆x)|∞ ≤ e j + |τ0|∞ ∞ R xj+1 cx(s) x ≤ e j 2c(s) + |τ0|∞ ∞ √ R xj+1 “ “ ”” xj d ln c(s) ds = e + |τ0|∞ ∞ s c(xj+1) ≤ + |τ0|∞ c(xj)

≤ 1 + C∆x + |τ0|∞. (4.20)

Since we assumed ω > 1 and (4.14) and from Theorem 2 it follows that

p p |∂xy|∞ ≤ Cpω , 4.2. ERROR ANALYSIS 39 we can apply Lemma 3 in (4.20) to obtain that (4.18) is true. To prove (4.17), we calculate

J (4.18) J X k X p+1k (|1 + i∆xωa˜(x, ∆x, ω)|∞) ≤ 1 + C∆x + C(∆xω) k=0 k=0 J J+1 (4.14) X (1 + C∆x) − 1 ≤ (1 + C∆x)k = C∆x k=0 eCJ∆x − 1 eCL − 1 ≤ = C∆x C∆x β˜ ≤ . ∆x Thus, the lemma is proved.

Lemma 6. If yj+1 ≤ ayj + bj+1 for some constant a and j ≥ 0, then

j j X j−k yj ≤ a y0 + a bk. (4.21) k=1

Proof. We use mathematical induction to prove (4.21). It is obvious that (4.21) is true for j = 1. Next, assume that it is true for j = i and show that it is true for j = i + 1,

yi+1 ≤ ayi + bi+1 i ! i X i−k ≤ a a y0 + a bk + bi+1 k=1 i+1 i+1 X i+1−k ≤ a y0 + a bk. k=1 Thus, the lemma is proved.

Lemma 7. Let α, β > 0. Then for any ε > 0

n−1 X n αkβn−k ≤ C(ε) (max(α, β) + ε) . k=0

Proof. Let α, β > 0, α 6= β. Then,

n−1 n−1 X X αkβn−k ≤ max(α, β)n k=0 k=0 ≤ n max(α, β)n ≤ C(ε)(max(α, β) + ε)n, for some ε > 0. Hence, the lemma is proved. 40 CHAPTER 4. ERROR ANALYSIS FOR NUMERICAL IMPLEMENTATION

Error Estimate for One-Way Equations Now we derive the error estimate for one-way equations. Let us first introduce some nota- tion. We set α˜ = max |α(xj)|, (4.22) j k where α(x) is defined by (2.6). Let τj be the local truncation error, i.e.,

k k k τj = v (xj + ∆x) − vj+1, (4.23) n n and εv(j) be the numerical error of v (x), i.e. n n n εv(j) = |v (xj) − vj |∞ j = 1, ..., J (4.24) where J = 2L/∆x. Also, let n n εv = max εv(j). (4.25) j n n In the same way we define εw(j) and εw. Finally, let n n n ε = εv + εw. (4.26) n n Lemma 8. Let τ = maxj τj . Then C n |τ n| ≤ C (∆xω)p+1 τ (4.27) ω where C and Cτ are some constants that do not depend on ω. Proof. The result follows directly from Theorem 3 and Lemma 3. Next, we prove the following n Theorem 5. Let εv be defined by (4.25). Suppose ! C β˜ C C 1 max b , τ , b , < 1, (4.28) ω ω ω 2 where Cτ is defined in Lemma 8 and Cb is defined in Lemma 4. Then there exist δ < 1 such that n n p p+1  εv ≤ Cδ ∆x ω + Tol . (4.29) Proof. Using Lemma 6 and Lemma 4, we obtain

n n n n n n εv(j+1) ≤ v (xj) + ∆xQ(xj, v (xj), ∆x) − vj − ∆xQ(xj, vj , ∆x) + τj n ˜n ˜n n ≤ |1 + i∆xωa˜(xj, ∆x, ω)|∞εv(j) + ∆x|b (xj) − bj | + τj C εn−1 C n C  ≤ |1 + i∆xωa˜(x , ∆x, ω)| εn + ∆x b v + ∆xpωp b + b Tol + τ n j ∞ v(j) ω ω ω n j j+1 n ≤ (|1 + i∆xωa˜(xj, ∆x, ω)|∞) εv(0) j  n−1  n  X k Cbε Cb Cb + (|1 + i∆xωa˜(x , ∆x, ω)| ) ∆x v + ∆xp+1ωp + ∆x Tol + τ n j ∞ ω ω ω n j k=0  n−1  n  j Cbε Cb Cb X k ≤ ∆x v + ∆xp+1ωp + ∆x Tol + τ n (|1 + i∆xωa˜(x , ∆x, ω)| ) . ω ω ω n j j ∞ k=0 4.2. ERROR ANALYSIS 41

Taking maxj in the previous inequality and using Lemma 5 and Lemma 6, we obtain for n > 0 β˜ C ∆x C n C  εn ≤ b εn−1 + ∆xp+1ωp b + ∆x b Tol + τ n v ∆x ω v ω ω n C C n C 1  = β˜ b εn−1 + ∆xpωp b + b Tol + τ n ω v ω ω n ∆x ˜!n n ˜!n−k  k n ˜!n+1−k Cbβ X Cbβ Cb X Cbβ ≤ ε0 + β˜∆xpωp + Tol ω v ω ω ω k k=1 k=1 ˜ n ˜!n−k β X Cbβ + τ k ∆x ω k=1 ˜0 ˜0 0 Since b (xj) = bj = 0, we can estimate εv on the similar way, i.e. J ˜ X k β ε0 ≤ τ 0 (|1 + i∆xωa˜(x , ∆x, ω)| ) ≤ τ 0 , (4.30) v j ∞ ∆x k=0 and the previous expression becomes

n ˜!n−k  k n ˜!n+1−k ˜ n ˜!n−k X Cbβ Cb X Cbβ β X Cbβ εn ≤ β˜∆xpωp + Tol + τ k v ω ω ω k ∆x ω k=1 k=1 k=0

:= S1 + S2 + S3. From (4.28) it follows that there exist  > 0 such that ! C β˜ C C 1 max b , τ , b , +  =: δ < 1. (4.31) ω ω ω 2

From (4.31) and Lemma 7 it follows that ˜ p p n S1 ≤ Cβ∆x ω δ and n ˜!n−k X Cbβ 1 S ≤ CTol 2 ω 2k k=1 ≤ CδnTol. Finally, using also Lemma 8,

n ˜!n−k  k X Cbβ Cτ S ≤ Cβ˜∆xpωp+1 3 ω ω k=0 ≤ C∆xpωp+1δn. Hence, n n p p+1  εv ≤ Cδ ∆x ω + Tol , which we wanted to prove. 42 CHAPTER 4. ERROR ANALYSIS FOR NUMERICAL IMPLEMENTATION

Proof of Theorem 4 Now, we can finally prove Theorem 4. By Theorem 5 and Theorem 1, there exists a δ < 1 such that

n m m |u(xj) − zj |∞ ≤ |u(xj) − zˆj |∞ + |zˆm(xj) − zj |∞ n n+1 X k ≤ C(|A| + |f|L1 )δ + Tol + |ε |∞ k=0 n n+1 p p+1  X k ≤ C(|A| + |f|L1 )δ + Tol + C ∆x ω + Tol δ k=0 n+1 p p+1  ≤ C (|A| + |f|L1 )δ + ∆x ω + Tol ,

which we wanted to prove. Chapter 5

Numerical Experiments

In this section we apply our method to compute the solution of the Helmholtz equation in [−1, 1] with different functions c(x). We compare the L2 error of our method against the L2 error of a direct finite difference method. We use the finite difference solution with 100 points per wavelength as the exact solution. We also compare the computational cost of the two methods. Since our code is not optimized and Matlab’s operator backslash is, we compare the total number of grid points in which the solution is computed in the methods and not the direct execution time. In both methods, the cost is directly proportional to this number. In our method, we solve the equations with a 4th order Runge-Kutta method and for the finite difference solution we use the 4th order finite difference scheme. Note that the solution in our method is a sum of the solutions from every iteration and the solutions from the iterations have to be given on the same grid. Normally they are not computed at the same grid points because the intervals in which the source function is cut off change at every iteration. To be able to compare our solution with the full exact solution, we interpolate our solution using cubic interpolation after every iteration. In every experiment, we use

min c(x) ω ∆x = x , ∆x = ∆x , f 1+1/4 c f ω C∆x where the constant C∆x varies for different functions c(x). The same ∆xf is used in the finite difference method.

Example 1 First, we consider the function c(x) given in Figure 5.1. The absolute value of the solution for ω = 10 is shown in Figure 5.2. Small oscillations can be noticed on the left part of the domain. It is because the solution is reflected. The error, computational cost and the number of iterations needed to compute the solution in our method for Tol = 0.1 are given in Figure 5.3 and for Tol = 0.01 in Figure 5.4. Here, C∆x = 1. It can be noticed that for Tol = 0.1 only 1 iteration is needed to achieve the desired accuracy for all frequencies approximately larger than 650. This means that only the GO solution is computed for those problems. For Tol = 0.01 two iterations are needed for all tested frequencies and the computational cost of our method is larger than in the previous example, but still much smaller than for the finite difference method.

43 44 CHAPTER 5. NUMERICAL EXPERIMENTS

c(x) 0.9

0.8

0.7

0.6

0.5 c(x)

0.4

0.3

0.2

0.1 −1 −0.8 −0.6 −0.4 −0.2 0 0.2 0.4 0.6 0.8 1 x

Figure 5.1: Function c(x).

Absolute value of the solution for ω = 10

4

3.5

3 |u(x)|

2.5

2

−1 −0.8 −0.6 −0.4 −0.2 0 0.2 0.4 0.6 0.8 1 x

Figure 5.2: Absolute value of the solution for ω = 10. 45

Error −1 10

our method −2 10 finite difference

log(error) −3 10

−4 10 0 500 1000 1500 2000 2500 3000 3500 4000 4500 ω

5 x 10 Number of points 4 our method 3 finite difference

2

number of points 1

0 0 500 1000 1500 2000 2500 3000 3500 4000 4500 ω

Number of iterations 4

3.5

3

2.5

2

number of iterations 1.5

1 0 500 1000 1500 2000 2500 3000 3500 4000 4500 ω

Figure 5.3: Comparison between the finite difference method and our method with tolerance Tol = 0.1, for 256 ≤ ω ≤ 4096. The error (top), the computational cost(middle) and the number of iterations needed to compute the solution with our method (bottom). 46 CHAPTER 5. NUMERICAL EXPERIMENTS

Error −1 10

−2 10

log(error) −3 10 our method finite difference −4 10 0 500 1000 1500 2000 2500 3000 3500 4000 4500 ω

5 x 10 Number of points 4 3.5 our method 3 finite difference 2.5 2 1.5

number of points 1 0.5

0 500 1000 1500 2000 2500 3000 3500 4000 4500 ω

Number of iterations 4

3.5

3

2.5

2

number of iterations 1.5

1 0 500 1000 1500 2000 2500 3000 3500 4000 4500 ω

Figure 5.4: Comparison between the finite difference method and our method with tolerance Tol = 0.01, for 256 ≤ ω ≤ 4096. The error (top), the computational cost(middle) and the number of iterations needed to compute the solution with our method (bottom) . 47

Example 2 Now, we consider the function c(x) shown in Figure 5.5. The absolute value of the solution for ω = 16 is shown in Figure 5.6. The error, computational cost and the number of iterations needed to compute the solution in our method for Tol = 0.1 are given in Figure 5.7 and for Tol = 0.01 in Figure 5.8. Here, C∆x = 50.

c(x) 0.9

0.8

0.7

0.6

0.5 c(x)

0.4

0.3

0.2

0.1 −1 −0.8 −0.6 −0.4 −0.2 0 0.2 0.4 0.6 0.8 1 x

Figure 5.5: Function c(x).

Absolute value of the solution for ω = 16

4.5

4

3.5

3 |u(x)|

2.5

2

1.5

−1 −0.8 −0.6 −0.4 −0.2 0 0.2 0.4 0.6 0.8 1 x

Figure 5.6: Absolute value of the solution for ω = 16. 48 CHAPTER 5. NUMERICAL EXPERIMENTS

Error −1 10

−2 10

log(error) −3 10 our method finite difference −4 10 0 500 1000 1500 2000 2500 3000 3500 4000 4500 ω

5 x 10 Number of points 4 our method 3 finite difference

2

number of points 1

0 0 500 1000 1500 2000 2500 3000 3500 4000 4500 ω

Number of iterations 4

3.5

3

2.5

2

number of iterations 1.5

1 0 500 1000 1500 2000 2500 3000 3500 4000 4500 ω

Figure 5.7: Comparison between the finite difference method and our method with tolerance Tol = 0.1, for 256 ≤ ω ≤ 4096. The error (top), the computational cost(middle) and the number of iterations needed to compute the solution with our method (bottom) . 49

Error −1 10

−2 10 log(error)

our method finite difference −3 10 0 500 1000 1500 2000 2500 3000 3500 4000 4500 ω

5 x 10 Number of points 4 our method 3 finite difference

2

number of points 1

0 0 500 1000 1500 2000 2500 3000 3500 4000 4500 ω

Number of iterations 4

3.5

3

2.5

2

number of iterations 1.5

1 0 500 1000 1500 2000 2500 3000 3500 4000 4500 ω

Figure 5.8: Comparison between the finite difference method and our method with tolerance Tol = 0.01, for 256 ≤ ω ≤ 4096. The error (top), the computational cost(middle) and the number of iterations needed to compute the solution with our method (bottom) . 50 CHAPTER 5. NUMERICAL EXPERIMENTS

Next, we use the function c(x) that has the same shape as the previous, but it is a bit larger, see Figure 5.9. The absolute value of the solution for ω = 16 is shown in Figure 5.10. The error, computational cost and the number of iterations needed to compute the solution in our method for Tol = 0.1 are given in Figure 5.11 and for Tol = 0.01 in Figure 5.12. Also, C∆x = 50. It can be noted that the number of iterations needed to compute the solution has increased.

c(x)

1.2

1

0.8 c(x)

0.6

0.4

0.2

−1 −0.8 −0.6 −0.4 −0.2 0 0.2 0.4 0.6 0.8 1 x

Figure 5.9: Function c(x).

Absolute value of the solution for ω = 16 5

4.5

4

3.5

3

2.5 |u(x)|

2

1.5

1

0.5

0 −1 −0.8 −0.6 −0.4 −0.2 0 0.2 0.4 0.6 0.8 1 x

Figure 5.10: Absolute value of the solution for ω = 16. 51

Error 0 10 our method finite difference

−1 10 log(error)

−2 10 0 500 1000 1500 2000 2500 3000 3500 4000 4500 ω

5 x 10 Number of points 4 our method 3 finite difference

2

number of points 1

0 0 500 1000 1500 2000 2500 3000 3500 4000 4500 ω

Number of iterations 5

4

3

2 number of iterations

1 0 500 1000 1500 2000 2500 3000 3500 4000 4500 ω

Figure 5.11: Comparison between the finite difference method and our method with toler- ance Tol = 0.1, for 256 ≤ ω ≤ 4096. The error (top), the computational cost(middle) and the number of iterations needed to compute the solution with our method (bottom) . 52 CHAPTER 5. NUMERICAL EXPERIMENTS

Error −1 10

−2 10 log(error)

our method finite difference −3 10 0 500 1000 1500 2000 2500 3000 3500 4000 4500 ω

5 x 10 Number of points 4 our method 3 finite difference

2

number of points 1

0 0 500 1000 1500 2000 2500 3000 3500 4000 4500 ω

Number of iterations 5

4

3

2 number of iterations

1 0 500 1000 1500 2000 2500 3000 3500 4000 4500 ω

Figure 5.12: Comparison between the finite difference method and our method with toler- ance Tol = 0.01, for 256 ≤ ω ≤ 4096. The error (top), the computational cost(middle) and the number of iterations needed to compute the solution with our method (bottom) . 53

Example 3 Let us now consider a nonsymetric function c(x) that is shown in Figure 5.13. The absolute value of the solution for ω = 16 is plotted in Figure 5.14. The error, computational cost and the number of iterations needed to compute the solution in our method for Tol = 0.01 is given in Figure 5.15, the constant C∆x = 50.

c(x) 1.6

1.4

1.2

1

c(x) 0.8

0.6

0.4

0.2

−1 −0.8 −0.6 −0.4 −0.2 0 0.2 0.4 0.6 0.8 1 x

Figure 5.13: Function c(x).

Absolute value of the solution for ω = 16

5

4

3 |u(x)| 2

1

0

−1 −0.8 −0.6 −0.4 −0.2 0 0.2 0.4 0.6 0.8 1 x

Figure 5.14: Absolute value of the solution for ω = 16. 54 CHAPTER 5. NUMERICAL EXPERIMENTS

Error 0 10 our method finite difference

−1 10 log(error)

−2 10 0 500 1000 1500 2000 2500 3000 3500 4000 4500 ω

5 x 10 Number of points 4 our method 3 finite difference

2

number of points 1

0 0 500 1000 1500 2000 2500 3000 3500 4000 4500 ω

Number of iterations 6

5

4

3 number of iterations

2 0 500 1000 1500 2000 2500 3000 3500 4000 4500 ω

Figure 5.15: Comparison between the finite difference method and our method with toler- ance Tol = 0.1, for 256 ≤ ω ≤ 4096. The error (top), the computational cost(middle) and the number of iterations needed to compute the solution with our method (bottom) . 55

To illustrate how the forcing function changes in iterations, we choose ω = 256 and plot the part of the function that is larger than a given tolerance after the first four iterations in Figure 5.16. After the fifth iteration, the forcing function is everywhere equal to 0.

The forcing function after the first four iterations 10,000

5,000 (x) 1 f

0 −0.4 −0.3 −0.2 −0.1 0 0.1 0.2 0.3 0.4 x 400 300 200 (x) 2 f 100 0 −100 −0.4 −0.3 −0.2 −0.1 0 0.1 0.2 0.3 0.4 x 10

5 (x) 3 f

0

−0.4 −0.3 −0.2 −0.1 0 0.1 0.2 0.3 0.4 x

0.15 0.1 (x) 4 f 0.05 0 −0.05 −0.4 −0.3 −0.2 −0.1 0 0.1 0.2 0.3 0.4 x

Figure 5.16: The forcing function after the first four iterations for ω = 256. Everywhere else in the domain, it is equal to zero and we do not plot that part. 56 CHAPTER 5. NUMERICAL EXPERIMENTS

Example 4 Let us now consider a speed function that have more ’peaks’ than functions in the previous examples. It is shown in Figure 5.17. The absolute value of the solution is plotted in Figure 5.18. The error, computational cost and the number of iterations needed to compute the solution in our method for Tol = 0.01 is given in Figure 5.19, the constant C∆x = 60.

c(x) 1.6

1.4

1.2

1

c(x) 0.8

0.6

0.4

0.2

−1 −0.8 −0.6 −0.4 −0.2 0 0.2 0.4 0.6 0.8 1 x

Figure 5.17: Function c(x).

Absolute value of the solution for ω = 16 8

7

6

5

4 |u(x)|

3

2

1

0 −1 −0.8 −0.6 −0.4 −0.2 0 0.2 0.4 0.6 0.8 1 x

Figure 5.18: Absolute value of the solution for ω = 16. 57

Error 0 10 our method finite difference

−1 10 log(error)

−2 10 0 500 1000 1500 2000 2500 3000 3500 4000 4500 ω

5 x 10 Number of points 4 our method 3 finite difference

2

number of points 1

0 0 500 1000 1500 2000 2500 3000 3500 4000 4500 ω

Number of iterations 6

5

4

3

2 number of iterations

1 0 500 1000 1500 2000 2500 3000 3500 4000 4500 ω

Figure 5.19: Comparison between the finite difference method and our method with toler- ance Tol = 0.01, for 256 ≤ ω ≤ 4096. The error (top), the computational cost(middle) and the number of iterations needed to compute the solution with our method (bottom) . 58 CHAPTER 5. NUMERICAL EXPERIMENTS

Example 5 Finally, we consider a speed function that is shown in Figure 5.20. The absolute value of the solution is plotted in Figure 5.21. The error, computational cost and the number of iterations needed to compute the solution in our method for Tol = 0.01 is given in Figure 5.22, the constant C∆x = 80.

c(x) 1.6

1.4

1.2

1

c(x) 0.8

0.6

0.4

0.2

−1 −0.8 −0.6 −0.4 −0.2 0 0.2 0.4 0.6 0.8 1 x

Figure 5.20: Function c(x).

Absolute value of the solution for ω = 16 4.5

4

3.5

3

2.5

|u(x)| 2

1.5

1

0.5

0 −1 −0.8 −0.6 −0.4 −0.2 0 0.2 0.4 0.6 0.8 1 x

Figure 5.21: Absolute value of the solution for ω = 16. 59

Error −1 10

−2 10 log(error)

our method finite difference −3 10 0 500 1000 1500 2000 2500 3000 3500 4000 4500 ω

5 x 10 Number of points 4 our method 3 finite difference

2

number of points 1

0 0 500 1000 1500 2000 2500 3000 3500 4000 4500 ω

Number of iterations 5

4

3

2 number of iterations

1 0 500 1000 1500 2000 2500 3000 3500 4000 4500 ω

Figure 5.22: Comparison between the finite difference method and our method with toler- ance Tol = 0.01, for 256 ≤ ω ≤ 4096. The error (top), the computational cost(middle) and the number of iterations needed to compute the solution with our method (bottom) .

Bibliography

[1] T. Abboud, J.-C. N´ed´elec, and B. Zhou. M´ethode dese ´cuations int´egrales pour les hautes fr´equencies. C.R. Acad. Sci. Paris., 318:165–170, 1994. [2] F. V. Atkinson. Wave propagation and the Bremmer series. J. Math. Anal. Appl., 1: 225–276, 1960. [3] V. M. Babic and T. F. Pankratova. On discontinuities of Green’s function of the wave equation with variable coefficient. Problemy Matem. Fiziki., Leningrad University, Saint-Petersburg, 6, 1973. [4] R. Bellman and R. Kalaba. Functional equations, wave propagation and invariant imbedding. J. Math Mech., 8:683–704, 1959. [5] H. Bremmer. The W.K.B. approximation as the first term of a geometric-optical series. Commun. Pure Appl. Math., 4:105–115, 1951. [6] Y. Brenier and L. Corrias. A kinetic formulation for multibranch entropy solutions of scalar conservations laws. Ann. Inst. Henri Poincar´e,15(2):169–190, 1998. [7] S. C. Brenner and L. R. Scott. The Mathematical Theory of Finite Element Methods. Springer, 2008. [8] O. P. Bruno, C. A. Geuzaine, J. A. Monro Jr, and F. Reitich. Prescribed error tolerances within fixed computational times for scattering problems of arbitrarily high frequency: the convex case. Philos. Transact. A. Math. Phys. Eng. Sci., 362(1816):629–645, 2004. [9] O. P. Bruno, C. A. Geuzaine, and F. Reitich. On the O(1) solution of multiple- scattering problems. IEEE Trans. Magn., 41:1488–1491, 2005. [10] O. Cessenat and B. Despres. Application of an ultra weak variational formulation of elliptic PDEs to the two-dimensional Helmholtz problem. SIAM J. Numer. Anal., 35 (1):255–299, 1998. [11] S. N. Chandler-Wilde and I. G. Graham. Boundary integral methods in high frequency scattering. In B. Engquist, T. Fokas, E. Hairer, and A. Iserles, editors, Highly Oscil- latory Problems: Theory, Computation and Applications. Cambridge University Press, 2008. [12] V. Cerven´y,ˇ I. A. Molotkov, and I. Psencik. Ray methods in seismology. Univ. Karlova Press, 1977. [13] B. Cockburn, G. Karniadakis, and C.-W. Shu. Discontinuous Galerkin Methods: the- ory, computations and applications, volume 11 of Lecture Notes in Computational Sci- ence and engineering. Springer, 2000.

61 62 BIBLIOGRAPHY

[14] D. Colton and R. Kress. Inverse Acoustic and Electromagnetic Scattering Theory, volume 93. Applied Mathematical Sciences, Springer-Verlag, Berlin, 1998.

[15] L Demanet and L. Ying. Wave atoms and time upscaling of wave equations. To appear in Numer.Math., 2007.

[16] V. Dominguez, I. G. Graham, and V. P. Smyshlyaev. A hybrid numerical-asymptotic boundary integral method for high-frequency acoustic scattering. Numer. Math., 106: 471–510, 2007.

[17] F. Ecevit and F. Reitich. Analysis of multiple scattering iterations for high-frequency scattering problems. Technical report, Max-Planck-Institut f¨urMathematik in den Naturwissendchaften, Leipzig, 2006.

[18] H. C. Elman and D. P. O’Leary. Efficient iterative solution of the three-dimensional Helmholtz equation. J. Comput. Phys., 142(1):163–181, 1998.

[19] B. Engquist, S. Osher, and S. Zhong. Fast wavelet based algorithms for linear evolution equations. SIAM J. Sci. Comp., 15(4):755–775, 1994.

[20] B. Engquist and O. Runborg. Multiphase computations in geometrical optics. J. Comput. Appl. Math., 74:175–192, 1996.

[21] B. Engquist and O. Runborg. Computational high frequency wave propagation. Acta Numerica, 12:181–266, 2003.

[22] B. Engquist, O. Runborg, and A.-K. Tornberg. High-frequency wave propagation by the segment projection method. J. Comput. Phys., 178:373–390, 2002.

[23] B. Engquist and L. Ying. Fast directional multilevel algorithms for oscillatory kernels. SIAM Journal on Scientific Computing, 29(4):1710–1737, 2007.

[24] K. Eriksson, D. Estep, P. Hansbo, and C. Johnson. Computational Differential Equa- tions. Studnetlitteratur, Lund, 1996.

[25] Y. A. Erlagga. Advances in iterative methods and preconditioners for the Helmholtz equation. Arch. Comput. Methods Eng., 15:37–66, 2008.

[26] Y. A. Erlagga, C. Oosterlee, and C. Vuik. A novel multigrid based preconditioner for heterogeneous Helmholtz problem. SIAM J. Sci. Comput., 27:1471–1492, 2006.

[27] O. Ernst and G. H. Golub. A domain decomposition approach to solving the Helmholtz equation with a radiating boundary condition. American Mathematical Society, Prov- idence, 15:177–192, 1994.

[28] E. Giladi and J. B. Keller. A hybrid numerical asymptotic method for scattering problems. Comput. Phys., 174:226–247, 2001.

[29] B. Gustafsson. High Order Difference Methods for Time Dependent PDE. Springer- Verlag Berlin Heidelberg, 2008.

[30] H. Han and Z. Huang. A tailored finite point method for the Helmholtz equation with high wave numbers in heterogeneous medium. J. Comp. Math., 26:728–739, 2008. 63

[31] J. Hesthaven, D. Gottlieb, and S. Gottlieb. Spectra Methods for Time-dependent Prob- lems, volume 21 of Cambridge Monographs on Applied and Computational Mathemat- ics. Cambridge University Press, 2007.

[32] D. Huybrechts and S. Vandewalle. A sparse discretisation for integral equation for- mulations of high-frequency scattering problems. Comm. SIAM J. Sci. Comput., 29: 2305–2328, 2007.

[33] B. R. Julian and D. Gubbins. Three-dimensional seismic ray tracing. J. Geophys. Res., 43:95–114, 1977.

[34] H. B. Keller and J. B. Keller. Exponential-like solutions of systems of linear ordinary differential equations. J. SIAM, 10:246–259, 1962.

[35] J. Keller. Geometrical theory of diffraction. J. Opt. Soc. Amer, 52, 1962.

[36] R. Kress. Linear Integral Equations, volume 82 of Applied Mathematical Sciences. Springer-Verlag, second edition, 1999.

[37] R. T. Langan, I. Lerche, and R. T. Cutler. Tracing of rays through heterogeneous media: An accurate and efficient procedure. Geophysics, 50:1456–1465, 1985.

[38] S. Langdon and S. N. Chandler-Wilde. A wave number independent boundary element method for an acoustic scattering problem. SIAM J. Num. Anal., 43:2450–2477, 2006.

[39] E. Larsson. A domain decomposition method for the Helmholtz equation in a multilayer domain. SIAM J. Sci. Comput., 20(5):1713–1731, 1999.

[40] Randall. J. LeVeque. Finite Volume Methods for Hyperbolic Problems. Cambridge University Press, 2006.

[41] J. Lundstedt and S. He. Time domain direct and inverse problems for a nonuniform LCRG line with internal sources. IEEE Transactions on Electromagnetic Compatibility, 39(2):79–88, 1997.

[42] H. McMaken. On the convergence of the Bremmer series for the Helmholtz equation in 2-D. Wave Motion, 8:277–283, 1986.

[43] Made MMM. Incomplete factorization-based preconditionings for solving the Helmholtz equation. Int. J. Numer. Methods Eng., 50:1077–1101, 2001.

[44] M. Motamed and O. Runborg. Taylor expansion errors in summation. Preprint, KTH, 2008.

[45] S. J. Osher and J. A. Sethian. Fronts propagating with curvature-dependent speed: Algorithms based on Hamilton-Jacobi formulations. J. Comput. Phys., 79(1):12–49, 1988.

[46] S. J. Osher and C.-W. Shu. High–order essentially nonoscillatory schemes for Hamilton- Jacobi equations. SIAM J. Numer. Anal., 28(4):907–977, 1991.

[47] K. Otto and E. Larsson. Iterative solution of the Helmholtz equation by a second–order method. SIAM J. Matrix Anal. Appl., 21(1):209–229, 1999. 64 BIBLIOGRAPHY

[48] E. Perrey-Debain, O. Laghrouche, P. Bettess, and J. Trevelyan. Plane-wave basis finite elements and boundary elements for three-dimensional wave scattering. Philos. Trans. R. Soc. Lond. Ser. A Math. Phys. Eng. Sci., 362(1816):561–577, 2004.

[49] M. M. Popov. A new method of computation of wave fields using gaussian beams. Wave Motion, 4:85–97, 1982. [50] V. Rokhlin. Sparse diagonal forms for translation operators for the Helmholtz equation in two dimensions. Appl. Comput. Harmon. Anal., 5(1):36–67, 1998.

[51] O. Runborg. Some new results in multiphase geometrical optics. M2AN Math. Model. Numer. Anal., 34:1203–1231, 2000. [52] O. Runborg. Mathematical models and numerical methods for high frequency waves. Communications in Computational , 2(5):827–880, 2007.

[53] J. A. Sethian. A fast marching level set method for monotonically advancing fronts. Proc. Nat. Acad. Sci. U.S.A., 93(4), 1966. [54] Christiaan C. Stolk. A fast method for linear waves based on geometrical optics. SIAM J. Numer. Anal., 47:1168–1194, 2009. [55] A. Taflove. Computational Electrodynamics: The Finite-Difference Time-Domain Method. Norwood, MA: Artech House, 1995. [56] A. Taflove and S. C. Hagness. Computational Electrodynamics: The Finite-Difference Time-Domain Method. Norwood, MA: Artech House, second edition, 2000. [57] C. H. Thurber and W. L. Ellsworth. Rapid solution of ray tracing problems in hetero- geneous media. Bull. Seism. Soc. Amer., 70:1147–1148, 1980. [58] A.-K. Tornberg and B. Engquist. The segment projection method for interface tracking. Comm. Pure Appl. Math., 56(1):47–79, 2003. [59] L. N. Trefethen. Spectral Methods in MATLAB. SIAM, 2000.

[60] Y. R. Tsai, L. T. Cheng, S. Osher, and H. K. Zhao. Fast sweeping algorithms for a class of Hamilton-Jacobi equations. SIAM Journal on Numerical Analysis, 41(2):673–694, 2003. [61] J. N. Tsitsiklis. Efficient algorithms for globally optimal trajectories. IEEE Trans. Automat. Control, 40(9):1528–1538, 1995.

[62] G. B. Whitham. Linear and nonlinear waves. John Wiley & Sons, Inc., 1974. [63] Kane S. Yee. Numerical solution of initial boundary value problems involving Maxwell’s equations in isotropic media. IEEE Trans. Antennas Propagat., AP-14(3):302–307, 1966. Appendix A

Runge–Kutta Schemes for Linear Scalar Problems

We consider the linear scalar ordinary differential equation

0 y = iωa(x, ω)y + b(x, ω), y(0) = y0. (A.1)

We solve it with a p-th order explicit s-stage Runge–Kutta scheme, where 0 ≤ p ≤ s, described by ξ1 = iωa(xn, ω)y(xn) + b(xn, ω), and for j = 2, . . . , s,

j−1 ! X ξj = iωa(xn + γj∆x, ω) y(xn) + ∆x αj,`ξ` + b(xn + γj∆x, ω). `=1 Finally, s X yn+1 = y(xn) + ∆x βjξj. j=1 We are interested in characterizing the error in one step, the local truncation error:

τn := y(xn + ∆x) − yn+1.

Since the method is of p-th order, the first p terms in the Taylor expansion of τn around ∆x = 0 are zero. Throughout this section we will assume that b(·, ω) ∈ Cp+1(R) for all ω and a(·, ω) ∈ Cp+1(R) uniformly in ω, i.e. that

k sup |∂x a(x, ω)| ≤ C, k = 0, . . . , p + 1. x,ω∈R This means in particular that the solution y(x) ∈ Cp+2. We can then prove the following Theorem 6. Suppose ∆xω ≤ 1 and ω ≥ 1. Then the local truncation error can be estimated as p+1 p+1 X (p+1−`) ` |τn| ≤ C ∆x |y |∞ω , `=0 where the constant is independent of x, ω, y(x) and b(x, ω).

65 66 APPENDIX A. RUNGE–KUTTA SCHEMES FOR LINEAR SCALAR PROBLEMS

p To prove this theorem we introduce a space Cb to denote functions of the form c(x, ω, ∆x) which are p times continuously differentiable in ∆x with uniform bounds on the derivatives in x and ω, k sup |∂∆xc(x, ω, ∆x)| ≤ C, k = 0, . . . , p. x,ω∈R

p+1 In particular a(x + α∆x, ω) ∈ Cb for all α. We then let Pd be functions f(z, x, ω, ∆x) which are polynomials of degree d in z,

d f(z, x, ω, ∆x) = c0(x, ω, ∆x) + zc1(x, ω, ∆x) + ··· + z cd(x, ω, ∆x),

p+1 and where the coefficients cj ∈ Cb . We then have the following lemma characterizing the form of the Runge–Kutta scheme.

Lemma 9. The Runge–Kutta scheme can be written in the following form

 s  X yn+1 = yn + ∆x iωa˜(iω∆x, xn, ω, ∆x)yn + r˜j(iω∆x, xn, ω, ∆x)b(xn + γj∆x, ω) , j=1 where a˜ ∈ Ps−1 and r˜j ∈ Ps−j do not depend on ω, yn or b(x, ω).

Proof. Let

aj(x, ω, ∆x) = a(x + γj∆x, ω), bj(x, ω, ∆x) = b(x + γj∆x, ω),

p+1 so that a(x) = a1(x, ω, ∆x), b(x) = b1(x, ω, ∆x). We note that aj ∈ Cb by our assump- tions. We have

ξ1 = iωa1yn + b1, and for j = 2, . . . , s, j−1 ! X ξj = iωaj yn + ∆x αj,`ξ` + bj. `=1

We claim that there are qj ∈ Pj−1 and rj,k ∈ Pj−k such that

j X ξj = iωqj(iω∆x, xn, ω, ∆x)yn + rj,k(iω∆x, xn, ω, ∆x)bk. k=1

This is true for j = 1 since we can take q1 = a1 and r1,1 = 1. For j > 1,

j−1 " ` #! X X ξj = iωaj yn + ∆x αj,` iωq`yn + r`,kbk + bj `=1 k=1 j−1 ! j−1 ` X X X = iωaj 1 + iω∆x αj,`q` yn + iω∆xaj αj,`r`,kbk + bj `=1 `=1 k=1 j−1 ! j−1 j−1 X X X = iωaj 1 + iω∆x αj,`q` yn + iω∆xaj bk αj,`r`,k + bj. `=1 k=1 `=k 67

Thus, rj,j = 1 and

j−1 ! X qj(z, x, ω, ∆x) = aj(x, ω, ∆x) 1 + z αj,`q`(z, x, ω, ∆x) , `=1 j−1 X rj,k(z, x, ω, ∆x) = zaj(x, ω, ∆x) αj,`r`,k(y, x, ω, ∆x). `=k

Clearly, if q` ∈ P`−1 and r`,k ∈ P`−k for 1 ≤ k ≤ ` < j, then the same holds also for 1 ≤ k ≤ ` = j, showing the claim by induction. Finally,

s s " j # X X X yn+1 = yn + ∆x βjξj = yn + ∆x βj iωqjyn + rj,kbk . j=1 j=1 k=1

Hence, s s X X a˜ = βjqj, r˜k = βjrj,k. (A.2) j=1 j=k

Since qj ∈ Pj−1 and rj,k ∈ Pj−k this proves the lemma.

Before continuing, we introduce the Taylor expansion polynomial for c(∆x) ∈ Cp+1(R). More precisely, we let Tkc be the Taylor polynomial of degree k ≤ p around ∆x = 0, defined as k (`) X ∂ c(0) (T c)(z) := z` ∆x , k `! `=0 so that ∆xk+1 (k+1) |c(∆x) − (Tkc)(∆x)| ≤ sup ∂∆x c(ξ) . `! 0≤ξ≤∆x

p+1 We note that in particular if we apply Tk to a function c(x, ω, ∆x) ∈ Cb then

(k+1) k+1 |c(x, ω, ∆x) − (Tkc)(x, ω, ∆x)| ≤ sup ∂∆x c(x, ω, ξ) ≤ C ∆x , 0≤ξ≤∆x where the constant C is independent of x and ω. We will also let Qd be another polynomial space similar to Pd but where the functions are of the form

d f(x, ω, ∆x) = c0(x, ω) + c1(x, ω)∆x + ··· + cd(x, ω)∆x ,

p+1 and the coefficients cj ∈ C for each ω, but not necessarily bounded uniformly in ω. p+1 ¯ Lemma 10. For each f ∈ Pd, y ∈ C (R) and integer p ≥ 0 there exists f ∈ Qp such that

f(iω∆x, x, ω, ∆x)y(x + α∆x) − f¯(x, ω, ∆x) p+1 ` ! p+1 X X (`−k) k max(d,p+1) ≤ C ∆x |y |∞ω + (∆xω) |y|∞ , (A.3) `=0 k=0 where C is independent of x, ω, ∆x and y(x). 68 APPENDIX A. RUNGE–KUTTA SCHEMES FOR LINEAR SCALAR PROBLEMS

Proof. Since f ∈ Pd we can write the function as

d X k f(z, x, ω, ∆x)y(x + α∆x) = ck(x, ω, ∆x)y(x + α∆x)z . k=0

p+1 where ck ∈ Cb . With q = min(d, p) we divide the sum into three parts q X k f(iω∆x, x, ω, ∆x)y(x + α∆x) = ck(x, ω, ∆x)(Tp−ky)(x, ∆x)(iω∆x) k=0 q X k + ck(x, ω, ∆x)[(Tp−ky)(x, ∆x) − y(x + α∆x)](iω∆x) k=0 d X k + ck(x, ω, ∆x)y(x + α∆x)(iω∆x) k=q+1

=: E1 + E2 + E3, ¯ where E3 = 0 if p ≥ d. We start by considering E1. Let f` ∈ Qp−` be defined as

min(q,`) p−` (r) min(q,`) X X ∂ ck(x, ω, 0) X f¯ (x, ω, ∆x) = ∆xr ∆x Y (x)(iω)k = (T c )(x, ω, ∆x)Y (x)(iω)k, ` r! `−k p−` k `−k k=0 r=0 k=0

` (`) where Y`(x) := α y (x)/`!. Then,

q p−k p min(q,`) X X ` k X ` X k E1 = ck(x, ω, ∆x)∆x Y`(x)(iω∆x) = ∆x ck(x, ω, ∆x)Y`−k(x)(iω) k=0 `=0 `=0 k=0 p p min(q,`) X ` ¯ X ` X k = ∆x f`(x, ω, ∆x) + ∆x [ck(x, ω, ∆x) − (Tp−`ck)(x, ω, ∆x)]Y`−k(x)(iω) . `=0 `=0 k=0 We have furthermore

min(q,`) min(q,`) X k p−`+1 X (`−k) k [ck(x, ω, ∆x) − (Tp−`ck)(x, ω, ∆x)]Y`−k(x)(iω) ≤ C∆x |y |∞ω , k=0 k=0 where C is independent of y(x). Thus, defining

p ¯ X ¯ ` f(x, ω, ∆x) := f`(x, ω, ∆x)∆x ∈ Qp, `=0 we get

p min(q,`) ¯ p+1 X X (`−k) k |f(iω∆x, x, ω, ∆x)y(x+α∆x)−f(x, ω, ∆x)| ≤ C∆x |y |∞ω +|E2|+|E3|. `=0 k=0

(p−k+1) p−k+1 For E2 we can estimate |Tp−ky − y| ≤ Ck|y |∞∆x to get,

q p+1 X (p−k+1) k |E2| ≤ C∆x |y |∞ω , k=0 69

and for E3 we trivially have

d X k  p+1 d |E3| ≤ C|y|∞ (ω∆x) ≤ C|y|∞ (ω∆x) + (ω∆x) , k=p+1 when p < d. The result follows from these estimates.

p+1 Corollary 2. Suppose ∆xω ≤ 1 and ω ≥ 1. Then, for each f ∈ Pd, y ∈ C (R) and ¯ integer p ≥ 0 there exists f ∈ Qp such that

p+1 ¯ p+1 X (p+1−`) ` f(iω∆x, x, ω, ∆x)y(x + α∆x) − f(x, ω, ∆x) ≤ C ∆x |y |∞ω , `=0 where C is independent of x, ω, ∆x and y(x).

Proof. When ω ≥ 1,

p+1 ` p+1 ` p+1 X X (`−k) k X X (p+1−`) k X (p+1−`) ` |y |∞ω = |y |∞ω ≤ (p + 1) |y |∞ω . (A.4) `=0 k=0 `=0 k=0 `=0

max(d,p+1) p+1 Moreover, when ∆xω ≤ 1, clearly (∆xω) |y|∞ ≤ (∆xω) |y|∞, which is already included in the first error term of (A.3).

Proof of Theorem 6

From Lemma 9 and the equation (A.1) we have that

 s  X yn+1 =yn + ∆x iωa˜(iω∆x, xn, ω, ∆x)yn + r˜j(iω∆x, xn, ω, ∆x)b(xn + γj∆x, ω) j=1 s X 0 =[1 + iω∆xa˜(iω∆x, xn, ω, ∆x)]yn + ∆x r˜j(iω∆x, xn, ω, ∆x)y (xn + γj∆x) j=1 s X + s˜j(iω∆x, xn, ω, ∆x)y(xn + γj∆x), j=1 where

s˜j(z, xn, ω, ∆x) = −zr˜j(z, xn, ω, ∆x)a(xn + γj∆x, ω) ∈ Ps+1−j.

p+2 We also note that [1+za˜(z, x, ω, ∆x)] ∈ Ps andr ˜j ∈ Ps−j. Since also y ∈ C the result in 0 Corollary 2 shows that we can approximate [1+iω∆xa˜(iω∆x, xn, ∆x)]yn,r ˜j(iω∆x, xn, ∆x)y (xn+ γj∆x), ands ˜j(iω∆x, xn, ∆x)y(xn + γj∆x) in the sense of (A.4) by some functionsa ¯ ∈ Qp, 70 APPENDIX A. RUNGE–KUTTA SCHEMES FOR LINEAR SCALAR PROBLEMS

r¯j ∈ Qp−1 ands ¯j ∈ Qp respectively. Then

s X τn+1 = y(xn+1) − yn+1 = (Tpy)(xn, ω, ∆x) − a¯(xn, ω, ∆x) − ∆x r¯j(xn, ω, ∆x) j=1

+ y(xn+1) − (Tpy)(xn, ∆x)

+a ¯(xn, ω, ∆x) − [1 + iω∆xa˜(iω∆x, xn, ω, ∆x)]yn s X 0 + ∆x [¯rj(xn, ω, ∆x) − r˜j(iω∆x, xn, ω, ∆x)y (xn + γj∆x)] j=1 s X + [¯sj(xn, ω, ∆x) − s˜j(iω∆x, xn, ω, ∆x)y(xn + γj∆x)] j=1

=: E1 + E2 + E3 + E4 + E5.

For E2, p+1 (p+1) |E2| ≤ C∆x |y |∞.

We can now use (A.4) in Corollary 2 to bound the therms E3, E4 and E5. In E3 the function y is constant so, p+1 p+1 |E3| ≤ C ∆x ω |y|∞.

For E4 we apply it to the derivative of y(x),

p p+1 X (p+1−`) ` |E4| ≤ C ∆x y |∞ω , `=0 and finally, p+1 p+1 X (p+1−`) ` |E5| ≤ C ∆x |y |∞ω . `=0 Thus, 5 p+1 X p+1 X (p+1−`) ` Ej ≤ C ∆x |y |∞ω . j=2 `=0

Since E1 is a polynomial in ∆x of order p and the method is of order p the term E1 must vanish. This concludes the proof.