控制波数积分
在 计算动态格林函数 部分介绍了程序将按以下形式从数值上计算波数积分,
其中 \(\Delta k = 2\pi/L, k_j=j\Delta k\),\(L\) 为特征长度,即 \(L\) 控制波数积分的积分间隔,默认根据 计算动态格林函数 部分介绍的约束条件自动确定。
程序会取一个较大值 \(k_{\text{max}}\) 作为波数积分的上限,经验公式为
其中
\(k_0\) 为零频的波数积分上限,默认为 \(\dfrac{5\pi}{h_s}\), \(h_s\) 为震源和场点的深度差(绝对值),限制最小为1km,若实际深度差小于该值,则自动使用峰谷平均法;
\(\omega\) 为角频率;
\(v_{\text{min}}\) 为参考最小速度,默认取自模型中的最小速度,且限制在0.1km/s以上;若传入负值,表明使用峰谷平均法(负号不参与计算)。
\(s\) 为放大系数,默认为1.15;
程序支持自动判断积分收敛 (Yao and Harkrider, 1983) 。当所有积分满足如下表达式时,自动退出波数循环(若达到 \(k_{\text{max}}\) 则强制退出 ),
其中 \(\epsilon\) 为预先指定的收敛精度。程序默认不使用该功能。
通过以下可选参数,可直接控制波数积分, 也将直接影响程序计算结果和运行时长。
详见 greenfn 和 static_greenfn 模块的 -K 选项。
compute_grn() 函数支持以下可选参数来控制波数积分,具体说明详见API。
k0:float, 对应公式中的 \(k_0\) 的系数,默认为5ampk:float, 对应公式中的 \(s\) ,默认为1.15keps:float对应公式中的 \(\epsilon\),默认为-1(不使用)Length:float对应公式中的 \(L\) 的系数, \(L=\)<length>\(\cdot r_{\text{max}}\)
compute_static_grn() 函数支持以下可选参数来控制波数积分,参数与上面对应,具体说明详见API。
k0:floatkeps:floatLength:float