JetPackWaveFD

Space and time discretization

These operators are implemented second order in time and 8th order in space.

Remarks on attentuation and propagator evolution

These propagators were originally used in monochromatic full waveform inversion. They incorporate a simple type of dissipation only Maxwell body attenuation, that when combined with a per-frequency wavelet estimation can provide a good approximation to visco-acoustic propagation for bandwidth within about an octave of dominant frequency.

For time domain full waveform inversion with bandwidth inside an octave of the center frequency of the attenuation model, the approximation used here performs well. To accurately model visco-acoustic attenuation with a larger bandwidth, a more sophisticated mechanism will be required: for example multiple filter banks implementing the widely used standard linear solid (SLS) model.

Note that we are in the process of open sourcing the description of our attenuation implementation. It derives from first principles of Maxwell Bodies, as shown in the Fung reference below.

Self-adjoint operators

These propagators are self-adjoint, meaning the same equations used for the nonlinear forward operations are also used for the linearized Jacobian forward and linearized Jacobian adjoint operations.

Source aperture considerations

This package includes a set of operations Ginsu that help in easily handling field seismic experiments. For typical narrow azimuth towed streamer marine field experiments the aperture required for a single source location may be much smaller than the entire model.

Ginsu provides methods to easily cut out part of the model that will be the correct size for the modeling aperture associated with individual source and receiver arrays. There are forward methods (sub and sub!) provided to extract a piece of a large model for use with individual shots. Similarly there are adjoint methods (super and super!) provided to add the contributions from individuals sources back to a larger model, for example when summing model perturbation contributions over sources for reverse time migration or full waveform inversion.

These Ginsu mechanisms are part of the operation of the JetPackWaveFD propagators.

Support for simultaneous sources

The JetPackWaveFD propagators can take an array of source locations, and an array of per source delay times and wavelets, in order to ease the simulation of simultaneous (or blended) sources. See sz, sy, sx, and st in the help docs for the operators for more information.

Compression and serialization

In order to perform the linearized Jacobian operations, interactions with the nonlinear source wavefield are required. We compress and serialize the nonlinear source wavefield during computation, and then deserialize and decompress during the finite difference evolution for the Jacobian forward and adjoint operation.

We use the package CvxCompress.jl, which is built on the C++ library CvxCompress for wavelet compression.

Illumination compensation

JetPackWaveFD operators provide the srcillum method to compute the source side illumination array, which is typically used as illumination compensation in full waveform inversion and reverse time migration. See help docs for srcillum for more information.

See Also

  • WaveFD single time step modeling implementations wrapping high performance C++ kernels.
  • Source Wavelets section in the WaveFD documentation, discussing a selection of wavelets commonly used in seismic modeling.
  • JetPackWaveDevito package, implementing these same 6 operators using the Devito domain specific language https://www.devitoproject.org.

References