[论文解读] A Tutorial and Open Source Software for the Efficient Evaluation of Gravity and Magnetic Kernels
本论文提出了一种开源的 MATLAB 框架,通过在块-托普利茨-托普利茨-块(BTTB)敏感度矩阵上使用二维快速傅里叶变换(FFT),高效计算重力和磁力正向建模。通过利用 BTTB 结构——重力场为对称,磁力场为非对称——该方法在无需显式构造完整核矩阵的情况下实现快速的矩阵-向量乘法,显著提升了计算速度并减少了内存使用,尤其适用于具有可变填充的大型三维体积分块。
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.
研究动机与目标
- 开发一种高效、开源的实现方法,利用 BTTB 结构的敏感度矩阵进行三维重力与磁力场的正向建模。
- 将现有的基于 FFT 的 BTTB 方法扩展至处理非对称磁力核矩阵,并支持 x 和 y 方向的任意填充。
- 提供优化的、内存高效的算法,用于计算矩阵-向量乘积及其转置,而无需显式构建大型核矩阵。
- 通过将快速正向与转置运算集成到地球物理建模工作流中,实现可扩展的高性能反演工作流程。
提出的方法
- 利用在 x 和 y 方向上采用交错均匀网格时产生的重力与磁力核矩阵的 BTTB 结构。
- 通过在块-循环-循环-块(BCCB)嵌入上使用二维 FFT,加速矩阵-向量乘法。
- 对重力(对称)和磁力(非对称)核矩阵分别应用对称与非对称的 BTTB 算法。
- 通过非对称边界扩展在 x 和 y 方向实现可变填充,同时保持 FFT 的效率。
- 推导出利用嵌入式 BCCB 矩阵的 FFT 计算正向与转置运算的显式公式。
- 提供模块化、开源的 MATLAB 实现,包含内存使用量的安全检查,并可轻松扩展至任意生成 BTTB 结构的卷积核。
实验结果
研究问题
- RQ1如何利用重力与磁力核矩阵的 BTTB 结构,在不显式构造矩阵的情况下加速正向建模?
- RQ2与直接计算相比,使用 BCCB 嵌入的 BTTB 矩阵的二维 FFT 在大规模三维模型上的性能提升如何?
- RQ3如何在 BTTB-FFT 框架中整合域填充,同时保持计算效率与数值稳定性?
- RQ4与直接方法相比,使用基于 FFT 的方法计算矩阵-向量乘积及其转置时,计算与内存节省的幅度如何?
- RQ5该框架在多大程度上可推广至重力与磁力场之外的其他卷积类型核?
主要发现
- 基于 FFT 的 BTTB 方法相比直接矩阵乘法,将计算时间减少了数个数量级,尤其在大规模三维模型中表现显著。
- 通过避免显式构建大型核矩阵,该方法实现了显著的内存节省,使大规模建模成为可能。
- 在 x 和 y 方向支持非对称填充,且不损失 FFT 效率,从而实现了灵活的域离散化。
- 非对称磁力核矩阵的算法实现成功,仅带来相较于对称重力情况的适度内存与计算量增加。
- 数值实验表明,即使在填充情况下,正向与转置运算的相对平均误差在重力与磁力情况下均低于 1e-10。
- 开源 MATLAB 代码已具备生产就绪能力,内置内存安全检查,并采用模块化设计,便于扩展至其他生成 BTTB 结构的核。
更好的研究,从现在开始
从阅读论文到最终审阅,大幅缩短您的研究时间。
无需绑定信用卡
本解读由 AI 生成,并经人工编辑审核。