
SimPEG (Simulation and Parameter Estimation in Geophysics) is a python package for simulation and gradient based parameter estimation in the context of geoscience applications. simpegSeis uses SimPEG as the framework for the forward modeling and inversion of seismic geophysical problem.
We consider two fundamental governing equations for seismic wave propagation: acoustic and elastic wave equations in both time and frequency domains. We initially discretize those problems to compute forward responses. Obvious next step is to solve inverse problems
We welcome any people who want to contribute this project developing forward modeling and inversion package of seimic data, simpegSeis.
Acoustic wave¶
Acoustic wave equation¶
Backgrounds¶
Time domain acoustic wave equation in 1st order form:
where \(\rho\) is the density, \(\mu\) is the adiabatic compression modulus, \(\delta(\vec{r}-\vec{r}_s)\) represents point source, and \(\phi\) is the pressure.
By combining two equations we have 2nd order form:
By applying Fourier transform to frequency domain we have:
where \(\omega = 2\pi f\) is angular frequency. Assuming contant \(\mu\) and \(\rho\) we have Helmholtz equation:
where \(k = \omega\sqrt{\frac{\rho}{\mu}}=\frac{\omega}{v} \) is the wave propagation constant.
Discretization of problem¶
To compute the solution of time or frequency dependent partial differential equation (PDE) as discussed above, we need to discretize those equations in both time and space. Our domain in real situation (i.e., earth) can be considered as infinite in space. However, in discrete space where we compute the solution of those PDE should be finite. Therefore, we need to implement artificial boundary conditions to get rid of out going wave, which propagates beyond our domain of interest. We first implement sponge boundary condition then perfectly matched layer (PML) boundary condition.
Sponge boundary¶
A fundamental idea of sponge boundary condition is adding damping term to acoustic wave equation:
Similarly in frequency domain we have:
The 1st order form of time domain equation can be written as:
We discretize 2nd order acoustic wave equation in time (CITE) with central difference:
where
By rearranging them, we have:
By letting \(f = (1+\frac{c \rho}{2}\triangle t )^{-1}\), we can substitute \(c = \frac{1-f}{f}\triangle t^{-1}2 \rho\). Range of \(f \) for time and frequency domain are 0.98-1 and 0.9-1, respectively. And 35 cells are used for the sponge boundary.
Using staggered grid, we discretize acoustic wave equation in time (CITE):
where \(\sigma = 2 \frac{1-f}{f} \triangle t^{-1}\).
Using mimetic finite volume approach, we spatially discretize above equations:
where \(\mathbf{Div}\) and \(\mathbf{Grad}\) and discrete differential operators and \(\Acf\) is averaging operator from cell face to center. \(\mu\), \(\rho\) and \(\sigma\) are defined on the cell center, and \(\mathbf{vol} \) is volume of each cell. When we compute these, we first compute:
Then we compute:
Note
Choice of \(\sigma \) in sponge boundary condition case can be expanded to PML case.
And range of \(f \) is 0.98-1, which can be useful reference property.
PML boundary¶
PML has two fundamental factors: a. matching the impedance and b. damping. These purposes can be realized by considering solution of Helmholtz equation on complex plane:
By parameterizing the physical coordinate as
Another core treatment of PML is decomposing \(\phi \) as:
Substituting those yields:
With some linear algebra:
where
In time domain we have:
We discretize above equations in both space and time:
where
Similarly we first compute:
Then we compute:
Stability conditions¶
Stability of forward modeling have two fundamental factors: cell size and time step size ( \(\triangle t\) ). First, we determine cell size based on the number of cell per wavelength ( \(G\) ):
where
Second, we determine \(\triangle t\)
where \(c \) is a proper constant.
Notebooks¶
- How to run acoustic wave modeling in simpegSeis
- Examples shown are generated through this ipython notebook.
Elastic wave¶
License¶
License¶
The MIT License (MIT)
Copyright (c) 2013-2014 SimPEG Developers
Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the “Software”), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED “AS IS”, WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.