计算本征函数、群速度、频散敏感核
本征值对应的位移应力解被称为本征函数,再基于变分理论计算出能量积分后可计算出群速度和频散敏感核 (Aki and Richards, 2009; 姚振兴和谢小碧, 2026)。
C 模块为 eigenfn (Python函数将于后续版本增加), 计算将基于 eigenv 模块的频散结果以及模型路径。
以下示例基于 计算频散曲线 部分计算的相速度频散结果。
本征函数
计算频率 1 Hz 时不同阶的本征函数,深度范围 [0, 50] km,间隔 0.1 km :
# Calculate Rayleigh-wave eigenfunction
grt eigenfn -Cphase_R.nc -F1 -N -Wegn_R.nc+z0/50/0.1
# Calculate Love-wave eigenfunction
grt eigenfn -Cphase_L.nc -F1 -N -Wegn_L.nc+z0/50/0.1
群速度
计算所有阶的相速度对应的群速度 :
# Calculate Rayleigh-wave group velocity
grt eigenfn -Cphase_R.nc -N -Ugroup_R.nc
# Calculate Love-wave group velocity
grt eigenfn -Cphase_L.nc -N -Ugroup_L.nc
与 计算频散曲线 中介绍的一致, disp2asc 模块也可将 NetCDF 格式的频散转为文本格式。 以下同样提供两种方式的简易绘图脚本。
plot_dispersion_group.py (基于 Matplotlib)
plot_dispersion_group.sh (基于 GMT)
频散敏感核
计算不同频率下基阶频散曲线的相/群速度频散敏感核,深度间隔 0.2 km :
# Calculate Rayleigh-wave dispersion sensitivity
grt eigenfn -Cphase_R.nc -F0/0.5/0.1 -N0 -K+ccsens_R.nc+uusens_R.nc+z0.2
# Calculate Love-wave dispersion sensitivity
grt eigenfn -Cphase_L.nc -F0/0.5/0.1 -N0 -K+ccsens_L.nc+uusens_L.nc+z0.2
相速度频散敏感核
群速度频散敏感核
备注
这里值得一提的是,根据群速度和相速度的关系,
\[U = \dfrac{c^2}{c - \omega \dfrac{\text{d} c}{\text{d} \omega}}\]
群速度敏感核表达式为(其中 \(X\) 表示 \(\alpha/\beta/\rho\) ),
\[\dfrac{\text{d} U}{\text{d} X} = \dfrac{U}{c} \left(2 - \dfrac{U}{c} \right) \dfrac{\text{d} c}{\text{d} X}
+ \omega \left( \dfrac{U}{c} \right)^2 \dfrac{\text{d}}{\text{d} \omega} \left(\dfrac{\text{d} c}{\text{d} X} \right)\]
其中可以看到计算群速度敏感核需要相速度敏感核在频率上的差分,因此无法完全解析地得到群速度敏感核。 若频率间隔不够小,群速度敏感核计算精度就会下降。