二维地球介质中地震波传播计算
约 3512 字大约 12 分钟
2026-06-23
本章把前面介绍的有限差分算子用于二维非均匀弹性介质中的地震波传播计算。一个完整的数值正演问题不仅要离散控制方程,还必须同时处理介质参数、变量的网格位置、时间推进、稳定性、自由表面、人工边界和震源。
二维地球介质模型
在二维直角坐标系 (x,z) 中,通常令 x 为水平方向,z 为竖直方向。各物理量只随 x,z,t 变化,并假定在垂直于计算平面的方向上不变。
各向同性弹性介质由密度和两个独立弹性参数描述:
ρ=ρ(x,z),λ=λ(x,z),μ=μ(x,z).
也可以使用 P 波速度 α、S 波速度 β 和密度表示:
α=ρλ+2μ,β=ρμ,
μ=ρβ2,λ=ρ(α2−2β2).
二维弹性波可以分解为相互独立的两类:
- P-SV 波:位移或速度位于 x−z 平面内,包括 P 波和垂直极化的 SV 波;
- SH 波:位移垂直于 x−z 平面,只包含水平极化的 S 波。
本章主要讨论 P-SV 波。
二维弹性波动方程
动量守恒方程
设位移为
u=(ux,uz)T,
应力分量为 σxx,σzz,σxz,单位体积体力为 fx,fz。动量守恒方程为
ρ∂t2∂2ux=∂x∂σxx+∂z∂σxz+fx,
ρ∂t2∂2uz=∂x∂σxz+∂z∂σzz+fz.
本构关系
小变形条件下,应变为
εxx=∂x∂ux,εzz=∂z∂uz,
εxz=21(∂z∂ux+∂x∂uz).
各向同性线弹性本构关系为
σxx=(λ+2μ)∂x∂ux+λ∂z∂uz,
σzz=λ∂x∂ux+(λ+2μ)∂z∂uz,
σxz=μ(∂z∂ux+∂x∂uz).
将本构关系代入动量方程,可以得到只含位移的二阶方程;保留应力变量则得到更适合交错网格离散的一阶或混合方程组。
三种常用方程形式
传统网格位移方程
矢量形式为
ρ∂t2∂2u=(λ+μ)∇(∇⋅u)+μ∇2u+f
在均匀介质中成立。非均匀介质中弹性参数位于空间导数内部,不能把 λ 和 μ 简单移到导数外部。位移格式只需保存位移分量,但对介质界面和混合导数的离散较复杂。
位移-应力方程
保留位移和应力,可以写成
ρ∂t2∂2ux=∂xσxx+∂zσxz+fx,
ρ∂t2∂2uz=∂xσxz+∂zσzz+fz,
再用位移空间导数计算应力。该形式时间上仍为二阶。
速度-应力一阶方程
定义速度
vx=∂t∂ux,vz=∂t∂uz.
则 P-SV 波方程写为
ρ∂t∂vx=∂x∂σxx+∂z∂σxz+fx,
ρ∂t∂vz=∂x∂σxz+∂z∂σzz+fz,
∂t∂σxx=(λ+2μ)∂x∂vx+λ∂z∂vz,
∂t∂σzz=λ∂x∂vx+(λ+2μ)∂z∂vz,
∂t∂σxz=μ(∂z∂vx+∂x∂vz).
速度-应力形式所有方程对时间均为一阶,不含位移方程中的混合二阶导数,适合交错网格和显式时间推进。
网格离散与变量配置
设
xi=x0+iΔx,zk=z0+kΔz,tn=nΔt.
传统网格
传统网格把 ux,uz 及介质参数定义在同一节点。优点是数据结构直观,缺点是某些一阶导数、混合导数和介质界面参数需要额外平均,且可能产生网格解耦。
交错网格
标准二维速度-应力交错网格的一种典型配置为:
- σxx,σzz,λ,mu 位于整数节点 (i,k);
- vx 位于 (i+21,k);
- vz 位于 (i,k+21);
- σxz 位于 (i+21,k+21)。
时间上也可以交错:应力位于整数时间层 tn,速度位于半整数时间层 tn+1/2。这样每个空间导数自然落在被更新变量所在的位置。
介质非均匀时,密度和剪切模量需要插值到速度或剪切应力节点。例如速度节点处常使用密度倒数的适当平均;σxz 节点处的 μ 常采用调和平均,以更合理地处理介质界面。
二阶精度速度-应力交错网格格式
用
δxfi+1/2,k=Δxfi+1,k−fi,k,
δzfi,k+1/2=Δzfi,k+1−fi,k
表示二阶精度中心差分。速度更新为
vx,i+1/2,kn+1/2=vx,i+1/2,kn−1/2+ρi+1/2,kΔt[Δxσxx,i+1,kn−σxx,i,kn+Δzσxz,i+1/2,k+1/2n−σxz,i+1/2,k−1/2n+fx,i+1/2,kn],
vz,i,k+1/2n+1/2=vz,i,k+1/2n−1/2+ρi,k+1/2Δt[Δxσxz,i+1/2,k+1/2n−σxz,i−1/2,k+1/2n+Δzσzz,i,k+1n−σzz,i,kn+fz,i,k+1/2n].
应力更新为
σxx,i,kn+1=σxx,i,kn+Δt(λ+2μ)i,kΔxvx,i+1/2,kn+1/2−vx,i−1/2,kn+1/2+λi,kΔzvz,i,k+1/2n+1/2−vz,i,k−1/2n+1/2,
σzz,i,kn+1=σzz,i,kn+Δtλi,kΔxvx,i+1/2,kn+1/2−vx,i−1/2,kn+1/2+(λ+2μ)i,kΔzvz,i,k+1/2n+1/2−vz,i,k−1/2n+1/2,
σxz,i+1/2,k+1/2n+1=σxz,i+1/2,k+1/2n+Δtμi+1/2,k+1/2Δzvx,i+1/2,k+1n+1/2−vx,i+1/2,kn+1/2+Δxvz,i+1,k+1/2n+1/2−vz,i,k+1/2n+1/2.
上述格式按“由旧应力更新速度,再由新速度更新应力”的顺序循环推进。
高阶空间差分
为了减小数值频散,可以把二阶交错网格导数替换为高阶算子。四阶精度一阶导数为
∂x∂fi+1/2≈Δx1[89(fi+1−fi)−241(fi+2−fi−1)].
一般 2M 阶算子写为
∂x∂fi+1/2≈Δx1m=1∑Mam(fi+m−fi−m+1).
提高空间阶数可以扩大有效波数范围,但会增加每次更新的运算量、边界模板宽度和并行通信宽度。时间上若仍采用二阶 leapfrog 格式,整体时间精度不会随空间阶数同步提高。
稳定性条件
对均匀介质和平面波进行 Von Neumann 分析,二阶时间、二阶空间标量波动格式满足近似 CFL 条件
cmax2Δt2(Δx21+Δz21)≤1.
因此
Δt≤cmaxΔx−2+Δz−21.
当 Δx=Δz=h 时,
Δt≤2cmaxh.
弹性波计算中取最大 P 波速度 cmax=αmax。高阶算子的稳定上限还取决于差分系数和方程形式,实际程序应采用相应理论条件并保留安全系数。
注意
CFL 条件只保证数值解不发散。为了得到可靠波形,时间步长通常还要满足时间采样精度要求,空间步长也要满足最短波长的采样要求。
数值频散与空间采样
对二维二阶差分标量波动方程,离散频散关系为
sin2(2ωΔt)=c2Δt2[Δx2sin2(kxΔx/2)+Δz2sin2(kzΔz/2)].
数值频率与解析关系 ω=ckx2+kz2 不再完全一致,因而数值相速度依赖波长和传播方向。短波长分量误差最大,并会使波形随传播距离逐渐失真。
设震源有效最高频率为 fmax,最小 S 波速度为 βmin,模型中的最短弹性波长通常由 S 波控制:
λmin=fmaxβmin.
若要求每个最短波长至少有 Ng 个网格点,则
h≤Ngλmin.
Ng 取值取决于差分阶数和允许误差。二阶格式需要较多节点,高阶格式可以减少每波长节点数,但不能低于采样极限。
非均匀网格
浅部低速结构往往需要更小网格,而深部高速区域可用较大网格。非均匀网格可以降低总节点数,但普通等距中心差分公式不再适用。
在节点 xi 左右间距分别为 hi−1=xi−xi−1 和 hi=xi+1−xi 时,一阶和二阶导数权重需由非均匀节点上的 Taylor 展开重新求解。另一种做法是引入计算坐标 ξ,用坐标映射 x=x(ξ) 把物理非均匀网格转为计算域等距网格,并根据
∂x∂=xξ1∂ξ∂
修正微分算子。网格尺度突变会产生人为反射,因此网格间距应平滑变化。
边界条件
模型边界常见四类条件:
- 自由表面条件;
- 固定或刚性边界条件;
- 周期边界条件;
- 人工吸收边界条件。
自由表面
地表与空气接触时,表面牵引为零。若地表为水平面 z=0,法向量沿 z 方向,则
σzz=0,σxz=0.
自由表面会产生反射以及 P-SV 转换。在交错网格中,可以令相应应力节点恰好位于自由表面并直接设置为零;对于缺失的表面外节点,可利用应力的奇偶延拓或虚拟节点构造差分值。边界处理必须与内部差分阶数和变量布局一致。
人工边界
有限计算区域的侧边界和底边界并不是真实反射界面。如果简单截断,外传波会发生强烈反射并污染计算结果。常用处理包括:
- 阻尼或海绵吸收层;
- 单程波近似吸收边界;
- 完全匹配层(PML);
- 扩展模型并在外层逐渐衰减波场。
简单阻尼层可以在每一时间步把波场乘以位置相关衰减函数 d(x,z):
qn+1←d(x,z)qn+1,0<d≤1.
衰减应从物理区域向外平滑增强,突变的阻尼本身也会造成反射。
震源处理
体力源与力偶源
体力源直接加入动量方程的 fx 或 fz。单力源具有方向性;一对方向相反、距离趋于零的力构成力偶。地震断层源通常用震源矩张量表示,其作用可等效为应力方程中的源项或空间导数形式的体力。
爆破源
各向同性爆破源在二维情况下可同时加入两个正应力分量:
σxx←σxx+S(t)G(x,z),
σzz←σzz+S(t)G(x,z).
它主要激发 P 波;双力偶源则同时产生具有辐射方向性的 P 波和 S 波。
震源时间函数
Ricker 子波常写为
S(t)=[1−2π2f02(t−t0)2]exp[−π2f02(t−t0)2].
f0 是主频,t0 用于把主要能量移到计算开始之后。为了设计网格,常按震源谱中仍有显著能量的最高频率估计 fmax,而不能只使用主频。
空间离散
理想点源包含无限高波数,直接放在单个节点上容易产生网格噪声。可用 Gaussian 核
G(x,z)=exp[−rs2(x−xs)2+(z−zs)2]
将震源平滑分配到若干节点。若震源不在网格点上,也可以根据插值权重分配给邻近节点,并保持总力或总矩守恒。
完整数值计算流程
- 读入 α,β,ρ,计算 λ,μ;
- 根据最高频率和最小波速确定空间步长;
- 根据最大 P 波速度和差分阶数确定稳定时间步长;
- 分配速度、应力和介质参数数组,并按交错位置进行参数平均;
- 设置震源、接收器、自由表面和吸收层;
- 初始化全部波场变量为零;
- 由应力更新速度;
- 加入速度方程中的体力源并处理速度边界;
- 由速度更新应力;
- 加入应力型震源并施加自由表面条件;
- 记录接收点波形和指定时刻波场快照;
- 滚动时间层,直至达到总计算时间。
结果检查与常见问题
- 到时检查:均匀模型中首波到时应接近距离除以理论波速;
- 对称性检查:对称模型和对称震源应产生相应对称波场;
- 能量检查:无吸收、无震源时能量不应无故增长;
- 网格收敛检查:减小 h 和 Δt 后,主要波形应趋于稳定;
- 边界检查:人工边界反射应明显弱于目标波场;
- 界面检查:参数平均错误会在界面产生非物理散射;
- 变量位置检查:交错网格数组下标错半个网格是最常见的程序错误之一;
- 震源检查:过窄的空间源或过高的频率会激发无法解析的短波。