✍️ 朱邓达  •  🗓️ 2026-05-20 (创建时间)

计算面波格林函数

根据留数定理,本征值处对波数积分的贡献可以解析地表达。将多个本征值得到的贡献叠加起来就得到面波格林函数, 这个方法也被称为 模态叠加法(Modal Summation Method)姚振兴和谢小碧 (2026) 给出了推导过程和具体公式,这里不再重复。

C 模块为 modsum (Python函数将于后续版本增加), 计算将基于 eigenv 模块的频散结果以及模型路径。 modsum 模块保存的波形格式与 greenfn 模块一致。

示例程序

假设在 milrow 模型中,震源深度 2 km,接收点位于地表,震中距为 100 km, 对比位错源的全波解和不同阶面波解的波形。 其中面波波形的时域长度和间隔通过 eigenv 模块中频域的设置间接确定, 即 T = 1 / df , dt = 1 / (2*fmax)

M="milrow"
D="2/0"
R="100"
n="5"

# Calculate Full-wave
grt greenfn -M$M -D$D -R$R -N200/0.5+n$n -OGRN -e

# Calculate Surface-wave
grt eigenv -M$M -F0/1/0.01 -SR -N -Cphase_R.nc 
grt eigenv -M$M -F0/1/0.01 -SL -N -Cphase_L.nc 

# 0th order
grt modsum -Cphase_R.nc -D$D -R$R -N0 -OGRN_NM_0 -W$n -e
grt modsum -Cphase_L.nc -D$D -R$R -N0 -OGRN_NM_0 -W$n -e
# 1st order
grt modsum -Cphase_R.nc -D$D -R$R -N1 -OGRN_NM_1 -W$n -e
grt modsum -Cphase_L.nc -D$D -R$R -N1 -OGRN_NM_1 -W$n -e
# 2nd order
grt modsum -Cphase_R.nc -D$D -R$R -N2 -OGRN_NM_2 -W$n -e
grt modsum -Cphase_L.nc -D$D -R$R -N2 -OGRN_NM_2 -W$n -e
# all
grt modsum -Cphase_R.nc -D$D -R$R -N -OGRN_NM_all -W$n -e
grt modsum -Cphase_L.nc -D$D -R$R -N -OGRN_NM_all -W$n -e

compare_wave.py (虚线为全波解,实线为面波解)

  • 0 阶面波

../../_images/compare_0.svg
  • 1 阶面波

../../_images/compare_1.svg
  • 2 阶面波

../../_images/compare_2.svg
  • 所有阶面波

../../_images/compare_2.svg