Reverse Time Migration

Reverse-time migration is probably the most intuitive wave-field continuation migration method although relatively computationally expensive. Both the source wave-field and the recorded wave-field are continued along the time axis; the source wave-field is propagated forward in time, whereas the recorded wave-field is propagated backward in time. The image is formed by cross-correlating the two wave-fields, and evaluating the correlation at zero time.

The kernel of RTM consists of a finite-difference code which models the acoustic wave propagation with constant density in two-dimensional media and three-dimensional media, respectively. The finite-difference formulation solves the two-way wave-equation.

The time stepping uses an explicit finite-difference solution of the acoustic wave equation accurate to first order in time and 8th order in x, y and z. The approach is very similar to the approach described by Dablain (1986). The higher order operators are from Fornberg (1988). The absorbing boundaries are designed after Israeli and Orszag (1981). The kernel is written in Fortran-90, which allows dynamic memory allocation.

The 3D version of RTM is implemented with domain decomposition, which distributes the simulation grid for a single shot across multiple processors. Because each processor can operate on just a portion of the total simulation grid, the amount of memory, disk space, and computation per processor can be greatly reduced. In turn, you can solve a given problem in less time, or solve a larger problem than would be possible otherwise. Domain decomposition works as follows: the overall simulation grid is split into smaller 3D blocks. The global splitting can be thought of as having npz blocks in the z-direction (depth), npx blocks in the x-direction (in-line), and npy blocks in the y-direction (cross-line). Each block, or domain, is assigned to a separate processor. Many of the computations within each block are independent from the other blocks, and can proceed in parallel with all the other domains.

When necessary, processors can share data by exchanging information. For example, a domain may need to share the grid values near its border with a neighboring domain.  In RTM 3D, processors exchange information using the Message Passing Interface (MPI). MPI helps manage the flow of data between processors using networking and other methods.

 

 

For a given grid, the computational efficiency per processor is generally higher when there are fewer domains, even though the absolute speed for a single shot may increase as you increase the number of domains. Therefore, if you are running many shots in a production environment, your best choice is likely the fewest domains that can meet the needs for disk and memory space. If you are running very few shots, the single-shot elapsed time may be more important, and you can use more domains.

 

Back