You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
<li><strong>Receiver</strong> - A set of microphones or hydrophones are used to measure the resulting wave and create a set of measurements called a <em>Shot Record</em>. These measurements are recorded at multiple locations, and usually at the surface of the domain or at the bottom of the ocean in some marine cases.</li>
111
111
</ul>
112
112
<p>In order to create a numerical model of a seismic survey, we need to solve the wave equation and implement source and receiver interpolation to inject the source and record the seismic wave at sparse point locations in the grid.</p>
<p>The acoustic wave equation for the square slowness <spanclass="arithmatex"><spanclass="MathJax_Preview">m</span><scripttype="math/tex">m</script></span>, defined as <spanclass="arithmatex"><spanclass="MathJax_Preview">m=\frac{1}{c^2}</span><scripttype="math/tex">m=\frac{1}{c^2}</script></span>, where <spanclass="arithmatex"><spanclass="MathJax_Preview">c</span><scripttype="math/tex">c</script></span> is the speed of sound in the given physical media, and a source <spanclass="arithmatex"><spanclass="MathJax_Preview">q</span><scripttype="math/tex">q</script></span> is given by:</p>
116
116
<divclass="arithmatex">
@@ -183,10 +183,10 @@ <h2 id="define-the-physical-problem">Define the physical problem</h2>
<p>To fully define our problem setup we also need to define the source that injects the wave to model and the set of receiver locations at which to sample the wavefield. The source time signature will be modelled using a Ricker wavelet defined as</p>
<p>Similarly to our source object, we can now define our receiver geometry as a symbol of type <code>Receiver</code>. It is worth noting here that both utility classes, <code>RickerSource</code> and <code>Receiver</code> are thin wrappers around the Devito's <code>SparseTimeFunction</code> type, which encapsulates sparse point data and allows us to inject and interpolate values into and out of the computational grid. As we have already seen, both types provide a <code>.coordinates</code> property to define the position within the domain of all points encapsulated by that symbol. </p>
226
226
<p>In this example we will position receivers at the same depth as the source, every <spanclass="arithmatex"><spanclass="MathJax_Preview">10m</span><scripttype="math/tex">10m</script></span> along the x axis. The <code>rec.data</code> property will be initialized, but left empty, as we will compute the receiver readings during the simulation.</p>
<p>Devito is a finite-difference DSL that solves the discretized wave-equation on a Cartesian grid. The finite-difference approximation is derived from Taylor expansions of the continuous field after removing the error term.</p>
<h1id="source-injection-and-receiver-interpolation">Source injection and receiver interpolation</h1>
305
307
<p>With a numerical scheme to solve the homogenous wave equation, we need to add the source to introduce seismic waves and to implement the measurement operator, and interpolation operator. This operation is linked to the discrete scheme and needs to be done at the proper time step. The semi-discretized in time wave equation with a source reads:</p>
306
308
<divclass="arithmatex">
@@ -339,26 +341,26 @@ <h1 id="devito-operator-and-solve">Devito operator and solve</h1>
<p>After running our operator kernel, the data associated with the receiver symbol <code>rec.data</code> has now been populated due to the interpolation expression we inserted into the operator. This allows us the visualize the shot record:</p>
0 commit comments