Three-dimensional modeling of magnetic anomaly integral solution in a mixed space-wavenumber domain
0 引言
任意复杂条件(规模面积大,地形复杂,异常体复杂)下的磁异常场高效、高精度数值模拟在磁异常反演成像及人机交互解释中有着重要作用,目前关于磁异常场正演的计算方法主要分为空间域法与频率域法.
空间域方法是通过规则形体的磁场解析式直接求得空间任意点的精确解.空间域方法的优点是计算精确,缺点是对于复杂形体,解析式复杂或者不存在.在空间域,磁场正演先期研究侧重于简单、规则形状的长方体、直立棱柱体、直立圆柱体等解析表达式的推导(Bhattacharyya,1964;Plouff,1976;Singh and Sabina, 1978), 之后学者们对均匀介质的多面体模型进行了详细研究(Furness,1994;Ivan,1996;Guptasarma and Singh, 1999;Singh and Guptasarma, 2001).同时,对于任意三度体简单物性变化模型的重磁场解析式推导(Pohánka,1998;Chakravarthi et al., 2002;García-Abdeslem,2005)、解析积分奇异点处理(Kwok,1991;Nagy et al., 2000;郭志宏等,2004;骆遥和姚长利,2007)、磁梯度张量目标定位(Hu et al., 2019)也取得了一定进展.近年来部分学者将压缩存储技术、GPU并行技术等应用于重磁位场正演计算中来提高计算效率(姚长利,2003;陈召曦,2012).
磁场正演在频率域中的计算称为谱正演法.谱正演法的优点是频谱表达式比较简洁,有些在空间域不能得到解析式的模型,在频率域容易得到(例如物性参数随深度呈指数衰减模型),借助快速傅里叶变换,频率域的计算效率较高;缺点是快速傅里叶变换数值方法存在边界截断效应问题,限制了频率域正演方法的推广.在频率域,Pedersen(1978)首先给出了任意三度体(以三角形组合为其表面的多面体模型)的重磁异常频率域表达式,为三度体重磁异常的频率域正演提供了理论基础.之后人们陆续推导了物性连续变化及截面为简单几何形状的频率域表达式(吴宣志, 1981, 1983;Pedersen,1985).熊光楚(1984)推导了偶极子全空间磁位的三维傅里叶变换,并在此基础上推导了长方体模型的磁位、磁场.冯锐(1986)推导了Parker公式介质物性在水平方向任意变化与深度方向指数或线性变化的情况.柴玉璞(1988, 1996)采用偏移抽样方法,大大提高了离散傅里叶变换的精度,减小了基于傅里叶变换方法的位场数值模拟的误差.Tontini(2005)在前人基础上推导了物性为三维高斯分布源体的磁场频率域表达式,并将该方法应用于反演中.Tontini等(2009)对任意三度物性分布频率域正演方法进行了研究,并对减小频率域正演误差的扩边法与误差大小的关系作了研究.Wu和Tian(2014)和Wu(2016)将Gauss-FFT法应用于重磁位场数值模拟中,该方法对于压制边界效应问题提供了一种有效途径,数值模拟精度较高.Ren等(2017)提出一种基于非结构化网格的自适应快速多极子重磁场及其梯度张量正演方法,借助并行计算技术,实现了快速、高精度三维正演.
目前任意复杂条件下磁异常场数值模拟,为了得到较高的计算精度,需要对模型进行精细剖分,导致计算量和存储量剧增,使得大规模复杂条件下的磁异常正演需要高性能计算机,计算时间长.针对这一问题,本文提出一种空间波数混合域磁异常场三维数值模拟方法,该方法沿水平方向做二维傅里叶变换,把空间域磁位满足的三维积分问题转化为不同波数相互独立的垂向一维积分问题.保留垂向为空间域,便于浅层单元剖分适当加密,随着深度增加,单元剖分适当稀疏,可以准确模拟复杂地形和磁性体的磁异常,兼顾了计算精度与计算效率;垂直方向一维积分离散为多个单元积分之和,每个单元采用二次形函数描述磁化强度,可得出单元积分的解析表达式,计算精度高、效率高.该方法充分利用一维形函数积分的高效和高精度、快速傅里叶变换的高效性及算法高度并行性, 实现了磁异常场高效、高精度的数值模拟.模型算例中,设计了棱柱体模型,模型解析解与空间波数混合域法数值解对比表明,该方法正确、精度高、效率高.设计了组合棱柱体复杂模型,对比分析了标准FFT扩边法与Gauss-FFT法的计算精度与计算效率,总结了标准FFT的扩边系数选取策略.针对复杂地形条件磁异常模拟问题,本文提出一种适用于起伏地形条件下的磁异常场快速计算方法,并对其有效性进行了验证.
1 理论与方法
弱磁性体磁位空间域三维积分公式(Blakely,1996):
|
(1)
|
其中,格林函数g(r, r′)=1/(4πR),R=
,(x, y, z)为观测点坐标,(x′, y′, z′)为磁源分布坐标,梯度算子
为真空磁导率,μ=4π×10-7H·m-1.磁化强度M(r′)=Ji+Jr, Ji为感应磁化强度,Jr为剩余磁化强度,单位均为A·m-1.感应磁化强度Ji=χ(H0+Ha),H0为背景磁场,Ha为异常磁场,单位均为A·m-1,为磁化率,单位SI.对于弱磁性体Ha≪H0,可忽略异常磁场Ha,则感应磁化强度表达式简化为Ji=χH0.
对式(1)中x, y两个方向做傅里叶变换得空间波数混合域一维积分公式:
|
(2)
|
其中,
为空间波数混合域磁化强度三个方向分量,kx, ky分别为x, y方向波数,
为空间波数混合域格林函数,即g(r, r′)的二维傅里叶变换
|
(3)
|
其中,波数
将式(3)代入式(2)得空间波数混合域一维积分式:
|
(4)
|
其中,
空间域磁异常场、梯度张量与磁位的关系分别为(Blakely,1996)
|
(5)
|
|
(6)
|
其中,B为空间域磁异常场,单位nT,Bt为空间域磁异常梯度张量,单位nT·m-1.
根据傅里叶变换微分性质,由式(5)与式(6)得空间波数混合域磁异常场、磁异常梯度张量与磁位的关系分别为
|
(7)
|
|
(8)
|
其中,
为空间波数混合域磁异常场,
为空间波数混合域磁异常梯度张量,磁张量矩阵对称,独立分量为6个.在计算磁异常场和梯度时,若在异常内部,∂U/∂z、∂Bz/∂z利用形函数求偏导数法计算.
式(4)为空间波数混合域垂向(z方向)一维积分表达式,从表达式可以看出,不同波数一维空间域积分是相互独立的,可以并行计算.保留垂向为空间域,优势之一在于垂向单元可以进行灵活剖分,为了适应任意复杂地形和磁性体的磁异常场高精度计算,浅层单元剖分可适当加密,随着深度增加,单元剖分适当稀疏,同时兼顾了计算精度与计算效率;优势之二在于一维积分深度方向可离散为多个单元积分之和,每个积分单元采用有限单元法中的形函数表征磁化强度,可得出单元积分的解析表达式,计算精度高、效率高.
2 用形函数法计算一维积分
本文采用基于二次插值的形函数法计算空间波数混合域一维积分.将一维积分沿深度方向剖分为m个单元,每个单元内磁化强度要求满足二次变化,采用有限元单元法中的二次形函数描述磁化强度.
对空间波数混合域磁位积分公式(4)进行离散:
|
(9)
|
其中,Ix(kx, ky, z)、Iy(kx, ky, z)和Iz(kx, ky, z)分别为
|
(10)
|
|
(11)
|
|
(12)
|
其中,z′i和z′i+2分别为第i个单元积分的下限和上限.
将磁化强度表示为节点磁化强度的二次插值函数:
|
(13)
|
|
(14)
|
|
(15)
|
其中,N1, N2, N3为二次形函数.
将式(13)—(15)代入式(10)—(12)中,整理得
|
(16)
|
|
(17)
|
|
(18)
|
其中,Wi1、Wi2和Wi3为形函数积分系数,单元积分解析表达式详细推导过程见附录A.
由式(16)—(18),离散后的一维单元积分可推导出解析表达式,计算精度近似于解析解,计算精度高.对于磁化强度满足二次变化的复杂形体,垂向单元采样间隔可以较大,可根据需要进行灵活选择.
3 起伏地形条件下磁异常场快速算法
水平地形条件下,测点在同一平面上,磁异常场计算只需进行一次积分,通过反傅里叶变换得水平面磁异常场.在起伏地形条件下,需要计算地形最高点与地形最低点之间n个深度节点所在平面磁异常场,然后通过插值得到起伏地形上磁异常场,计算量是水平地形条件下的n倍,计算效率低.针对这一问题,本文提出一种起伏地形磁异常场数值模拟快速算法.起伏地形模型示意图如下图 1所示.
以Ix一维积分为例,积分表达式为
|
(19)
|
其中,zp为起伏区域内不同深度节点,p=1, 2, …, n.
一维积分Ix(kx, ky, zp)积分区域由三部分组成(图 1所示中的(1)、(2)、(3)),式(19)可表示为
|
(20)
|
其中,
|
(21)
|
上式中,m1、m2和m3分别为三部分积分区域单元个数.
分析式(21)可知该积分具有以下特点:(1)计算不同深度节点zp所在面磁异常时,Ix3(kx, ky, zp)是相同的,即对于不同的深度节点zp,地形最低点以下的积分只需计算一次;(2)随着深度节点zp从地形最低点z1向上移动,深度节点zp的积分Ix1(kx, ky, zp)、Ix2(kx, ky, zp)与深度节点zp-1的积分Ix1(kx, ky, zp-1)、Ix2(kx, ky, zp-1)存在积分区域重叠,重叠区域可只计算一次;(3)当计算深度节点z1时,积分区域变为两部分Ix2(kx, ky, z1)、Ix3(kx, ky, z1),当计算深度节点zn时,积分区域变为两部分Ix1(kx, ky, zn)、Ix3(kx, ky, zn).
根据式(21)积分特点,当计算深度节点zp所在面磁异常场时,可利用上一个深度节点zp-1的积分计算结果,与每个深度节点zp均对整个积分区域直接积分累加算法相比,避免了重复计算,提高了计算效率.快速算法具体计算过程为:
(1) 计算起伏面最低点z1节点所在平面磁异常场:由公式(21),计算z1节点上下两部分积分Ix2(kx, ky, z1)与Ix3(kx, ky, z1),并对Ix3(kx, ky, z1)与Ix2(kx, ky, z1)每个单元积分结果进行存储;
(2) 计算下一个深度节点z2:由积分公式特点可知,z2节点的Ix3(kx, ky, z2)与z1节点的Ix3(kx, ky, z1)相同,可直接调用已计算存储结果;z2节点的Ix2(kx, ky, z2)积分区域包含在z1节点Ix2(kx, ky, z1)积分区域以内,每个单元计算结果已经计算存储,可直接调用;计算Ix1(kx, ky, z2)并存储;
(3) 其他深度节点依次类推,直到计算出最高点zn节点所在平面磁异常场,然后通过插值得到起伏地形上磁异常场.
4 算例分析
设计棱柱体模型,采用基于四个高斯点的Gauss-FFT法(Wu and Tian, 2014)计算磁异常场及张量数值解,并与模型解析解(管志宁,2005)进行对比,验证该算法的正确性;研究了基于标准FFT扩边法和Gauss-FFT法的数值模拟精度和计算效率,分析总结了标准FFT的扩边策略;对本文提出的起伏地形磁异常场快速算法的高效性进行验证.
4.1 正确性验证
模型如图 2所示,其中,模拟区域范围为40 km×40 km×10 km,棱柱形异常体位于模拟区域中心,异常体大小为20 km×20 km×5 km,顶面埋深为1.5 km.模拟区域网格剖分为201×201×101,空间水平采样间隔均为200 m,垂向采样间隔为100 m.异常体磁化率为0.01 SI,背景磁场45000 nT,磁倾角45°,磁偏角5°.
图 3为磁异常场在z=0 m平面的数值解、解析解与绝对误差.图 4、图 5为磁异常梯度张量在z=0 m平面的数值解、解析解与绝对误差.从图 3可以看出,磁异常场的绝对误差最大约为0.3 nT,比磁异常场解析解低三个数量级;从图 4、图 5可以看出磁异常梯度张量的绝对误差最大约为6×10-5nT·m-1,比梯度张量解析解低三个数量级.计算结果表明该算法正确、精度高.
4.2 计算精度与效率
Wu和Tian(2014)首次将Gauss-FFT引入到重磁位场的数值模拟中,与标准的FFT相比,该方法削弱了截断边界的影响,提高了计算精度,但同时降低了计算效率.设计组合棱柱体模型,对基于Gauss-FFT与标准FFT扩边法的数值计算精度与计算效率进行对比,并分析总结了标准FFT扩边系数的选取策略.
引入相对均方根误差(Wu,2016),该误差统计方式能突出大异常值所占的比重,避免小异常和过零异常造成的误差失真,计算公式为
|
(22)
|
其中,rrms为相对均方根误差,Nx, Ny分别为x, y方向的节点数,Bij为磁异常场(磁异常梯度张量)数值解,
为磁异常场(磁异常梯度张量)解析解.
设计如图 6所示模型,模型模拟区域为66 km×66 km×10 km.设计了一个位于模拟区域中心的大棱柱形异常体和四个关于原点中心对称的小棱柱形异常体.其中,模型中心异常体大小为9 km×9 km×3 km,顶面埋深为1.5 km.距离模拟区域边界6 km均匀分布四个6 km×6 km×3 km的异常体,其顶面埋深均为1.5 km.棱柱形异常体的磁化率均为0.01 SI,磁倾角为45°,磁偏角为5°,背景磁场为45000 nT.研究区域网格剖分为221×221×101,空间水平采样间隔均为300 m,垂向采样间隔为100 m,观测面为z=0 m平面.
定义扩边系数:
|
(23)
|
其中,S为从模拟区域边界向外扩边距离,d为模拟区边缘异常体中心埋深,L为扩边系数,是本文定义的衡量特定规模异常体扩边程度的重要参数,反映了外扩距离与模拟区边缘异常体中心埋深的关系.
图 7为基于标准FFT扩边法的磁异常场及磁梯度张量的相对均方根误差.从图 7中可以看出当扩边系数选取为磁异常场(L=10)和梯度张量(L=4)时,各分量的相对均方根误差基本均在0.5%以下,基本满足实际应用的计算精度需求.由于梯度张量衰减比场更快,在边界截断效应影响相对较少,因此张量的扩边系数相对更小. 图 8为基于不同高斯点的Gauss-FFT法磁异常场及磁梯度张量的相对均方根误差.从图 8中可以看出基于两个高斯点的Gauss-FFT法的相对均方根误差均在2%以上,基于四个高斯点的Gauss-FFT法有效地压制了边界截断效应,相对均方根误差均在0.5%以下,计算精度高.图 7与图 8对比可以看出,标准FFT扩边法(场(L≥10)和梯度张量(L≥4))和基于四个高斯点的Gauss-FFT法的相对均方根误差均在0.5%左右,两种方法的计算精度相近.
图 9为基于标准FFT法不同扩边系数与基于Gauss-FFT法不同高斯点下磁异常场或张量计算时间.表 1为不同扩边系数与不同高斯点下每个磁异常场或张量计算时间与对应的网格大小.测试计算机配置为CPU-Inter Core i5-4590, 主频为3.3 GHz, 内存为16 GB.从图 9中可以看出随着扩边系数的增大,基于标准FFT扩边法的计算时间近似线性增长,基于Gauss-FFT法的计算时间随着高斯点数的增大同样近似线性增长.从表 1可以看出当扩边系数(场的L=10和梯度张量的L=4)时,基于标准FFT扩边法的计算时间分别约为4.79 s、2.36 s,与基于四个高斯点的Gauss-FFT法计算精度相近,计算时间分别约为后者的1/5和1/11.从上述计算时间与精度对比可知,基于标准FFT扩边法(场的L=10和梯度张量的L=4)同时兼顾了计算精度与效率,更加适用于大规模、高效、高精度的磁异常数值模拟.
表 1
(Table 1)
表 1
磁异常场或张量在不同扩边系数和高斯点下的计算时间与网格大小
Table 1
The calculation time and grid size of magnetic anomaly field or tensor with different expansion coefficients and different gauss points
| 标准FFT扩边法 |
| Gauss-FFT法 |
扩边系数或高斯点数 |
L=2 |
L=4 |
L=6 |
L=8 |
L=10 |
L=20 |
| N=2 |
N=3 |
N=4 |
剖分网格大小 |
261×261×101 |
301×301×101 |
341×341×101 |
381×381×101 |
421×421×101 |
621×621×101 |
| 221×221×101 |
221×221×101 |
221×221×101 |
计算时间/s |
1.70 |
2.36 |
3.06 |
3.89 |
4.79 |
10.51 |
| 6.57 |
15.03 |
26.11 |
|
表 1
磁异常场或张量在不同扩边系数和高斯点下的计算时间与网格大小
Table 1
The calculation time and grid size of magnetic anomaly field or tensor with different expansion coefficients and different gauss points
|
图 10、图 11、图 12分别为基于标准FFT扩边法扩边系数为(场的L=10和梯度张量的L=4)时,磁异常场和梯度张量的数值解、解析解及绝对误差.从图 10可以看出,磁异常场的绝对误差最大约为0.5 nT,从图 11、图 12可以看出磁异常梯度张量的绝对误差最大约为10-4nT·m-1,磁异常场与张量的绝对误差均比解析解低两个数量级以上,满足实际计算精度需求.计算结果表明选取扩边系数(场的L=10和梯度张量的L=4)的策略是正确的.
综合考虑计算精度和计算时间两个因素,基于标准FFT扩边法比基于Gauss-FFT法更有利于实现大规模、高效、高精度的磁异常数值模拟,特别在面向实际问题时,标准FFT扩边法可根据需要选择不同的扩边系数,选择性更加灵活,更能兼顾计算精度与计算时间.
4.3 起伏地形条件下磁异常场快速算法验证
起伏地形如图 13所示,地形起伏范围为(-584 m,74 m),异常体模型采用图 6所示模型,模拟区域网格剖分为221×221×101,观测点个数为221×221.采用每个深度节点zp均对整个区域直接积分累加的算法和快速算法分别计算了11个深度节点、51个深度节点、101个深度节点所在水平面磁异常场,验证起伏地形条件下磁异常场快速算法.
图 14为采用51个深度节点插值计算起伏面磁场的数值解、解析解与绝对误差.从图中可以看出磁异常场的绝对误差最大约为0.3 nT,比解析解低两个数量级以上,具有较高的计算精度.
图 15为快速算法与直接积分累加算法的串行计算时间对比,其中n为不同深度节点所在水平面个数.从图中可以看出两种不同算法的计算时间都随着n的增大近似线性增长.快速算法计算11个不同深度节点所在平面磁异常的时间为34 s,约为直接积分累加算法计算时间的1/2;快速算法计算101个不同深度节点所在平面磁异常的时间为57 s,约为直接积分累加算法计算时间的1/7,并且随着n的增大,快速算法的优势越明显.计算结果表明在起伏地形条件下磁异常场数值模拟中,该快速算法具有更高的计算效率.
5 结论
(1) 本文提出一种高效、高精度的空间波数混合域磁异常场积分解三维数值模拟方法.该方法通过沿水平方向进行二维傅里叶变换,把空间域磁位的三维卷积问题转化为不同波数之间相互独立的垂向一维积分问题.保留垂向为空间域,垂向单元可灵活剖分,兼顾了计算精度与计算效率;采用二次形函数描述垂向一维积分单元内磁化强度变化,可得出单元积分的解析表达式,计算精度高、效率高.该方法充分利用一维形函数积分的高效和高精度、快速傅里叶变换的高效性及算法高度并行性, 实现了磁异常场高效、高精度的数值模拟.设计棱柱体模型,模型的解析解与本文方法的数值解对比表明,该方法正确、精度高、效率高.
(2) 设计棱柱体组合模型,模拟区域网格剖分规模为221×221×101,观测点个数为221×221,研究了基于标准FFT扩边法和Gauss-FFT法数值模拟的计算精度与计算效率.模型算例数值试验结果表明:当基于标准FFT扩边系数为(场的L=10、梯度张量的L=4)时,与基于四个高斯点Gauss-FFT法计算精度相近,基于标准FFT扩边法的计算时间分别为4.79 s与2.36 s,计算时间约为Gauss-FFT法的1/5与1/11.综合考虑计算精度与计算效率,基于标准FFT扩边法更有利于实现大规模、高效、高精度的磁异常数值模拟.
(3) 设计起伏地形模型,模拟区域网格剖分为221×221×101,观测点个数为221×221.快速算法串行计算101个不同深度节点所在水平面的时间为57 s,约为直接积分累加算法计算时间的1/7,且随着深度节点所在水平面个数的增加,快速算法的优势越明显.
(4) 本文算法不同波数之间并行度高、不同深度节点正反傅里叶变换并行度高、起伏地形最低点与最高点之间不同深度节点所在平面上磁异常场计算高度并行,文中算例均采用串行算法,计算效率比目前主流算法效率高,如果将串行算法改为并行算法,计算效率将会进一步提高.
附录A
分量积分表达式为
|
(A1)
|
其中z′i, z′i+2为第i个单元的上限与下限, m为单元个数.
根据观测点与积分单元的相对位置,需要分三种情况进行讨论.对于第i个单元积分,
(1) 当观测点在该单元上方z<z′i时,式(A1)第i个单元积分公式为
|
(A2)
|
(2) 当观测点在该单元下方z>z′i+2时,式(A1)第i个单元积分公式为
|
(A3)
|
(3) 当观测点在该单元内部z′i≤z≤z′i+2时,式(A1)第i个单元积分公式为
|
(A4)
|
对于第一种情况式(A2),令γ=k,式(A2)可表示为
|
(A5)
|
令
,则式(A5)可表示为
|
(A6)
|
对于第二种情况式(A3),令γ=-k,式(A3)可表示为
|
(A7)
|
令
,式(A7)可表示为
|
(A8)
|
对于第三种情况式(A4),在(zi, z)积分区域令γ=-k,
;在(z, z′i+2)积分区域令γ=k,
,则式(A4)可表示为
|
(A9)
|
对式(A6)或式(A8)单元积分,采用二次形函数来表示插值函数,插值公式为
|
(A10)
|
式中,N1、N2、N3为形函数,表达式为
|
(A11)
|
|
(A12)
|
|
(A13)
|
其中,
|
(A14)
|
|
(A15)
|
单元积分可表示为
|
(A16)
|
式中,
|
(A17)
|
|
(A18)
|
|
(A19)
|
式(A17)—(A19)中单元积分部分推导过程如下:
|
(A20)
|
|
(A21)
|
|
(A22)
|
其中,
|
(A23)
|
|
(A24)
|
|
(A25)
|
式(A9)的单元形函数展开与式(A6)类似,不同在于积分的上下限不同.
利用每个单元的插值函数,可将所求积分表示为
|
(A26)
|
其中z表示计算深度节点水平面位置,m表示积分单元个数.
同理,
分量与上述计算过程相同.