What Deepwave Calculates

Deepwave provides forward modeling and backpropagation of wave equations using the finite-difference method within the PyTorch framework.

Sources

Source amplitudes are scalar functions of time. In scalar propagators, sources are located at grid cell centers. In the elastic propagator, sources are positioned at the \(v_y\) and \(v_x\) component locations. To achieve a desired effective source, such as one with an arbitrary direction or at a fractional grid cell location, it may be necessary to distribute the source across an array of multiple sources over neighboring cells. The Hicks method can assist in this process.

Receivers

Receiver data is generated by recording the relevant wavefield at specified receiver locations. The recorded data spans the same time range and has the same time sampling as the input source data. Similar to sources, approximating directed receivers or those at fractional grid cell locations can be achieved by combining data recorded from multiple neighboring grid cells. The Hicks method is also useful here.

Internal Time Stepping and CFL Condition

To satisfy the Courant-Friedrichs-Lewy (CFL) condition, Deepwave may internally use a smaller time step than that of the input source and output receiver data. This internal time step is always a divisor of the source/receiver time sampling interval (calculated using cfl_condition). Source amplitudes are internally upsampled to this finer rate, and conversely, receiver data is downsampled before being returned to the user (via upsample and downsample).

Crucially, Deepwave only accumulates gradients at the input/output time sampling rate. This avoids unnecessary computations and memory consumption without affecting the accuracy of the results, as the time sampling for integrals used to compute gradients with respect to input models does not need to be more frequent than the input source’s time sampling.

Wavefield Outputs

Deepwave propagators return the final wavefields and the recorded receiver data. These wavefields represent the complete wavefields used internally by Deepwave, including padding for the Perfectly Matched Layer (PML). This design allows them to be seamlessly passed as initial wavefields to another propagator instance for continued propagation.

More detailed information specific to each propagator is provided on the following pages.