A Tutorial and Open Source Software for the Efficient Evaluation of Gravity and Magnetic Kernels
Fast computation of three-dimensional gravity and magnetic forward models is considered. Measurement data is assumed to be obtained on a uniform grid which is staggered with respect to the discretization of the parameter volume. Then, the resulting kernel sensitivity matrices exhibit block-Toeplitz Toeplitz-block (BTTB) structure. These matrices are symmetric for the gravity problem but non-symmetric for the magnetic problem. In each case, the structure facilitates fast forward computation using two-dimensional fast Fourier transforms. The construction of the kernel matrices and the application of the transform for fast forward multiplication, for each problem, is carefully described. But, for purposes of comparison with the transform approach, the generation of the unique entries that define a given kernel matrix is also explained. It is also demonstrated how the matrices, and hence transforms, are adjusted when padding around the volume domain is introduced. The transform algorithms for fast forward matrix multiplication with the sensitivity matrix and its transpose, without the direct construction of the relevant matrices, are presented. Numerical experiments demonstrate the significant reduction in computation time that is achieved using the transform implementation. Moreover, it becomes feasible, both in terms of reduced memory requirements and computational time, to implement the transform algorithms for large three-dimensional volumes. All presented algorithms, including with variable padding, are coded for optimal memory, storage and computation as an open source MATLAB code which can be adapted for any convolution kernel which generates a BTTB matrix. This work, therefore, provides a general tool for the efficient simulation of gravity and magnetic field data, as well as any formulation which admits a sensitivity matrix with the required structure.
READ FULL TEXT