diff --git a/docs/source/Gallery/ex17/ex17.rst b/docs/source/Gallery/ex17/ex17.rst new file mode 100644 index 00000000..0fa12eb6 --- /dev/null +++ b/docs/source/Gallery/ex17/ex17.rst @@ -0,0 +1,28 @@ +:author: 朱邓达 +:date: 2025-01-23 + +(17) 衰减对波形的影响 +------------------------------------- + +下载示例: :download:`ex17.tar.gz` + +以半空间模型为例,比较衰减参数对波形的影响。 +半空间 :math:`V_P=8.0` km/s,:math:`V_S=4.62` km/s,:math:`\rho=3.3` g/cm^3, +:math:`Q_P=80` , :math:`Q_S=20` 。 + +.. note:: + + + 在强衰减模型中,核函数在极点附近曲线很平滑而非尖锐变化, + 此时对于源点和场点深度接近的极端情况,积分上限截止之后的部分对于积分的贡献逐渐明显, + 因此收敛方法(如DCM,PTAM)需要更高的积分上限才能给出稳定结果。 + + + 自 v0.15.0 版本起,对于衰减参数的处理,程序不再使用常见默认的 1 Hz 为参考频率, + 而使用当前计算的最高频作为参考频率,这样计算出来的波形才符合因果关系 + (之前的结果会发现部分波形出现在到时之前,也就是这个原因)。 + 对应公式详见 :c:func:`grt_attenuation_law` 函数。 + + +.. figure:: compare.svg + :align: center + + 蓝虚线为 P 波到时,红虚线为 S 波到时 diff --git a/docs/source/Gallery/ex17/plot.py b/docs/source/Gallery/ex17/plot.py new file mode 100644 index 00000000..853dd74e --- /dev/null +++ b/docs/source/Gallery/ex17/plot.py @@ -0,0 +1,46 @@ +import numpy as np +from obspy import * +import matplotlib.pyplot as plt + +import pygrt + +st = read("GRN/*/HF?.sac") +st_Q = read("GRN_Q/*/HF?.sac") + +nt = st[0].stats.npts +dt = st[0].stats.delta + +for _ in range(1): + st.integrate() + st_Q.integrate() + + + +ts0 = 5 / 4.62 +t = np.arange(nt)*dt / ts0 + +fig, axs = plt.subplots(2, 3, figsize=(12, 6), sharex=True, gridspec_kw=dict(hspace=0)) + +def _plot(ax, st, channel): + tr = st.select(channel=channel)[0] + tp = tr.stats.sac['t0'] / ts0 + ts = 1.0 + ax.plot(t, tr.data, c='k', lw=1.0) + ylim = ax.get_ylim() + ax.vlines(tp, *ylim, colors='b', ls='--', lw=0.5) + ax.vlines(ts, *ylim, colors='r', ls='--', lw=0.5) + ax.text(0.05, 0.9, channel, transform=ax.transAxes, bbox=dict(fc='w'), ha='left') + ax.set_xmargin(0) + ax.ticklabel_format(axis='y', style='sci', scilimits=[0,0]) + +_plot(axs[0,0], st, 'HFZ') +_plot(axs[1,0], st_Q, 'HFZ') +_plot(axs[0,1], st, 'HFR') +_plot(axs[1,1], st_Q, 'HFR') +_plot(axs[0,2], st, 'HFT') +_plot(axs[1,2], st_Q, 'HFT') + +axs[0,0].set_ylabel("No attenuation") +axs[1,0].set_ylabel(r"$Q_P=80, Q_S=20$") + +fig.savefig("compare.svg", bbox_inches='tight') \ No newline at end of file diff --git a/docs/source/Gallery/ex17/run.sh b/docs/source/Gallery/ex17/run.sh new file mode 100644 index 00000000..b71d718c --- /dev/null +++ b/docs/source/Gallery/ex17/run.sh @@ -0,0 +1,29 @@ +#!/bin/bash + +set -euo pipefail + +rm -rf GRN* *.svg *.tar.gz + +cat > halfspace < halfspace_Q <n = n; + mod1d->omgref = PI2*1.0; #define X(P, T) mod1d->P = (T*)calloc(n, sizeof(T)); GRT_FOR_EACH_MODEL_QUANTITY_ARRAY @@ -158,8 +159,8 @@ void grt_attenuate_mod1d(GRT_MODEL1D *mod1d, cplx_t omega){ // 圆频率实部为负数表明不考虑模型的 Q 值属性 // 在读入模型后需要需要运行一次本函数以填充弹性模量,见 grt_read_mod1d_from_file 函数 - atna = (creal(omega) >= 0.0 && mod1d->Qainv[i] > 0.0)? grt_attenuation_law(mod1d->Qainv[i], omega) : 1.0; - atnb = (creal(omega) >= 0.0 && mod1d->Qbinv[i] > 0.0)? grt_attenuation_law(mod1d->Qbinv[i], omega) : 1.0; + atna = (creal(omega) >= 0.0 && mod1d->Qainv[i] > 0.0)? grt_attenuation_law(mod1d->Qainv[i], mod1d->omgref, omega) : 1.0; + atnb = (creal(omega) >= 0.0 && mod1d->Qbinv[i] > 0.0)? grt_attenuation_law(mod1d->Qbinv[i], mod1d->omgref, omega) : 1.0; mod1d->atna[i] = atna; mod1d->atnb[i] = atnb; diff --git a/pygrt/C_extension/src/dynamic/grn.c b/pygrt/C_extension/src/dynamic/grn.c index a7365c36..93e5d294 100755 --- a/pygrt/C_extension/src/dynamic/grn.c +++ b/pygrt/C_extension/src/dynamic/grn.c @@ -90,6 +90,8 @@ void grt_integ_grn_spec( // 实际计算的频点数 size_t nf_valid = nf2 - nf1 + 1; + mod1d->omgref = PI2*freqs[nf2]; + // 频率omega循环 // schedule语句可以动态调度任务,最大程度地使用计算资源 #pragma omp parallel for schedule(guided) default(shared) diff --git a/pygrt/C_extension/src/dynamic/grt_kernel.c b/pygrt/C_extension/src/dynamic/grt_kernel.c index 1e786e83..29619b6e 100644 --- a/pygrt/C_extension/src/dynamic/grt_kernel.c +++ b/pygrt/C_extension/src/dynamic/grt_kernel.c @@ -379,6 +379,8 @@ int kernel_main(int argc, char **argv) const real_t Rho = mod1d->Rho[mod1d->isrc]; // 震源区密度 const real_t fac = 1.0/(4.0*PI*Rho); + mod1d->omgref = PI2*Ctrl->F.freqs[Ctrl->F.nf-1]; + // 频率循环 #pragma omp parallel for schedule(guided) default(shared) for(size_t iw = 0; iw < Ctrl->F.nf; ++iw) diff --git a/pygrt/C_extension/src/dynamic/grt_stress.c b/pygrt/C_extension/src/dynamic/grt_stress.c index 854887cd..11b1bd3b 100644 --- a/pygrt/C_extension/src/dynamic/grt_stress.c +++ b/pygrt/C_extension/src/dynamic/grt_stress.c @@ -125,8 +125,8 @@ int stress_main(int argc, char **argv){ freq = (i==0) ? 0.01f : df*i; // 计算衰减因子不能为0频 w = PI2 * freq; fftwf_complex atta, attb; - atta = grt_attenuation_law(Qainv, w); - attb = grt_attenuation_law(Qbinv, w); + atta = grt_attenuation_law(Qainv, PI2*(nf-1)*df, w); + attb = grt_attenuation_law(Qbinv, PI2*(nf-1)*df, w); // 乘上1e10,转为dyne/(cm^2) mus[i] = vb*vb*attb*attb*rho*1e10; lams[i] = va*va*atta*atta*rho*1e10 - 2.0*mus[i]; diff --git a/pygrt/c_interfaces.py b/pygrt/c_interfaces.py index 62f1ad4d..2c1ffa95 100755 --- a/pygrt/c_interfaces.py +++ b/pygrt/c_interfaces.py @@ -141,10 +141,10 @@ def set_num_threads(n): # ------------------------------------------------------------------- # C函数定义的衰减函数 # ------------------------------------------------------------------- -C_grt_py_attenuation_law = libgrt.grt_py_attenuation_law +C_grt_attenuation_law = libgrt.grt_attenuation_law """品质因子Q 对 波速的影响""" -C_grt_py_attenuation_law.restype = None -C_grt_py_attenuation_law.argtypes = [REAL, DPOINTER, DPOINTER] # double, double[2], double[2] +C_grt_attenuation_law.restype = CPLX +C_grt_attenuation_law.argtypes = [REAL, CPLX, CPLX] # double, cplx, cplx # ------------------------------------------------------------------- diff --git a/pygrt/c_structures.py b/pygrt/c_structures.py index f34aa836..8d17400e 100755 --- a/pygrt/c_structures.py +++ b/pygrt/c_structures.py @@ -29,6 +29,7 @@ "REAL", "PREAL", + "CPLX", "PCPLX", "c_GRT_MODEL1D", @@ -51,9 +52,14 @@ NPCT_CMPLX_TYPE = 'c16' +class CPLX(Structure): + _fields_ = [ + ('real', c_double), + ('imag', c_double), + ] + REAL = c_double -CPLX = REAL*2 PREAL = POINTER(REAL) PCPLX = POINTER(CPLX) @@ -91,6 +97,7 @@ class c_GRT_MODEL1D(Structure): ('ircvup', c_bool), ('io_depth', c_bool), + ('omgref', CPLX), ('omega', CPLX), ('k', REAL), ('c_phase', CPLX), diff --git a/pygrt/utils.py b/pygrt/utils.py index 65cc6359..051329bf 100755 --- a/pygrt/utils.py +++ b/pygrt/utils.py @@ -737,17 +737,18 @@ def _compute_stress(st_syn:Stream): # 计算不同频率下的拉梅系数 mus = np.zeros((nf,), dtype='c16') lams = np.zeros((nf,), dtype='c16') - omega = (REAL*2)(0.0, 0.0) - atte = (REAL*2)(0.0, 0.0) + omega = CPLX(0.0, 0.0) + atte = CPLX(0.0, 0.0) + omgref = CPLX(2.0*np.pi*(nf-1)*df, 0.0) for i in range(nf): freq = 0.01 if i==0 else df*i w = 2.0*np.pi*freq - omega[0] = w - C_grt_py_attenuation_law(Qbinv, omega, atte) - attb = atte[0] + atte[1]*1j + omega.real = w + atte = C_grt_attenuation_law(Qbinv, omgref, omega) + attb = atte.real + atte.imag*1j mus[i] = vb*vb*attb*attb*rho*1e10 - C_grt_py_attenuation_law(Qainv, omega, atte) - atta = atte[0] + atte[1]*1j + atte = C_grt_attenuation_law(Qainv, omgref, omega) + atta = atte.real + atte.imag*1j lams[i] = va*va*atta*atta*rho*1e10 - 2.0*mus[i] del omega, atte diff --git a/test/_correct_full_wave/_Ref/killari_3_0_3/DDR.sac b/test/_correct_full_wave/_Ref/killari_3_0_3/DDR.sac index 296ad5ee..07fec0cb 100644 Binary files a/test/_correct_full_wave/_Ref/killari_3_0_3/DDR.sac and b/test/_correct_full_wave/_Ref/killari_3_0_3/DDR.sac differ diff --git a/test/_correct_full_wave/_Ref/killari_3_0_3/DDZ.sac b/test/_correct_full_wave/_Ref/killari_3_0_3/DDZ.sac index 707603c6..4e4f67aa 100644 Binary files a/test/_correct_full_wave/_Ref/killari_3_0_3/DDZ.sac and b/test/_correct_full_wave/_Ref/killari_3_0_3/DDZ.sac differ diff --git a/test/_correct_full_wave/_Ref/killari_3_0_3/DSR.sac b/test/_correct_full_wave/_Ref/killari_3_0_3/DSR.sac index c643246f..bf188b0b 100644 Binary files a/test/_correct_full_wave/_Ref/killari_3_0_3/DSR.sac and b/test/_correct_full_wave/_Ref/killari_3_0_3/DSR.sac differ diff --git a/test/_correct_full_wave/_Ref/killari_3_0_3/DST.sac b/test/_correct_full_wave/_Ref/killari_3_0_3/DST.sac index 41a2aec5..e14798e1 100644 Binary files a/test/_correct_full_wave/_Ref/killari_3_0_3/DST.sac and b/test/_correct_full_wave/_Ref/killari_3_0_3/DST.sac differ diff --git a/test/_correct_full_wave/_Ref/killari_3_0_3/DSZ.sac b/test/_correct_full_wave/_Ref/killari_3_0_3/DSZ.sac index 0a62b7d5..417d656e 100644 Binary files a/test/_correct_full_wave/_Ref/killari_3_0_3/DSZ.sac and b/test/_correct_full_wave/_Ref/killari_3_0_3/DSZ.sac differ diff --git a/test/_correct_full_wave/_Ref/killari_3_0_3/EXR.sac b/test/_correct_full_wave/_Ref/killari_3_0_3/EXR.sac index efea9def..3dff42fa 100644 Binary files a/test/_correct_full_wave/_Ref/killari_3_0_3/EXR.sac and b/test/_correct_full_wave/_Ref/killari_3_0_3/EXR.sac differ diff --git a/test/_correct_full_wave/_Ref/killari_3_0_3/EXZ.sac b/test/_correct_full_wave/_Ref/killari_3_0_3/EXZ.sac index 36b725d5..f2fe5614 100644 Binary files a/test/_correct_full_wave/_Ref/killari_3_0_3/EXZ.sac and b/test/_correct_full_wave/_Ref/killari_3_0_3/EXZ.sac differ diff --git a/test/_correct_full_wave/_Ref/killari_3_0_3/HFR.sac b/test/_correct_full_wave/_Ref/killari_3_0_3/HFR.sac index de2db9ac..7a46129d 100644 Binary files a/test/_correct_full_wave/_Ref/killari_3_0_3/HFR.sac and b/test/_correct_full_wave/_Ref/killari_3_0_3/HFR.sac differ diff --git a/test/_correct_full_wave/_Ref/killari_3_0_3/HFT.sac b/test/_correct_full_wave/_Ref/killari_3_0_3/HFT.sac index 29a1bc30..92c68b44 100644 Binary files a/test/_correct_full_wave/_Ref/killari_3_0_3/HFT.sac and b/test/_correct_full_wave/_Ref/killari_3_0_3/HFT.sac differ diff --git a/test/_correct_full_wave/_Ref/killari_3_0_3/HFZ.sac b/test/_correct_full_wave/_Ref/killari_3_0_3/HFZ.sac index bf8e88e0..5832baa8 100644 Binary files a/test/_correct_full_wave/_Ref/killari_3_0_3/HFZ.sac and b/test/_correct_full_wave/_Ref/killari_3_0_3/HFZ.sac differ diff --git a/test/_correct_full_wave/_Ref/killari_3_0_3/SSR.sac b/test/_correct_full_wave/_Ref/killari_3_0_3/SSR.sac index de16e5ad..7d4f7fe4 100644 Binary files a/test/_correct_full_wave/_Ref/killari_3_0_3/SSR.sac and b/test/_correct_full_wave/_Ref/killari_3_0_3/SSR.sac differ diff --git a/test/_correct_full_wave/_Ref/killari_3_0_3/SST.sac b/test/_correct_full_wave/_Ref/killari_3_0_3/SST.sac index 8cd1ec9f..420c9d47 100644 Binary files a/test/_correct_full_wave/_Ref/killari_3_0_3/SST.sac and b/test/_correct_full_wave/_Ref/killari_3_0_3/SST.sac differ diff --git a/test/_correct_full_wave/_Ref/killari_3_0_3/SSZ.sac b/test/_correct_full_wave/_Ref/killari_3_0_3/SSZ.sac index 911f9cba..f34a61f9 100644 Binary files a/test/_correct_full_wave/_Ref/killari_3_0_3/SSZ.sac and b/test/_correct_full_wave/_Ref/killari_3_0_3/SSZ.sac differ diff --git a/test/_correct_full_wave/_Ref/killari_3_0_3/VFR.sac b/test/_correct_full_wave/_Ref/killari_3_0_3/VFR.sac index 24a9e72a..ccac6660 100644 Binary files a/test/_correct_full_wave/_Ref/killari_3_0_3/VFR.sac and b/test/_correct_full_wave/_Ref/killari_3_0_3/VFR.sac differ diff --git a/test/_correct_full_wave/_Ref/killari_3_0_3/VFZ.sac b/test/_correct_full_wave/_Ref/killari_3_0_3/VFZ.sac index 2cedbfc2..40a93dff 100644 Binary files a/test/_correct_full_wave/_Ref/killari_3_0_3/VFZ.sac and b/test/_correct_full_wave/_Ref/killari_3_0_3/VFZ.sac differ diff --git a/test/_correct_full_wave/_Ref/killari_3_0_3/rDDR.sac b/test/_correct_full_wave/_Ref/killari_3_0_3/rDDR.sac index b59bd547..fdd678b0 100644 Binary files a/test/_correct_full_wave/_Ref/killari_3_0_3/rDDR.sac and b/test/_correct_full_wave/_Ref/killari_3_0_3/rDDR.sac differ diff --git a/test/_correct_full_wave/_Ref/killari_3_0_3/rDDZ.sac b/test/_correct_full_wave/_Ref/killari_3_0_3/rDDZ.sac index 1cb7f7fe..e9d8c61c 100644 Binary files a/test/_correct_full_wave/_Ref/killari_3_0_3/rDDZ.sac and b/test/_correct_full_wave/_Ref/killari_3_0_3/rDDZ.sac differ diff --git a/test/_correct_full_wave/_Ref/killari_3_0_3/rDSR.sac b/test/_correct_full_wave/_Ref/killari_3_0_3/rDSR.sac index 57b4e274..21694922 100644 Binary files a/test/_correct_full_wave/_Ref/killari_3_0_3/rDSR.sac and b/test/_correct_full_wave/_Ref/killari_3_0_3/rDSR.sac differ diff --git a/test/_correct_full_wave/_Ref/killari_3_0_3/rDST.sac b/test/_correct_full_wave/_Ref/killari_3_0_3/rDST.sac index 2937dc87..45c07da6 100644 Binary files a/test/_correct_full_wave/_Ref/killari_3_0_3/rDST.sac and b/test/_correct_full_wave/_Ref/killari_3_0_3/rDST.sac differ diff --git a/test/_correct_full_wave/_Ref/killari_3_0_3/rDSZ.sac b/test/_correct_full_wave/_Ref/killari_3_0_3/rDSZ.sac index 40a326ce..3a5ea66b 100644 Binary files a/test/_correct_full_wave/_Ref/killari_3_0_3/rDSZ.sac and b/test/_correct_full_wave/_Ref/killari_3_0_3/rDSZ.sac differ diff --git a/test/_correct_full_wave/_Ref/killari_3_0_3/rEXR.sac b/test/_correct_full_wave/_Ref/killari_3_0_3/rEXR.sac index 6d3542a0..297d6aa9 100644 Binary files a/test/_correct_full_wave/_Ref/killari_3_0_3/rEXR.sac and b/test/_correct_full_wave/_Ref/killari_3_0_3/rEXR.sac differ diff --git a/test/_correct_full_wave/_Ref/killari_3_0_3/rEXZ.sac b/test/_correct_full_wave/_Ref/killari_3_0_3/rEXZ.sac index 3c592683..dce1bd4f 100644 Binary files a/test/_correct_full_wave/_Ref/killari_3_0_3/rEXZ.sac and b/test/_correct_full_wave/_Ref/killari_3_0_3/rEXZ.sac differ diff --git a/test/_correct_full_wave/_Ref/killari_3_0_3/rHFR.sac b/test/_correct_full_wave/_Ref/killari_3_0_3/rHFR.sac index 0147b24d..cb7a70d4 100644 Binary files a/test/_correct_full_wave/_Ref/killari_3_0_3/rHFR.sac and b/test/_correct_full_wave/_Ref/killari_3_0_3/rHFR.sac differ diff --git a/test/_correct_full_wave/_Ref/killari_3_0_3/rHFT.sac b/test/_correct_full_wave/_Ref/killari_3_0_3/rHFT.sac index 7d62bbfc..a42e6b13 100644 Binary files a/test/_correct_full_wave/_Ref/killari_3_0_3/rHFT.sac and b/test/_correct_full_wave/_Ref/killari_3_0_3/rHFT.sac differ diff --git a/test/_correct_full_wave/_Ref/killari_3_0_3/rHFZ.sac b/test/_correct_full_wave/_Ref/killari_3_0_3/rHFZ.sac index 7f805168..81f3452e 100644 Binary files a/test/_correct_full_wave/_Ref/killari_3_0_3/rHFZ.sac and b/test/_correct_full_wave/_Ref/killari_3_0_3/rHFZ.sac differ diff --git a/test/_correct_full_wave/_Ref/killari_3_0_3/rSSR.sac b/test/_correct_full_wave/_Ref/killari_3_0_3/rSSR.sac index 1b6e4d82..d84f2032 100644 Binary files a/test/_correct_full_wave/_Ref/killari_3_0_3/rSSR.sac and b/test/_correct_full_wave/_Ref/killari_3_0_3/rSSR.sac differ diff --git a/test/_correct_full_wave/_Ref/killari_3_0_3/rSST.sac b/test/_correct_full_wave/_Ref/killari_3_0_3/rSST.sac index 13a27983..6a7e3f59 100644 Binary files a/test/_correct_full_wave/_Ref/killari_3_0_3/rSST.sac and b/test/_correct_full_wave/_Ref/killari_3_0_3/rSST.sac differ diff --git a/test/_correct_full_wave/_Ref/killari_3_0_3/rSSZ.sac b/test/_correct_full_wave/_Ref/killari_3_0_3/rSSZ.sac index 437bd471..177b58bc 100644 Binary files a/test/_correct_full_wave/_Ref/killari_3_0_3/rSSZ.sac and b/test/_correct_full_wave/_Ref/killari_3_0_3/rSSZ.sac differ diff --git a/test/_correct_full_wave/_Ref/killari_3_0_3/rVFR.sac b/test/_correct_full_wave/_Ref/killari_3_0_3/rVFR.sac index f7720ac7..1fd01dd7 100644 Binary files a/test/_correct_full_wave/_Ref/killari_3_0_3/rVFR.sac and b/test/_correct_full_wave/_Ref/killari_3_0_3/rVFR.sac differ diff --git a/test/_correct_full_wave/_Ref/killari_3_0_3/rVFZ.sac b/test/_correct_full_wave/_Ref/killari_3_0_3/rVFZ.sac index 2de58a9e..a6b003d3 100644 Binary files a/test/_correct_full_wave/_Ref/killari_3_0_3/rVFZ.sac and b/test/_correct_full_wave/_Ref/killari_3_0_3/rVFZ.sac differ diff --git a/test/_correct_full_wave/_Ref/killari_3_0_3/zDDR.sac b/test/_correct_full_wave/_Ref/killari_3_0_3/zDDR.sac index 1654addb..24e38d6d 100644 Binary files a/test/_correct_full_wave/_Ref/killari_3_0_3/zDDR.sac and b/test/_correct_full_wave/_Ref/killari_3_0_3/zDDR.sac differ diff --git a/test/_correct_full_wave/_Ref/killari_3_0_3/zDDZ.sac b/test/_correct_full_wave/_Ref/killari_3_0_3/zDDZ.sac index 3f9a5772..95f8708d 100644 Binary files a/test/_correct_full_wave/_Ref/killari_3_0_3/zDDZ.sac and b/test/_correct_full_wave/_Ref/killari_3_0_3/zDDZ.sac differ diff --git a/test/_correct_full_wave/_Ref/killari_3_0_3/zDSR.sac b/test/_correct_full_wave/_Ref/killari_3_0_3/zDSR.sac index b003ff26..c5f4126d 100644 Binary files a/test/_correct_full_wave/_Ref/killari_3_0_3/zDSR.sac and b/test/_correct_full_wave/_Ref/killari_3_0_3/zDSR.sac differ diff --git a/test/_correct_full_wave/_Ref/killari_3_0_3/zDST.sac b/test/_correct_full_wave/_Ref/killari_3_0_3/zDST.sac index 83b4b24d..9b550204 100644 Binary files a/test/_correct_full_wave/_Ref/killari_3_0_3/zDST.sac and b/test/_correct_full_wave/_Ref/killari_3_0_3/zDST.sac differ diff --git a/test/_correct_full_wave/_Ref/killari_3_0_3/zDSZ.sac b/test/_correct_full_wave/_Ref/killari_3_0_3/zDSZ.sac index 7248d9c7..d2a94a6d 100644 Binary files a/test/_correct_full_wave/_Ref/killari_3_0_3/zDSZ.sac and b/test/_correct_full_wave/_Ref/killari_3_0_3/zDSZ.sac differ diff --git a/test/_correct_full_wave/_Ref/killari_3_0_3/zEXR.sac b/test/_correct_full_wave/_Ref/killari_3_0_3/zEXR.sac index 6ec31094..1a97f78d 100644 Binary files a/test/_correct_full_wave/_Ref/killari_3_0_3/zEXR.sac and b/test/_correct_full_wave/_Ref/killari_3_0_3/zEXR.sac differ diff --git a/test/_correct_full_wave/_Ref/killari_3_0_3/zEXZ.sac b/test/_correct_full_wave/_Ref/killari_3_0_3/zEXZ.sac index ce0bb7c2..9660bc1d 100644 Binary files a/test/_correct_full_wave/_Ref/killari_3_0_3/zEXZ.sac and b/test/_correct_full_wave/_Ref/killari_3_0_3/zEXZ.sac differ diff --git a/test/_correct_full_wave/_Ref/killari_3_0_3/zHFR.sac b/test/_correct_full_wave/_Ref/killari_3_0_3/zHFR.sac index 52e265d4..dba133c6 100644 Binary files a/test/_correct_full_wave/_Ref/killari_3_0_3/zHFR.sac and b/test/_correct_full_wave/_Ref/killari_3_0_3/zHFR.sac differ diff --git a/test/_correct_full_wave/_Ref/killari_3_0_3/zHFT.sac b/test/_correct_full_wave/_Ref/killari_3_0_3/zHFT.sac index a3f0e71d..9b14dcba 100644 Binary files a/test/_correct_full_wave/_Ref/killari_3_0_3/zHFT.sac and b/test/_correct_full_wave/_Ref/killari_3_0_3/zHFT.sac differ diff --git a/test/_correct_full_wave/_Ref/killari_3_0_3/zHFZ.sac b/test/_correct_full_wave/_Ref/killari_3_0_3/zHFZ.sac index acd36b74..a7311bb3 100644 Binary files a/test/_correct_full_wave/_Ref/killari_3_0_3/zHFZ.sac and b/test/_correct_full_wave/_Ref/killari_3_0_3/zHFZ.sac differ diff --git a/test/_correct_full_wave/_Ref/killari_3_0_3/zSSR.sac b/test/_correct_full_wave/_Ref/killari_3_0_3/zSSR.sac index d9d31a58..d02e1fc7 100644 Binary files a/test/_correct_full_wave/_Ref/killari_3_0_3/zSSR.sac and b/test/_correct_full_wave/_Ref/killari_3_0_3/zSSR.sac differ diff --git a/test/_correct_full_wave/_Ref/killari_3_0_3/zSST.sac b/test/_correct_full_wave/_Ref/killari_3_0_3/zSST.sac index 7cb0b035..fd1675ca 100644 Binary files a/test/_correct_full_wave/_Ref/killari_3_0_3/zSST.sac and b/test/_correct_full_wave/_Ref/killari_3_0_3/zSST.sac differ diff --git a/test/_correct_full_wave/_Ref/killari_3_0_3/zSSZ.sac b/test/_correct_full_wave/_Ref/killari_3_0_3/zSSZ.sac index fe127a9c..c54b43ed 100644 Binary files a/test/_correct_full_wave/_Ref/killari_3_0_3/zSSZ.sac and b/test/_correct_full_wave/_Ref/killari_3_0_3/zSSZ.sac differ diff --git a/test/_correct_full_wave/_Ref/killari_3_0_3/zVFR.sac b/test/_correct_full_wave/_Ref/killari_3_0_3/zVFR.sac index 24142f19..4bee7bc5 100644 Binary files a/test/_correct_full_wave/_Ref/killari_3_0_3/zVFR.sac and b/test/_correct_full_wave/_Ref/killari_3_0_3/zVFR.sac differ diff --git a/test/_correct_full_wave/_Ref/killari_3_0_3/zVFZ.sac b/test/_correct_full_wave/_Ref/killari_3_0_3/zVFZ.sac index dc9b4cc5..26c19821 100644 Binary files a/test/_correct_full_wave/_Ref/killari_3_0_3/zVFZ.sac and b/test/_correct_full_wave/_Ref/killari_3_0_3/zVFZ.sac differ diff --git a/test/_correct_full_wave/_Ref/seafloor_5_1.1_100/DDR.sac b/test/_correct_full_wave/_Ref/seafloor_5_1.1_100/DDR.sac index 84c3eba8..10d7f68b 100644 Binary files a/test/_correct_full_wave/_Ref/seafloor_5_1.1_100/DDR.sac and b/test/_correct_full_wave/_Ref/seafloor_5_1.1_100/DDR.sac differ diff --git a/test/_correct_full_wave/_Ref/seafloor_5_1.1_100/DDZ.sac b/test/_correct_full_wave/_Ref/seafloor_5_1.1_100/DDZ.sac index 537b907b..a41ee6b3 100644 Binary files a/test/_correct_full_wave/_Ref/seafloor_5_1.1_100/DDZ.sac and b/test/_correct_full_wave/_Ref/seafloor_5_1.1_100/DDZ.sac differ diff --git a/test/_correct_full_wave/_Ref/seafloor_5_1.1_100/DSR.sac b/test/_correct_full_wave/_Ref/seafloor_5_1.1_100/DSR.sac index d01b13cd..06e6fe64 100644 Binary files a/test/_correct_full_wave/_Ref/seafloor_5_1.1_100/DSR.sac and b/test/_correct_full_wave/_Ref/seafloor_5_1.1_100/DSR.sac differ diff --git a/test/_correct_full_wave/_Ref/seafloor_5_1.1_100/DST.sac b/test/_correct_full_wave/_Ref/seafloor_5_1.1_100/DST.sac index c5b56d1b..2db150f6 100644 Binary files a/test/_correct_full_wave/_Ref/seafloor_5_1.1_100/DST.sac and b/test/_correct_full_wave/_Ref/seafloor_5_1.1_100/DST.sac differ diff --git a/test/_correct_full_wave/_Ref/seafloor_5_1.1_100/DSZ.sac b/test/_correct_full_wave/_Ref/seafloor_5_1.1_100/DSZ.sac index feb5a23d..1316a4d2 100644 Binary files a/test/_correct_full_wave/_Ref/seafloor_5_1.1_100/DSZ.sac and b/test/_correct_full_wave/_Ref/seafloor_5_1.1_100/DSZ.sac differ diff --git a/test/_correct_full_wave/_Ref/seafloor_5_1.1_100/EXR.sac b/test/_correct_full_wave/_Ref/seafloor_5_1.1_100/EXR.sac index 181943d7..c07306af 100644 Binary files a/test/_correct_full_wave/_Ref/seafloor_5_1.1_100/EXR.sac and b/test/_correct_full_wave/_Ref/seafloor_5_1.1_100/EXR.sac differ diff --git a/test/_correct_full_wave/_Ref/seafloor_5_1.1_100/EXZ.sac b/test/_correct_full_wave/_Ref/seafloor_5_1.1_100/EXZ.sac index f6cc68aa..21e7706d 100644 Binary files a/test/_correct_full_wave/_Ref/seafloor_5_1.1_100/EXZ.sac and b/test/_correct_full_wave/_Ref/seafloor_5_1.1_100/EXZ.sac differ diff --git a/test/_correct_full_wave/_Ref/seafloor_5_1.1_100/HFR.sac b/test/_correct_full_wave/_Ref/seafloor_5_1.1_100/HFR.sac index 7a3ec7eb..6d7848e4 100644 Binary files a/test/_correct_full_wave/_Ref/seafloor_5_1.1_100/HFR.sac and b/test/_correct_full_wave/_Ref/seafloor_5_1.1_100/HFR.sac differ diff --git a/test/_correct_full_wave/_Ref/seafloor_5_1.1_100/HFT.sac b/test/_correct_full_wave/_Ref/seafloor_5_1.1_100/HFT.sac index 5594cfce..7ad69a12 100644 Binary files a/test/_correct_full_wave/_Ref/seafloor_5_1.1_100/HFT.sac and b/test/_correct_full_wave/_Ref/seafloor_5_1.1_100/HFT.sac differ diff --git a/test/_correct_full_wave/_Ref/seafloor_5_1.1_100/HFZ.sac b/test/_correct_full_wave/_Ref/seafloor_5_1.1_100/HFZ.sac index 4c841d96..62ad4a2d 100644 Binary files a/test/_correct_full_wave/_Ref/seafloor_5_1.1_100/HFZ.sac and b/test/_correct_full_wave/_Ref/seafloor_5_1.1_100/HFZ.sac differ diff --git a/test/_correct_full_wave/_Ref/seafloor_5_1.1_100/SSR.sac b/test/_correct_full_wave/_Ref/seafloor_5_1.1_100/SSR.sac index 640aa319..486c0645 100644 Binary files a/test/_correct_full_wave/_Ref/seafloor_5_1.1_100/SSR.sac and b/test/_correct_full_wave/_Ref/seafloor_5_1.1_100/SSR.sac differ diff --git a/test/_correct_full_wave/_Ref/seafloor_5_1.1_100/SST.sac b/test/_correct_full_wave/_Ref/seafloor_5_1.1_100/SST.sac index 0df0d21a..259d1abe 100644 Binary files a/test/_correct_full_wave/_Ref/seafloor_5_1.1_100/SST.sac and b/test/_correct_full_wave/_Ref/seafloor_5_1.1_100/SST.sac differ diff --git a/test/_correct_full_wave/_Ref/seafloor_5_1.1_100/SSZ.sac b/test/_correct_full_wave/_Ref/seafloor_5_1.1_100/SSZ.sac index c7eecc22..97ac6469 100644 Binary files a/test/_correct_full_wave/_Ref/seafloor_5_1.1_100/SSZ.sac and b/test/_correct_full_wave/_Ref/seafloor_5_1.1_100/SSZ.sac differ diff --git a/test/_correct_full_wave/_Ref/seafloor_5_1.1_100/VFR.sac b/test/_correct_full_wave/_Ref/seafloor_5_1.1_100/VFR.sac index 832934c4..87907441 100644 Binary files a/test/_correct_full_wave/_Ref/seafloor_5_1.1_100/VFR.sac and b/test/_correct_full_wave/_Ref/seafloor_5_1.1_100/VFR.sac differ diff --git a/test/_correct_full_wave/_Ref/seafloor_5_1.1_100/VFZ.sac b/test/_correct_full_wave/_Ref/seafloor_5_1.1_100/VFZ.sac index 7ccb0181..911138a7 100644 Binary files a/test/_correct_full_wave/_Ref/seafloor_5_1.1_100/VFZ.sac and b/test/_correct_full_wave/_Ref/seafloor_5_1.1_100/VFZ.sac differ diff --git a/test/_correct_full_wave/_Ref/seafloor_5_1.1_100/rDDR.sac b/test/_correct_full_wave/_Ref/seafloor_5_1.1_100/rDDR.sac index 9fc0ddd0..80078d1e 100644 Binary files a/test/_correct_full_wave/_Ref/seafloor_5_1.1_100/rDDR.sac and b/test/_correct_full_wave/_Ref/seafloor_5_1.1_100/rDDR.sac differ diff --git a/test/_correct_full_wave/_Ref/seafloor_5_1.1_100/rDDZ.sac b/test/_correct_full_wave/_Ref/seafloor_5_1.1_100/rDDZ.sac index fcb4f65a..8d1e89b6 100644 Binary files a/test/_correct_full_wave/_Ref/seafloor_5_1.1_100/rDDZ.sac and b/test/_correct_full_wave/_Ref/seafloor_5_1.1_100/rDDZ.sac differ diff --git a/test/_correct_full_wave/_Ref/seafloor_5_1.1_100/rDSR.sac b/test/_correct_full_wave/_Ref/seafloor_5_1.1_100/rDSR.sac index d5a87c6b..e2c5e89c 100644 Binary files a/test/_correct_full_wave/_Ref/seafloor_5_1.1_100/rDSR.sac and b/test/_correct_full_wave/_Ref/seafloor_5_1.1_100/rDSR.sac differ diff --git a/test/_correct_full_wave/_Ref/seafloor_5_1.1_100/rDST.sac b/test/_correct_full_wave/_Ref/seafloor_5_1.1_100/rDST.sac index c2da052e..9b0d6f34 100644 Binary files a/test/_correct_full_wave/_Ref/seafloor_5_1.1_100/rDST.sac and b/test/_correct_full_wave/_Ref/seafloor_5_1.1_100/rDST.sac differ diff --git a/test/_correct_full_wave/_Ref/seafloor_5_1.1_100/rDSZ.sac b/test/_correct_full_wave/_Ref/seafloor_5_1.1_100/rDSZ.sac index 45b4da00..b3062bce 100644 Binary files a/test/_correct_full_wave/_Ref/seafloor_5_1.1_100/rDSZ.sac and b/test/_correct_full_wave/_Ref/seafloor_5_1.1_100/rDSZ.sac differ diff --git a/test/_correct_full_wave/_Ref/seafloor_5_1.1_100/rEXR.sac b/test/_correct_full_wave/_Ref/seafloor_5_1.1_100/rEXR.sac index 8966dc57..639ce547 100644 Binary files a/test/_correct_full_wave/_Ref/seafloor_5_1.1_100/rEXR.sac and b/test/_correct_full_wave/_Ref/seafloor_5_1.1_100/rEXR.sac differ diff --git a/test/_correct_full_wave/_Ref/seafloor_5_1.1_100/rEXZ.sac b/test/_correct_full_wave/_Ref/seafloor_5_1.1_100/rEXZ.sac index 1f8e7954..6dddc39c 100644 Binary files a/test/_correct_full_wave/_Ref/seafloor_5_1.1_100/rEXZ.sac and b/test/_correct_full_wave/_Ref/seafloor_5_1.1_100/rEXZ.sac differ diff --git a/test/_correct_full_wave/_Ref/seafloor_5_1.1_100/rHFR.sac b/test/_correct_full_wave/_Ref/seafloor_5_1.1_100/rHFR.sac index 26055b7f..3b00b8a4 100644 Binary files a/test/_correct_full_wave/_Ref/seafloor_5_1.1_100/rHFR.sac and b/test/_correct_full_wave/_Ref/seafloor_5_1.1_100/rHFR.sac differ diff --git a/test/_correct_full_wave/_Ref/seafloor_5_1.1_100/rHFT.sac b/test/_correct_full_wave/_Ref/seafloor_5_1.1_100/rHFT.sac index 688458a7..e03ff5f4 100644 Binary files a/test/_correct_full_wave/_Ref/seafloor_5_1.1_100/rHFT.sac and b/test/_correct_full_wave/_Ref/seafloor_5_1.1_100/rHFT.sac differ diff --git a/test/_correct_full_wave/_Ref/seafloor_5_1.1_100/rHFZ.sac b/test/_correct_full_wave/_Ref/seafloor_5_1.1_100/rHFZ.sac index 4f0f0043..b74f82e4 100644 Binary files a/test/_correct_full_wave/_Ref/seafloor_5_1.1_100/rHFZ.sac and b/test/_correct_full_wave/_Ref/seafloor_5_1.1_100/rHFZ.sac differ diff --git a/test/_correct_full_wave/_Ref/seafloor_5_1.1_100/rSSR.sac b/test/_correct_full_wave/_Ref/seafloor_5_1.1_100/rSSR.sac index 8aa66fa5..7f846d0b 100644 Binary files a/test/_correct_full_wave/_Ref/seafloor_5_1.1_100/rSSR.sac and b/test/_correct_full_wave/_Ref/seafloor_5_1.1_100/rSSR.sac differ diff --git a/test/_correct_full_wave/_Ref/seafloor_5_1.1_100/rSST.sac b/test/_correct_full_wave/_Ref/seafloor_5_1.1_100/rSST.sac index 37c23415..b55244ce 100644 Binary files a/test/_correct_full_wave/_Ref/seafloor_5_1.1_100/rSST.sac and b/test/_correct_full_wave/_Ref/seafloor_5_1.1_100/rSST.sac differ diff --git a/test/_correct_full_wave/_Ref/seafloor_5_1.1_100/rSSZ.sac b/test/_correct_full_wave/_Ref/seafloor_5_1.1_100/rSSZ.sac index 10c791e0..77f60cb8 100644 Binary files a/test/_correct_full_wave/_Ref/seafloor_5_1.1_100/rSSZ.sac and b/test/_correct_full_wave/_Ref/seafloor_5_1.1_100/rSSZ.sac differ diff --git a/test/_correct_full_wave/_Ref/seafloor_5_1.1_100/rVFR.sac b/test/_correct_full_wave/_Ref/seafloor_5_1.1_100/rVFR.sac index 02f43773..212fea9d 100644 Binary files a/test/_correct_full_wave/_Ref/seafloor_5_1.1_100/rVFR.sac and b/test/_correct_full_wave/_Ref/seafloor_5_1.1_100/rVFR.sac differ diff --git a/test/_correct_full_wave/_Ref/seafloor_5_1.1_100/rVFZ.sac b/test/_correct_full_wave/_Ref/seafloor_5_1.1_100/rVFZ.sac index d041a4bd..702a0621 100644 Binary files a/test/_correct_full_wave/_Ref/seafloor_5_1.1_100/rVFZ.sac and b/test/_correct_full_wave/_Ref/seafloor_5_1.1_100/rVFZ.sac differ diff --git a/test/_correct_full_wave/_Ref/seafloor_5_1.1_100/zDDR.sac b/test/_correct_full_wave/_Ref/seafloor_5_1.1_100/zDDR.sac index 18390a2f..1a711134 100644 Binary files a/test/_correct_full_wave/_Ref/seafloor_5_1.1_100/zDDR.sac and b/test/_correct_full_wave/_Ref/seafloor_5_1.1_100/zDDR.sac differ diff --git a/test/_correct_full_wave/_Ref/seafloor_5_1.1_100/zDDZ.sac b/test/_correct_full_wave/_Ref/seafloor_5_1.1_100/zDDZ.sac index 035ad10d..423e8fb2 100644 Binary files a/test/_correct_full_wave/_Ref/seafloor_5_1.1_100/zDDZ.sac and b/test/_correct_full_wave/_Ref/seafloor_5_1.1_100/zDDZ.sac differ diff --git a/test/_correct_full_wave/_Ref/seafloor_5_1.1_100/zDSR.sac b/test/_correct_full_wave/_Ref/seafloor_5_1.1_100/zDSR.sac index 13bf3069..91507863 100644 Binary files a/test/_correct_full_wave/_Ref/seafloor_5_1.1_100/zDSR.sac and b/test/_correct_full_wave/_Ref/seafloor_5_1.1_100/zDSR.sac differ diff --git a/test/_correct_full_wave/_Ref/seafloor_5_1.1_100/zDST.sac b/test/_correct_full_wave/_Ref/seafloor_5_1.1_100/zDST.sac index 487fe33e..dc335b36 100644 Binary files a/test/_correct_full_wave/_Ref/seafloor_5_1.1_100/zDST.sac and b/test/_correct_full_wave/_Ref/seafloor_5_1.1_100/zDST.sac differ diff --git a/test/_correct_full_wave/_Ref/seafloor_5_1.1_100/zDSZ.sac b/test/_correct_full_wave/_Ref/seafloor_5_1.1_100/zDSZ.sac index 6794a134..b3c92e06 100644 Binary files a/test/_correct_full_wave/_Ref/seafloor_5_1.1_100/zDSZ.sac and b/test/_correct_full_wave/_Ref/seafloor_5_1.1_100/zDSZ.sac differ diff --git a/test/_correct_full_wave/_Ref/seafloor_5_1.1_100/zEXR.sac b/test/_correct_full_wave/_Ref/seafloor_5_1.1_100/zEXR.sac index 6c655c01..95054e5d 100644 Binary files a/test/_correct_full_wave/_Ref/seafloor_5_1.1_100/zEXR.sac and b/test/_correct_full_wave/_Ref/seafloor_5_1.1_100/zEXR.sac differ diff --git a/test/_correct_full_wave/_Ref/seafloor_5_1.1_100/zEXZ.sac b/test/_correct_full_wave/_Ref/seafloor_5_1.1_100/zEXZ.sac index 665f1aa5..2a284bea 100644 Binary files a/test/_correct_full_wave/_Ref/seafloor_5_1.1_100/zEXZ.sac and b/test/_correct_full_wave/_Ref/seafloor_5_1.1_100/zEXZ.sac differ diff --git a/test/_correct_full_wave/_Ref/seafloor_5_1.1_100/zHFR.sac b/test/_correct_full_wave/_Ref/seafloor_5_1.1_100/zHFR.sac index 428d3053..672b8c08 100644 Binary files a/test/_correct_full_wave/_Ref/seafloor_5_1.1_100/zHFR.sac and b/test/_correct_full_wave/_Ref/seafloor_5_1.1_100/zHFR.sac differ diff --git a/test/_correct_full_wave/_Ref/seafloor_5_1.1_100/zHFT.sac b/test/_correct_full_wave/_Ref/seafloor_5_1.1_100/zHFT.sac index 6a49a1a2..bf257570 100644 Binary files a/test/_correct_full_wave/_Ref/seafloor_5_1.1_100/zHFT.sac and b/test/_correct_full_wave/_Ref/seafloor_5_1.1_100/zHFT.sac differ diff --git a/test/_correct_full_wave/_Ref/seafloor_5_1.1_100/zHFZ.sac b/test/_correct_full_wave/_Ref/seafloor_5_1.1_100/zHFZ.sac index 5444349d..00f852af 100644 Binary files a/test/_correct_full_wave/_Ref/seafloor_5_1.1_100/zHFZ.sac and b/test/_correct_full_wave/_Ref/seafloor_5_1.1_100/zHFZ.sac differ diff --git a/test/_correct_full_wave/_Ref/seafloor_5_1.1_100/zSSR.sac b/test/_correct_full_wave/_Ref/seafloor_5_1.1_100/zSSR.sac index ddba605a..b812ad3a 100644 Binary files a/test/_correct_full_wave/_Ref/seafloor_5_1.1_100/zSSR.sac and b/test/_correct_full_wave/_Ref/seafloor_5_1.1_100/zSSR.sac differ diff --git a/test/_correct_full_wave/_Ref/seafloor_5_1.1_100/zSST.sac b/test/_correct_full_wave/_Ref/seafloor_5_1.1_100/zSST.sac index 0545606c..614ade68 100644 Binary files a/test/_correct_full_wave/_Ref/seafloor_5_1.1_100/zSST.sac and b/test/_correct_full_wave/_Ref/seafloor_5_1.1_100/zSST.sac differ diff --git a/test/_correct_full_wave/_Ref/seafloor_5_1.1_100/zSSZ.sac b/test/_correct_full_wave/_Ref/seafloor_5_1.1_100/zSSZ.sac index c8cab0e0..9027ea96 100644 Binary files a/test/_correct_full_wave/_Ref/seafloor_5_1.1_100/zSSZ.sac and b/test/_correct_full_wave/_Ref/seafloor_5_1.1_100/zSSZ.sac differ diff --git a/test/_correct_full_wave/_Ref/seafloor_5_1.1_100/zVFR.sac b/test/_correct_full_wave/_Ref/seafloor_5_1.1_100/zVFR.sac index ee80ba28..fd2ff386 100644 Binary files a/test/_correct_full_wave/_Ref/seafloor_5_1.1_100/zVFR.sac and b/test/_correct_full_wave/_Ref/seafloor_5_1.1_100/zVFR.sac differ diff --git a/test/_correct_full_wave/_Ref/seafloor_5_1.1_100/zVFZ.sac b/test/_correct_full_wave/_Ref/seafloor_5_1.1_100/zVFZ.sac index 3082154f..f57ccd12 100644 Binary files a/test/_correct_full_wave/_Ref/seafloor_5_1.1_100/zVFZ.sac and b/test/_correct_full_wave/_Ref/seafloor_5_1.1_100/zVFZ.sac differ